백엔드 개발자들은 데이터베이스를 조작하기 위한 언어도 SQL를 많이 사용하지만, 우리 모던한 개발자들은 ORM이라는 도구를 많이들 사용합니다.
Prisma도 그 중 하나로 많이들 사용되고 있는데, 제가 Prisma에 입문하면서 왜 사용을 꺼려하는지, 특히 PostgreSQL의 특징을 기반으로 설명하고자 합니다.
사실 그냥 새로 배우기 귀찮아서...ㅎㅎ
RDBMS에는 다양한 서비스가 있습니다. MySQL, MariaDB, PostgreSQL, Oracle 등등 각 데이터베이스가 지향하는 바는 다릅니다.
특히, PostgreSQL의 여러 장점 중 2가지를 소개하고자 합니다.
1. Extension의 자유로운 사용
2. 여러가지 Indexing(외부 Indexing 포함)의 사용
이러한 예시로, 위치정보와 관련된 데이터를 다루기 위해서 PostGIS라는 extension을 많이들 사용하고 있습니다. extension을 통해 지원하는 자료형인 Geometry 등이 존재하며, extension을 통해 해당 자료형을 활용하는 GIST 인덱싱 등이 존재합니다.
이러한 자료형과 인덱싱은 성능을 개선하거나, 기능을 개발하는 데에 큰 도움을 줄 수 있습니다.
하지만, Prisma를 통해 해당 Extension을 이용하면, extension의 설치까지는 이해하나, 관련 기능을 사용하는 부분에서는 Geometry나, GIST 인덱싱과 관련된 문법들을 이해하지 못합니다.
Unsupported로 표현되는 모습
에러를 뱉는 모습
이미 관련 이슈로 올라온 글이 존재합니다.
이처럼, Prisma은 PostgreSQL이 가지는 고유 특성을 해칠 수 있습니다.
근데 사실 이게 안되는게 제 실력이 부족해서 그런 거일 수도 있습니다.
하지만, 안되더라도 유지보수를 지향하는 개발론에서는 ORM이 매우 유용하기 때문에 배워서 나쁠 것은 없다고 생각합니다.
아는데 안 쓰는 것과, 몰라서 못 쓰는 것에는 엄청난 차이점이 존재하기 때문입니다.
사실 저도 Prisma 잘만 쓰고 있습니다.
다른 ORM도 안되는지 나중에 확인해봐야겠네요.