티스토리 뷰

728x90

Mock API를 우선 제공해야 하는 필요성에 대한 이해

Mock API는 데이터베이스 연결이나 백엔드 처리 없이 정적 응답만 제공합니다. 테스트 및 개발용: 실제 API가 준비되지 않았거나 불완전하거나 불안정한 경우 사용

 

https://velog.io/@khy226/msw로-모의-서버-만들기

 

MSW(Mock Service Worker)로 더욱 생산적인 FE 개발하기

MSW(Mock Service Worker)는 Service Worker를 이용해 서버를 향한 실제 네트워크 요청을 가로채서(intercept) 모의 응답 (Mocked response)를 보내주는 API Mocking 라이브러리이다.

velog.io

https://techblog.woowahan.com/20154/

 

API 모킹으로 테스트를 더 편리하게, Mock Service GUI 소개 | 우아한형제들 기술블로그

여러분은 프론트엔드의 API 모킹 환경을 어떤 방식으로 구축하고, 사용하고 계신가요? 이 글에서는 API 모킹 환경을 개발자 친화적으로 개선해 나가는 과정을 다루며, 2023 우아한테크콘퍼런스에

techblog.woowahan.com

 


RESTful한 API 설계

REST API는 REST 아키텍처 스타일을 따르는 API를 말하고, RESTful API는 그 REST 원칙을 충실히 지켜 설계된 이상적인 API를 의미합니다. 모든 RESTful API는 REST API지만, 그 반대는 아닙니다.

RESTful의 주요 특징

  • 자원(Resource) 중심 : 모든 것을 자원으로 보고, URI(Uniform Resource Identifier)로 명확하게 식별합니다 (예: /users, /products/123).
  • 표준 HTTP 메서드 활용 : 데이터 생성/조회/수정/삭제(CRUD)를 HTTP 메서드에 매핑합니다 (GET: 조회, POST: 생성, PUT/PATCH: 수정, DELETE: 삭제).
  • 상태 비저장(Stateless) : 서버는 클라이언트의 이전 요청 상태를 기억하지 않으며, 각 요청은 독립적입니다.
  • 표현(Representation) : 클라이언트와 서버는 자원의 상태를 JSON, XML 등의 형식으로 주고받습니다 (Representation of State Transfer)
  • 클라이언트-서버 구조 : 클라이언트와 서버가 분리되어 독립적으로 개발 및 발전할 수 있습니다.

다양한 아키텍처 패턴에 대한 이해

레이어드 아키텍처

각 레이어는 자기 책임만 갖고, 아래 레이어에만 의존한다

 

1️⃣ Controller Layer (Presentation Layer)

  • HTTP 요청/응답 처리
  • 입력값 검증
  • 인증/인가 처리
  • DTO 변환
  • 비즈니스 로직 ❌
  • DB 접근 ❌

2️⃣ Service Layer (Business Layer)

  • 핵심 비즈니스 로직
  • 트랜잭션 관리
  • 여러 Repository 조합

3️⃣ Repository Layer (Persistence Layer)

  • DB 접근
  • CRUD 처리
  • ORM / Query Builder 사용

4️⃣ Domain / Model Layer (선택적)

  • 엔티티 정의
  • 도메인 규칙 
장점 단점
유지 보수성
한 레이어 수정 → 다른 레이어 영향 최소화
과도한 보일러플레이트 → 작은 프로젝트엔 오히려 복잡
테스트 용이성
service 단위 테스트 쉬우며 repository mock 가능
Service 비대화 → 도메인 단위로 service 분리 필요

 

헥사고날 아키텍처

비즈니스 로직은 중심에 두고, DB·웹·메시지·외부 API 같은 것은 전부 갈아 끼울 수 있게 만든 구조

 

https://mangkyu.tistory.com/396

 

 

[Architecture] 헥사고날 아키텍처를 통한 의미 수준과 구현 수준에 대한 이해(semantic and implementation l

1. 헥사고날 아키텍처에 대하여[ 헥사고날 아키텍처의 도메인 엔티티(Domain Entity) ]우리는 소프트웨어를 개발할 때 어떠한 의미를 갖는 이론적 토대를 바탕으로 개발을 하게 된다. 예를 들어 우리

mangkyu.tistory.com

 

https://ivory-room.tistory.com/91

 

[Architecture] 헥사고날 아키텍처(Hexagonal Architecture) (ft. 계층형 아키텍처, 클린 아키텍처, DDD)

헥사고날 아키텍처를 설명하기전에 계층형 아키텍처와 클린 아키텍처, 그리고 도메인 주도 설계(DDD)관련하여 가볍게 짚고 넘어가야한다. 헥사고날 아키텍처는 전통 방식인 계층형 아키텍처의

ivory-room.tistory.com

 

클린 아키텍처

https://daryeou.tistory.com/280#google_vignette

 

클린 아키텍처(Clean Architecture) 개념 및 원칙

개발이란 마치 여러 개의 기반이 되는 블록을 만들어 설계 원칙에 따라 조립하여 완성해 나아가는 과정이라고 생각합니다. 여기서 설계 원칙은 수 많은 디자인 패턴들을 의미하며, 이번 주는 아

daryeou.tistory.com

 

 

 


핵사고날 아키텍처는 공부하면 공부할수록 너무 어려운 개념인것 같다는 생각이 들었다.

어렵고 크게 와닿지 않는 개념이라고 생각했는데 https://tech.kakaopay.com/post/home-hexagonal-architecture/ 이런글을 공유를 받았는데 공감이 되면서 슬픈 사실인것 같다는 생각을 했다.

728x90

'Coding > Dev Study' 카테고리의 다른 글

[항해 복귀 스터디] 1주차 TDD  (0) 2026.02.02