Skip to content

migi0401/Spring_intro

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🌱 Spring Boot Study Log

인프런 김영한 님의 [스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술] 강의 학습 기록입니다. 스프링 부트의 기초부터 웹 MVC, DB 접근 기술(JPA, Spring Data JPA)까지 전반적인 흐름을 학습하고 실습한 코드를 저장합니다.


🛠 Tech Stack



📝 Curriculum & Progress

강의 커리큘럼에 따른 학습 진행 상황입니다.

  • 프로젝트 환경 설정
    • 라이브러리 살펴보기
    • View 환경 설정
  • 스프링 웹 개발 기초
    • 정적 컨텐츠
    • MVC와 템플릿 엔진
    • API
  • 회원 관리 예제 - 백엔드 개발
    • 비즈니스 요구사항 정리
    • 회원 도메인과 리포지토리 만들기
    • 리포지토리 테스트 케이스 작성 (JUnit)
  • 스프링 빈과 의존관계
    • 컴포넌트 스캔과 자동 의존관계 설정
    • 자바 코드로 직접 스프링 빈 등록하기
  • 회원 관리 예제 - 웹 MVC 개발
    • 회원 웹 기능 (등록, 조회)
  • 스프링 DB 접근 기술
    • H2 데이터베이스 설치
    • 순수 JDBC
    • 스프링 JdbcTemplate
    • JPA
    • 스프링 데이터 JPA
  • AOP
    • AOP가 필요한 상황
    • AOP 적용

💡 Key Learnings

1. 스프링 웹 개발 방식 3가지

  • 정적 컨텐츠: 파일을 그대로 웹 브라우저에 내려주는 방식
  • MVC와 템플릿 엔진: 서버에서 HTML을 동적으로 바꿔서 내려주는 방식 (Model, View, Controller)
  • API: JSON 데이터 포맷으로 클라이언트에게 데이터를 전달하는 방식 (@ResponseBody)

2. 테스트 코드 (JUnit)

  • @AfterEach: 각 테스트가 종료될 때마다 실행. 메모리 DB에 저장된 데이터를 삭제할 때 사용.
  • TDD(테스트 주도 개발) 의 중요성과 테스트 케이스 작성 요령 학습.

3. 스프링 빈 등록 (DI)

  • 컴포넌트 스캔: @Controller, @Service, @Repository 애노테이션을 이용한 자동 등록.
  • 자바 코드 설정: @Configuration, @Bean을 이용해 직접 설정 파일에 등록.

4. 스프링 DB 접근 기술

  • 순수JDBC: 반복적인 코드와 SQL작성하는 코드가 많음
  • JDBC Template: 반복 코드를 제거하지만, SQL은 직접 작성
  • JPA: 기본 SQL과 반복 코드도 직접 처리해줌
  • 스프링 데이터JPA: 인터페이스만으로 기본 CRUD제공

5. AOP

  • AOP: Aspect Oriented Programming
  • 공통 관심 사항과 핵심 관심 사항을 분리
  • 프록시 주입하여 사용용

커밋 컨벤션 규칙

  • Docs: 학습 내용 업데이트
  • Feat: 새로운 실습 코드 추가
  • Test: 테스트 코드 작성
  • Refactor: 코드 유지보수

📂 Project Structure

src
├── main
│   ├── java
│   │   └── hello.hello_spring
│   │       ├── controller  # 웹 계층 (Controller)
│   │       ├── domain      # 도메인 객체 (Member)
│   │       ├── repository  # DB 접근 계층 (Repository Interface/Impl)
│   │       └── service     # 핵심 비즈니스 로직 (MemberService)
│   └── resources
│       ├── static          # 정적 파일 (HTML, CSS)
│       └── templates       # 템플릿 파일 (Thymeleaf)
└── test                    # 테스트 코드

About

김영한 스프링 입문 강의를 듣고 기록한 공간입니다.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors