공유된 따라하기 · 스프링부트
NCafe 메뉴·카테고리 API 만들기 — DTO와 DI
대상 Spring Boot로 엔티티를 Controller에서 직접 반환하던 사람
목표
GET /api/categories와GET /api/menus를 DTO 기반으로 만들고,@Autowired로 Repository를 주입받는다완성물
localhost:8080/api/categories와localhost: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개 남음
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.propertiesspring.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에 데이터베이스 접속 정보를 적어둡니다.
이 주소는 글의 저작자가 공개한 링크입니다. 뉴렉처 스터디의 다른 자료는 로그인 후 볼 수 있어요.