Go, Vantage point
가까운 곳을 걷지 않고 서는 먼 곳을 갈 수 없다.
Github | https://github.com/overnew/
Blog | https://everenew.tistory.com/
* 김영한님의 스프링 DB 1편 강좌를 수강하며 정리한 글입니다. * 스프링 DB 1편 - 데이터 접근 핵심 원리 - 인프런 | 강의 백엔드 개발에 필요한 DB 데이터 접근 기술을 기초부터 이해하고, 완성할 수 있습니다. 스프링 DB 접근 기술의 원리와 구조를 이해하고, 더 깊이있는 백엔드 개발자로 성장할 수 있습니다., - 강의 www.inflearn.com 이전 글에서는 커넥션 풀과 DataSource에 대해 정리하였다. 데이터베이스 트랜잭션 데이터베이스 트랜잭션 - 위키백과, 우리 모두의 백과사전 ko.wikipedia.org 트랜잭션은 ACID를 보장해야한다. ACID는 데이터베이스의 트랜잭션이 안전하게 수행되는 것을 보장하기 위한 성질이다. 트랜잰션에서 실패한 작업이 하나라도 있다면 commit..
* 김영한님의 스프링 DB 1편 강좌를 수강하며 정리한 글입니다. * 스프링 DB 1편 - 데이터 접근 핵심 원리 - 인프런 | 강의 백엔드 개발에 필요한 DB 데이터 접근 기술을 기초부터 이해하고, 완성할 수 있습니다. 스프링 DB 접근 기술의 원리와 구조를 이해하고, 더 깊이있는 백엔드 개발자로 성장할 수 있습니다., - 강의 www.inflearn.com 이전 글에서는 JDBC 자바 표준 인터페이스에 대해 정리하였다. 커넥션 풀 저번 글에서는 커넥션 풀과 비슷한 커넥션 풀에 대해서는 간단히 다뤄 보았다. 클라이언트의 요청마다 서비스 로직은 커넥션을 조회한다. DB 드라이버가 DB 서버와 커넥션(TCP/IP 연결)을 수행하고, DB 서버에 세션을 생성해 커넥션을 반환한다. 단순히 회원의 조회만 수행하..
* 김영한님의 스프링 DB 1편 강좌를 수강하며 정리한 글입니다. * 스프링 DB 1편 - 데이터 접근 핵심 원리 - 인프런 | 강의 백엔드 개발에 필요한 DB 데이터 접근 기술을 기초부터 이해하고, 완성할 수 있습니다. 스프링 DB 접근 기술의 원리와 구조를 이해하고, 더 깊이있는 백엔드 개발자로 성장할 수 있습니다., - 강의 www.inflearn.com JDBC (Java Database Connectivity) 클라이언트가 직접 데이터베이스에 접근하지 않고, 애플리케이션 서버를 거쳐 DB의 데이터를 받아오게 된다. 애플리케이션 서버는 DB서버와 연결을 해두고, SQL과 같은 DB 구문을 통해 요청을 한 데이터를 받아오게 된다. 과거의 수많은 DB들은 모두 사용법이 달랐고 애플리케이션 서버는 DB..
* 김영한님의 스프링 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(){ //컨테이너 생성 시점..