공유된 따라하기 · 스프링부트

스프링 부트 백엔드 만들기 — PostgreSQL 연결과 JDBC Repository

대상 이전 따라하기에서 ncafe/backend 프로젝트를 생성하고 목업 데이터로 /api/menus API를 만든 학생

목표 PostgreSQL 데이터베이스에 연결하고, Spring JDBC를 이용해 MenuRepository 를 만들어 실제 DB 데이터를 조회하는 API를 만든다

완성물 ncafe/backend 프로젝트에서 GET /api/menus 요청 시 PostgreSQL의 menus 테이블 데이터를 JSON으로 반환하는 상태

필수 준비물

  • Java 17 이상 (JDK 설치 확인: java -version)
  • Maven 3.8 이상
  • PostgreSQL 데이터베이스 접근 권한 (cloud.newlecture.com:5432/ncafedb)
  • Postman 또는 브라우저

전제

  • ncafe/backend 프로젝트는 이미 생성되어 있고, Menu 엔티티와 MenuController 가 존재합니다.
  • menus 테이블은 이미 PostgreSQL에 존재한다고 가정합니다. (없다면 1단계에서 생성합니다)
  • 아직 DI/IOC 컨테이너 개념을 배우지 않았으므로, Repository 객체는 컨트롤러에서 new 로 직접 생성합니다.

STEP 1 / 8PostgreSQL 드라이버 의존성 추가

0개 완료 · 8개 남음

  1. Spring JDBC가 PostgreSQL과 통신하려면 JDBC 드라이버가 필요합니다. pom.xmlpostgresql 의존성을 추가해볼게요.

    1-1. pom.xml 열기

    VSCode에서 ncafe/backend/pom.xml 파일을 엽니다.

    1-2. dependencies 태그 안에 postgresql 추가

    <dependencies> 태그 안에 아래 코드를 추가하세요.

    파일: pom.xml

    <dependency>
        <groupId>org.postgresql</groupId>
        <artifactId>postgresql</artifactId>
        <scope>runtime</scope>
    </dependency>

    참고: Spring Boot Starter Parent가 버전 관리를 해주므로 <version> 태그를 생략할 수 있습니다.

    1-3. Maven 의존성 다운로드

    터미널에서 ncafe/backend 폴더로 이동하고:

    cd ncafe/backend
    mvn clean install

    Windows/Mac 공통: 처음 실행 시 인터넷에서 의존성을 다운로드하므로 시간이 걸릴 수 있습니다.

    ✅ 확인

    • 터미널에 BUILD SUCCESS 가 출력됩니다.
    • ~/.m2/repository/org/postgresql/postgresql/ 폴더에 드라이버 jar 파일이 다운로드되었는지 확인합니다.

    🎓 newlec 쌤의 코멘트

    JDBC 드라이버는 데이터베이스 벤더(여기서는 PostgreSQL)가 제공하는 Java 라이브러리입니다. 이 드라이버가 없으면 Java 애플리케이션이 PostgreSQL 프로토콜로 통신할 수 없습니다. Spring JDBC는 이 드라이버를 추상화해서 더 편하게 사용할 수 있게 해주는 도구입니다.

    ❌ 자주 하는 실수

    증상 원인 해결
    Could not resolve dependencies 인터넷 연결 문제 또는 Maven 설정 오류 mvn -U clean install 로 강제 업데이트 시도
    postgresqlruntime scope가 아님 scope 태그 누락 <scope>runtime</scope> 추가

    📝 이 단계의 핵심

    • PostgreSQL JDBC 드라이버는 runtime scope로 추가합니다.
    • 의존성 추가 후 mvn clean install 로 로컬 저장소에 다운로드합니다.

이 주소는 글의 저작자가 공개한 링크입니다. 뉴렉처 스터디의 다른 자료는 로그인 후 볼 수 있어요.