내일배움캠프(Spring 7기)/내일배움캠프

[CH 3 일정 관리 앱 만들기] 정리 & 회고

가지코딩 2025. 5. 13. 15:58

요구 사항 정의 및 설계

필수 기능: https://gajicoding.tistory.com/321

 

[CH 3 일정 관리 앱 만들기] 필수 기능 - 요구사항 정의 및 설계

필수 기능 - 요구 사항 정의 Lv 0. API 명세 및 ERD 작성API 명세서 작성하기API 명세서는 프로젝트 root(최상위) 경로의 README.md 에 작성ERD 작성하기ERD는 프로젝트 root(최상위) 경로의 README.md 에 첨부SQL

gajicoding.tistory.com

 

도전 기능: https://gajicoding.tistory.com/330

 

[CH 3 일정 관리 앱 만들기] 도전 기능 - 요구사항 정의 및 설계

도전 기능 - 요구 사항 정의 Lv3. 연관 관계 설정작성자와 일정의 연결작성자를 할 일과 분리해서 관리작성자 테이블을 생성하고 일정 테이블에 FK를 생성해 연관관계를 설정한다.작성자는 이름

gajicoding.tistory.com


새롭게 알게된 지식


문제 해결


일정 관리 앱 만들기 학습 목표

(체크리스트) ☑️ 완료, ✖️ 실패, △ 미흡

  • ☑️ 잘못된 요청(필수 파라미터 누락, 잘못된 데이터 타입 입력 등) 발생 시 적절한 예외 처리를 적용한 응답을 반환할 수 있는가?
  • ☑️ Layered Architecture 개념과 각 계층의 역할을 설명하고, 실제 애플리케이션 설계에 적용할 수 있는가?
  • ☑️ MySQL 설치 및 JDBC를 활용하여 SQL 구문 적용을 통해 데이터베이스에서 데이터를 삽입, 조회, 수정, 삭제할 수 있는가?
  • ☑️ Spring 요청/응답 데이터 처리 실습을 통해 데이터 변환 및 검증을 효과적으로 수행할 수 있는가?
  • ☑️ Spring Boot에서 CRUD API를 구현하고 Postman 또는 Swagger로 테스트할 수 있는가?
  • ☑️ DI 와 IoC를 활용하여 객체 간 의존 관계를 설정 및 구현할 수 있는가?
  • ☑️ Spring MVC에서 클라이언트 요청이 컨트롤러 메서드로 매핑되도록 @RequestMapping, @GetMapping/@PostMapping 을 활용했는가?
  • ☑️ @RestController, @Service, @Repository 어노테이션을 통해 컴포넌트 스캔과 빈 등록이 자동으로 이루어지는 구조를 이해하고 이를 활용할 수 있는가?
  • ☑️ Spring Framework의 설치 및 프로젝트를 생성, spring-boot-starter를 사용하여 Spring Boot 애플리케이션을 설정하고 실행할 수 있는가?

느낀 점 & 마무리

Spring 프레임워크를 처음 써보다 보니 Bean이나 DI 같은 개념이 낯설고 어렵게 느껴졌지만, 과제를 하나씩 해 나가면서 점점 구조가 어떻게 되어 있는지, 왜 이런 방식으로 동작하는지를 조금씩 이해할 수 있었다.
처음에는 @Component, @Service, @Repository, @RestController 같은 어노테이션이 무슨 역할을 하는지 몰랐지만, 코드를 작성하고 실행해보면서 점점 어떤 역할을 하는지 알게 되었고, Spring이 알아서 필요한 객체를 만들어서 주입해준다는 것도 과제를 진행하면서 자연스럽게 배울 수 있었다.
지금은 Bean이 언제 만들어지고 어떻게 주입되는지에 대한 대략적인 흐름은 이해하게 된 것 같다.


전체 소스 코드

https://github.com/gajicoding/todo-api-project

 

GitHub - gajicoding/todo-api-project

Contribute to gajicoding/todo-api-project development by creating an account on GitHub.

github.com