본문 바로가기

Develop/[Spring]

(96)
[Spring] Spring에서 사용하는 전체적인 어노테이션들 개념만 둥둥 떠있고, 정확하게 공부를 하지 않은, 어노테이션들에 대해서 공부를 하려고한다. 프로젝트를 진행하면서, 잠깐 쓰고 또 까먹고하는걸 확실히 익혀보자 @RequestMapping이나, @PostMapping같은거 말고, 잘 안쓰는것들에 대해서 한번 공부를 해보자 1. @RequestBody jsp나, view단에서, ajax로 통신한다고 가정해보자 객체 통신이라 무조건, Post방식을 사용해야한다. (Get으로도 할수있지만, 일일히 하나씩 set하는 개발자는 없을것이다.) Json.stringify는, json형태의 변수를 string 형으로 변환 시켜주는것이다. Json데이터를 string으로 Controller에다가 보내게되면, Controller에서는 이 String이 Json형식이라는 것을..
[Springboot] mustache 와, 기초 예제 스프링부트에서는 기존에 사용하던 뷰 템플릿인 jsp가 아닌, mustache 사용을 권하고있다. 관련되서, 이것저것 설정하는 것과, controller에서 주입 받은 모델을 사용하는 방법등을 포스팅한다. 우선 제공하는 템플릿이기 때문에,scr/resource/templates 하위에 둔다. 기본적으로 프로젝트 생성하면 생기는 경로이구, 해당 경로를 사용한다. 우선 머스테치와 유사하게 타임리프나 프리마커 등 템플릿들이 있는데, 머스테치의 장점은 아래와 같다. - 문법이 다른 템플릿보다 심플하다. - 로직 구현이 불가하여, view만의 역할을 보장합니다. - 인텔리제이 무료버전에서도 플러그인을 지원한다고하는데, 저는 프로젝트를 여러개 띄워놓고 개발하는게 편해서, 이클립스를 사용합니다. 컨트롤러에서 view로..
스프링 부트 vs 스프링 스프링 부트와 스프링의 차이 간단하게 추후 공부용으로 정리를 해보자 1. 불필요한 설정? 개발자가 설정할 부분이 줄어든다 Spring 은 xml 지옥과도 같은, web.xml 부터 servlet.xml applicationContext.xml 등과같은 필터, 리스터, 디펜던시 설정 팩토리설정 뷰 리졸버 설정 버전 설정을 다 일일히 해줘야한다. 하지만 spring boot는 버전관리도 스프링부트가 해주기 때문에 호환되는 라이브러리에 대한 종속성 버전 같은걸 개발자가 신경쓸 필요가 없다. starter 의존성 한줄로 많은걸 자동 설정해준다. 2. 내장형 톰캣을 사용한다. 스프링부트는 내장형 톰캣을 사용하고있어서 별도 톰캣설정을 하지않아도 바로 서버를 실행해서 코드를 짤수있다. 또한 환경설정 및 인프라적인 요..
DispatcherServlet이란? 스프링에서 Log로 보면 제일 많이 보이는 DispatcherServlet 이 존재한다. 해당 서블릿은 뭐하는 녀석일까???? 1. FrontController 해당 스프링에서 제일 앞단에서 받는 컨트롤러이다. 사용자가 지정해놓은 컨트롤러 보다 먼저받아서, Controller로 뿌려준다. 이 계층으로 응답을 받고 처리를 진행하는데, 쉽게 말해서 dispatcher servlet 이 받고, filter intercepter controller라고 생각하면 된다. 필터는 보안이나, 인코딩에 대한 것이라서, 내부 Servlet 전에 막아준다. 그다음에는 intercepter 인데, Controller 수행전, 수행후 특정 패턴 등에 적용이 가능하다. DispatcherServlet 은 Controller 의 ..
@RequestBody,ResponseBody,Requestparam 등등 제일 많이 쓰는 어노테이션중 하나인 View에서 컨트롤러 전달 방법에 대한 어노테이션에 대한 기초 지식 공부의 필요성이 생겼다. 완전히 이해하지 않고, 사용하다 보니까, 헷갈려서 삽질을 할때가 발생한다... (이럴 때 매운 화남) 무튼, View Controller 간의 데이터 전달을 돠주는 어노테이션에 대한 완벽한 이해를 위해 포스팅한다. @ResponseBody @Controller에서는, String 으로 return 을 시키면, view로 Return을 하게 된다. @RestController의 경우, data에 대한 response를 주는 Rest-api 에 대한 사용이 목적이므로 @ResponseBody 가 자동으로 붙는다. 그러나, Controller에서는 그렇지않다. 데이터를 넘겨주는 경우..
@RequstMapping 기본구조 및 사용 방법 예제 흔히 Controller 에서 볼수있는... 가장 흔한 메소드와 , url 연결 매핑 메소드! @RequestMapping, @GetMapping , @PostMapping 차이가 뭐지....? 사실 차이는 없다. /test 나 /test2 나, 방식은 같다. 결국 @GetMapping 은 RequestMapping에 대해서 길게 쓰기 귀찮을때 바로가기 처럼 연결해주는 방법이다. @RequestMapping 에 대해서 조금 더 공부해보자!! 우선 기본 구조 이렇게 value 와 method를 통해 방식을 결정 받는 방법이다. 단, value 에서는 단순 url에 대한 고정도 가능하지만, URL 패턴에 대한 정의도 가능하다 예를 들면 이런식으로 value 를 두게 되면, test2하위에 아무거나 해도 다 ..
@AutoWired 사용 이유, 의존성 개념 우연히 프로젝트 하다가, 스프링 버전을 높였다. 1버전에서 3버전대로.... 그래서 어노테이션을 사용하다가, 문득 사용하고있는 @AutoWired 에 대해 탐구.... 스프링 핵심 기술중 하나인... @AutoWired 에 대해서 포스팅... 1.필드 injection 우선 @AutoWired 는 인터페이스 관련 선언할때 재 구현한 녀석을 주입해주는 어노테이션이다. 예를 들어서 PromotionService interface를 사용하는 PromotionServiceImpl 이 있다고 치자. @AutoWired PromotionService promotionservice 이렇게 쓰게 되면, promotionservice 변수에는 PromotionService 인터페이스를 재정의한 impl 파일에 대한 변수..
AOP(Aspect Oriented Programming) 개념 정리 1. AOP : 스프링의 3대 요소중 하나, 관점 지향 프로그래밍이라는 뜻... 스프링은 프록시 기반 AOP, 빈 AOP 설정 등에 특화 쉽게 말하면, 중복 사용되는 코드들을 재사용 가능하게, 자바로 치면 class화 시켜서 코딩하는 것 - 가장 쉬운 예, Log print , 트랜잭션 처리, 시간처리 Aspect는 포인트 컷 + 어드바이스의 결합이다. 포인트 컷 : 어떤 메소드에 대해 어드바이스 메소드 : 어떤 메소드를 실행?? 약간 인터셉터랑 비슷하다고 생각한다. 물론, Request 단이냐 Servlet 단이냐에 따라 다르긴하지만... 동작시점설명 Before 메소드 실행 전에 동작 After 메소드 실행 후에 동작 After-returning 메소드가 정상적으로 실행된 후에 동작 After-thr..