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

NCafe 메뉴·카테고리 API 만들기 — DTO와 DI

대상 Spring Boot로 엔티티를 Controller에서 직접 반환하던 사람

목표 GET /api/categoriesGET /api/menus를 DTO 기반으로 만들고, @Autowired로 Repository를 주입받는다

완성물 localhost:8080/api/categorieslocalhost:8080/api/menus가 프론트엔드 MenuCard가 요구하는 JSON을 반환하는 Spring Boot 프로젝트

  • Java 17 이상, Spring Boot 3.x, PostgreSQL 14+
  • ncafe 데이터베이스에 categories, menus 테이블이 이미 생성되어 있어야 합니다.
  • application.properties에 데이터베이스 접속 정보가 설정되어 있어야 합니다.

STEP 1 / 10프로젝트 구조 만들기

0개 완료 · 10개 남음

  1. Spring Boot 프로젝트의 기본 골격을 만들고, 이번 실습에서 만들 파일들의 위치를 확인해 볼게요.

    1-1. 프로젝트 폴더 구조 만들기

    파일: src/main/java/com/newlecture/backend/

    주의) 디렉토리에서 잘못 실행하면 엉뚱한 곳에 폴더가 와르르? 만들어집니다. 신경쓰이는 분들은 직접 만드시면 될 것 같아요.

    mkdir -p src/main/java/com/newlecture/backend/{controller,entity,repository,repository/jdbc,dto}

    Windows PowerShell에서는 mkdir -p 대신 mkdir를 여러 번 실행하거나, New-Item -ItemType Directory -Force -Path를 사용하세요.

    1-2. application.properties 확인

    파일: src/main/resources/application.properties

    spring.datasource.url=jdbc:postgresql://cloud.newlecture.com:5432/ncafedb
    spring.datasource.username=ncafe
    spring.datasource.password=newlec1210+
    spring.datasource.driver-class-name=org.postgresql.Driver

    실제 데이터베이스 접속 정보에 맞게 수정하세요.

    ✅ 확인

    • src/main/java/com/newlecture/backend/ 아래에 controller, entity, repository, dto 폴더가 생겼습니다.
    • application.properties에 데이터베이스 접속 정보가 적혀 있습니다. ( 이 문서 다른 곳에 알리시면 안됩니다. )

    🎓 newlec 쌤의 코멘트

    Spring Boot 프로젝트는 패키지 구조를 미리 정해두는 게 중요합니다. controller는 HTTP 요청을 받고, entity는 데이터베이스 테이블과 1:1로 대응하는 클래스를 만듭니다. 그래서repository는 데이터 접근 로직을 구헌하고, dto는 화면에 보여줄 데이터를 담는 클래스를 입니다. 그래서 화면의 구조와 일치기킵니다. 이 구조를 지키면 나중에 서비스 계층을 추가할 때도 파일을 옮길 필요가 없습니다.

    📝 이 단계의 핵심

    • Spring Boot 프로젝트는 controller, entity, repository, dto 패키지로 나눕니다.
    • application.properties에 데이터베이스 접속 정보를 적어둡니다.

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