본문 바로가기

개발 노트/Backend,CMS,API8

[API 개발] DB Model을 그대로 반환하면 안 되는 이유 (DTO와 Serializer로 응답 계약 고정하기) 웹이랑 모바일 앱, 서버까지 이래저래 같이 잡고 운영하다 보면 API 응답 구조 때문에 꼭 한 번씩 골치 아픈 일이 생깁니다.처음 API 만들 때는 그냥 DB에서 조회한 모델(Model) 객체를 그대로 JSON으로 던지는 게 가장 편합니다. 코드 한두 줄이면 끝나고 개발 속도도 엄청 빠르니까요. 저도 예전에는 초기 빌드할 때 종종 그렇게 고집을 부렸습니다.하지만 모바일 앱과 연동되는 API라면 이 방식은 머지않아 시한폭탄이 됩니다. DB 컬럼 하나 바꿨다고 이미 배포된 앱이 죽어버리거나, 관리자용 내부 메모 같은 민감한 필드가 앱 패킷에 그대로 노출되는 사고가 터지기 때문입니다.자꾸 까먹기도 하고, 다음 프로젝트에서 실수하지 않기 위해 DTO와 Serializer를 활용해 API 응답 형식을 안전하게 고.. 2026. 5. 20.
[백엔드 설계] 관리자 CMS와 모바일 앱 API 코드를 처음부터 분리해야 하는 이유 웹이랑 앱, 서버를 같이 만지며 운영하다 보면 꼭 마주치는 상황이 있습니다. 바로 공지사항, 관광지 정보, 배너, 카테고리 같은 데이터를 관리자 CMS에서 등록하고, 모바일 앱에서 API로 조회해서 보여주는 구조입니다.처음에는 "어차피 똑같은 DB 데이터 긁어다 쓰는 건데 대충 같이 쓰면 안 되나?" 하고 Controller나 Query를 같이 재사용하고 싶어집니다. 코드가 줄어드니까 처음엔 속도가 빠른 것처럼 느껴지거든요. 하지만 이거 귀찮다고 대충 섞어 쓰면 나중에 운영 중에 무조건 사고가 터지거나 고치느라 고생하게 됩니다.관리자는 수정, 삭제, 내부 메모나 검수 상태 확인이 필요하지만, 앱은 외부 사용자가 보는 거라 공개 가능한 데이터만 안정적인 형태로 받아야 하기 때문입니다. 저도 자꾸 까먹고 실.. 2026. 5. 20.