DevLog/학습일지

📓 [8주 차 학습일지 – Spring Boot 구조 개선 & 3.0 실습 흐름]

ny1114 2025. 4. 10.

🗓️ 2025.03.17. ~ 2025.03.21.

✅ 학습 개요

8주 차는 Spring Boot의 버전별 구조 차이를 비교하고,
3.0 기준의 실습 흐름으로 전환해 프로젝트를 구성해보는 시간이었다.
기존의 설정 파일 구조와 달리 application 설정 파일을 통해
서버 포트, 뷰 경로, DB 정보를 구조적으로 관리하는 방식을 익혔다.
Controller, DTO, Service, Repository 계층을 나누며
보다 견고한 웹 애플리케이션 아키텍처 설계를 실습할 수 있었다.


📝 주요 학습 내용

 

🆚 1. Spring Boot 2.0 vs 3.0 구조 비교

  • 버전에 따른 디렉터리 구조 및 의존성 변화 확인
  • 설정 파일 방식 및 실행 흐름 변화 간접 학습
  • 템플릿 렌더링 방식, 경로 지정 방식 비교 분석

 

📁 2. application.yml 설정 실습

  • 서버 포트, 뷰 경로, DB 정보 설정 구조 이해
  • server, spring, datasource 등 계층형 설정 방식 학습
  • yml 작성 시 들여쓰기/구조 오류 해결 경험

 

📨 3. DTO & Controller 흐름 개선

  • HTML name과 DTO 변수 매칭 방식 정리
  • Model을 통해 View로 데이터 전달 방식 명확화
  • @ModelAttribute, @RequestParam 활용 실습

 

🧩 4. Service / Repository 분리 구성

  • 비즈니스 로직(Service)와 DB 로직(Repository) 분리
  • @Service, @Repository, @Component 역할 구분
  • 의존성 주입(@Autowired vs 생성자 주입) 방식 실습

 

🔧 5. CRUD 기능 구현 및 전체 흐름 테스트

  • 게시글 등록, 수정, 삭제, 상세보기 흐름 정리
  • Controller - Service - Repository - DB 흐름 구조화
  • RESTful 방식의 URL 설계 간접 학습

🧠 인상 깊었던 실습 코드

@Controller
public class PostController {

    private final PostService postService;

    public PostController(PostService postService) {
        this.postService = postService;
    }

    @PostMapping("/create")
    public String createPost(PostDTO dto) {
        postService.save(dto);
        return "redirect:/posts";
    }
}

📌 생성자 주입 방식으로 Service를 연결하고,
DTO를 통해 데이터 전달 구조를 간결하게 구현할 수 있었다.


🐞 실습 중 이슈 & 해결 방법

이슈  해결 방법
설정 파일 들여쓰기 오류 설정 항목의 계층 구조를 정확히 지키는 것이 중요
DTO 값이 null로 전달됨 HTML의 name 속성과 DTO 필드명이 일치하는지 확인
Service 인식 오류 @Service 어노테이션 누락 or 컴포넌트 스캔 경로 오류
Repository 접근 오류 @Repository 설정 및 의존성 주입 확인 필요

💬 느낀 점

8주 차는 실습을 통해 Spring Boot 프로젝트의 구성 원리를 깊이 이해할 수 있었다.
Controller부터 Repository까지의 흐름을 직접 설계하고 구성해보며,
단순히 “작동하는 코드”를 넘어서 “잘 정리된 구조”의 중요성을 실감했다.
앞으로의 프로젝트에서도 이 흐름을 계속 유지하며 더 나은 개발을 해보고 싶다.


💻 실습 코드 전체 보기

👉 자세한 실습 코드는 아래 글에서 확인할 수 있습니다!
🔗 <"👉https://ny1114.tistory.com/entry/8주-차-실습-코드-모음">


✍️ 한 줄 회고

"구조를 이해하고 구성할 줄 아는 것, 그게 진짜 개발자의 시작이다."

댓글