분류 전체보기
-
[Spring Boot] 스프링부트에서 JSP 사용하는 법Server/Spring Boot 2020. 8. 18. 13:43
이번 글에서는 스프링 부트에서 jsp를 사용하기 위해 설정하는 법에 대해서 정리하려 한다. spring-boot-starter-web 에 포함된 tomcat 은 JSP 엔진을 포함하고 있지 않다. jsp 파일은 Springboot 의 templates 폴더안에서 작동하지 않는다. 그래서 jsp를 적용하기 위해서는 아래와 같은 의존성을 추가해야한다. pom.xml javax.servlet jstl org.apache.tomcat.embed tomcat-embed-jasper build.gradle dependencies { implementation 'javax.servlet:jstl' implementation "org.apache.tomcat.embed:tomcat-embed-jasper" } 기본적으..
-
[Spring Boot] 클라이언트 REST API 응답보내기Server/Spring REST API 2020. 8. 18. 00:03
이번 글에서는 서버가 클라이언트에게 응답을 할 때 JSON 형태로 주는 것을 정리해보려 한다. 간단히 포스트맨으로 로그인 요청을 했을 때 로그인 성공, 실패의 응답을 주는 예제를 정리해보자. (HTTP 상태코드, 비밀번호 암호화, JWT에 대해서는 정리하지 않겠다.) HTTP 상태코드는 아래링크를 참고하자. https://developer.mozilla.org/ko/docs/Web/HTTP/Status 먼저 최근에 클라이언트에게 응답을 할 때는 아래와 같은 JSON 형태로 주는 것이 일반적이다. { "status": 200, "message": "로그인 성공", "data": { "accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWRIjoib3..
-
[NodeJS] KAKAO BOOK OPEN API 사용하는 법Server/NodeJS 2020. 8. 14. 13:50
이번 글에서는 NodeJS를 이용해서 KAKAO OPEN 책 검색 API를 요청해보는 예제를 진행해보려 한다. (REST API 키는 발급받았다는 가정하에 글을 쓰도록 하겠다.) https://developers.kakao.com/docs/latest/ko/daum-search/dev-guide Kakao Developers 카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다. developers.kakao.com 위의 사이트에 들어가서 "책 검색" 부분을 찾아보자. 그러면 위와 같이 설명이 되어 있는 부분을 찾을 수 있을 것이다. 어떻게 호출을 해야 하는 것인지에 대해서 간략하게 살펴보자. 먼저 Parameter를 ..
-
[Spring Boot] ResponseEntity란 무엇인가?Server/Spring REST API 2020. 7. 30. 05:34
먼저 REST API가 무엇인지는 아래 블로그를 먼저 잘 읽어보자. https://meetup.toast.com/posts/92 REST API 제대로 알고 사용하기 : TOAST Meetup REST API 제대로 알고 사용하기 meetup.toast.com 1. ResponseEntity란? Spring Framework에서 제공하는 클래스 중 HttpEntity라는 클래스가 존재한다. 이것은 HTTP 요청(Request) 또는 응답(Response)에 해당하는 HttpHeader와 HttpBody를 포함하는 클래스이다. public class HttpEntity { private final HttpHeaders headers; @Nullable private final T body; } public..
-
[Spring] @MVC와 DispatcherServlet에 대해서Server/Spring MVC 2020. 7. 25. 01:45
DispatcherServlet란? 스프링 MVC는 DispatcherServlet의 등장으로 web.xml의 역할이 엄청나게 축소되었다. 예전에는 서블릿을 URL로 활용하기 위해서는 반드시 web.xml에 등록하여 사용했지만 이제는 DispatcherServlet이 해당 어플리케이션으로 들어오는 요청을 모두 핸들링해준다. 기존 방식은 요청 URL당 Serlvet을 생성하고 그에맞는 Controller에게 맵핑이 되어 요청을 보내주는 코드를 하나하나 작성해야 했다. DispatcherServlet은 하나의 Servlet에서 모든 요청을 받아들여 그에 맞는 Controller로 보내주는 역할을 한다. 그리고 @MVC에서 DispatcherServlet가 담당하는 역할이 무엇인지 정리해보자. ① 클라이언트가..
-
[Spring] 스프링 AOP 개념, 프록시 기반 AOP, @AOP 정리Server/Spring 2020. 7. 24. 15:20
스프링 AOP (Aspect Oriented Programming)란? AOP는 Aspect Oriented Programming의 약자로 관점 지향 프로그래밍이라고 불린다. 그리고 흩어진 Aspect를 모듈화 할 수 있는 프로그래밍 기법이다. 위의 A, B, C 클래스에서 동일한 색깔의 선들의 의미는 클래스들에 나타나는 비슷한(중복되는) 메소드, 필드, 코드들이 나타난다는 것이다. 이러한 경우 만약 클래스 A에 주황색 부분을 수정해야 한다면 B, C 클래스들에 주황색 부분에 해당하는 곳을 찾아가 전부 코드를 수정해야 한다. (유지보수가 쉽지 않다) 이런식으로 반복되는 코드를 흩어진 관심사 (Crosscutting Concerns)라 부른다. 이러한 문제를 AOP는 Aspect를 이용해서 해결한다. 사진..
-
[Spring] @Autowired란 무엇인가?Server/Spring 2020. 7. 21. 14:54
저번 글에서 IoC 컨테이너와 빈(Bean)등록에 대해서 정리해보았다. 다시 정리하자면 의존성 주입과 빈 등록은 다른 것인데 일단 IoC 컨테이너에 빈으로 등록이 되어야 의존성 주입을 할 수 있다. 저번 글에서는 setter와 생성자를 통해서 Inversion of Control로 의존성을 주입하였는데 이번에는 Autowired라는 어노테이션을 이용해서 의존성을 주입하는 것에 대해 알아보려 한다. 1. Autowired란 필요한 의존 객체의 “타입"에 해당하는 빈을 찾아 주입한다. 생성자 setter 필드 위의 3가지의 경우에 Autowired를 사용할 수 있다. 그리고 Autowired는 기본값이 true이기 때문에 의존성 주입을 할 대상을 찾지 못한다면 애플리케이션 구동에 실패한다. 그러면 Autow..
-
[Spring] 스프링 의존성 주입(DI) 이란?Server/Spring 2020. 7. 21. 09:07
Spring 삼각형 스프링의 기반이 되는 설계 개념을 표현한 것 스프링이란 IoC와 AOP를 지원하는 경량의 컨테이너 프레임워크이다. 1. DI(Dependency Injection)이란? Inversion of Control 이라고도 하는 의존 관계 주입(Dependency Injection)이라고도 하며, 어떤 객체가 사용하는 의존 객체를 직접 만들어 사용하는게 아니라, 주입 받아 사용하는 방법이다. (new 연산자를 이용해서 객체를 생성하는 것이라고 생각하면 된다) 장난감들은 베터리가 있어야 움직일 수 있으며 즉 베터리에 의존하고 있다. 장난감들에게 베터리를 넣어주는 것을 의존성 주입이라고 생각하면 좋다. 자바코드로 예시를 들어보자 베터리의 일체형인 경우에는 생성자에서만 의존성을 주입해주는 상황이라..