-
6/24CodeStates_Backend/TIL (정제되지 않은 글들) 2022. 6. 24. 09:33
[굿모닝세션-황정식]
더미데이터로 응답해주는 것을 Mock 또는 Stub 데이터라고도 함.
프론트 단에서 Angular 든 뭐든, 99% Json 으로 HTTP 통신으로 데이터가 넘어올것임.
[질문]
* PathVariable 과 RequestParam 은 결국 똑같은 동작 아니냐? -> 맞다. 그냥 정해둔거라 쓰는거임ㅋ
* 브라우저 링크란에서 Post/Get 등을 하기는 힘듬. 포스트맨이나 Jquery, curl 등을 쓰는게 좋음.
* 요청 URI 에 데이터값이 유출되면 보안에 문제 있지 않나? -> 나중에 JWT나 OAuth2 같은 보안 토큰이나 시큐리티로 감쌀 예정임. URI 리소스 자체는 https 로 암호화함.
* PatchMapping 에서 어떤 데이터를 찾아 수정할 지에 대한 의문이 있었는데, 나중에 배운다고 함.
* 컨트롤러안에 여러개의 핸들러 메서드가 있는데, SRP 위반인가? -> 그건 아니다. 애매하긴 한데,, HTTP 메소드라는 하나의 기능에 포함된다고 보면 좋을 듯.
* appConfig 는 컨트롤러로써의 역할은 아니고 빈 으로써 등록되는 것임.
[오후 세션 - 황정식]
Spring MVC 주요 컴포넌트 내부 살펴보기
* 렌더링이란? 화면을 만들어내는것
* 렌더링의 대상은? HTML
*SSR :
SSR server side rendering * CSR
CSR Client Side Rendring
* 로그 분석
* profile 은 지금은 아직 적용안했는데, 나중에 배울거임.
* 톰캣은 서블릿 컨테이너 라고 표현하면 정확함.
[참고]
빌드쪽에 에러있으면 gradle 란에서 clean 기능 해주면 빌드한거 다 지워줌.
[참고]
데이터베이스 단 배우기 전까지는 inmemoryDB를 쓸텐데, 이 DB 도 자동으로 인덱스가 auto_increment 처럼 기본키로 붙게됨. 원래 유들이 기본적으로 붙임. 그래서 PathVariable에서 사용하곤 함.
[참고]
뭘 어떻게 코드를 시작해야할 지 모르겠으면, 그냥 크게 필요한 기능을 메소드 이름만 써서 만들어놓고 해봐라.
DTO 실습
RequestBody 에서 Json 데이터가 오면 JacksonHttpMessageConverter(?) 라는 놈이 자동으로 바꿔서 해당 객체로 넣어줌. 그래서 setter메서드가 없어도 됨. 즉,
여기서 @RequestBody가 JacksonHttpMessageConverter기능으로 POST에서 들어온 Json 데이터를 자동으로 CoffeePostDto 객체로 변환해서 coffeePostDto 로 넣어줌. 그래서 CoffeePostDto 클래스 내부에 setter 메서드는 없어도 되는 것임. 좀 신기함. 내부 과정은 몰라도 됨.
* Optional 부분
@Range 는 @Min, @Max 로도 가능함.ㅋ
그리고 Optional 을 저렇게 쓰는 건 첨 알았네.. 직접 물어보니 저 안에 쓸수 있다고만 하고 어떠한 기준은 안알려줌..
* DTO 방식이 각자 다 클래스를 만들어줘야하니까, 클래스를 너무 많이 만들어야 되서 안좋지않느냐 질문이 있었는데, 그럼에도 불구하고 DTO 의 장점이 더 많기 때문에 사용한다고 함. 너무 클래스가 많아질 경우, 하나의 큰 클래스로 두고 내부 클래스들로 집어넣어서 한번에 접근하는 방법을 쓰기도 함. 약간 편법. DTO의 최고 장점이 데이터 개수를 여러개 한번에 객체로 처리하므로 HTTP 요청의 개수를 줄일 수 있는 것이라고 함.
* One Thread Per Request
요청당 쓰레드 1개씩 생성. 요청이 많아지면 쓰레드가 많아지므로, 톰캣이나 서블릿 컨테이너가 부하가 많아짐. 이럴때 MaxThread 같은 변수로 컨트롤하기도함. 톰캣이나 서블릿 컨테이너가 쓰레드풀이라는걸 운영하며 관리함.
'CodeStates_Backend > TIL (정제되지 않은 글들)' 카테고리의 다른 글
6/28 (0) 2022.06.28 6/27 (0) 2022.06.27 6/23 : 섹션 3 시작! (0) 2022.06.23 Bellman-Ford's Algorithm (0) 2022.06.22 6/17 (0) 2022.06.18