⛓️ Java Design-Pattern 09 - Abstract Factory
📗 『JAVA 언어로 배우는 디자인 패턴 : 쉽게 배우는 GoF의 23가지 디자인 패턴』를 읽고 정리한 글입니다. Absctract Factory 패턴이란? ‘추상적인 공장’에서 ‘추상적인 부품’을 조합하여 ‘추상적인 제품’을 만드는 패턴이다. 해당 패턴에서는 구체적인 구현보다 인터페이스 API에 주목한다. 그리고 그 인터페이스만 사용...
📗 『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() {...
문제 총 8개의 톱니를 가지고 있는 톱니바퀴 4개가 아래 그림과 같이 일렬로 놓여져 있다. 또, 톱니는 N극 또는 S극 중 하나를 나타내고 있다. 톱니바퀴에는 번호가 매겨져 있는데, 가장 왼쪽 톱니바퀴가 1번, 그 오른쪽은 2번, 그 오른쪽은 3번, 가장 오른쪽 톱니바퀴는 4번이다. 이때, 톱니바퀴를 총 K번 회전시키려고 한다. ...
🔹 동적 계획법이란? ▫️ 개념 큰 문제를 여러 개의 작은 문제로 나눠서 푸는 방식 동일한 하위 문제가 반복되는 경우, 그 결과를 저장해 중복 계산을 피함 하향식(메모이제이션) 또는 상향식(반복문) 방식으로 구현 ▫️ 특징 중복되는 하위 문제(Overlapping Subproblems) 최적 부분 구조(Optimal Subst...
🔹 그리디 알고리즘이란? ▫️ 개념 문제를 해결할 때 매 단계에서 가장 최선이라고 판단되는 선택을 하는 알고리즘 전체 최적해를 보장하지 않을 수도 있지만, 문제에 따라 매우 효율적이고 간단하게 구현 가능 ▫️ 특징 현재 상황에서 최선의 선택을 하므로 탐욕적(Greedy)이라고 불림 해를 찾는 과정에서 이전 결정에 영향을 받지 않...
🔹 트랜잭션이란? 데이터베이스에서 하나의 작업 단위를 의미한다. 여러 SQL 문장이 하나의 논리적인 작업으로 묶여야 할 때 사용된다. 모든 작업이 성공적으로 끝나야 커밋되며, 하나라도 실패하면 롤백된다. 🔹 트랜잭션의 ACID 4가지 속성 원자성(Atomicity): 트랜잭션은 모두 수행되거나 전혀 수행되지 않아야 한다. 일관...