728x90
반응형
API 레이어
API는 애플리케이션 코드와 데이터베이스 사이의 중개자 역할을 합니다. 다음과 같은 경우에 API 레이어를 활용할 수 있다:
- 서드파티 서비스 사용 시: 외부 서비스에서 제공하는 API를 통해 데이터를 가져와야 할 때.
- 클라이언트에서 데이터 페칭 시: 데이터베이스 비밀 정보를 클라이언트에 노출하지 않기 위해 서버에서 실행되는 API 레이어를 사용하여 데이터를 가져온다.
Next.js에서는 Route Handlers를 사용하여 API 엔드포인트를 생성할 수 있다.
데이터베이스 쿼리
풀스택 애플리케이션을 개발할 때는 데이터베이스와 직접 상호작용하는 로직이 필요하다. Postgres와 같은 관계형 데이터베이스의 경우, SQL이나 ORM을 통해 이를 수행할 수 있다. 다음과 같은 상황에서 데이터베이스 쿼리가 필요하다:
- API 엔드포인트 생성 시: 데이터베이스와 상호작용하는 로직을 작성해야 한다.
- React 서버 컴포넌트 사용 시: API 레이어를 생략하고 서버에서 직접 데이터베이스를 쿼리하여 데이터베이스 비밀 정보를 클라이언트에 노출하지 않고도 데이터를 가져올 수 있다.
서버 컴포넌트를 활용한 데이터 페칭
Next.js 애플리케이션은 기본적으로 React 서버 컴포넌트를 사용한다. 서버 컴포넌트를 활용한 데이터 페칭은 다음과 같은 이점이 있다:
- 간단한 비동기 작업 처리: 서버 컴포넌트는 프로미스를 지원하므로, useEffect나 useState 없이도 async/await 구문을 사용하여 데이터를 가져올 수 있다.
- 서버에서의 데이터 처리: 비용이 많이 드는 데이터 페칭과 로직을 서버에서 처리하고, 결과만 클라이언트에 전송하여 성능을 최적화할 수 있다.
- 직접적인 데이터베이스 쿼리: 서버에서 실행되므로 추가적인 API 레이어 없이도 데이터베이스를 직접 쿼리할 수 있다.
SQL을 활용한 데이터 페칭
SQL을 사용하는 이유는 다음과 같다:
- 산업 표준: SQL은 관계형 데이터베이스를 쿼리하는 데 있어 산업 표준이며, ORM도 내부적으로 SQL을 생성한다.
- 기본 이해도 향상: SQL에 대한 기본 이해는 관계형 데이터베이스의 기본 개념을 파악하는 데 도움이 되며, 이를 다른 도구에도 적용할 수 있다.
- 다양한 활용성: SQL은 특정 데이터를 가져오거나 조작하는 데 있어 유연성을 제공한다.
- 보안 강화: Vercel Postgres SDK는 SQL 인젝션에 대한 보호 기능을 제공한다.
sql 함수는 서버 컴포넌트 내에서 호출할 수 있다.
728x90
반응형
'개발 공부 > Next.js' 카테고리의 다른 글
Request Waterfall / Static Rendering / Parallel Data Fetching (0) | 2025.01.07 |
---|---|
쿼리 파라미터(searchParams/useSearchParams) & 경로정보(params/usePathname ) (0) | 2025.01.03 |
Link 컴포넌트를 이용한 네비게이션 최적화 (2) | 2025.01.02 |
Next.js Layout 이해하기 (0) | 2025.01.01 |
Next.js의 이미지 최적화 (0) | 2024.12.31 |