2025/05/05 3

6-2. 메모장 프로젝트 - ver3 (레이어드 아키텍처 적용)

메모장 프로젝트 ver2 의 문제점Controller에 책임이 너무 많다.(요청, 비지니스 로직, 응답, 예외 처리 등)서버가 종료된 후 다시 켜지면 데이터가 모두 초기화 된다.📕 목차Controller 분리하기 메모 생성 API 리팩토링 메모 목록 조회 API 리팩토링 메모 단건 조회 API 리팩토링 메모 전체 수정 API 리팩토링 메모 제목 수정 API 리팩토링 메모 삭제 API 리팩토링 해결한 문제점 & 문제점1. Controller 분리하기책임 분리Controller클라이언트의 요청을 받는 역할을 수행한다.요청에 대한 처리를 Service Layer에 전달한다.Service에서 처리 완료된 결과를 클라이언트에 응답한다.Service Layer비지니스 로직 처리Repository Layer데이터베..

6-1. 레이어드 아키텍처(Layered Architecture)

📕 목차기존 패턴의 문제점레이어드 아키텍처(Layered Architecture)프레젠테이션 계층 (Presentation Layer)비즈니스 계층 (Business Layer)데이터 접근 계층 (Data Access Layer)DTO, Model(Entity), DAO1. 기존 패턴의 문제점기존의 MVC 패턴에서 Controller는 역할이 무수히 많다.요청에 대한 처리예외처리View Template 응답 or Data 응답비지니스 로직 처리DB 상호작용문제점Controller에서 요청에 대한 모든 처리를 수행한다. 즉, 책임이 너무 많다.기능 추가, 수정, 삭제 등의 유지보수가 힘들어진다.코드의 재사용성이 떨어진다. 메서드로 분리하여도 메서드를 호출하는 중복 코드가 발생한다.2. 레이어드 아키텍처(..

2-4. 슬라이딩 윈도우(Sliding Window)

🧠 목차슬라이딩 윈도우(Sliding Window)[실전 문제] DNA 비밀번호 (백준 12891)1. 슬라이딩 윈도우(Sliding Window)2개의 포인터로 범위를 지정한 후, 일정한 구간(window)을 유지하며 이동시키는 방식으로 데이터를 처리하는 알고리즘보통 연속된 부분 배열(subarray)이나 부분 문자열(substring)의 합, 최대/최소값, 조건 만족 여부 등을 빠르게 구할 때 사용된다.투 포인터 알고리즘과 매우 비슷하다.시간복잡도 O(N)2. [실전 문제] DNA 비밀번호 (백준 12891)문제: DNA 비밀번호 https://www.acmicpc.net/problem/12891 import java.util.Arrays;import java.util.*;public class M..