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