전체 글 127

Java/Google Protocol Buffer 사용법

Google의 Protocol Buffer 사용법 * TutorialC++ Tutorial : https://developers.google.com/protocol-buffers/docs/cpptutorialJava Tutorial : https://developers.google.com/protocol-buffers/docs/javatutorialPython Tutorial : https://developers.google.com/protocol-buffers/docs/pythontutorial * 사용순서 1. 컴파일러와 protocol buffer 소스코드 다운로드 2. proto 파일 작성 3. proto 파일을 다운받은 컴파일러로 컴파일 하여 API 코드 생성 4. 생성된 API 코드와 prot..

Java/enum 열거형

enum 열거형 * 기본타입enum SEASON { SPRING, SUMMER, FALL, WINTER } 마지막에 세미콜론(;)을 붙이지 않는다. * 값 설정 및 사용하기 enum SEASON { SPRING(3), SUMMER(5), FALL(2), WINTER(4); final int num; private SEASON(int num) { this.num = num; } public int getNum() { return num; } } public class Exam { public static void main(String[] ar) { System.out.println(SEASON.SPRING); System.out.println(SEASON.SPRING.ordinal()); System.ou..

public 클래스, default 클래스

* Public 클래스 - 해당 소스를 대표하는 클래스라는 상징적 의미가 큼. - 다른 패키지에서 인스턴스 생성이 가능. - 해당 소스 파일에서 하나의 클래스만 public으로 선언이 가능함. - 소스파일 이름과 클래스 이름이 동일해야 함. - 선언시 클래스 앞에 "public"을 추가함. * Default 클래스 - 동일한 패키지 내에 정의된 클래스에서만 인스턴스 생성이 가능. - "public"으로 선언되지 않은 모든 클래스는 default 클래스 임.

메모리 영역

프로그램에서 메모리를 구분하는 방법은 컴파일러 제조사에 따라 조금씩 다르지만 대략 다음과 같이 4 종류의 세그먼트들로 나눕니다. 1. Code Segment - 프로그램 코드가 들어 있는 부분. 2. Data Segment - 전역 변수와 static 변수들이 저장되어 있는 부분 3. Stack Segment - 로칼 변수들이 저장되어 있는 부분 4. Heap Segment - free space로서 dynamic allocation 으로 메모리를 사용할수 있다. 스택 세그먼트는 함수나 프로시듀어에서 선언한 변수들-로컬변수-들을 저장하는 공간으로 함수가 시작되면 변수들이 스택 구조형태로 차곡 차곡 메모리에 할당되어 사용되다가 함수가 종료되면 메모리 할당이 자동으로 해제되는 변수을 저장하는 공간 입니다. ..

크리티컬 섹션(Critical Section)

크리티컬 섹션(Critical Section) 내부적으로 Interlock을 사용하므로 쓰레드 동기화 중에서 가장 빠른 속도로 동작한다. 뮤텍스와 다른 점은 단일 프로세서에 한해서만 동작이 가능하다는 것. 사용 방법은 아래와 같다. * WIN API Critical Section 초기화 void WINAPI InitializeCriticalSection(LPCRITICAL_SECTION lpCriticalSection); Critical Section 릴리즈 void WINAPI DeleteCriticalSection(LPCRITICAL_SECTION lpCriticalSection); Lock 설정 void WINAPI EnterCriticalSection(LPCRITICAL_SECTION lpCrit..

% 서식문자 정리

% 서식문자 정리 %c : 문자 %s : 문자열 %d : 부호있는 10진 정수 %i : 부호있는 10진 정수, %d와 같음 %f : 부호있는 실수 (double이고 소수점은 기본 6자리까지 표시됨) %o : 부호없는 8진 정수 %u : 부호없는 10진 정수 %x : 부호없는 16진 정수(소문자) %X : 부호없는 16진 정수(대문자) %e : e 표기법에 의한 실수 %p : 포인트 %0xd : 자릿수가 x개인 정수, 윗부분은 0으로 채움 %.fx : 소수점을 x자리만큼 출력