Fundamental
72
FundamentalTILC
Pointer guide; multiple pointer
변수 포인터의 가장 적절한 예는 배열과 문자열이다. 배열의 가장 앞 원소(element)의 주소는 배열의 시작 주소와 동치다. char형의 배열은 곧 문자열이다. 맨 앞 문자의 주소는 문자열의 시작 주소와 동치다. 이러한 배열 자체를 원소로 삼아 또 다른 배열을 만들 수 있다. 어렵게 생각할 것 없이 아래 도식을 보자. 각각 요소 3개를 가진 배열 4개의 주소를 담고 있는 배열. 이게 전부 다다. *를 두개 선언함으로써 배열주소를 담은 배열을 만들 수 있다. 아래 도식을 추가로 보자. malloc으로 실제 동적 할당과 배열이 어떻게
FundamentalTILC
string.h functions
C의 string과 관련된 함수들 몇 가지를 정리 해봤다. 위는 string.h 함수의 원형이고 아래는 간단히 구현해본 코드다. s2가 가리키는 문자열의 복사본을 (NULL문자까지 포함하여) s1이 가리키는 위치에 붙인다. s2 문자열의 첫번째 문자가 s1문자열의 NULL문자를 덮어 쓴다. s1을 리턴한다 s2가 가리키는 문자열에서 n개의 문자들의 복사본을, 또는 NULL문자까지 복사본을 s1이 가리키는 위치에 붙인다. s2의 문자열 첫번째 문자가 s1 문자열의 NULL 문자를 덮어 쓴다. NULL문자가 항상 추가된다. s1을 리턴
FundamentalTILC
Pointer guide; iterator and manipulate
char src[55] : 문자열 조작을 위해서 상수가 아닌 스택 또는 힙 영역으로 할당해야한다. tmp_str = str; : 단순히 포인터(문자열)를 순회하는것이 아닌 조작을 필요로 할때는 원본 주소를 보존한다. 그리고 대신 순회할 포인터 변수에 원본 주소를 받는다. tmp_str++ : 주소를 대리로 이동하기 때문에 원본의 값 또한 변경된다. 그러나 원본의 시작 주소는 건드리지 않고 있다. 여기서 따로 배열을 만들어서 상수에 대응할 수 없는 이유는 지역변수는 메소드를 벗어나면 변수 데이터가 사라지기 때문이다. 이와 관련해서 읽
FundamentalTILC
Pointer guide; method and memory
다음의 선언이 있다고 하자 char *strcpy 이 선언은 char형의 포인터, 즉 문자열로 반환하고 포인터 변수 dest와 src를 매개변수로 받는 포인터 함수다. char *dest의 정확한 표기법은 사실 char* dest다. 그래서 함수 내에서 다음 주소를 참조하기 위해 조작시 *dest++ 식으로 조작하면 안되고 dest++가 맞다. 이후 다음의 포인터 변수 선언과 할당이 있다고 하자. 이부분의 경우는 tmp_dest와 dest가 같은 주소를 갖게 된다. 이는 dest를 순회하기 위해서 dest의 시작 주소를 보존하는 것
FundamentalTILC
Pointer guide; string and array
포인터를 사용하기 위해서 포인터 변수를 먼저 선언 후 주소를 할당한다. &a
FundamentalTILDesign pattern
Singleton pattern
싱글톤 패턴은 인스턴스를 하나만 만들어 사용하기 위한 패턴이다. Connection pool, thread pool, device configuration 객체 등과 같은 경우 인스턴스를 여러개 만들게 되면 불필요한 자원을 사용하게 되고, connection pool의 예를 들면 계속 커넥션을 맺고 끊는 작업이 반복되거나 요청이 많아지면 DBMS에 부담이 많이 가게 되는 문제가 발생한다. (마치 php같아진다) 싱글톤 패턴으로 객체를 생성하면 두개의 인스턴스가 존재할 수 없게 된다. 이를 구현하려면 생성자에 제약을 걸어야 하고 단일
FundamentalTILDesign pattern
Strategy pattern
전략패턴이라고도 불리는 스트래티지 패턴은 가튼 문제를 해결하는 여러 코드가 클래스별로 캡슐화 되어있고 이들이 필요할 때 교체할 수 있도록 함으로써 동일한 문제를 다른 코드로 해결할 수 이쎅 하는 디자인 패턴이다. 우선 다음 구조의 클래스가 있다고 보자 아래는 Guitar를 상속(extends) 받는 두 클래스다. 아래는 간단한 기타 플레이어에 대한 테스트다. 아래는 실행결과다 별로 중요한 이야기는 아니지만 스트랫이라고 모두 '디리링'이 아니고 슈퍼트스트랫이라고 '좌좌좡' 소리가 나는게 아니다 모든것은 다 이펙터와 앰프의 채널 상태가
FundamentalTIL
REST의 의미와 연결된 지식들
REpresentational State Transfer, Roy Fielding REpresentational State Transfer → 표현 상태 전송 월드 와이드 웹(World Wide Web a.k.a WWW)과 같은 분산 하이퍼미디어 시스템을 위한 소프트웨어 아키텍처의 한 형식으로 자원을 정의하고 자원에 대한 주소를 지정하는 방법 전반에 대한 패턴이다. REST가 디자인 패턴이다, 아키텍처다 많은 이야기가 존재하는데, 하나의 아키텍처로 볼 수 있다. 좀 더 정확한 표현으로 말하자면, REST 는 Resource Orie