본문 바로가기

Java/Spring

(5)
Gson을 왜 사용하는 걸까? 흔히 사용할 수 있는 org.json 라이브러리가 존재한다. 하지만 gson 라이브러리를 많이들 사용한다. 왜 사용할까? 뭐가 다른걸까? 단순히 직렬화 기능이 있는 게 전부 아닌가? 이런 의문을 가지고 Gson을 사용하는 이유를 찾아봤다. 다양한 블로그를 봤지만 명확한 답변을 한 곳은 딱히 없었다. 해답은 너무나 당연하게도, gson 깃허브에 적혀있었다. Gson 깃허브 1. 왜 GSON을 사용하는가? 더보기 There are a few open-source projects that can convert Java objects to JSON. However, most of them require that you place Java annotations in your classes; something th..
@RequestBody는 왜 쓰는 걸까? SI 프로젝트를 진행하면서 가장 많이 본 어노테이션은 @RequestBody였다. 그런데 왜 굳이 이것만 사용할까 의문이 들었다. spring-mvc-showcase 예제에서는 @ModelAttribute도 당당하고 소개되어 있었는데 말이다. 직접 디버깅하며 과정을 알아가는 게 최고라곤 하는데... 아직 출퇴근에 익숙하지 않아서 그런지 퇴근 후 디버깅할 여력은 아직은 없어서 블로그를 찾아봤다. (참고 블로그는 아래에 적어놨음) @RequestBody JSON, XML, text -> HttpMethodConverter -> 자바 객체 역직렬화로 객체를 생성함 리플렉션을 활용하여 생성자를 거치지 않음 직렬화를 사용하려는 클래스는 기본 생성자가 필수임 단, @JsonProperty, @JsonAutoDete..
Spring MVC 공식 문서 읽어보기 [1] *. 정확하지 않은 내용이 있을 수 있음...! 0. 공식 문서에서 다루는 내용 Spring MVC View Technologies CORS Support WebSocket Support 1. DispatcherServlet Spring MVC 모델은 Front Controller 모델을 기반으로 설계됨. (= DispatcherServlet) DispatcherServlet의 구성은 java config 혹은 web.xml을 기반으로 함. AbstractAnnotationConfigDispatcherServletInitializer 기반으로 context 구성하기 public class MyWebApplicationInitializer implements WebApplicationInitializer ..
Spring MVC 공식 문서 읽어보기 [2] 2. Filters Form Data Forwarded Headers Shallow ETag CORS 2.1. Form Data Browsers는 form data를 HTTP GET 또는 HTTP POST 방식으로만 제출함. Non-Browser client는 PUT, PATCH, DELETE도 사용함. spring-web 모듈의 FormContentFilter 클래스는 PUT, DELETE, PATCH 요청을 가로챔. 요청의 body에서 form data를 읽음. 그리고 해당 정보를 ServletRequest 타입으로 Wrapping 함. Wrapping한 정보는 ServletRquest.getParameter*() 메서드를 통해서 활용할 수 있음. 2.2. Forwarded Headers 요청이 Pr..
MyBatis... 그 놈은 도대체 무엇인가...? JPA를 공부하기 전, 레거시 코드가 많고 SI 분야에서 아직도 많이 사용한다는 MyBatis부터 공부를 시작했다. 이놈은 특이할 것 없다. 백엔드 서버와 데이터베이스 서버 간 연결을 돕는 녀석이다. MyBatis를 들여다보면, 자주 목격하지만 정체를 알 수 없었던 Mapper라는 녀석의 정체를 드디어 알게 된다. Mapper는 자바 프로그램에서 XML 파일을 활용하여 SQL문을 작성하는 녀석이었던 것이다. 실질적으로 어떻게 동작하는지 해당 SQL문을 보면 알 수 있기 때문에 직관적이지만... 규모가 커지면 커질수록 그 SQL문을 XML 파일 내부에 적어야 한다고? 이런 생각이 바로 드는 그런 녀석이다. 게다가 간단한 쿼리문도 오로지 개발자가 전담해서 짜야하기 때문에 과거에 떠돌던 SI 개발자 = SQL..