[내일배움캠프] 260415 TIL #8 CRUD Code Shadowing

2026. 4. 15. 14:27·내일배움캠프/TIL

들어가며

입문 프로젝트에 앞서, CRUD Code Shadowing 과제가 주어졌다. 오늘은 "따라 치기 과제"로, 작성되어 있는 코드를 보고 따라서 작성하면 되는 과제이다. 노션 페이지를 보고 단순히 따라쳐도 되지만, 실제 내가 프로젝트를 개발했을 때의 습관을 토대로 작성해보려고 했다.

 

 

Today I Learned!

작성된 코드는 아래 GitHub Repository에서 확인할 수 있다.

 

GitHub - seola12e/CRUD-Code-Shadowing: 내일배움캠프 [단기심화 7기] CRUD Code Shadowing 과제 레포지토리

내일배움캠프 [단기심화 7기] CRUD Code Shadowing 과제 레포지토리. Contribute to seola12e/CRUD-Code-Shadowing development by creating an account on GitHub.

github.com

 

1. 프로젝트 설정

본격적으로 코드를 쉐도잉하기 전 프로젝트를 생성하기 위해 spring.io 에서 프로젝트를 설정했다.

의존성으로는 Spring Web, Lombok, Spring Data JPA 를 기본적으로 가장 먼저 설정했다.

이후 DB Driver는 MySQL Driver를 선택했다. H2를 사용해도 되지만, MySQL에 익숙해져 있기 때문이다..

코드를 따라 치다 보니 검증 관련 어노테이션인 @Valid 가 있길래 Validation까지 추가했다.

 

2. 데이터베이스 설정

Spring 설정을 끝내고 데이터베이스 설정을 해주었다.

MySQL 워크벤치가 이미 다운로드 되어 있어서 워크벤치에서 miniorderapp 이라는 이름의 schema를 하나 생성했다.

 

IntelliJ로 돌아와서 Data Source를 연결해주었다.

 

이후 application.yml 에 아래와 같이 작성해주었다.

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/miniorderapp
    username: ${MYSQL_USERNAME}
    password: ${MYSQL_PASSWORD}
    driver-class-name: com.mysql.cj.jdbc.Driver
  jpa:
    hibernate:
      ddl-auto: update
    show-sql: true
    properties:
      hibernate:
        format_sql: true

GitHub에 올라갈 거라, spring.datasource.username 과 password 부분은 환경변수로 따로 빼주었다.

 

3. 프로젝트 실행

application.yml 파일과 노션에 나와 있는 코드까지 따라서 작성하고 완성된 프로젝트를 실행시켜서 데이터베이스 테이블이 잘 생성되는지 확인했다.

 

4. API 테스트

작성한 코드가 잘 작동되는지 확인하기 위해 Postman을 통해 테스트를 해보았다.

 

먼저 상품 생성 API가 잘 작동되는지 확인하기 위해 body에 name과 price 필드값을 적어서 보냈더니 201 Created 와 함께 잘 생성되었음을 확인할 수 있었다.

상품 전체 조회 API와 ID별 상품 조회 API를 통해서도 200 OK 와 함께 잘 생성되었음을 확인할 수 있었고, 데이터베이스에도 데이터가 잘 들어가 있었다.

 

@Valid 검증 어노테이션도 잘 작동하는지 알아보기 위해 name 필드에는 공백을, price 필드에는 음수의 값을 넣어서 테스트를 해봤다.

상태코드 400 Bad Request 와 함께 설정한 message로 에러메시지가 출력되는 것을 확인할 수 있었다.

 

상품을 3개 더 생성해본 뒤, 전체 상품 조회 API와 ID별 상품조회 API 테스트도 다시 해봤다.

 

다음으로 상품 수정 API 테스트를 하기 위해 PUT 으로 ID 값이 3번인 상품명을 "Product 3" 에서 "상품 3" 으로 바꿔보았다.

이후 상품 조회 API를 통해 정상적으로 변경되었음을 확인할 수 있었다.

 

마지막으로 상품 삭제 API 테스트를 하기 위해 ID 값이 2번인 상품을 삭제하는 DELETE 요청을 보내봤다.

204 No Content 와 함께 정상적으로 삭제되었음을 확인할 수 있었고, 전체 상품 조회 API 와 데이터베이스를 통해 한 번 더 검증해봤다.

 

 

코드카타

프로그래머스 12918번 - 문자열 다루기 기본

 

자세한 풀이를 위해 아래 블로그에 따로 정리해두었다.

 

[프로그래머스] 12918번 - 문자열 다루기 기본 [Java]

프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제 제출한 코드class Solution { public boolean solution(String s) { try { Integer.parseInt(s); } ca

sxxlx.tistory.com

'내일배움캠프 > TIL' 카테고리의 다른 글

[내일배움캠프] 260416 TIL #9 입문 프로젝트 시작  (0) 2026.04.16
[내일배움캠프] 주특기 입문 MSA 요약본  (0) 2026.04.15
[내일배움캠프] 260414 TIL #7 MSA  (0) 2026.04.14
[내일배움캠프] 260413 TIL #6 MSA  (0) 2026.04.13
[내일배움캠프] 260410 TIL #5  (0) 2026.04.10
'내일배움캠프/TIL' 카테고리의 다른 글
  • [내일배움캠프] 260416 TIL #9 입문 프로젝트 시작
  • [내일배움캠프] 주특기 입문 MSA 요약본
  • [내일배움캠프] 260414 TIL #7 MSA
  • [내일배움캠프] 260413 TIL #6 MSA
이서라다
이서라다
  • 이서라다
    개발일지
    이서라다
  • 전체
    오늘
    어제
    • 전체 보기 (79)
      • 내일배움캠프 (21)
        • TIL (21)
      • 프로그래머스 (23)
      • Algorithm (2)
      • BackEnd (0)
        • Spring (0)
      • Language (4)
        • JAVA (4)
      • Git (2)
      • 백준 - Java (25)
        • 입출력과 사칙연산 (6)
        • 반복문 (8)
        • 1차원 배열 (1)
        • 문자열 (7)
        • 2차원 배열 (1)
        • 조합론 (1)
        • 정렬 (1)
      • IDE (1)
        • IntelliJ (1)
      • 티스토리 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    티스토리스킨
    내일배움캠프
    jdk삭제
    til
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
이서라다
[내일배움캠프] 260415 TIL #8 CRUD Code Shadowing
상단으로

티스토리툴바