본문 바로가기

스파르타코딩 내일배움캠프

내일배움캠프 Day 57 - 스프링 실시간 수업 4일차

다시 복습해야 할 키워드

- Abstract 빵을 못 만드는 빵틀. 다른 클래스와 같은데 직접 "new timestamped" 이렇게 글자를 못 씀. 다른데서 상속이 되어야만 방틀을 만들 수 있는 클래스다. 

 

원격수업

RestController - JSON으로 응답하는 자동응답기

Service - 업데이트 할 때 필요함

Repository - 생성, 삭제, 조회 할 때 필요함

RequestDto - 변경을 원하거나 어떤 데이터를 들고 다니면서 필요할 때 Dto를 씀. Request Dto는 요청을 할 때 필요한 정보 옮김이. 필요한 정보를 물고 다니는 녀석. 

 

서버

controller - service - repository. 이렇게 3계층이 있음. 

 

Repository부터 먼저 만듬. 

 

Entity class는, 즉 테이블과 연동되는 class랑 repository는 도메인 패키지에 만들기. (왜? 답 찾기) 

 

Interface는 클래스에서 멤버 변수가 없는 메소드만 있는 것. 

 

JPA

findAll By OrderBy ModifiedAt (그냥 orderby가 아니고 by orderby라고 써야 함)

정렬 - 최신 (desc, 내림차순), 옛날 (asc, 오름차순)

 

수정 요청 왔을 시 MemoRequestDto가 알아야 하는 것

user와 content

 

Service는 업데이트 기능 때문에 활용하는 것임.

 

질문:

왜 put만 service이지?

 

 

수업 내용

 

일반

프로그래밍 학습 기준은 만들기임. 얼마나 아느냐 보다는 얼마나 잘 만들 수 있냐임. 

스프링 토이 프로젝트 여러개 만들기. 계산기 만들기 등. 

 

톰캣에 대해서 찾아보기.

'프로가 되기 위한 웹 입문 기술' 책 보기.

 

오 튜터님의 말씀

- 객체지향? 객체가 각각의 역할과 책임이 있고 메시지로 상호작용해서 협력해나가는 것.

- 한 객체가 여러개의 역할을 하면 이상해짐. 

- 객체가 엉켜 있으면 안 좋음. 그래서 각 역할과 책임을 하고, 메시지로 상호 작용함. 직접 서로 건들지 않음. 

- 인터페이스를 쓰는 이유, 다형성 때문임. 

- 몽고db 왜 쓰는지 알아야 함. 

- HTML form-data는 get/post 만 쓸 수 있음. 

- HTTP method 잘 쓰기. 

- 각 레이어는 자기들 레이어끼리 연결 되어 있음. 그래서 private final ~ 은 다른 레이어와 연결하기 위해서임. 

 

수업시간에 언급된 키워드

Spring

- overriding

- interface

- implement

- ORM

- 결합도, 응집도 (service, controller, repo) 나누는 이유

- entity (영속성)

- @RestController (쓰는 이유. Rest API를 쓰기 때문에 편함). 

- @PathVariable

 

코어에 대한 이해 중요. 

 

스프링부터, 스프링 시큐리티, 스프링 JPA, 

 

모델링, 

 

API

 

Edge를 넣을 수 있는. 배포/Cloud/AWS/private/public/postman test/성능테스트/ 쿠버네티스. 

 

암묵지

- 리소스 찾는 법

- 디버깅 하는 법

- 문서화 하는 법

 

findAllByOderByModifiedAtDesc()

 

 

스프링 부트, 스프링 MVC가 있는데, 스프링 부트부터 먼저 이해하면 MVC 이해 하는데 도움이 됨. 

 

REST API

- payload

- representation

- resource

 

참고 RFC문서

https://datatracker.ietf.org/doc/html/rfc7231

 

rfc7231

 

datatracker.ietf.org