[DesignPattern] 팩토리 패턴
📌 들어가며 이번 글에서는 팩토리 패턴(Factory Pattern)을 다룬다. 무엇이든 될 수 있는 메타몽처럼, 객체 생성을 유연하게 다루는 패턴이다. 팩토리 패턴이란? 객체를 사용하는 코드에서 객체 생성 부분을 떼어내 추상화한 패턴. 상위 클래스가 뼈대를 결정하고, 하위 클래스가 구체적인 객체 생성을 담당한다. 장점: ...
📌 들어가며 이번 글에서는 팩토리 패턴(Factory Pattern)을 다룬다. 무엇이든 될 수 있는 메타몽처럼, 객체 생성을 유연하게 다루는 패턴이다. 팩토리 패턴이란? 객체를 사용하는 코드에서 객체 생성 부분을 떼어내 추상화한 패턴. 상위 클래스가 뼈대를 결정하고, 하위 클래스가 구체적인 객체 생성을 담당한다. 장점: ...
📌 들어가며 이번 글에서는 CI/CD 파이프라인의 대표 도구 Jenkins를 정리한다. CI/CD 개념부터 Jenkins의 기능, 설치, SVN 연동, 그리고 파이프라인으로 JUnit 테스트를 연동하는 과정까지 다룬다. Jenkins란? 모든 언어와 소스 저장소에 대해 지속적 통합(CI)·지속적 배포(CD) 환경을 구축하는 도구. 빌드·테스트...
📌 들어가며 이번 글에서는 MyBatis의 원리와 사용법을 정리한다. MyBatis란? 스프링에서 데이터베이스 연동을 도와주는 프레임워크. JDBC의 중복 코드를 제거하고, SQL을 XML로 분리해 관리한다. 편리하지만 단점이 있어 JPA와 함께 쓰면 좋다. 1. 기존 JDBC의 문제 기존 방식은 하나의 DAO에 연결·SQL·해제...
📌 들어가며 이번 글에서는 자바 개발자가 가장 많이 쓰는 테스트 프레임워크 JUnit을 정리한다. JUnit이란? 자바용 유닛 테스트 프레임워크(자바 개발자의 93%가 사용). 자바 8+·스프링부트 2.2+에서는 JUnit5를 쓴다. JUnit5의 구성: JUnit5 = Platform + Jupiter(5) + Vintage(3,4) ...
📌 들어가며 이번 글에서는 스프링에서 파일 업로드·다운로드를 다룬다. 먼저 전송 방식을 이해하고, 서블릿·스프링 방식으로 업로드한 뒤, 파일 다운로드까지 구현한다. 1. 전송 방식 2가지 방식 특징 application/x-www-form-urlencoded ...
📌 들어가며 이번 글에서는 운영체제의 물리 메모리 관리를 정리한다. 메모리 관리자의 역할(가져오기·배치·재배치), 주소 체계(절대/상대), 단일·다중 프로그래밍 환경의 메모리 할당(오버레이·스왑·분할 방식·버디 시스템)을 다룬다. 메모리 관리가 복잡한 이유 — 시분할 시스템에서는 OS를 포함한 모든 응용 프로그램이 메모리에 올라오기 때문이다....
📌 들어가며 C/C++에서는 개발자가 메모리 할당과 해제를 일일이 직접 관리해야 한다. 실수하면 메모리 누수나 크래시로 이어진다. 자바는 이 부담을 가비지 컬렉터(GC)에게 맡긴다. GC(Garbage Collection)란? JVM의 Heap 영역에서 동적으로 할당했던 메모리 중 더 이상 필요 없는 영역을 주기적으로 삭제하는 프로세스. 덕분...
📌 들어가며 상태 코드나 분류처럼 정해진 값의 집합을 다룰 때, 예전에는 final 상수를 나열해서 썼다. 하지만 여러 클래스에서 쓰기 번거롭고, 관련된 값들을 한데 묶어 관리하기 어려웠다. 이 문제를 해결하는 것이 Enum이다. Enum이란? “Enumeration(열거)”의 약자. 로직보다는 데이터를 열거한 요소들의 집합이다. 자바에서 상...
📌 들어가며 이번 글에서는 네이버 Clova Face Recognition API로 얼굴 인식 프로그램을 만든다. 사진 속 얼굴을 감지해 성별·나이·감정을 표시하고, 나아가 유명인 닮은꼴까지 찾아본다. 준비물 — 네이버 Developers에서 애플리케이션 등록 후 발급받은 Client ID/Secret, 그리고 matplotlib·reques...
📌 들어가며 이번 글에서는 운영체제의 핵심 개념인 프로세스와 스레드를 정리한다. 프로그램과 프로세스의 차이, 프로세스 상태와 PCB·문맥 교환, fork/exec, 그리고 스레드와 멀티스레드 모델까지 다룬다. 프로그램 vs 프로세스 — 프로그램은 저장장치에 정적으로 저장된 파일이고, 프로세스는 그 프로그램이 실행을 위해 메모리에 올라온 상태다...