티스토리 뷰

개발일기

20190306

Jinhyy 2019. 3. 6. 17:56

[MVC구성요소-DispatcherServlet을 구성하는 인터페이스들]

1. multiPartResolver

--> 해당 파일을 binary로 쪼개서 보내고, 꺼내는 api 구현체가 들어있는 인터페이스.

--> 스프링부트에서는 이미 자동으로 등록되어 있어서 바로 파일 업로드 가능


2.localeResolver

클라이언트의 지역정보를 파악하는 인터페이스로 추후에 메시지소스를

선택하여 지역권의 메시지를 보낼 수 있도록 도와준다.

--> AcceptHeaderLocaleResolver 라는 구현체로 구현되고 있는데,

이구현체가 지역정보를 파악하는 것은 http-request안의 accept-language 헤더를

보고 파악한다.

--> Cookie, Session 등을 기반으로 판단하는 구현체들도 있다.


3. ThemeResolver

웹 브라우저에서 css,style이 바뀌는 등 설정된 테마를 파악하고

변경할 수 있는 인터페이스.

--> 기본 구현체는 fixedThemeResolver로 theme을 사용하지 않는 설정이 기본이다.


4. HandlerMapping

요청을 처리할 핸들러를 찾는 인터페이스

--> Annotation 기반, Bean이름 기반으로 처리하는 방법들이 있다.


5. HandlerAdapter

HandlerMapping이 찾아낸 핸들러를 처리하는 인터페이스

--> 스프링 MVC를 확장할 수 있는 핵심.


6. HandlerExceptionResolvers

--> 디스패처 서블릿 전반에 걸쳐 예외가 날 때, 처리하게 해준다.

ex) @ExceptionHandler 어노테이션 사용


7. RequestToViewNameTranslator

--> 핸들러에서 뷰 이름을 명시적으로 리턴하지 않을 때, 요청을 기반으로

뷰이름을 판단할 수 있도록 해주는 인터페이스

ex) /sample 이 요청이면 sample.jsp or "sample"을 리턴해줄것.


8. ViewResolver

--> 뷰 이름에 해당하는 뷰를 찾아내는 인터페이스


9. FlashMapManager

FlashMap인스턴스를 가져오고 저장하는 인터페이스

*FlashMap : 주로 리다이렉션을 사용할 때 요청 매개변수를 사용하지 않고

데이터를 전달,정리할 때 사용하는 map 클래스 종류다.

-->중복 form submission을 방지하는 패턴 구현 방법중 하나.


[스프링 부트의 스프링 MVC 설정]

1. application.properties을 이용한 설정방법

2. @Configuration + WebMvcConfigurer 인터페이스를 구현


[파일 다운로드]

Resource resource= resourceLoader.getResource("classpath:" + filename);

ResponseEntity.ok().body(resource)

--> ResponseEntity Body에 파일을 넣어 다운받게 할수도 있음.


[RequestBody, HttpEntity]

둘다 요청에 관한 정보에 접근 가능하지만, Entity는 Header정보도 접근 가능하다.


[ResponseBody, ResponseEntity]

1. ReponseBody : 해당 애노테이션이 붙어있으면 리턴하는 값을 응답 본문에 담아주고

리턴값은 httpmessageconverter로 자동으로 변환된다.(jackson이용)

--> @RestController 사용된 클래스의 메소드는 자동으로 적용된다.


2. ReponseEntity : 응답헤더,상태코드,본문을 직접 다루고 싶은 경우에 사용한다.


[Model, @ModelAttribute 사용법]

1. Model 객체 : 컨트롤러에서 값을 직접 전달할 때, 사용하는 객체로서 


2. @ModelAttribute : Model의 공통적인 속성을 설정해야 할 때 지정하는 애노테이션


[NodeJS]

chrome v8 javascript 엔진으로 빌드된 javascript 런타임

-->이벤트기반, 논블로킹 io, 싱글스레드 방식으로 가볍고 효율적

Node.js의 패키지 생태계인 npm은 가장 큰 오픈소스 라이브러리

--> 싱글스레드 이지만, delegating방식으로 병렬처럼 처리되게한다


[Vue.js 사전지식]

1. WebPack

여러 js파일들을 쓰는 자바스크립트의 특성상 변수충돌이 날수 있고,

css나 js파일이 여러개면 연결이 그만큼 여러번 발생해야 되는 문제발생,

이를 해결하기 위하여 모든 파일을 한번에 묶어 패키징을 해야하는 방식이 필요해졋고,

그래서 생긴게 WebPack


2. JSHint

자바스크립트는 인터프리터라서 런타임까지 오류가 난걸 모르기 때문에

잘못된 구문이나 안쓰는 변수들을 찾아주는 역할을 한다.


3. MVVM 패턴

View, View Model, Model로 구성된 디자인 패턴으로

View는 순수한 html로 ViewModel에게 이벤트를 알리고,

View Model은 Model에 계속 붙어있으면서 감시하고, 원하는 데이터를

가져오는 역할을 하며 데이터 변경이 일어날 시, 바로 

View단에 Binding 해주는 디자인패턴이다.


[Vue.js 개요 및 장점]

기존 프레임워크들의 장점을 합친 프레임워크

배우기 쉽고, 성능좋음.

vue-cli는 node를 담고있어서 이를 사용하여 서버를 띄울 수 있음.

vue-devtools(크롬 확장)로 디버깅 하기 편하다.



'개발일기' 카테고리의 다른 글

20190329. 코더가 아닌 개발자가 되고싶다  (0) 2019.03.29
20190308  (0) 2019.03.08
20190305  (0) 2019.03.05
20190304  (0) 2019.03.04
20190228  (0) 2019.02.28
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함