⛓️ Java Design-Pattern 08 - Builder
📗 『JAVA 언어로 배우는 디자인 패턴 : 쉽게 배우는 GoF의 23가지 디자인 패턴』를 읽고 정리한 글입니다. Builder 패턴이란? 구조를 가진 인스턴스를 만들어 가는 패턴을 Builder 패턴이라고 한다. 예제 프로그램 다음은 Builder 패턴을 이용해 문서를 작성하는 프로그램이다. 프로그램의 요구사항은 다음과 같다. ...
📗 『JAVA 언어로 배우는 디자인 패턴 : 쉽게 배우는 GoF의 23가지 디자인 패턴』를 읽고 정리한 글입니다. Builder 패턴이란? 구조를 가진 인스턴스를 만들어 가는 패턴을 Builder 패턴이라고 한다. 예제 프로그램 다음은 Builder 패턴을 이용해 문서를 작성하는 프로그램이다. 프로그램의 요구사항은 다음과 같다. ...
📗 『JAVA 언어로 배우는 디자인 패턴 : 쉽게 배우는 GoF의 23가지 디자인 패턴』를 읽고 정리한 글입니다. Prototype 패턴이란? 인스턴스를 생성할 때는 일반적으로 new 키워드와 함께 클래스 명을 반드시 지정해주어야 한다. 그런데, 다음과 같은 상황에서 클래스 이름을 지정하지 않고 인스턴스를 생성하고 싶을 때도 있다. “...
📗 『JAVA 언어로 배우는 디자인 패턴 : 쉽게 배우는 GoF의 23가지 디자인 패턴』를 읽고 정리한 글입니다. Singleton 패턴이란? 프로그램을 실행하면 보통 많은 인스턴스가 생성된다. 예를 들어 java.lang.String 클래스의 경우 문자열 1개에 인스턴스 1개가 생성되므로 문자열이 1000개 등장하는 프로그램이라면 인스턴스도...
📗 『JAVA 언어로 배우는 디자인 패턴 : 쉽게 배우는 GoF의 23가지 디자인 패턴』를 읽고 정리한 글입니다. Factory Method 패턴이란? 인스턴스 생성 방법을 상위 클래스에서 결정하되, 실제 인스턴스는 하위 클래스에서 생성한다. 즉 인스턴스를 생성하는 공장을 Template Method 패턴으로 구성한 것이다. 예제 프로...
📗 『JAVA 언어로 배우는 디자인 패턴 : 쉽게 배우는 GoF의 23가지 디자인 패턴』를 읽고 정리한 글입니다. Absctract Factory 패턴이란? ‘추상적인 공장’에서 ‘추상적인 부품’을 조합하여 ‘추상적인 제품’을 만드는 패턴이다. 해당 패턴에서는 구체적인 구현보다 인터페이스 API에 주목한다. 그리고 그 인터페이스만 사용...
🔹 단편화(Fragmentation)란? 단편화는 메모리 공간이 비효율적으로 분할되어 사용되지 못하는 현상을 말한다. 주로 메모리 할당과 해제가 반복되면서 발생하며, 전체 메모리 용량이 충분하더라도 실제 할당이 불가능한 상황이 발생할 수 있다. 크게 내부 단편화와 외부 단편화로 나뉜다. 🔹 내부 단편화(Internal Fragmenta...
🔹 JVM 메모리 구조 JVM은 Java 애플리케이션 실행을 위해 여러 메모리 영역을 나눠 관리한다. ▫️ 메서드 영역(Method Area) 클래스의 구조 정보, static 변수, 상수 풀 등이 저장 모든 스레드가 공유 JDK 8 이후로는 Metaspace로 대체 ▫️ 힙 영역(Heap) 객체가 생성되는 공간 GC...
🔹 프로세스 스케줄링이란? 운영체제는 동시에 여러 프로세스를 실행할 수 없다. 따라서 CPU를 어떤 프로세스에게 얼마 동안 할당할지 결정해야 한다. 이때 사용하는 정책을 CPU 스케줄링 알고리즘이라고 한다. 목표는 다음과 같다. CPU 이용률 극대화 응답 시간 최소화 대기 시간 및 반환 시간 최...
🔹 오버로딩과 오버라이딩의 차이점 ▫️ 오버로딩(Overloading) public class Calculator { public int add(int a, int b) { return a + b; } public double add(double a, double b) { return a + b; } public int add...
🔹 객체 지향 프로그래밍 핵심 개념 ▫️ 캡슐화 (Encapsulation) public class Account { private int balance; public void deposit(int amount) { if (amount > 0) balance += amount; } public int getBalance() {...