Server
-
[Spring Boot] 스프링부트에서 Mybatis 사용하기Server/MyBatis 2020. 8. 19. 02:32
먼저 Mybatis를 얘기하기 전에 JAVA의 ORM이 무엇이 있는지 어떤 것인지에 대해서 정리해보자. ORM(Object Relational Mapping)이란? ORM에서 Object는 객체지향 언어의 객체를 의미한다. Relational은 관계형 데이터베이스(Relational Database)의 데이터를 의미한다. Mapping이 의미하는 것은 객체지향 언어의 객체와 관계형 데이터를 서로 변환해 준다는 것이다. 관계형 데이터베이스에서 조회한 데이터를 Java 객체로 변환하여 리턴해 주고, Java 객체를 관계형 데이터베이스에 저장해 주는 라이브러리 혹은 기술을 말한다. Java ORM 기술로 유명한 것은 JPA, Hibernate가 있다. Mybatis는 JDBC로 처리하는 상당 부분의 코드와 파..
-
[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..