본문 바로가기

Programming Theory

Garbage Collection 1. Garbage Collection 이란?heap 내 객체 중에서 garbage 를 찾아냄 -> 찾아낸 garbage 를 처리해 heap 메모리 회수 2. Garbage 대상유효한 참조가 없는(unreachable) 객체객체는 참조 사슬을 이룸.유효한 참조 여부는 최초의 유효한 참조 여부에 따라 결정되며, 이를 객체 참조의 root set이라고 함 [heap 에 대한 객체들에 대한 참조] 항목 root set 여부 heap 내 다른 객체에 의한 참조 X JVM stack 의 stack frame의 local variable array 의 local variable(method parameter, 지역변수) 에 의한 참조 O Native Method Stack 의 객체에 의한 참조 O Method Ar.. 더보기
JVM Runtime Data Area 1. JVM Runtime Data Area구분 구성 설명 thread별 JVM stack '2. JVM stack'에서 상세설명 PC Register PC - Program Counter 현재 실행되고 있는 JVM instrunction 의 주소를 가진다. Native Method Stack JNI (Java Native Interface) 에 의해 invoke 된 C/C++(java 가 아닌 다른 언어) 의 execute code stack thread공통 Heap instance 와 objects 를 저장하는 공간 '4. Heap Space' 에서 상세설명 Method Area '3. Method Area'에서 상세설명 2. JVM stack JVM 에서 method 가 실행되면, JVM 에서는 J.. 더보기
Data Modeling pattern 0) 관계 개괄관계 설명 M:M 관계 2개의 entity 관계에서 각각의 entity의 record가 상대 entity의 여러 record 와 연결되는 관계 recursive 관계 1:M 관계가 반복적으로 나타나는 관계가 Recursive 관계 Super-Sub 관계 개별 entity로부터 공통 속성, 관계를 도출할 수 있는 관계 BOM 관계 2개의 entity의 속성이 같은 M:M 관계 arc 관계 하나의 자식 entity 에 대해 2개 이상의 부모 entity가 서로 배타적으로 존재하는 관계 1) M:M 관계a. 발견2개의 entity 관계에서 각각의 entity의 record가 상대 entity의 여러 record 와 연결되는 관계ex) 주문와 제품 관계, 카테고리와 상품 관계 b. 논리 모델링- .. 더보기
논리 모델링 1) 주제영역 연관성을 가진 엔터티 그룹화 → 가독성 향상 여러 개발자간 업무 분할 용이 2) 엔터티 - 5개 유형 (Thomas Bruce, 1992) 순번 항목 예시비고 1 관계업무자 법인, 고객, 회원업무의 시발점관계를 맺는 table이 多 → PK 구조를 단순화해야 함(본질식별자 < 인조식별자) 2 자원/아이템 상품, 부동산, 주식 3 계약 구매계약본 업무로, 빈번한 insert가 발생.pk 채번 효율화 4 거래/이벤트 주문, 신청 5 위치/장소 지역, 건물 - 실제 엔터티 작성 시 '속성' 으로 설정할 것인지, '엔터티'로 작성할 것인지 고민 필요 ex) 교사, 남자 교사를 구분해야 할 때, 교사 엔터티 안에 교사성별 속성으로 남자 교사를 표시할지, 남자 교사 엔터티를 별도로 작성할지 업무에 따.. 더보기
Data Modeling 절차 요구사항분석 논리모델링 상세모델링 물리모델링 검증 및 확인 서비스분석→ 업무요건분석→ 개념적 실체 분석 주제영역 정의→ 엔터티 정의→ 관계 정의→ 식별자 정의→ 속성 정의 정규화→ 상세관계정의→ 코드/도메인/단어사전 정의 반정규화→ 기본 인덱스 설계→ 테이블 분할 사용자 검증→ 모델 확정 ** 코드/도메인/단어사전테이블 간 표준화를 위함항목 예시 코드 code_value, code_name, code_desc 를 별도 테이블에서 관리하고, 업무 테이블에서는 code_value 만을 가지고 있는 것. 1) 업무 테이블에서 code_name, code_desc을 가지고 있을 필요가 없어서 record 크기가 줄어든다. 2) code_value, code_name, code_desc 을 각각의 업무테이블이 아.. 더보기
정규화 정규화 (Normalization)- data integrity 보장을 위해 중복을 최소화 - 중복을 최소화 : 1개의 table 을 2개 table로 분리 1) 1NF (1 Normal Form)- repeating group 을 다른 테이블로 분리 2) 2NF (2 Normal Form)- 전체 주식별자(PK)에 종속되지 않은 속성을 다른 테이블로 분리 3) 3NF (3 Normal Form)- 일반 속성에 종속되지 않은 속성을 다른 테이블로 분리 예시)1) 정규화 이전- 취득한 자격증이 4개 이상이 될 경우, table 컬럼 개수를 늘려야 함 (table 구조 변경)- null 인 컬럼이 多 가능 (자격증을 1개만 취득한 경우 자격증명2, 자격증취득일자2, 자격증명3, 자격증취득일자3 은 null).. 더보기
Builder pattern 메서드 호출 결과로 자신의 객체를 돌려주는 프로그래밍을 구현하는 패턴의 일종 1. 사용 예 1) 특정 class 의 생성자의 parameter가 너무 많을 때, 프로그램 작성자가 class 객체를 생성하면서, 생성자의 parameter를 잘못 설정할 수 있다. 최소한의 코드로 위와 같은 실수를 방지하고자 할때 Builder class를 사용해서 특정 class 객체를 생성한다. public class Pizza { private String prepare; private String bake; private String cut; private String box; public Pizza(String prepare, String bake, String cut, String box) { this.prepar.. 더보기
Singleton Pattern 1. Singleton Pattern 이란? 1) class 가 1개의 instance만을 가지도록 보장 2) instance 에 대해 a global point of access 를 제공 2. 왜 필요한가? 아래 object들은 Singleton Pattern 이 필요하다. thread pools, caches, dialog boxes, preferences, registry settings, logging, device drivers 와 관련된 object 3. 어떻게 구현하는가? public class SingleTon { private static SingleTon singleTon; private SingleTon() { } static SingleTon getInstance() { if (si.. 더보기
TCP 천이도 1) socket 이란?A socket is one endpoint of a two-way communication link between two programs running on the network. A socket is bound to a port number so that the TCP layer can identify the application that data is destined to be sent to. 2) socket 상태 상태 설명 ESTABLISHED The socket has an established connection SYN_SENT The socket is actively attempting to establish a connection SYN_RECV A connecti.. 더보기
LAN/WAN 1. LAN1) Local Area Network2) Data Link 계층을 LLC 와 MAC 으로 구분 - LLC (Logical Link Control) : Network 계층과 통신 - MAC (Media Access Control) ㄱ. Physical 계층과 통신 ㄴ. 2개의 통신 방식 - CSMA/CD 방식 : Ethernet/IEEE 802.3 방식 (지배적) * LAN 카드를 Ethernet 카드로 부름 * CSMA/CD 방식 CS : Carrier Sensing - 회선이 사용중인지 체크 MA : Multiple Access - 사용중이지 않은 회선을 누구든 사용할 수 있음 CD : Collision Detection - 메시지 충돌 여부 감지 - 충돌 시 일정 시간 이후 메시지 재전송.. 더보기