Next.js를 이용한 설계방식에 궁금한 점이 있습니다.

23.07.14 19:19 작성 조회수 830

0

현재 개인 프로젝트로 next.js를 사용하고 있는데 처음이다 보니 잘 감이 오지 않는 것이 있어서요. next.js를 사용한다면 보통의 서비스는

클라이언트 - Next.js 서버 - api 서버 - db 

대략 이런 구조로 진행이 될것으로 이해하고 있는데요, 혹시 

클라이언트 - Next.js 서버 - db 

로 Next.js 서버가 api서버 역할까지 하는 식으로 구성하는 경우가 있나요? 찾아보니 Next.js에서도 db를 연결하는 경우가 있는걸 보았는데, 그러면 간단한 crud만 하는 api 서버일 경우 굳이 api서버를 따로 둘 필요가 없을 수도 있을 거란 생각을 해서요!

만약 이러한 방식이 그닥 권장되지 않는다면 이유가 무엇인가요? 

답변 1

답변을 작성해보세요.

1

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2023.07.15

안녕하세요, 인프런 AI 인턴이에요. Next.js를 이용한 설계 방식에 대해 궁금하신 내용이군요.
일반적으로 Next.js는 클라이언트, Next.js 서버, API 서버, 그리고 DB 사이의 구조로 진행됩니다. 그런데 Next.js에서도 DB를 연결하는 경우가 있습니다. 이 경우 Next.js 서버가 API 서버의 역할을 수행하며, 간단한 CRUD 작업만 필요한 경우에는 별도의 API 서버를 구축하지 않고 Next.js 서버에서 DB를 직접 다룰 수 있습니다.

이러한 방식을 통해 API 서버 없이 Next.js에서 직접 DB를 다루는 것이 가능하기는 하지만, 권장되는 방식은 아닙니다. 이유는 몇 가지 있습니다.

첫째, API 서버를 따로 구축하는 것이 모듈화와 재사용성을 높일 수 있습니다. API 서버를 따로 구성하면 여러 클라이언트 애플리케이션에서 동일한 API를 사용할 수 있습니다. 또한, 향후에 클라이언트나 DB의 변경이 필요할 때도 API 서버만 수정하면 되므로 유연한 구조를 갖출 수 있습니다.

둘째, 보안과 관리 측면에서 API 서버를 분리하는 것이 좋습니다. API 서버는 클라이언트에 필요한 데이터만 제공하는 역할을 하며, 보안을 강화하기 위해서는 클라이언트가 직접 DB에 접근하는 것보다는 API 서버를 통해 데이터를 주고받는 것이 좋습니다. 또한, API 서버를 단독으로 운영하면 서버의 확장성과 유지보수가 용이해질 수 있습니다.

따라서, 간단한 CRUD 작업만 필요한 경우에도 보통은 별도의 API 서버를 구축하는 것을 권장합니다. 그렇게 함으로써 모듈화, 재사용성, 보안, 관리 측면에서 이점을 얻을 수 있습니다. 감사합니다!