강의

멘토링

커뮤니티

Inflearn Community Q&A

kimjinhyeon07237048's profile image
kimjinhyeon07237048

asked

Practical NestJS Development with a Commerce Service (w. Prisma, Docker, Redis, Kafka)

Requirements Analysis and ERD Design

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

Resolved

Written on

·

67

0

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

 

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

 

dockerkafkaredisnestjsprisma

Answer 1

1

billkim님의 프로필 이미지
billkim
Instructor

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

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

kimjinhyeon07237048's profile image
kimjinhyeon07237048

asked

Ask a question