일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
- API
- go
- FOR
- C
- install
- 영화
- Golang
- GO 언어
- package
- File
- c++
- window
- go언어
- windows
- 책
- tcp
- channel
- JavaScript
- mutex
- bitcoin
- Close
- write
- Linux
- range
- Callback
- Python
- http
- 리뷰
- Sync
- json
- Today
- Total
목록전체 글 (203)
Code Habit
RPM, YUM은 리눅스의 패키지 인스톨 프로그램이라고 보면 된다. 두가지 방식의 차이점은 RPM은 필요한 패키지를 하나하나 각각 설치해야 하는 반면 YUM은 패키지를 받을때 자동으로 연계되는 구성요소들을 알아서 다운 받아서 설치해준다. RPM ( Redhat Package Manager ) windows의 setup.exe와 비슷한 개념으로 프로그램을 설치한 후에 바로 실행할 수 있는 패키지 설치 파일이다. 확장명은 '*.rmp'이며, 이를 패키지라고 부르기도 한다. RPM은 패키지 인스톨을 하기 위해서 그 패키지의 필요 요소를 전부 따로 다운로드 해야 하는 번거로움이 있다. 그리고 의존성의 문제가 있다. - 명령어 : rmp [옵션] [패키지파일] YUM( Yellowdog Update Manager..
root 권한 UNIX 환경에서는 해당 사용자의 권한에 속한 파일만 읽고 쓸 수 있도록 되어 있다. 쉽게 말하면 다른 사용자의 파일은 함부로 읽거나 쓸 수 없다는 것이다. 그러나 root 사용자라면 어떤 파일이든 읽고 쓸 수 있다. OS를 구성하는 프로그램과 설정 파일 대부분은 root이 소유하므로 이런 파일들도 변경을 할 수 있는 권한을 갖는다. su (switch user) 명령어 현재 계정을 로그아웃 하지 않고 다른 계정으로 전환하는 명령어이다. - 'su' : root 사용자로 변경한다. - 'su -' : root 사용자로 변경하면서 환경변수 까지 적용한다. - 'su user' : user 사용자로 변경한다. - 'whoami' : 현재 사용자를 확인한다. - 'logout(or exit) :..
리눅스란 ? 리눅스는 리누스 토르발스가 커뮤니티 주체로 개발한 컴퓨터 운영 체제이다. 리눅스는 UNIX운영체제를 기반으로 만들어진 운영체제이다. 리눅스는 유닉스와 마찬가지로 다중 사용자, 다중 작업(멀티태스킹), 다중 스레드를 지원하는 네트워크 운영 체제(NOS)이다. 리눅스의 원형이 되는 UNIX가 애초부터 통신 네트워크를 지향하여 설계된것처럼 리눅스 역시 서버로 작동하는데 최적화 되어 있다. 고로 서버에서 사용되는 운영체제로 많이 사용되고 있다. 리눅스의 특징 1. 리눅스는 유닉스와 완벽하게 호환 가능하다. 2. 리눅스는 공개 운영체제이다. 오픈소스이므로 누구든지 자유롭게 수정이 가능하다. 3. 리눅스는 PC용 OS보다 안정적이며 보안쪽면에서도 PC용 OS보다 비교적 우수한 성능을 가지고 있다. 4...
화면에 그림을 그리는 것은 생각보다 부하가 심하다. 만약 화면 DC를 가져와 직접 그린다면 그림을 그리는 도중 무수한 깜박임이 발생한다. 이를 위해 우리는 더블 버퍼링을 활용할 수 있다. 더블 버퍼링이란 메모리 DC를 생성해 여기에 미리 그림을 그린 후 실제 출력할 화면 DC에 고속 복사를 하는 것이다. 실제 이렇게 화면을 그릴 경우 화면 깜박임이 없어지는 것을 볼 수 있다. 아래는 더블 버퍼링을 활용한 예제이다. GetClientRect(&rect); HDC hdc = GetDC(hwnd); // 그림 그릴 윈도우의 DC 가져오기 HDC hMemdc = CreateCompatibleDC(hdc); // 화면dc(그릴 윈도우) 기반 메모리 DC생성 HBITMAP hBitmap = CreateCompati..
GDI(Graphics Device Interface)는 Windows 운영체제에서 화면전체, 특정 Window, 메모리에 그림을 그리는데 사용되는 모듈이다. 그리기 작업을 할 때 추가로 DC(Device Context)가 필요하기 때문에 GDI를 사용할 때 미리 DC를 만들고 사용해야 한다. DC(Device Context)란 출력에 필요한 모든 정보를 가지는 데이터 구조체이며 GDI 모듈에 의해 관리된다. 윈도우 API인 GetDC함수로 DC의 핸들을 얻어오고 사용 후 ReleaseDC로 DC를 반환해야 한다. HDC GetDC(m_hWnd); int ReleaseDC(HWND hwnd, HDC hDC); 그림을 그리기 위해 다음과 같은 GDI 함수들을 사용할 수 있다. COLORREF SetPixe..
데이터가 저장된 메모리의 시작주소를 주소값이라 하고 이를 가리키는 것을 포인터라고 한다. int n = 1; int* pn = &n; 포인터는 아래 주소 연산자(&)와 참조 연산자(*)로 사용할 수 있다. 주소 연산자(&) : 변수의 이름 앞에 사용하여, 해당 변수의 주소값을 반환한다. 참조 연산자(*) : 포인터의 이름이나 주소 앞에 사용하여, 포인터가 가리키는 주소에 저장된 값을 반환한다. 문자열이나 배열에서 사용되는 변수명은 시작주소를 가리키는 포인터이다. char sz[100] = {"string"}; // sz는 문자열 "string"의 시작주소 int nArray[20]; // nArray는 배열의 시작주소 포인터 변수는 메모리에서 변수의 위치를 나타내는 주소를 다루는 변수이므로, 그 크기는 ..
지정한 레이블로 무조건 이동하는 명령어다. goto LABLE; printf("출력 x"); LABLE: printf("여기로 이동"); 보통 책에서 보면 goto문으로 코드를 작성하다 보면 스파게티 코드나 코드의 가독성이 떨어지는 경우가 발생할 수 있기에 사용을 지양하는 경우가 많은데, 실제 실무에서 어떻게 사용하느냐에 따라 코드를 간결하게 풀어 나갈 수도 있다 ! 예를들어 중복된 반복문을 빠져나가고 싶을 때는 goto문을 활용하여 코드를 간결하게 풀어나갈 수 있다. break는 하나의 루프만 빠져 나오므로 중복된 반복문 안에서는 자칫 프로그램을 복잡하게 만들 수 있다. 경험으로는 중복된 반복문 안에서 에러상황이나 예외상황 발생 시 goto문으로 해당 함수의 마지막으로 보내 할당된 리소스 등을 반환하고..
개발을 하다보면 서버 로그를 남기거나 디버깅을 기록할 때 파일을 활용할 수 있다. 다음 함수들로 파일을 사용할 수 있다. 파일 열기 - mode에 따라 스트림과 파일을 연결하고 파일 포인터를 반환한다. FILE* fopen( const char* filename, const char* mode ); 파일 쓰기 - 파일 포인터로 연결된 스트림에 string 문자열을 쓴다. int fputs( const char *string, FILE* stream ); 파일 닫기 - fopen으로 획득한 유효한 파일포인터를 stream에 넘겨 파일을 닫는다. 스트림에 남은 버퍼를 플래시 하는 역할도 한다. int fclose( FILE* stream ); 예제 ) FILE* pfile = NULL; file = fope..