API 응답은 모델을 닮아야 할까요?
API 응답과 도메인 모델을 분리할 때 얻는 이점과 매핑 비용을 비교합니다. 계층별 DTO 구성, 응답의 중첩 구조, 인터페이스로 필드 누락을 줄이는 방법을 다룹니다.
프론트엔드 개발자가 백엔드 실무를 맡으며 정리한 글입니다. API 경계와 데이터베이스, 계층 설계를 다룹니다.
모든 태그 보기API 응답과 도메인 모델을 분리할 때 얻는 이점과 매핑 비용을 비교합니다. 계층별 DTO 구성, 응답의 중첩 구조, 인터페이스로 필드 누락을 줄이는 방법을 다룹니다.
Liquibase·Flyway로 스키마 변경 이력을 관리하고 기존 DB에 기준선을 잡는 방법을 설명합니다. 스키마 마이그레이션과 데이터 변경 이력을 남기는 audit 테이블의 역할도 구분합니다.
인바운드/아웃바운드 어댑터를 가르는 기준은 데이터의 방향이 아니라 호출의 방향입니다. 이벤트 리스너와 fetch, props 콜백에 대응시켜 의존성 규칙과 의존성 역전(DIP)까지 풀어봅니다.
부분 수정 API에서 필드 생략과 null을 어떻게 해석할지 정리합니다. JSON Merge Patch·JSON Patch·필드 마스크를 비교하고, 수정할 필드를 명시하는 permit 계약과 검증 예제를 다룹니다.
검증과 권한 로직을 모델·서비스·컨트롤러 중 어디에 둘지 살펴봅니다. rich·anemic 도메인 모델을 비교하고, 도메인 서비스와 애플리케이션 서비스의 책임을 구분합니다.
DBMS와 테이블·키·제약조건에서 시작해 SQL, 정규화, 트랜잭션과 ACID, 인덱스를 정리합니다. NoSQL·복제·샤딩까지 이어지는 데이터베이스 입문 용어집입니다.
헥사고날 아키텍처에서 도메인 모델을 DB와 프레임워크로부터 분리하는 이유를 설명합니다. React 코어와 렌더러를 비유로 포트·어댑터를 살펴보고, 요청 처리와 모듈 의존성의 방향을 구분합니다.
MySQL INSTANT DDL이 빠르게 끝나도 데이터 백필과 애플리케이션 전환은 남습니다. DEFAULT의 의미와 구·신 버전이 공존하는 expand-contract 마이그레이션을 설명합니다.
Gradle·ktlint·detekt를 프론트엔드의 빌드 도구·포매터·린터와 비교합니다. 테스트, DB 마이그레이션, 코드 생성 도구의 역할과 FE 도구에 비유할 때의 차이도 짚습니다.
스프링의 빈·DI·IoC·AOP를 React·TypeScript의 익숙한 개념과 비교합니다. 웹 요청 처리부터 JPA·트랜잭션·테스트·스프링 부트까지 연결해 설명합니다.
호출자에 따라 API를 퍼블릭·오퍼레이션·인터널로 구분하는 설계 사례를 살펴봅니다. 각 API의 권한 처리와 도메인 간 호출에서 책임을 나누는 기준을 설명합니다.
개별 컬럼과 JSON 컬럼을 쿼리·제약조건, 데이터 노출 범위, 백필 비용으로 비교합니다. 컬럼 추가의 DDL 비용만으로 저장 구조를 결정하기 어려운 이유를 설명합니다.