TypeORM
TypeORM
남느
2025. 5. 3. 15:28
ORM(Object Relational Mapping)
ORM은 SQL을 사용하지 않고 프로그래밍 언어를 사용해 데이터를 다룰 수 있게 하는 기술입니다.
ORM의 기본 개념은 객체 지향 언어와 관계형 데이터베이스의 사상의 불일치를 해결하기 위한 기술이지만
현실적으로는 SQL을 배우기 귀찮아서 쓴다고 생각합니다.
ORM의 장점
SQL을 직접 작성하지 않아도 됩니다.
데이터베이스가 추상화 되기 때문에 데이터베이스를 변경하기 쉽고, 데이터 이관도 쉬워집니다.
ORM의 단점
SQL을 모르는 상태로 ORM만 배우면 어떤 쿼리가 좋은 쿼리인지 알 수 없기 때문에 좋은 성능의 코드를 작성하기 어렵습니다.
데이터베이스의 내부 동작 원리를 안 배우게 될 가능성이 높습니다.(근데 이건 'SQL'만 아는 상당수의 개발자들도 똑같긴 합니다)
TypeORM을 사용하는 이유
보통 백엔드 개발자들은 Java나 C#을 많이 사용하는데, 이 개발자들에게 가장 익숙한 구조의 ORM이 TypeORM입니다.
TypeORM의 장점
타입 안전성: 막상 찾아보면 지원 안 한다는데...
데코레이터: 데코레이터를 사용하여 복잡한 기능을 간단하게 사용할 수 있습니다.
레포지토리 패턴: 간단한 CRUD는 레포지터리에서 자동지원합니다.
마이그레이션: 데이터베이스 스키마 변경을 자동 관리하고, 이력도 관리해줍니다.
Active Record 패턴과 Data Mapper 패턴을 모두 지원합니다.
Active Record 패턴과 Data Mapper 패턴
Active Record 패턴은 엔티티 파일에 데이터베이스 작업을 같이 작성하는 것을 말합니다.
Data Mapper 패턴은 엔티티 파일이 아닌 다른 파일에 데이터 베이스 작업을 작성하는 것을 말합니다.