2019/12 3

스프링 프레임워크(Spring Framework)란?

프레임워크란? 프레임워크(Framework)는 뼈대나 근간을 이루는 코드들의 묶음이다. 프레임워크는 프로그램의 기본 흐름이나 구조를 정하고, 개발자는 그렇게 미리 완성된 구조에 맞추어 코드를 작성한다. 따라서 개발자는 개발 시간을 단축할 수 있고, 코드의 일정한 품질이 보장되는 결과 또한 얻을 수 있다. 스프링 프레임워크의 등장 배경 스프링 프레임워크가 생겨난 2000년도 초엔 기업 단위의 대규모 개발이 활발함에 따라 여러 프레임워크가 이미 생겨나 자리 잡고 있었다. 하지만 그러한 프레임워크들의 문제점은 너무 무겁고, 복잡하고, 특정 분야에 전문적이며, 다른 프레임워크와의 융화가 쉽지 않다는 점이었다. 스프링 프레임워크는 그러한 프레임워크들의 문제점을 대부분 극복한 일종의 경량 프레임워크(light-we..

개발 2019.12.26

펜윅 트리(Fenwick Tree)란?

펜윅 트리란? 펜윅 트리는 배열의 부분 합(prefix sum)을 계산할 때 사용되는 자료구조이다. 바이너리 인덱스 트리(Binary Indexed Tree, BIT) 또한 펜윅 트리를 지칭하는 용어이다. 펜윅 트리를 왜 써야 하는가? 앞에서 펜윅 트리가 부분 합을 계산할 때 사용된다고 했다. 정확히 말하자면 펜윅트리는 실시간으로 배열의 요소가 업데이트 되는 상황에서 부분합을 구할 때 사용된다. 예를 들어 [4, 5, 6, 7, 8, 9] 배열이 있고, 0번 인덱스부터 3번 인덱스까지 더한다면 4+5+6+7 = 22가 된다. 여기서 2번 인덱스를 6에서 10으로 변경한다고 하자. 그렇다면 앞서 0번 인덱스부터 3번 인덱스까지 더한 부분 합 22는 더 이상 쓸모없게 된다. 2번 인덱스가 6에서 10으로 바..

개발 2019.12.22

함수 포인터(Function Pointer)란?

함수 포인터란? C언어의 문법 중, 변수가 아닌 함수를 가리키는 포인터를 말한다. int 자료형을 가리키는 int *, char 자료형을 가리키는 char * 포인터와 같이, 함수를 가리키는 포인터도 존재할 수 있다. 함수 포인터를 왜 쓰나요? 함수 포인터는 콜백(callback) 매커니즘을 구현할 때 함수를 또 다른 함수의 인자(argument)로 넘겨주기 위해 주로 사용된다. 또한, 여러 개의 함수를 배열로 관리하고자 할 때 사용할 수도 있다. 함수 포인터의 특징 함수 포인터도 포인터이기 때문에, 일반적인 포인터와 마찬가지로 메모리 주소를 가리킨다. 하지만 일반적인 포인터와 달리, 함수 포인터는 데이터가 아닌 코드의 위치를 가리킨다. 마치 배열을 가리키는 포인터가 배열의 시작부분을 가리키는 것과 같이..

개발 2019.12.02