.NET 프로그래밍에서의 Code First 대비 Database First

  • 4 minutes to read

.NET 프로그래밍 분야에서 Code First와 Database First 접근 방식을 구분하는 것은 다음과 같습니다:

  • Database First: 이 방법은 SQL 문을 사용하여 테이블과 저장 프로시저를 먼저 생성한 다음 프로그래밍 영역에서 이를 활용하는 것을 말합니다.
  • Code First: 이 접근법은 프로그래밍 영역에서 모델 클래스를 먼저 만들고, 이를 기반으로 데이터베이스 개체인 테이블을 생성하여 사용하는 것입니다.

DB First

.NET 프로그래밍에서 DB First는 전통적인 방식으로 여겨집니다. 만약 회사에 데이터베이스 관리자(DBA)가 별도로 있다면, 데이터베이스 퍼스트 방식을 사용할 수 있습니다. 테이블, 저장 프로시저 등 모든 데이터베이스 관련 작업이 데이터베이스 영역 내에서 이루어지며, 응용 프로그램 영역에서는 Dapper 같은 Micro ORM을 통해 접근할 수 있습니다. 물론, 순수 ADO.NET 기술을 사용하는 것도 가능합니다.

Code First

일반적인 응용 프로그래밍 개발 환경에서 개발자가 필요한 데이터베이스를 직접 설계해야 하는 경우, Code First 방식은 생산성과 유지 보수 측면에서 월등한 이점을 제공합니다. 만약 하나의 데이터베이스가 아닌 다양한 DBMS 또는 Cosmos DB와 같은 클라우드 기반 데이터베이스로 확장하고자 한다면, Code First 방식이 아닌 Database First 방식을 사용하면 모든 것을 새롭게 제작해야 합니다. 이 점에서, 데이터베이스 퍼스트 방식은 코드 퍼스트 방식과 비교할 때 한계가 있습니다.

경험 기반 조언

20년 이상의 프로그래밍 경험을 통해 대부분 Database First 방식으로 작업해왔습니다. 그러나 Code First를 접한 후로는, 기존 시스템을 수정하는 경우가 아니면 DB First 방식을 사용하지 않을 계획입니다. 처음 Code First를 시도했을 때는 ORM 기술이 Micro ORM이나 순수 SQL 기술보다 처리 속도가 느렸기 때문에 사용자가 적은 대시보드 같은 영역에 주로 사용했습니다. 하지만 현재는 ORM 기술과 처리 속도 측면에서 Micro ORM과 순수 데이터 처리 기술 간의 차이가 거의 없어졌기 때문에 Code First 방식을 주요 기술로 사용할 예정입니다.

강의에서는 순수 ADO.NET, Micro ORM인 Dapper, 그리고 Full ORM인 Entity Framework Core 순으로 진행됩니다만, 실제로 새롭게 만드는 부분은 EF Core만 사용할 예정입니다. 물론 Code First 방식이지만, SQL Server Database 프로젝트는 계속 사용할 것입니다.

참고

"Code First vs Database First"를 구글 검색 엔진에서 검색하면 많은 양의 아티클들이 나옵니다. 이러한 아티클들을 더 찾아 읽어보는 것도 좋습니다. 어떤 접근 방식이 더 낫다고 일률적으로 말하기 어렵기 때문에, 여러 자료를 참고하여 본인의 상황에 맞는 최적의 방법을 찾는 것이 중요합니다.

제 경험에 기반한 주관적인 의견이므로 참고하시되, 최종적으로는 회사 정책이나 팀 정책에 따라 결정하는 것이 바람직합니다.

VisualAcademy Docs의 모든 콘텐츠, 이미지, 동영상의 저작권은 박용준에게 있습니다. 저작권법에 의해 보호를 받는 저작물이므로 무단 전재와 복제를 금합니다. 사이트의 콘텐츠를 복제하여 블로그, 웹사이트 등에 게시할 수 없습니다. 단, 링크와 SNS 공유, Youtube 동영상 공유는 허용합니다. www.VisualAcademy.com
박용준 강사의 모든 동영상 강의는 데브렉에서 독점으로 제공됩니다. www.devlec.com