1. ADO.NET (ActiveX Data Objects for .NET)

개념

  • ADO.NET은 .NET Framework에서 제공하는 저수준 데이터 액세스 기술입니다.
  • 데이터베이스와 상호작용하기 위한 API를 제공하며, SQL 쿼리를 직접 작성하고 실행하는 방식으로 동작합니다.
  • 데이터 읽기, 쓰기, 업데이트, 삭제 등의 작업을 위해 SqlConnection, SqlCommand, SqlDataReader 같은 클래스를 사용합니다.

특징

  • 직접 SQL 작성: 개발자가 SQL 쿼리를 작성하고 데이터베이스와 직접 통신.
  • 빠르고 가벼움: 추가적인 추상화 계층 없이 데이터베이스와 바로 통신하므로 성능이 좋음.
  • 유연성: 데이터베이스 구조에 의존하지 않고, 개발자가 원하는 방식으로 쿼리를 작성 가능.
  • 비교적 코드 복잡: SQL 쿼리와 데이터 매핑을 직접 해야 하므로 코드가 복잡하고 유지보수가 어렵다.

예제 코드


2. ORM (Object-Relational Mapping)

개념

  • ORM은 데이터베이스의 테이블과 객체지향 프로그래밍의 클래스를 매핑하는 기술입니다.
  • 데이터베이스 작업을 객체 기반으로 처리할 수 있게 도와줍니다.
  • Entity Framework, Hibernate, Dapper, Sequelize 등이 대표적인 ORM입니다.

특징

  • SQL 작성 최소화: 대부분의 CRUD 작업을 코드로 간단히 구현 가능. (SQL은 복잡한 작업에만 필요.)
  • 생산성 향상: 객체 지향적인 방식으로 데이터베이스 작업 가능.
  • 추상화 계층 제공: 데이터베이스의 세부 구현을 감추고, 객체 중심의 코드를 작성할 수 있음.
  • 성능 저하 가능성: SQL을 직접 작성하지 않기 때문에 최적화된 쿼리가 생성되지 않을 가능성이 있음.
  • 매핑 규칙: 테이블-클래스, 컬럼-속성 간의 매핑 규칙을 정의해야 함.

예제 코드 (Entity Framework)


3. ADO.NET vs ORM

특징ADO.NETORM
개발 속도낮음 - SQL 작성 및 데이터 매핑을 수동으로 해야 함.높음 - CRUD 작업이 간단하며 코드로 대부분 처리 가능.
성능높음 - 데이터베이스와 직접 통신하므로 최적화된 쿼리 작성 가능.낮음 - 추상화 계층이 추가되므로 경우에 따라 성능이 떨어질 수 있음.
유연성높음 - 원하는 방식으로 SQL 작성 및 최적화 가능.중간 - ORM 규칙에 따라 코드 작성, 복잡한 쿼리는 SQL 작성 필요.
학습 곡선낮음 - SQL과 기본 API만 알면 쉽게 시작 가능.중간 - ORM의 규칙과 매핑 방식을 학습해야 함.
코드 가독성낮음 - 쿼리가 복잡해질수록 코드도 복잡해짐.높음 - 직관적인 CRUD 메서드 제공.
사용 사례고성능 요구 사항, 세밀한 쿼리 최적화 필요 시 적합.개발 속도와 유지보수가 중요한 경우 적합.