엔티티 프레임워크 – 03 설치

이전에는 막 여러 방법들이 나와있긴 한데….

이젠 그냥 NuGet으로 설치하면 끝이다. 이쪽이 프레임워크의 버전 관리 및 종속성 설치도 같이 할 수 있으면서 동시에 솔루션의 버전 관리 등에서도 쉽게 쓰이니 이쪽으로 가자.

Install-Package EntityFramework

라고 입력하거나 GUI 인터페이스에서 찾아서 설치하면 된다.

20180721_160457.png

엔티티 프레임워크 – 02 LINQ랑은 뭔 차이?

둘 다 마이크로소프트에서 만든 기술이고, 둘 다 C#, 아니 닷넷 환경에서 잘 돌아간다. 근데 이걸 왜 다 따로 적었냐고 물을 수 있다만….

근데, 결론부터 말하면 LINQ는 플랫폼이고, 엔티티 프레임워크는 그 위에서 동작하는 프레임워크다. 기술 수준이 높다 낮다가 아니라, 편의를 위해 만든 플랫폼과 그걸 이용해서 더 편하게 만들어준 프레임워크인 것이다.

근데 이렇게 말할 수 있어도 그냥 코드만 본 사람들이 이 둘은 그냥 다른 거라고 해서 여러모로 물어봐서 좀 적어봤다. 사실 ORM 같이 이용할 수 있는 엔티티 프레임워크와 LINQ to Entity 이 둘에 대해서 물어보는 사람들이 좀 많아서…

LINQ가 코드로는 사실 금방 배우고 쓸만하지만 데이터베이스 이외에도 xml 등과 같이 형식 있는 파일로도 만들어서 쓸 수 있도록 해주는 녀석도 가지고 있기 땜에 범위가 작은 게 아니다.

엔티티 프레임워크 – 01 시작

C#에서 데이터 처리를 위한 여러 가지 기술들이 있다. 그걸 전체적으로 카테고리로 나눠본다면 다음과 같이 나눌 수 있다.

  • ADO.NET – SQL
  • ADO.NET – DataSet
  • Entity Framework (ORM)
  • LINQ to SQL
  • JSON
  • XML
  • File IO

그리고 저것들 안에서도 여러모로 세부적으로 하나하나 살펴볼 수 있다. 근데 여기서 내가 엔티티 프레임워크(Entity Framework)를 직접 글로 쓰려고 맘먹고 진행하는 데에는 이유가 좀 있다.

엔티티 프레임워크는 사실 ORM(Object-relation mapping)이다. 이 기술을 위해 여러 기술들이 아래에서 움직이고 있다. 하지만 요즘 이런 거 모르겠다 하고는 그냥 지원되는 거니깐 쓰는 친구들이 너무 많다. 특히 요즘 언어 배우는 친구들은 십중팔구 ORM 거의 꼭 쓴다고 본다. ORM을 쓰면 확실하게 편한 것이 바로 객체지향에 맞는 코드를 작성할 수 있다는 것이랑 DBMS에 종속되지 않는 코드를 작성할 수 있다는 것인데, 장점도 있고, 단점도 있다. 장점이야 뭐 여러곳에서 이야기 하겠지만 단점으로는 완벽한 ORM으로만 설계를 하려면 설계를 무지하게 잘 할 수 있어야 한다. 게다가 프로젝트 좀만 더 세세해지고 복잡해지면 이 난이도가 지수 함수를 그리듯 확 올라간다. 근데 이게 좀 제대로 안된 코드를 보고 요즘 빡이 쳐서 내가 다시 공부해서 정리하고 수정중인 플젝이 있다.

요즘 코드 퍼스트로 코드를 배우고 오는 친구들 땜에 기존에 특히 좀 나이 있으셔서 어느 정도 직급을 가진 분들하고 여러모로 안맞는 경우가 있니 어쩌니 하더니 내가 그런 광경이 있었던 곳에 와서 여러모로 중계를 하려다 보니…

사담이 좀 끼었지만 이런 일 땜에 좀 더 공부하고 정리해서 남들한테 쉽게 알려줄 수 있는 목적도 좀 기대하고 쓰게 되었다.

난 글 어렵게 쓰고 설명하는 거 별로 안좋아해서 되는 한 쉽게 쓰고 쉽게 풀어서 설명할 예정이다. 진짜로…