알고리즘 - 생일 케이크 

매년 조카의 생일케이크를 준비해야 하는 임무가 주어졌다. 당신은 케이크와 함께 조카의 나이 만큼의 초도 준비해야 한다. 케익을 받은 조카가 촛불을 끄기위해서 바람을 불면, 그 중 가장 길이가 긴 촛불이 꺼지게 된다. 조카가 바람을 불었을 때 몇 개의 촛불이 꺼질지를 계산해야 한다.예를 들어 4살 조카의 생일 케이크라면 4개의 초도 함께 준비해야 할 것이다....

Mysql 외래키 

데이터베이스는 여러 개의 테이블로 구성되기 마련이다. 이들 테이블은 특정 키(혹은 필드)를 매개로 서로 연결이 되는데, 이 키를 외래키(foreign key)라고 한다. RDBMS(Relational database management system)에서 명시적으로 테이블을 연결(relation)해주는 장치다. 아래는 joinc 사이트의 유저 관리 테이블이다...

State machines 

컴퓨터 과학에 대한 이해 없이도 프로그램을 개발할 수 있다. 컴퓨터 과학에 대한 기초가 없으면 좋은 프로그램을 만들 수 없다고 하지만 항상 그런건 아니다. 특히 컴퓨팅환경이 고도화되고 추상화 되면서 이러한 경향이 두드러지고 있다. 자동차 운전을 생각해 보면 된다. 자동차는 엄청나게 복잡한 기계지만 고도로 추상화된 덕분에 단지 몇 개의 패달과 변속기, 스티어...

CQRS 

CQRS는 Command Query Responsibility Segregation의 약자다. CQRS의 핵심은 정보를 업데이트하는 모델과 정보를 읽는 모델을 분리하는데 있다. CQRS 패턴이 중요한 경우도 있겠지만 오히려 복잡도를 위험할 정도로 높이는 경우도 많다는 것에 주의 해야 한다.정보 시스템과 상호작용하기 위해서 사용했던 가장 대중적인 정보 모델은...

Hadoop 및 MapReduce 

아파치 하둡(Hadoop)은 대량의 데이터를 용이하게 처리하기 위해서 분산 컴퓨터 네트워크 기술을 사용하는 오픈 소스 소프트웨어 유틸리티들의 모음이다. 수천개의 노드에서 실행 할 수 있으며, 테라바이트 혹은 페타바이트 단위의 데이터를 저장하고 처리 할 수 있다. 아파치 하둡의 핵심은 HDFS로 알려진 분산 파일 저장소와 분산 프로그래밍 모델인 MapRed...

Salt 

암호학에서 salt는 단방향 해시 함수에 추가 입력되는 "임의의 데이터"다. Salt는 일종의 nonce(Number used just Once)로 사전계산된 rainbow table 공격을 막기 위해서 사용한다. 각각의 패스워드 마다 랜덤한 salt가 만들어지며,해시 함수에 전달되서 처리되고 그 결과는 salt와 함께 데이터베이스에 저장된다.패스워드는 단...

Super Reduced String 

소문자 영어 알파벳으로 구성된 문자열을 가지고 있다. 한번의 연산에서 동일한 값을 가지고 있는 인접한 문자를 삭제 할 수 있다. 예를 들어 문자열 "aabcc"의 경우 연산이 작동하면 "aab" 혹은 "bcc"가 된다.이러한 연산을 반복해서 가능한 문자열을 줄이기를 원한다. 더 이상 인접한 문자열이 없을 때까지 이 연산을 반복해서 남는 문자열을 출력하라.만...

Rtree 

R-Tree는 지리 좌표, 직사각형, 폴리곤과 같은 다차원 정보를 색인하기 위해서 사용하는 트리 데이터 구조다. R-Tree는 1984년 Antonin Guttman이 제안 했으며, 이론은 실제 상황에서도 중요하게 사용하고 있다. R-Tree의 일반적인 사용 용도는 해안선, 건물, 호수, 도로 등을 포함한 지도내에서 특정 객체의 위치를 신속하게 찾는 것이다...

MySQL 

MySQL은 오픈소스 관계형 데이터베이스 관리 시스템(Relation Database Management System - RDBMS)이다. 이름은 설립자인 Michael Widenius의 딸 이름인 My 와 Structured Query Language의 약자인 SQL의 조합이다. 제작사는 MySQL AB로 이후 썬 마이크로시스템즈에 인수 됐다. 이후 오라...

Apple And Orange 

샘의 집은 양 옆으로 사과나무와 오렌지 나무가 있어서, 과일이 풍부하다. 아래 그림에서 빨간색 영역은 집을 기리킨다. 집의 영역은 s에서 부터 t 까지다. 사과나무는 집 왼쪽에 있고, 오렌지 나무는 오른쪽에 있다. 사과나무의 위치는 a 오랜제나무의 위치는 b라고 가정하자.땅을 x축이라고 할 때, 과일이 땅에 떨어지면 x축의 위치에 값을 가질 것이다. 이때 ...