전체 글 95

[Golang] go 언어 개발 시작하기

go언어는 2018년도부터 관심을 가지고 틈틈이 공부하고 있었는데 얼마 전 새로운 프로젝트를 go언어로 진행하게 되었다. go언어에 대해서는 많은 것들이 새로운 경험이기 때문에 프로젝트 도중 경험하게 될 수많은 삽질(?) 들을 정리할 예정이다. 그중 처음 시작인 GoLand 설치 과정을 정리해볼까 한다. 개발자에게 IDE 이란 굉장히 중요한 툴이라고 생각한다. (개발자의 눈과 손이다.) 새로운 언어를 접하게 된다면 새로운 IDE 를 알아보는 설렘도 느낄 수 있다. Go언어는 찾아보니 대부분 실무에서 두 종류의 IDE 를 사용하는 것으로 보인다. Microsoft 에서 개발한 비주얼 스튜디오 코드 (Visual Studio Code) JetBrains 에서 개발한 고랜드 (GoLand) 더보기 두 종류라고..

Go언어 2022.09.29
[C언어] strtok 함수 (문자열 자르기)

사용범위 Windows, Unix 등 모든 OS에서 사용가능한 표준 API 함수 기능 C언어 표준 함수로 문자열을 특정 문자열 기준으로 자를때 사용한다. 헤더 #include ※ strtok 함수 사용시 string.h 파일을 include 하지 않는다면 컴파일시 error 발생 ※ 함수 char* strtok(char* str, const char* delim); 파라미터 char* str 자르려는 문자열 버퍼를 입력한다. 처음 문자열을 자른(= strtok 호출) 이후 남은 문자열을 다시 자를 경우 NULL 을 입력한다. const char* delim str 문자열을 잘라낼 기준 문자열을 입력한다. 반환값 (return) delim 을 기준으로 문자열을 잘라낸 경우 : 잘라낸 문자열(포인터)을 반환..

C언어/string.h 2022.09.20
[C언어] memcpy 함수 (메모리 복사)

사용범위 Windows, Unix 등 모든 OS에서 사용가능한 표준 API 함수 기능 C언어 표준 함수로 특정 주소에 저장되어있는 데이터를 복사할때 사용한다. 헤더 #include ※ memcpy 함수 사용시 string.h 파일을 include 하지 않는다면 컴파일시 error 발생 ※ 함수 void* memcpy(void* dest, const void* source, size_t size); 파라미터 void* dest 복제된 데이터를 저장할 버퍼를 입력한다. const void* source dest 에 복제할 데이터 버퍼를 입력한다. size_t size 복제할 데이터의 크기를 byte 단위로 입력한다. 반환값 (return) 복제를 완료한 dest 값을 반환한다. 잡학지식 strncpy 와 m..

C언어/string.h 2022.09.19
[C언어] memccpy 함수 (특정 문자까지만 메모리 복사)

사용범위 Windows, Unix 등 모든 OS에서 사용가능한 표준 API 함수 기능 C언어 표준 함수로 특정 문자까지의 데이터를 복사할때 사용한다. 헤더 #include ※ memccpy 함수 사용시 string.h 파일을 include 하지 않는다면 컴파일시 error 발생 ※ 함수 void* memccpy(void* dest, const void* src, int val, size_t size); 파라미터 void* dest 복제된 데이터를 저장할 버퍼를 입력한다. const void* src dest 에 복제할 데이터 버퍼를 입력한다. int val 복제 도중 src 에서 발견하면 중단할 문자를 입력한다. 문자 val 을 만나면 val 까지 복사하고 중단한다. 예를 들어 'a' 같은 작은 따옴표를..

C언어/string.h 2022.09.16
[C언어] strcat 함수 (문자열 연결)

사용범위 Windows, Unix 등 모든 OS에서 사용 가능한 표준 API 함수 기능 C언어 표준 함수로 문자열에 문자열을 연결할때 사용한다. 헤더 #include ※ strcat 함수 사용시 string.h 파일을 include 하지 않는다면 컴파일 시 error 발생 ※ 함수 char* strcat(char* dest, const char* source); 파라미터 char* dest 연결(변경)하려는 target string 버퍼를 입력한다. 반드시 NULL 문자로 종료되어야 한다. const char* source dest 에 연결할 string 을 입력한다. 반드시 NULL 문자로 종료되어야 한다. 반환값 (return) dest 에 source 를 연결한 이후 연결된 string 버퍼인 de..

C언어/string.h 2022.09.15
[C언어] strlen 함수 (문자열 길이 확인 함수)

사용범위 Windows, Unix 등 모든 OS에서 사용가능한 표준 API 함수 기능 C언어 표준 함수로 문자열의 길이를 구하는데 사용한다. 헤더 #include ※ strlen 함수 사용시 string.h 파일을 include 하지 않는다면 컴파일시 error 발생 ※ 함수 size_t strlen(const char* str); 파라미터 const char* str 길이를 구하려는 문자열을 입력한다. NULL 문자로 종료되는 문자열을 입력해야 한다. 반환값 (return) NULL 문자를 제외한 string 의 길이를 반환한다. 잡학지식 strlen 으로 byte array 의 길이를 구할때는 각별한 주의가 필요하다. NULL 문자로 종료가 안되는 경우도 다반사이기도 한데 byte array 에서 나..

C언어/string.h 2022.09.14
[C언어] strstr 함수 (문자열 검색 함수)

사용범위 Windows, Unix 등 모든 OS에서 사용 가능한 표준 API 함수 기능 C언어 표준 함수로 문자열안에서 특정 문자열을 검색할 때 사용한다. 헤더 #include ※ strstr 함수 사용시 string.h 파일을 include 하지 않는다면 컴파일 시 error 발생 ※ 함수 char* strstr(const char* str, const char* substr); 파라미터 const char* str 검색을 진행할 문자열을 입력한다. NULL 문자 (\0) 가 나올 때까지 str 의 내용을 검색한다. 반드시 유효한 주소값을 입력해야 하고 유효하지 않은 주소 입력 시 signal 이 발생한다. const char* substr str 문자열에서 검색하려는 sub string 을 입력한다...

C언어/string.h 2022.09.14
[C언어] 함수 호출 규약 (Calling Convention, cdecl, stdcall, fastcall)

함수 호출 규약 ? 함수 호출 시 필요한 인자를 어떤 방법으로 전달할지(전달받을지), 함수 종료 시 데이터를 어떤 방식으로 전달할지(전달받을지), 스택을 어떤 방법으로 정리할지 정의해놓은 규칙을 의미한다. C언어를 제법 사용한 개발자 중에서도 함수 호출 규약 (Calling Convention) 이라는 단어를 처음 보는 사람도 있을 것이다. 이를 정확하게 이해하려면 프로세스의 구조와 스택, 어셈블리 언어에 대한 이해가 필요하다. 하지만 위의 이해를 모두 설명하면 끝이 없으니, 심도 깊은 글은 나중에 시간이 된다면 정리해보는 거로 하고 이 글에서는 간략하게 설명해볼까 한다. 스택(Stack) ? 프로세스 실행 시 필요한 여러 데이터들은 메모리에 적재되는데 프로세스의 메모리 영역에는 스택이라는 부분이 있다...

[C언어] 포인터 오프셋 (pointer offset)

C언어를 사용하면 포인터를 사용해야하는 빈도가 굉장히 높다. (사실 매번 쓴다.) 포인터의 활용은 상당히 다양하고 범위가 넓지만 그중에서도 오프셋을 계산하는 주제를 다뤄보려 한다. 포인터의 오프셋 ? 이 글에서의 포인터 오프셋은 포인터를 움직이면서 계산하는 것을 의미한다. 이러한 방법은 네트워크에서의 가변 데이터(패킷)을 다루거나 buffer 에 데이터를 적재할때 흔히 사용한다. 그렇다면 아래 그림에서의 offset 의 값은 무엇일까 ? pointer 가 0 에서 12 로 이동했으니 offset = 12 라고 생각하기 쉽다. 당연히 12 만큼 주소를 이동했지만 실제 코드 구현에서는 12 가 정답이 아닐 수 있다. #include #define MAX_BUF_SIZE 128 int m..

[C언어] strcmp 함수 (문자열 비교 함수)

사용범위 Windows, Unix 등 모든 OS에서 사용가능한 표준 API 함수 기능 C언어 표준 함수로 문자열을 비교할때 사용한다. 헤더 #include ※ strcmp 함수 사용시 string.h 파일을 include 하지 않는다면 컴파일시 error 발생 ※ 함수 int strcmp(const char* str1, const char* str2); 파라미터 const char* str1 비교할 첫번째 문자열을 입력한다. NULL 문자로 종료되는 문자열이 들어가는것이 좋다. const char* str2 비교할 두번째 문자열을 입력한다. NULL 문자로 종료되는 문자열이 들어가는것이 좋다. 반환값 (return) -1 : string1 이 string2 보다 작은 경우 ( str1 < str2 ) 0..

C언어/string.h 2022.09.13
반응형