강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

연습생님의 프로필 이미지
연습생

작성한 질문수

커머스 서비스로 배우는 NestJS 실전 개발 (w. Prisma, Docker, Redis, Kafka)

요구사항 분석 및 ERD 설계

FK 현업에서 실제 사용안하시나요

해결된 질문

작성

·

35

0

현업에서 실제로 개발하실때도 FK 를 넣지 않으시나요?

 

데이터 정합성과 ORM 이용의 편리함 등을 위해 FK 를 맺는게 맞지 않나해서 여쭤보게 되었습니다.

 

답변 1

1

김빌 (Bill Kim)님의 프로필 이미지
김빌 (Bill Kim)
지식공유자

과거 모놀리식 방식에서는 단일 어플리케이션 서버와 단일 db 구성으로 관리되어왔으며, 이때의 FK 는 거의 필수형태로 관리되어왔습니다. 하지만, 현대의 MSA 방식에서는 오히려 FK 가 강결합을 불러올 수 있고 db의 정합성 보장 메카니즘을 활용한 방식보다 어플리케이션 서버단에서 정합성을 맞추고 있는 상황으로, ORM 을 이용하여 DB 에 FK 를 세팅하진 않습니다.

또한 FK 를 추가함에 따라 발생되는 비용 중 일부가 insert, update 시간 지연, deadlock 이슈 등이 있는데, 이 비용에 비해 이점이 떨어진다는 시각이 많습니다. (물론 도메인 by 도메인, 회사 by 회사)

연습생님의 프로필 이미지
연습생

작성한 질문수

질문하기