개발지식 5

POSIX란 무엇인가

POSIX POSIX (portable operating system interface)의 약자로, 서로 다른 UNIX OS의 공통 API를 정리하여 이식성이 높은 유닉스 응용 프로그램을 개발하기 위한 목적으로 IEEE가 책정한 애플리케이션 인터페이스 규격이다. POSIX의 내용은 커널로서의 C 인터페이스 시스템 콜, 프로세스 환경, 파일&디렉토리,시스템 데이터 베이스, tar 압축 포맷등 다양한 분야를 이루고 있다. POSIX ThreadsPOSIX Threads (PThread)는 유닉스 계열 POSIX 시스템에서, 일반적으로 이용되는 라이브러리이다. Unix와는 다른 시스템인 Windows 역시 여러가지 이유로 PThread를 지원한다.

개발지식 2017.10.19

가독성을 높이는 코딩

1. 이름에 정보 담기 1. 정확히 무엇을 수행하는지를 매우 구체적이고, 풍부한 단어를 사용하여 표현하자. getPage( ) 보단 downloadPage( ), find( ) 보단 search ( ), start( )보단 begin( ) 2. tmp나 retval 같은 보편적인 이름은 피하자. ( 굉장히 짧은 시간에 임시적으로만 존재할 때에 한해서 사용하자) 3. 추상적이지 않고 구체적인 이름을 사용하고, 세부정보를 덧붙이자. serialNumber 변수가 Hex 값이라면 serialNumber_hex 가 좋다. delayTime 변수가 초를 표현 한다면 delayTime_secs 가 좋다. size 변수가 cm를 표현 한다면 size_cm 가 좋다. text 변수가 utf8 인코딩 되어있다면 text..

개발지식 2017.03.05

EOL ( End Of Line )

EOL ( End Of Line ) EOL은 텍스트의 한 줄이 끝남을 표시하는 문자 또는 문자열이다. 줄바꿈을 표현하는 방법은 시스템과 운영 체제에 따라 여러 가지가 있다. ASCII 시스템에서는 새줄문자로 라인피드 ( LF, '\n', 0x0A ), 캐리지리턴 ( CR, '\r', 0x0D)가 주로 사용된다. LF 멀틱스, 유닉스, 리눅스, 제닉스, AIX, OS X , FreeBSD CR + LF DEC TOPS-10, RT-11, CP/M, 도스, OS/2, 윈도, 심비안 OS, 팜 OS CR 코모도어 8비트 머신, TRS-80, 애플 II, 맥 OS(버전 9 이하), OS - 9 RS POSIX 이전의 QNX HTTP, SMTP, FTP, IRC 등 인터넷 프로토콜 대부분은 ASCII의 CR + ..

개발지식 2015.09.14

UTC - Time

협정 세계시 ( UTC) 1972년 1월 1일부터 시행된 국제 표준시이다. 협정 세계시인 ( UTC - 0)을 기준으로 국가별로 다른 시간대를 사용하고 있다. 대한민국의 시간대 (Korea Standard Time, KST)는 GMT / UTC + 9 : 00 에 속하고, 이는 UTC보다 9시간이 빠르다는 것을 의미한다. (즉, UTC 0시에는 한국 시간 오전 9시) UTC는 그리니치 평균시(GMT)로 불리기도 하는데, UTC와 GMT 는 초의 소숫점 단위에서만 차이가 나기 때문에 일상에서는 혼용되어 사용한다. 참고로 그리니치 평균시( Greenwich Mean Time, GMT)는 런던( 영국의 수도)을 기점으로 하고, 웰링턴( 뉴질랜디의 수도) 을 종점으로 하는 협정 세계시의 빠른 시간이다. 시간대를..

개발지식 2015.09.14

dynamic library / static library

1. 정적라이브러리 (Static library ) link 단계에서 라이브러리(*.lib 파일)를 실행 바이너리에 포함시킨다. 라이브러리의 동작 코드가 이를 사용하는 실행 바이너리 속에 포함되기 때문에 별도의 추가 작업없이, 그리고 독립적으로(실행 바이너리만으로...) 라이브러리 함수들을 사용할 수 있다. 하지만, 정적 라이브러리를 사용하는 프로그램이 늘어나면 날수록 불필요하게 실행 파일들의 크기가 커지며, 라이브러리가 동시에 여러 실행 바이너리에 포함되어 실행되는 경우 메인 메모리의 공간 활용 효율이 떨어지는 등 multiple-caller program이 존재하는 경우 그다지 바람직하지 않다. 정적 라이브러리를 사용하기 위해서는 프로젝트 설정의 Link 옵션에 라이브러리를 추가해 주거나 아래의 #p..

개발지식 2015.09.06