C# 람다식(Lamda Expression)

Posted by 알 수 없는 사용자
2015. 4. 11. 18:43 프로그래밍/C#

람다식은 delegate를 만드는데 사용할 수 있는 익명함수이다.

기존에 deleagate에서  람다식을 사용하면 간결하게 표현이 가능하다.

무슨말인지 잘 모르겠으니 코드를 보자



위의 코드는 delegate를 이용하여 3개의 변수를 더해서 출력하는 간단한 예제이다.

이것을 람다식으로 바꿔면 다음과 같은 코드가 된다.



위와 같이 여러줄에 걸쳐 작성해야하는 코드를 간단하게 작성이 가능하다.

다음코드를 한번 보자



람다식은 위의 코드와 같이 변수 타입도 생략이 가능하여 더 간단한 표현이 가능하다.







출처 : 

시작하세요! C# 프로그래밍

'프로그래밍 > C#' 카테고리의 다른 글

C# Linq  (3) 2015.05.18
C# 대리자(Delegate)  (288) 2015.04.08
C# 가비지 컬렉션(Garbage Collection)  (1274) 2015.03.23
C# 기본자료형, 변수  (10) 2015.03.22

Java의 Collections (List, Set, Map) 이해

Posted by 알 수 없는 사용자
2015. 4. 10. 03:47 프로그래밍/JAVA

Java Collection Framework (JCF)

 : Java에서 데이터를 저장하는 기본적인 자료구조들을 한 곳에 모아 관리하고 편하게 사용하기 위해서 제공하는 것을 의미한다. 다음은 JCF의 상속 구조이며 사용 용도에 따라 List, Set, Map 3가지로 요약할 수 있다.




 ■ 각 인터페이스의 특징

인터페이스

구현 클래스 

특징 

List

LinkedList

Stack

Vector

ArrayList

 순서가 있는 데이터의 집합, 데이터의 중복을 허용한다.

Set

HashSet

TreeSet

 순서를 유지하지 않는 데이터의 집합, 데이터의 중복을 허용하지 않는다. 

Map 

 HashMap

TreeMap

HashTable

Properties

 키(key)와 값(value)의 쌍으로 이루어진 데이터의 집합이다.

 순서는 유지되지 않고, 키는 중복을 허용하지 않으며 값의 중복을 허용한다.



 ■ Collection Interface

: 모든 콜렉션의 상위 인터페이스로써 콜렉션들이 갖고 있는 핵심 메소드를 선언 (add, contain, isEmpty, remove, size, iterator ...)


    • List Interface 

: Collection 인터페이스를 확장한 자료형으로 요소들의 순서를 저장하여 색인(Index)를 사용하여 특정 위치에 요소를 삽입하거나 접근할 수 있으며 중복 요소 허용

      • ArrayList
        • 상당히 빠르고 크기를 마음대로 조절할 수 있는 배열
        • 단방향 포인터 구조로 자료에 대한 순차적인 접근에 강점이 있음

      • Vector
        • ArrayList의 구형버전이며, 모든 메소드가 동기화 되어있음
        • 잘 쓰이진 않음

      • LinkedList
        • 양방향 포인터 구조로 데이터의 삽입, 삭제가 빈번할 경우 빠른 성능을 보장.
        • 스택, 큐, 양방향 큐 등을 만들기 위한 용도로 쓰임


    • Set Interface
: 집합을 정의하며 요소의 중복을 허용하지 않음. 상위 메소드만 사용함

      • HashSet
        • 가장 빠른 임의 접근 속도
        • 순서를 전혀 예측할 수 없음

      • LinkedHashSet
        • 추가된 순서, 또는 가장 최근에 접근한 순서대로 접근 가능

      • TreeSet
        • 정렬된 순서대로 보관하며 정렬 방법을 지정할 수 있음


 ■ Map Interface

: Key와 Value의 쌍으로 연관지어 저장하는 객체


    • HashMap
      • Map 인터페이스를 구현하기 위해 해시테이블을 사용한 클래스
      • 중복을 허용하지 않고 순서를 보장하지 않음
      • 키와 값으로 null이 허용

    • Hashtable
      • HashMap 보다는 느리지만 동기화가 지원
      • 키와 값으로 null이 허용되지 않음

    • TreeMap
      • 이진검색트리의 형태로 키와 값의 쌍으로 이루어진 데이터를 저장
      • 정렬된 순서로 키/값 쌍을 저장하므로 빠른 검색이 가능
      • 저장시 정렬(오름차순)을 하기 때문에 저장시간이 다소 오래 걸림

    • LinkedHashMap
      • 기본적으로 HashMap을 상속받아 HashMap과 매우 흡사
      • Map에 있는 엔트리들의 연결 리스트를 유지되므로 입력한 순서대로 반복 가능


 ■ 각 클래스의 메소드 링크


■ 출처

    • http://withwani.tistory.com/150
    • http://blog.naver.com/windziel/60048694876
    • http://www.gliderwiki.org/wiki/99
    • http://www.java-school.net/java/10.php


'프로그래밍 > JAVA' 카테고리의 다른 글

JSTL Core Tag (c tag)  (4) 2015.06.02
Java의 Garbage Collection  (315) 2015.03.27
Java의 String, StringBuffer, StringBuilder 설명  (277) 2015.03.24
JAVA 첫번째  (3) 2015.03.17

MSSQL vs MySQL vs Oracle

Posted by 알 수 없는 사용자
2015. 4. 10. 00:05 프로그래밍/데이터베이스


대표적인 DBMS MSSQL, MySQL, Oracle을 비교해보자.


 

Microsoft SQL Server 

MySQL

Oracle 

 사용 빈도( Rank )

 [ 그래프보기 ] 

 Web Site

www.microsoft.com/sqlserver

www.mysql.com

www.oracle.com/us/products/database

기술문서

Click

Click

Click

 Developer

MicroSoft*(1989)

Oracle(1995) 

Oracle(1980) 

 최신버전

SQL Server2014 (2014.4) 

5.6.23 (2015.2) 

12.1.0.2 (2014.7)

 라이센스

commercial 

open source 

commercial 

 dbaas

no 

no 

no 

 구현언어

C++ 

C or C++ 

C or C++ 

OS

Windows 

freeBSD
Linux
OS X
Solaris
Windows

AIX
HP-UX
Linux
OS X
Solaris
Windows
Z/OS 

 DB Scheme

yes 

yes 

yes 

 Typing

yes 

yes 

yes 

 SQL

yes 

yes 

yes 

APIs and other access methods

OLE DB
Tabular Data Stream (TDS)
ADO.NET
JDBC
ODBC

ADO.NET
JDBC
ODBC

ADO.NET
JDBC
ODBC
Oracle Call Interface(OCI)

지원하는언어

 .net
JAVA
php
python
ruby
VB

C
C#
C++
Eiffel
Haskell
JAVA
Objective-C
OCaml
Perl
php
python
ruby
Tcl

 C
C#
C++
Clojure
Cobol
Eiffel
Erlang
Fortran
Groovy
Haskell
JAVA
JavaScript
Lisp
Objective-C
OCaml
Perl
php
python
ruby
Scala
Tcl
VB

트리거

yes 

yes 

yes 

MapReduce 

no 

no 

no 

Foreign Key 

yes 

yes 

yes 

트랜젝션 개념

acid

acid 

acid 

*acid(원자성 Atomicity, 일관성 Consistency, 고립성 Isolation, 지속성 Durability)
데이터베이스 트랜잭션이 안전하게 수행된다는 것을 보장한다는 성질을 가리키는 약어

Concurrency

yes 

yes 

yes 


위에 DBMS들은 모두 RDBMS로써 관계형 데이터베이스 관리 시스템이다.
즉 관계형 데이터베이스를 생성하고, 수정하고 관리 할 수 있는 소프트웨어라고 정의 할 수 있다.


DBMS 별 function 비교

 

Microsoft SQL Server

MySQL 

Oracle 

NULL값 처리 

ISNULL(colum,value) 

IFNULL(colum,value) 

 NVL(colum,value)

Select Insert

 (테이블 데이터 복사 ) 

Select 컬럼명
into 신규테이블
from 기존테이블 

insert into 신규테이블명(컬럼명)
select 컬럼명
from 기존테이블

insert into 신규테이블명(컬럼명)
select 컬럼명
from 기존테이블

다중조건

( case문 )

case
when 조건 then 값
when 조건 then 값
else 값
end 

단일조건

case문 사용 

 DECODE(컬럼,값,일치,불일치)
IF(조건,조건일치,불일치)

DECODE(컬럼,값,일치,불일치) 
IF(조건,조건일치, 불일치)

 문자열 합치기

concat('a','&','b','&','c')
concat_ws('&','a','b','c') 

 || - 2개이상
concat('a','b') - 2개



출처 : http://db-engines.com/

'프로그래밍 > 데이터베이스' 카테고리의 다른 글

NOSQL  (322) 2015.11.06
[ MSSQL ] 데이터의 물리적 구조  (4) 2015.06.02
[ MSSQL ] 데이터 파일(.mdf/.ndf)과 로그파일(.ldf)  (4) 2015.06.02
[ MSSQL ] Page와 Extend  (4) 2015.05.27