일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- package-private
- 깃허브
- 자바
- OS
- 개발
- 프로그래밍
- 운영체제
- 알고리즘
- 스터디
- 디지털
- spring
- 스프링
- 세마포어
- 컴퓨터공학
- 신입사원
- 신입
- 뮤텍스
- 정보처리기사
- 컴퓨터과학
- 공채
- Public
- IT
- java
- 깃
- Effective Java
- github
- 우리카드
- CS
- 이펙티브 자바
- 메모리
- Today
- Total
목록프로그래밍 (7)
주니어 개발자 성장기
개요잘 설계된 컴포넌트는 클래스 내부 데이터와 내부 구현 정보를 외부 컴포넌트로부터 완벽히 숨겨서 구현과 API를 깔끔히 분리한다. 컴포넌트간 통신은 오직 API를 통해서만 이루어지며 내부 동작 방식에는 전혀 관심이 없다. 이것을 정보 은닉 혹은 캡슐화라고 한다. 이것은 소프트웨어 설계의 근간이 되는 원리라고 한다. 그리고 자바에서 캡슐화를 달성하기 위해 필요한 원칙 중 하나가 바로 클래스와 멤버의 접근 권한 최소화이다. 정보 은닉의 장점 시스템 개발 속도를 높인다.→ 여러 컴포넌트를 병렬로 개발할 수 있기 때문이다.컴포넌트간에 설계된 인터페이스를 통해서 통신하기 때문에 사용하는 측과 구현하는 측 모두 인터페이스에 맞춰서 개발하면 된다. 이는 각 모듈의 동시 개발을 가능케한다.(팀 단위 개발에서 효율적)..
개요 Object에 포함되는 인터페이스는 아니지만, 널리 사용될 수 있는 인터페이스이다. Object.equals에 더해서 순서까지 비교할 수 있으며 Generic을 지원한다. CompareTo규약 반사성 대칭성 추이성 일관성 권장 compareTo가 0을 반환한다면 equals도 true를 반환하도록 구현하는 것이 좋다. BigDecimal 클래스의 경우 equals와 compareTo의 결과가 다를 수도 있도록 구현되었다. BigDecimal oneZero = new BigDecimal("1.0"); BigDecimal oneZeroZero = new BigDecimal("1.00"); System.out.println(oneZero.compareTo(oneZeroZero)); // Tree, Tre..
싱글톤을 사용하는 경우 크게 2가지 경우에 싱글톤을 사용하면 된다. 싱글톤을 사용하면 좋은 경우 DB 커넥션 등 인스턴스 생성 비용이 비싼 경우 반드시 사용해야 하는 경우 환경설정 등 애플리케이션 전반에 하나만 존재해야 하는 경우 Private 생성자 이펙티브 자바에서는 private 생성자를 기본으로 싱글톤을 구현하는 방법을 소개하고 있다. 그 중 첫 번째 방법인 public static final 멤버 변수를 사용하는 방법은 다음과 같다. public static final Elvis INSTANCE = new Elvis(); 즉, 필요 할 때마다 Elvis. INSTANCE를 직접 호출하면 된다. 문제점 테스트하기 어려운 구조 싱글톤 클래스를 사용하는 클라이언트 코드의 테스트가 어려워진다. 인터페이..
개요 클라이언트 코드가 어떤 클래스의 인스턴스를 얻는 전통적인 수단은 public 생성자이다. 하지만 이 방식은 단점이 존재하기 때문에 대안으로 정적 팩터리 메서드를 생각해 볼 수 있다. 정적 팩터리 메서드? 정적 팩터리 메서드는 간단하게 생성자와 같이 클래스의 인스턴스를 반환하는 역할을 한다. 영어로는 static factory methods public class CoffeeBean { // 원두 원산지 private String region; // 원두 품종 private String variety; // 원두 로스팅 시각 private LocalDateTime roastedAt; private CoffeeBean(String region, String variety, LocalDateTime ro..
큐란? FIFO(선입선출)의 구조를 갖는 자료구조 Rear(후단)으로 데이터를 넣고, Front(전단)으로 데이터를 빼는 자료보관이 가능한 자료 구조이다. 응용 시뮬레이션의 대기열 통신에서 데이터 패킷들의 모델링 프린터와 컴퓨터 사이의 버퍼링(성능차) CPU의 태스크 스케줄링(Task Scheduling) 다양한 이벤트 구동 방식( Event-driven) 컴퓨터 시뮬레이션 이진 트리의 레벨 순회(Level-order Traversal) 그래프의 너비우선탐색(BFS) 등 ADT Objects: 0개 이상 n개의 원소를 가진 유한 순서 리스트 Functions Queue createQueue() queue 만들기 Bool is_empty(queue) queue가 비어있는 지에 대한 Bool값을 return..