Pointer guide : struct
platanus |

구조체 포인터 다뤄보기 아래 코드가 있다 문자열을 담고있는 다중 배열을 구조체에 담아 반환하는 내용의 함수다. 반환되는 구조체 배열을 순회하는 코드는 다음과 같다 구조체 포인터를 순회하기 위해서는 . 대신 ->로 참조한다.

Pointer guide : multiple pointer
platanus |

포인터 가이드 : 다중 포인터 다루기 변수 포인터의 가장 적절한 예는 배열과 문자열이다. 배열의 가장 앞 원소(element)의 주소는 배열의 시작 주소와 동치다. char형의 배열은 곧 문자열이다. 맨 앞 문자의 주소는 문자열의 시작 주소와 동치다. 이러한 배열 자체를 원소로 삼아 또 다른 배열을 만들 수 있다. 어렵게 생각할 것 없이 아래 도식을 보자. 각각 요소 3개를 가진... » read more

string.h functions
platanus |

문자열과 관련된 함수 C의 string과 관련된 함수들 몇 가지를 정리 해봤다. 위는 string.h 함수의 원형이고 아래는 간단히 구현해본 코드다. strcat s2가 가리키는 문자열의 복사본을 (NULL문자까지 포함하여) s1이 가리키는 위치에 붙인다. s2 문자열의 첫번째 문자가 s1문자열의 NULL문자를 덮어 쓴다. s1을 리턴한다 strncat s2가 가리키는 문자열에서 n개의 문자들의 복사본을, 또는 NULL문자까지 복사본을 s1이 가리키는 위치에 붙인다. s2의 문자열 첫번째... » read more

Pointer guide : iterator and manipulate
platanus |

포인터 : 문자열 순회와 조작에 관하여 char src[55] : 문자열 조작을 위해서 상수가 아닌 스택 또는 힙 영역으로 할당해야한다. tmp_str = str; : 단순히 포인터(문자열)를 순회하는것이 아닌 조작을 필요로 할때는 원본 주소를 보존한다. 그리고 대신 순회할 포인터 변수에 원본 주소를 받는다. tmp_str++ : 주소를 대리로 이동하기 때문에 원본의 값 또한 변경된다. 그러나 원본의 시작 주소는... » read more

Pointer guide : method and memory
platanus |

함수 내에서 포인터 변수 사용 요령 1. 선언부 다음의 선언이 있다고 하자 char *strcpy 이 선언은 char형의 포인터, 즉 문자열로 반환하고 포인터 변수 dest와 src를 매개변수로 받는 포인터 함수다. char *dest의 정확한 표기법은 사실 char* dest다. 그래서 함수 내에서 다음 주소를 참조하기 위해 조작시 *dest++ 식으로 조작하면 안되고 dest++가 맞다. 2. 원래 주소의 보존 이후... » read more

Pointer guide : string and array
platanus |

문자열과 배열 그리고 포인터의 관계 포인터 변수 포인터를 사용하기 위해서 포인터 변수를 먼저 선언 후 주소를 할당한다. &a[0]가 a와 동치인 이유는 배열의 첫번째 요소의 시작주소와 배열의 주소가 같기 때문이다. 포인터 변수와 함수 매개변수의 원본 조작이 필요할때는 포인터 변수로 선언한다. 문자열과 포인터 흔히 아래 예시에서도 문자열이 인자로 들어간다. 이것을 문자열로 표현하면 다음과 같다 둘은 똑같이 문자열을... » read more

Maven과 gradle의 차이
platanus |

두 빌드 툴의 사용법은 인터넷에 잘 정리된 글이 많으니 차이점에 대해서 설명해보고자 한다. Maven Apache에서 만든 소프트웨어 프로젝트 관리 및 comprehension 툴이다. POM 개념을 기반으로 프로젝트의 빌드, 보고 및 문서를 중앙 관리할 수 있다. → 프로젝트의 빌드 Lifecycle 기반 프레임워크. mvn 명령어로 관리한다. XML기반의 pom.xml파일로 설정한다. Gradle Maven을 대체할 수 있는 프로젝트 구성 관리 및... » read more

REST의 의미와 연결된 지식들
platanus |

REST REpresentational State Transfer, Roy Fielding REpresentational State Transfer → 표현 상태 전송 월드 와이드 웹(World Wide Web a.k.a WWW)과 같은 분산 하이퍼미디어 시스템을 위한 소프트웨어 아키텍처의 한 형식으로 자원을 정의하고 자원에 대한 주소를 지정하는 방법 전반에 대한 패턴이다. REST가 디자인 패턴이다, 아키텍처다 많은 이야기가 존재하는데, 하나의 아키텍처로 볼 수 있다. 좀 더 정확한 표현으로... » read more

RESTful API 가이드
platanus |

REST란? REpresentational State Transfer, Roy Fielding REST는 하나의 아키텍처로 볼 수 있다. 좀 더 정확한 표현으로 말하자면, REST 는 Resource Oriented Architecture 이다. API 설계의 중심에 자원(Resource)이 있고 HTTP Method 를 통해 자원을 처리하도록 설계하는 것이다. REST API 디자인 가이드 1) URI는 정보의 자원을 표현해야 한다. → 리소스명은 동사보다는 명사를 사용2) 자원에 대한 행위는 HTTP... » read more

Bit shifting (지수계산)
platanus |

계산기 2^2 와 같은 바이너리 계산이 필요할 때 256같은 적은 수는 빨리 계산이 되지면 2^23 같은 바이너리는 빠르게 떠오르는 편은 아니다. 부끄럽지만 기존에는 2를 23번 곱하거나 10년도 더 된 공학용 계산기를 쓰거나 구글에서 지수 계산기를 찾아서 해왔다. 그런데 컴퓨터 구조나 디지털 논리회로를 수강하면 알겠지만 비트 쉬프팅으로 지수계산을 쉽게 할 수 있다는걸 알 수 있다. 이걸 계산기에서도... » read more