Skip to content

ORM를 사용한 이유

Jeong Se Ho edited this page Dec 14, 2023 · 2 revisions

🖼️ 배경

6주간 빠르게 프로젝트를 완성하기 위해서 생산성을 높일 필요가 있고 많은 객체와 연관관계가 존재할 것이기 때문에 ORM이 적합하다고 생각함.

✅ 결정

  • ORM 사용 (TypeORM)

🤷🏻 이유

ORM을 사용하지 않고 SQL 쿼리를 직접 작성할 경우 데이터의 column명을 모두 기록하여야 하고, 실수로 속성을 누락할 경우 에러가 발생하기 때문에 코드 작성 과정에서 이와 관련한 디버깅에 시간을 많이 사용하게 되는 문제점이 있었다. 이번 프로젝트에서는 코드 레벨의 로직에 더 집중할 수 있는 환경을 조성하고자 ORM을 사용하였고, Nest와의 호환성이 좋은 TypeORM을 선택하였다. 또한 이번 프로젝트는 SNS기반 프로그램이기에 사용자와 다른 객체들(게시물, 댓글, 팔로우)등과 연관 관계가 많이 존재하고, 업데이트마다 연결된 테이블들이 모두 동기화되어야 하기에 ORM의 cascading 기능을 효율적으로 사용할 수 있을 것이라 생각하였다.

다만 ORM의 경우 쿼리를 자세하게 확인할 수 없고, 복잡한 쿼리를 처리하는데 적합하지 않다는 단점이 있지만, 이번 프로젝트에서는 디버깅에 큰 문제가 되거나 ORM으로 처리하기 힘들 만큼의 복잡한 쿼리를 사용하지 않을 것으로 예상되어 trade-off를 고려했을 때 ORM을 사용하는 것이 효율적일 것이라 판단하였다.

🤔 우려되는 점

  • ORM은 동작 과정에 대한 세부적인 처리와 디버깅이 쉽지 않기 때문에 초기에 설계하는데 많은 노력이 필요할 것이라 생각됨.

🔥 HeatPick

🔨 프로젝트 소개

🫠 트러블 슈팅

1주차

2주차

3주차

4주차

5주차

🤔 기획 회의록

🤷🏻 의사 결정록

🍎 iOS

🌐 Backend

🎯 주차별 목표

🏃🏻 데일리 스크럼

1주차

2주차

3주차

4주차

5주차

6주차

🙇🏻 멘토링 일지

👀 프로젝트 현황 공유

🙋🏻 팀 회고

💪 개인 회고

1주차

2주차

3주차

4주차

5주차

📇 템플릿

Clone this wiki locally