일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
- 버전관리
- Yes
- I'm Sorry
- 자바스크립트
- 머신러닝
- 알고리즘
- 데이터분석
- 컴퓨터공학
- 자료구조
- 컴퓨터비전
- 클라우드컴퓨팅
- 네트워크
- 웹개발
- 데이터베이스
- 파이썬
- springboot
- 네트워크보안
- 보안
- 디자인패턴
- 프로그래밍언어
- 딥러닝
- 컴퓨터과학
- 프로그래밍
- 소프트웨어공학
- 데이터과학
- 빅데이터
- 데이터구조
- 사이버보안
- 인공지능
- 소프트웨어
- Today
- Total
목록GoF (14)
스택큐힙리스트
왜 또 Facade인가?서비스 레이어에 Repository가 열 댓 개씩 붙고, 컨트롤러가 여러 서비스·유틸을 직접 호출하기 시작하면 의존성 지옥이 열린다. Facade 패턴은 이런 상황을 ‘CS 상담원’처럼 중간에 세워 단순한 진입점 하나로 묶어 결합도를 확 줄인다.1️⃣ Facade 패턴, 핵심 개념정의 : 서브시스템의 여러 인터페이스를 하나로 통합해, 고수준 인터페이스만 노출하는 구조 패턴.효과 : 클라이언트는 내부 구조를 몰라도 되고, 변경은 Facade 뒤에서만 일어나므로 유지보수 위험이 급감한다.2️⃣ 언제 쓰면 딱 좋을까?서브 시스템·Repository가 과다해 테스트, 모킹 비용이 폭증할 때컨트롤러가 순환 참조를 유발할 만큼 많은 서비스를 부르는 상황레거시·외부 라이브러리 API를 숨겨 계..
레거시 코드를 뒤흔들지 않고, 로깅·캐싱·보안 같은 부가 기능을 플러그인처럼 꽂고 빼고 싶을 때—Decorator 패턴이 가장 우아한 해답입니다. 스프링 AOP가 동작하는 원리도 결국 데코레이터의 변주죠.1️⃣ 데코레이터 패턴, 5초 요약정의 : ‘원본(Component)’을 래핑해 호출을 위임(delegate)하면서, 전 후처리 로직으로 기능을 확장하는 구조 패턴.구성 요소Component : 클라이언트가 기대하는 인터페이스ConcreteComponent : 실제 핵심 기능Decorator : Component를 보유하며, 부가 기능을 더해 다시 Component 형태로 노출주요 효과 : 상속 없이 런타임에 새 기능 조립, OCP(개방·폐쇄 원칙) 준수.2️⃣ 백엔드에서 언제 빛나나?로깅·트랜잭션 관리..
“댓글 트리·카테고리·조직도… 백엔드에서 계층형 데이터를 손대다 보면 재귀-SQL과 if-else 지옥에 빠지기 쉽죠.”Composite 패턴은 이런 ‘전체-부분(Part-Whole)’ 관계를 객체 수준에서 먼저 해결해, 서비스·리포지토리·쿼리 코드의 복잡도를 크게 낮춰 줍니다.1️⃣ Composite 패턴, 한 줄 정의“단일 객체(Leaf)와 복합 객체(Composite)를 동일한 인터페이스로 다루게 해 트리 구조를 재귀적으로 표현한다.”백엔드에서는 폴더-파일, 메뉴-하위메뉴, 권한-하위권한처럼 ‘자기 자신을 다시 포함’하는 도메인에 특히 유용합니다.2️⃣ 왜 백엔드에서 중요한가?ORM 엔티티 계층화 – 댓글, 카테고리 같은 무한 깊이 구조를 객체-그래프로 깔끔히 매핑도메인 서비스 단순화 – getTo..
“화면 UI·비즈니스 로직은 계속 늘어나는데, 코드 변경할 때마다 여기저기 연쇄 폭탄이 터진다…”프런트엔드 React와 백엔드 Spring Boot를 병행 개발하다 보면 자주 듣는 한숨입니다. Bridge 패턴은 이런 의존성 폭발을 막아 주는 구조(Structural) 패턴. 추상화(기능)와 구현을 ‘다리(Bridge)’로 연결해 둘을 완전히 독립시켜 주죠.1️⃣ Bridge 패턴이 뭔가요?정의: 추상 인터페이스(Abstraction)와 실제 구현체(Implementor)를 별도 계층 으로 분리, 런타임에 조합하도록 해 주는 구조 패턴.효과: 기능·구현 계층을 따로 확장하므로 “새 기능 추가 ↔ 기존 구현 교체”를 마음껏 조합할 수 있습니다.자주 쓰는 상황플랫폼별(웹·모바일) UI 레이어가 같지만 렌더링..