JAVA 104

[OS] 운영체제 기초

Process vs Thread Process 프로그램의 실제 실행을 의미하며 프로그램 파일을 실행함으로써 프로그램 데이터들이 메모리에 올라와 CPU를 할당받고 명령을 수행하고 있는 상태 프로세스는 운영체제로부터 자원을 할당받은 최소 작업 단위 OS는 프로세스마다 각각 독립된 메모리 영역을 동적 할당을 받는 stack과 heap 그리고 정적 할당을 받은 data와 code 형식으로 할당 독립된 메모리 영역을 할당해 주기 때문에 프로세스 간 영향을 받지 않고 독립적인 작업 수행 기본적으로 프로세스 간 변수나 자료에 접근할 수 없고 통신 기법을 통해 프로세스 간 통신을 해야 함 stack 메서드 안에서 선언된 지역 변수, 매개변수, 반환 값 등이 저장 함수의 호출과 함께 할당되며 함수의 호출이 완료되면 소멸..

[아이템 3] private 생성자나 열거 타입으로 싱글턴임을 보증하라

싱글톤(singleton)이란? 아이템 3에 대해 논의하기에 앞서 우선 싱글톤 개념에 대한 이해가 선행되어야 합니다. 간단히 요약하자면 싱글톤 객체는 아래의 특성을 가집니다. 클래스의 인스턴스가 오직 1개만 생성되는 것을 보장하는 디자인 패턴 connection pool, thread pool, 디바이스 설정 객체의 경우 인스턴스를 여러 개 생성하면 자원을 낭비하거나 버그를 야기할 수 있으므로 오직 하나만 생성하고 해당 인스턴스를 사용하도록 하는 것이 목적 보다 자세한 내용은 제가 과거에 작성한 게시글 및 Jbee님이 작성한 글을 참고 바랍니다. https://jaimemin.tistory.com/1756 싱글톤(Singleton) 패턴 싱글톤 패턴 클래스의 인스턴스가 오직 1개만 생성되는 것을 보장하는..

JAVA/Effective Java 2024.01.19

[아이템 2] 생성자에 매개변수가 많다면 빌더를 고려하라

정적 팩토리 메서드와 생성자의 한계 및 해결책 정적 팩토리 메서드와 생성자 모두 optional 한 매개변수가 많을 때 적절히 대응하기 어렵다는 공통점이 있지만 점층적 생성자 패턴, Java Beans 패턴 혹은 Builder 패턴을 통해 어느 정도 대응이 가능합니다. 아래의 식품 영양정보를 예시로 각 패턴을 간략히 정리하겠습니다. 1회 내용량, 총 n회 내용량, 1회 제공량 당 칼로리와 같은 필수 항목(required field) 몇 개와 총 지방, 트랜스 지방, 포화 지방, 콜레스테롤, 나트륨 등 수많은 선택 항목(optional field)으로 이루어지고 대부분의 선택 항목들은 값이 0입니다. 점층적 생성자 패턴 점층적 생성자 패턴 적용 시 모든 필드를 전부 받는 생성자 혹은 정적 팩토리 메서드를 ..

JAVA/Effective Java 2024.01.18

[아이템 1] 생성자 대신 정적 팩토리 메서드를 고려하라

생성자 대신 정적 팩토리 메서드를 사용할 경우 얻을 수 있는 장단점은 아래와 같습니다. 장점 메서드명 즉 이름을 가질 수 있기 때문에 표현력이 높아짐 호출될 때마다 새로운 인스턴스를 생성하지 않아도 됨 반환 타입의 하위 타입 객체를 반환 가능 (인터페이스 기반 프레임워크) 입력 매개변수에 따라 매번 다른 클래스의 객체를 반환 가능 정적 팩토리 메서드를 작성하는 시점에는 반환할 객체의 클래스가 존재 여부를 고려하지 않아도 됨 단점 정적 팩토리 메서드만 제공할 경우 생성자를 private으로 선언하기 때문에 상속 불가능 역설적으로 이름을 가지기 때문에 생성자 대비 정적 팩토리 메서드 조회하기 번거로움 장점 1. 메서드명 즉 이름을 가질 수 있기 때문에 표현력이 높아짐 병원에 환자가 내원할 때 아래와 같이 두..

JAVA/Effective Java 2024.01.16