Go, Vantage point
가까운 곳을 걷지 않고 서는 먼 곳을 갈 수 없다.
Github | https://github.com/overnew/
Blog | https://everenew.tistory.com/
이전 게시글에 이어서 Entity와 DTO 간의 변환 방법에 대해 소개하겠다. [Spring] DAO, DTO, Entity, 기본 계층 설계 계층 구조를 유지하기 위해서는 데이터베이스의 Entity와 DTO 간의 변환이 빈번히 일어나게 된다. 개발 초기 단계에서는 자주 클래스의 field들이 바뀌거나 추가된다. 이때 Entity와 DTO 간의 변환의 역활을 하는 기능은 field의 변동이 있을 때마다 계속 수정을 해주어야 한다. Entity의 종류가 한두개면 모르겠지만, 수십 개가 있다면 이러한 작업은 반복적일 뿐만 아니라 유지보수도 힘들다. 라이브러리 추가 이를 위해 자바 진영에서 사용하는 라이브러리가 MapStruct이다. https://mapstruct.org/ MapStruct – Java be..
* 김영한님의 스프링 MVC 1편 강좌를 수강하며 정리한 글입니다. * 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 - 인프런 | 강의 웹 애플리케이션을 개발할 때 필요한 모든 웹 기술을 기초부터 이해하고, 완성할 수 있습니다. 스프링 MVC의 핵심 원리와 구조를 이해하고, 더 깊이있는 백엔드 개발자로 성장할 수 있습니다., - www.inflearn.com 이전 글에서는 스프링에서 MVC 패턴에 대해 공부하였다. 이번에는 기능에 대해 알아보자. 기초 기능 활용 Welcome Page Jar 파일로 세팅한 스프링 부트에서는 /resource/static/index.html 파일을 Welcome Page(기본 페이지)로 만들어 준다. Logging 서버에서는 System.out 과 같이 항상 출력되는..
* 김영한님의 스프링 MVC 1편 강좌를 수강하며 정리한 글입니다. * 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 - 인프런 | 강의 웹 애플리케이션을 개발할 때 필요한 모든 웹 기술을 기초부터 이해하고, 완성할 수 있습니다. 스프링 MVC의 핵심 원리와 구조를 이해하고, 더 깊이있는 백엔드 개발자로 성장할 수 있습니다., - www.inflearn.com 이전 글에서는 프런트 컨트롤러와 어댑터 패턴을 적용해 보았다. 스프링 MVC 패턴은 프런트 컨트롤러의 역할을 DIspatcher Servlet가 한다. 지금까지 직접 구현해보았던 클래스들은 모두 Spring MVC가 지원하는 클래스로 대체가 가능하다. DispatcherServlet 스프링 MVC의 프런트 컨트롤러의 역할을 한다. Dispatc..
* 김영한님의 스프링 MVC 1편 강좌를 수강하며 정리한 글입니다. * 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 - 인프런 | 강의 웹 애플리케이션을 개발할 때 필요한 모든 웹 기술을 기초부터 이해하고, 완성할 수 있습니다. 스프링 MVC의 핵심 원리와 구조를 이해하고, 더 깊이있는 백엔드 개발자로 성장할 수 있습니다., - www.inflearn.com 이전 글에서는 MVC 패턴을 공부해 보았다. Front Controller 패턴 이번에는 공통된 로직을 먼저 수행하는 프런트 컨트롤러를 도입해보자. 프런트 컨트롤러도 하나의 서블릿으로 클라이언트의 모든 요청을 받고, 공통 로직 수행 후에 요청에 맞는 컨트롤러로 호출을 해준다. 따라서 더이상 모든 controller가 서블릿 객체일 필요가 없어진..
* 김영한님의 스프링 MVC 1편 강좌를 수강하며 정리한 글입니다. * 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 - 인프런 | 강의 웹 애플리케이션을 개발할 때 필요한 모든 웹 기술을 기초부터 이해하고, 완성할 수 있습니다. 스프링 MVC의 핵심 원리와 구조를 이해하고, 더 깊이있는 백엔드 개발자로 성장할 수 있습니다., - www.inflearn.com 이전 글에서는 서브릿에 대해 공부하였다. 이번에는 서블릿만으로 웹 서비스를 만든다고 생각해보자. 간단히 회원 목록을 조회 요청을 했을 때, 클라이언트에게 HTML로 응답한다면 모든 HTML 테그를 일일히 다 메시지 본문에 담아주어야 한다. PrintWriter w = response.getWriter(); w.write(""); w.write(..
* 김영한님의 스프링 MVC 1편 강좌를 수강하며 정리한 글입니다. * 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 - 인프런 | 강의 웹 애플리케이션을 개발할 때 필요한 모든 웹 기술을 기초부터 이해하고, 완성할 수 있습니다. 스프링 MVC의 핵심 원리와 구조를 이해하고, 더 깊이있는 백엔드 개발자로 성장할 수 있습니다., - www.inflearn.com 이전 글에서는 서버와 쓰레드 풀에 대해서 살펴보았다. @WebServlet 스프링은 서블릿을 위해 @ServletComponentScan 어노테이션을 지원한다. 적용된 클래스의 하위 패키지를 모두 탐색해 서블릿을 자동 등록해준다 따라서 스프링 프로젝트의 루트 패키지의 애플리케이션 클래스에 적용하면 모든 서블릿이 자동 등록될 것이다. 서블릿 스캔..
* 김영한님의 스프링 MVC 1편 강좌를 수강하며 정리한 글입니다. * 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 - 인프런 | 강의 웹 애플리케이션을 개발할 때 필요한 모든 웹 기술을 기초부터 이해하고, 완성할 수 있습니다. 스프링 MVC의 핵심 원리와 구조를 이해하고, 더 깊이있는 백엔드 개발자로 성장할 수 있습니다., - www.inflearn.com 이전 글에서는 스프링 빈의 스코프에 대해서 다루워 보았다. 웹 서버와 어플리케이션 서버 웹 서버는 HTML, CSS, JS와 같은 정적인 파일을 그대로 HTTP 기반으로 응답해주는 서버를 의미한다. 이러한 서버는 내부 로직이 구동되지 않기 때문에 트래픽 내성이 강하다. 웹 어플리케이션 서버(WAS, Web Application Server) 동..
* 김영한님의 스프링 핵심원리 기본편 강좌를 수강하며 정리한 글입니다. * 스프링 핵심 원리 - 기본편 - 인프런 | 강의 스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다., - 강의 소개 | 인프런... www.inflearn.com 이전 글에서는 빈의 라이프 사이클에 대해 다루었다. 스코프란 프로그래밍 언어에서 변수의 생존 유효 범위이다. 스프링 빈에는 여러 가지 스코프가 있다. 싱글톤 스코프 컨테이너의 시작에서 종료까지 유지되는 가장 넓은 범위의 스코프로, default로 적용되는 스코프. 하나의 인스턴스를 끝까지 유지해주는 싱글톤 패턴이 적용되는 스코프이다. @Test void singletonBeanFind(){ //컨테이너 생성 시점..
* 김영한님의 스프링 핵심원리 기본편 강좌를 수강하며 정리한 글입니다. * 스프링 핵심 원리 - 기본편 - 인프런 | 강의 스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다., - 강의 소개 | 인프런... www.inflearn.com 이전 글에서는 의존 관계 주입의 여러 가지 방법에 대해 알아보았다. 서버에는 커넥션 풀이란 개념이 있다. 연결 풀 - 위키백과, 우리 모두의 백과사전 ko.wikipedia.org 간단히 설명하자면 요청이 올 때마다 커넥션 객체를 만들어서 클라이언트와 연결하기보단, 미리 일정량을 풀에 만들어 두고 요청이 오면 연결해주는 식이다. 연결이 끝나면 객체를 제거하기보단 초기화시켜 다시 반환한다. 이러한 작업에는 객체의 ..
* 김영한님의 스프링 핵심원리 기본편 강좌를 수강하며 정리한 글입니다. * 스프링 핵심 원리 - 기본편 - 인프런 | 강의 스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다., - 강의 소개 | 인프런... www.inflearn.com 이전 글에서는 컴포넌트와 스캔을 이용한 자동 빈 등록에 대해 알아보았다. 이번에는 컴포넌트를 이용해서 의존 관계를 주입하는 방법에 대해 알아보자. 생성자 주입 @AutoWired가 생성자에 적용되어 있다면, 빈에서 찾아 주입을 해준다. 생성자는 생성 시점에 단 한번 호출되므로 불변, 필수 의존 관계 주입을 위해 사용한다. 외부에서 임의 수정할 수 있는 방법을 막으므로써 불변을 보장해준다. @Autowired pu..