▲neo 2023-06-28 | parent | favorite | on: GN⁺: ORM 여전히 안티 패턴인가요?(github.com/getlago)Hacker News 의견 ORM의 한계와 단점, 예를 들어 다른 데이터베이스 사용 불가능성과 SQL 지식 요구 등이 비판받고 있다. 문자열 보간과 원시 JDBC에 가까운 방식으로 데이터 레이어를 하나의 쿼리씩 구축하는 것이 더 나은 접근법으로 여겨진다. ORM은 종종 기본 테이블 및 뷰 매핑에만 제한되어 SQL의 고급 기능과 능력을 무시한다. 두 가지 유형의 ORM이 있다: 도메인 모델을 기반으로 하는 것과 기존 데이터베이스에서 도메인 모델을 생성하는 것. jOOQ와 Hibernate와 같은 다양한 구현 및 기능을 가진 ORM은 각각 다른 목적으로 사용된다. ORM은 많은 테이블과 적절한 외래 키 관계를 가진 복잡한 애플리케이션에서 유용할 수 있다. 문자열 리터럴에서 원시 SQL을 사용하는 것은 ORM의 대안으로 간주되며, 쿼리 래퍼를 생성하는 도구도 사용할 수 있다. 모든 것을 번들로 숨기려 하지 않거나 자체 쿼리 언어를 도입하지 않는 실용적인 ORM이 선호된다. SQLAlchemy는 SQL을 재창조하지 않고 편리한 쿼리 레이어를 제공하는 접근법으로 칭찬받고 있다. ORM을 사용하지 않으면 개발자는 자체 데이터베이스 인터페이스를 작성하고 유지해야 하므로 버그와 보안 취약점이 발생할 수 있다. ORM이 SOLID 원칙을 어기는 것에 대한 비판은 학문적 가르침과 실제 개발 간의 충돌로 여겨진다. 경험이 부족하거나 학문적인 관행의 영향으로 인해 문제가 발생하고 예산 초과가 발생할 수 있다.
Hacker News 의견