스프링 강의 베이직반 3일차 스프링 입문

이상민·2024년 8월 20일
0

스프링 강의 3일차

개발의 시야?

스프링만으로 개발을 할 수 있는 건아니다
그저 도구중 하나로 바라보자

당장 사용하는데 불필요한 지식보다는

스프링을 먼저 느껴보자

작은 용어에 집착하지 말자

우리는 사용하는 것에 집중하자

프레임워크를 사용하는데 필요한 필수 지식은 사실 많지 않다

프레임 워크가 만들어진 이유

좀 편하게 쓸 수 없을까?
바로 편하게 개발을 할 수 없을까?

스프링을 만든 이유 -> 개발을 편하게 하기 위해서

스프링 느껴보기

구조를 패턴화(습관화)하자

프레임 워크를 제작한 제작자가 정한 규칙을 그대로 지켜야 하기 때문에

쉽게 생각하자 어렵게 생각하면 끝이 없다

막상 하는건 똑같고 비슷하다

다만 이유는 모두 존재하지만 처음에는 익숙해지는데 집중하자

주입 : 남(다른클래스에 있는)의 코드를 갖다가 쓰는 것 (정확히는 아니지만 일단 이렇게 이해하자)

스프링은 단지 도구이며 이 도구들에 익숙하지 않아서 잘 사용하지 못하는 것이다

고로 익숙해지자

프로젝트 생성

의존성 추가

  • Spring Web
  • H2 Database
  • MySQL Driver
  • Lombok
  • Spring Data JPA

1. 프로젝트를 시작하면 package 구조부터 만들자

  • controller
  • dto
  • entity
  • repository
  • service

노트
프로젝트에 들어가면 먼저 위에 5가지 페키지 구조를 만들어서 틀을 잡아주자

2. Entity 클래스 생성

5형제 어노테이션을 붙여주자

  • @Getter
  • @Entity
  • @NoArgsConstructor
  • @Id
  • @GeneratatedValue(strategy = GenerationType.IDENTITY)

3. Repository 생성

Repository는 interface임에 주의!

4. Service 클래스 생성

  • @Service
  • @RequiredArgsConstructor

서비스는 그냥 서비스 어노테이션을 붙여주자(서비스니깐)

5. Controller 클래스 생성

  • @RestController
  • @RequiredArgsConstructor

컨트롤도 마찬가지

6. CRUD 개발

  • Controller
  • Service

DTO를 만드는 이유는 내가 원하는 것만 반환해주기 위해서

따로 만들어주는 습관을 가지자 (나중을 위해)

Response는 final
생성자가 있다
Request는 final이 붙지 않는다

ResponseEntity.ok는 상태 값을 200으로 변환시켜 주기 위해서 사용

🌴 CRUD에서 R이 아닌 로직이 포함된 컨트롤러를 제외한 
메소드에는 `@Transactional` 붙이기!
🌴 Request와 Response는 ~~Entity~~가 
아닌 DTO를 반드시 이용한다. 
(DTO에 `@Getter` 잊지 않기)

정리

스프링은 어렵지 않다 (패턴이다)
코드 작성 순서를 따라가면 완성할 수 있다

마무리

오늘은 스프링을 처음 들어갈 때 어떻게 구조를 잡는지 감을 익혀보았는데, 먼저 패키지 구조를 잡고, Repository부터 Service,Controller까지 타고가면서 클래스를 만들어 주고 다시 Controller에서 필요한 구조를 Service에서 Dto를 활용하여 객체를 만들어주고 활용하는 과정이 조금은 감을 잡을 수 있어서 발전하는 기분이 들었다. 앞으로 위의 과정이 반사적으로 나오도록 반복해서 내 것 으로 만들어야겠다.
이렇게 익숙해진 후에 이론적인 부분을 공부하면 더 잘 이해할 수 있지 않을까?

profile
안녕하세요

0개의 댓글