Web Development/부스트코스 - Back-End(Java)
-
[Back End] Argument ResolverWeb Development/부스트코스 - Back-End(Java) 2020. 5. 28. 16:15
✔️ Argument Resolver (아규먼트 리졸버) ◾ 컨트롤러의 메소드 인자로 사용자가 임의의 값을 전달하는 방법을 제공하고자 할 때 사용된다. ◾ 예를 들어, 세션에 저장되어 있는 값 중 특정 이름의 값을 메소드 인자로 전달한다. ✔️Argument Resolver 실습 💾 HeaderInfo.java ◾ map이나 map을 상속받고 있는 객체는 스프링 내부적으로 사용하는 아규먼트 리졸버가 선처리하고 있기 때문에 직접사용할 수 없다. 따라서 map을 필드로 가지는 HeaderInfo 클래스를 작성한다. package kr.or.connect.guestbook.argumentresolver; import java.util.HashMap; import java.util.Map; public clas..
-
[Back End] InterceptorWeb Development/부스트코스 - Back-End(Java) 2020. 5. 28. 01:02
✔️ 인터셉터(Interceptor) ◾ Interceptor는 Dispatcher servlet에서 Handler(Controller)로 요청을 보낼 때, Handler에서 Dispatcher servlet으로 응답을 보낼 때 동작한다. ◾ Filter는 클라이언트 요청이 들어올 때, 클라이언트에게 응답을 할 때 동작한다. ◾ Spring MVC 동작 과정 클라이언트 요청이들어온다. Dispatcher servlet은 선처리할 것이 존재하면 처리한다. (Common Service) 그다음 Handler Mapping을 통해서 어떤 핸들러가 동작해야하는지 결정한다. Dispatcher servlet이 Handler를 수행할 때 Handler 인터셉터를 거친다. 이후 View 리졸버를 통해 해당하는 Vie..
-
[Back End] 상태유지기술 - SessionWeb Development/부스트코스 - Back-End(Java) 2020. 5. 18. 15:37
✔️ 웹에서의 상태 유지 기술 ◾ HTTP 프로토콜은 상태 유지가 안되는 프로토콜이다. - 클라이언트가 이전에 무엇을 했고, 지금 무엇을 했는지에 대한 정보를 가지고 있지 않다. - 웹 브라우저(클라이언트)의 요청에 대한 응답을 하고 나면 해당 클라이언트와의 연결을 지속하지 않는다. ◾ 클라이언트의 상태 정보 유지를 위해 Cookie와 Session 기술이 등장했다. ✔️ Session (세션) 📋 정의 ◾ 클라이언트 별로 서버에 저장되는 정보이다. 📋 사용 방법 ◾ 웹 클라이언트가 서버측에 요청을 보내게 되면 서버는 클라이언트를 식별하는 session id를 생성한다. ◾ 서버는 session id를 사용해서 key와 value를 이용한 저장소인 HttpSession을 생성한다. ◾ 클라이언트는 서버측..
-
[Back End] 상태유지기술 - CookieWeb Development/부스트코스 - Back-End(Java) 2020. 5. 11. 23:35
✔️ 웹에서의 상태 유지 기술 ◾ HTTP 프로토콜은 상태 유지가 안되는 프로토콜이다. - 클라이언트가 이전에 무엇을 했고, 지금 무엇을 했는지에 대한 정보를 가지고 있지 않다. - 웹 브라우저(클라이언트)의 요청에 대한 응답을 하고 나면 해당 클라이언트와의 연결을 지속하지 않는다. ◾ 클라이언트의 상태 정보 유지를 위해 Cookie와 Session 기술이 등장했다. ✔️ Cookie (쿠키) 📋 정의 ◾ 클라이언트 단에 저장되는 작은 정보의 단위이다. ◾ 클라이언트에서 생성하고 저장될 수 있고, 서버 단에서 전송한 쿠키가 클라이언트에 저장될 수 있다. 📋 사용 방법 ◾ 서버에서 클라이언트의 브라우저로 전송되어 사용자 컴퓨터에 저장한다. ◾ 저장된 쿠키는 다시 해당하는 웹 페이지에 접속할 때, 브라우저에..
-
[Back End] Layered Architecture and Rest ControllerWeb Development/부스트코스 - Back-End(Java) 2020. 4. 6. 14:56
✔️ Controller의 중복요소 ◾ 웹 페이지는 중복으로 개발되는 요소가 존재한다. ex) 웹 페이지 어디서나 보이는 로그인 상태 정보 ◾ 2개의 URL이 있다. 두 URL은 다르지만, 각 URL에 해당하는 웹 페이지를 보여주기 위해서 중복으로 실행되는 부분이 존재한다. 이 중복을 없애려면 어떻게 해야할까? 중복되는 부분을 별도의 객체 또는 메서드로 분리하면된다. ◾ 예를들어, 쇼핑몰에서 '문의 게시판'에서도 '회원 정보'를 보여주고, '상품 목록 보기'에서도 '회원정보'를 보여줘야 한다면 회원정보를 읽어오는 코드는 어떻게 해야할까? ◾ '문의 게시판'을 보여주는 컨트롤러와 '상품 목록 보기'를 보여주는 보여주는 컨트롤러를 각각 별도로 구현한다. ◾ '회원 정보'를 보여주는 것을 별도의 객체로 만들고..
-
[Back End] Spring MVCWeb Development/부스트코스 - Back-End(Java) 2020. 4. 3. 22:15
✔️ MVC ◾ MVC는 Model-View-Controller의 약자이다. ◾ Model : 모델은 뷰가 렌더링하는데 필요한 데이터이다. 예를들어 사용자가 요청한 상품 목록이나 주문내역이 이에 해당한다. ◾ View : 웹 애플리케이션에서 뷰는 실제로 보이는 부분이며, 모델을 사용해 렌더링을 한다. 뷰는 JSP, JSF, PDF, XML 등으로 표현한다. ◾ Controller : 컨트롤러는 사용자의 액션에 응답하는 컴포넌트이다. 컨트롤러는 모델을 업데이트하고, 다른 액션을 수행한다. ✔️ Spring MVC 1️⃣ DispatcherServlet ◾ 프론트 컨트롤러(Front Controller) ◾ 클라이언트의 모든 요청을 받은 후 이를 처리할 핸들러에게 넘기고 핸들러가 처리한 결과를 받아 사용자에..
-
[Back End] Spring JDBCWeb Development/부스트코스 - Back-End(Java) 2020. 3. 30. 22:05
✔️ Spring JDBC ◾ JDBC를 이용해서 프로그래밍을 하게 되면 반복적인 코드가 많이 발생한다. ◾ 반복적인 코드는 개발자의 생산성을 떨어뜨리는 주된 원인이다. ◾ 반복적인 JDBC의 모든 저수준 세부사항을 Spring JDBC가 처리해준다. ◾ Spring JDBC를 사용하여 개발자는 필요한 부분만 개발하면 된다. ◾ Spring JDBC 외에 JPA, MyBatis 등의 기술들이 존재한다. 1️⃣ Spring JDBC 패키지 ◾ org.springframework.jdbc.core - JdbcTemplate 및 관련 Helper 객체 제공 ◾ org.springframework.jdbc.datasource - DataSource를 쉽게 접근하기 위한 유틸 클래스, 트랜젝션매니져 및 다양한 D..
-
[Back End] Spring CoreWeb Development/부스트코스 - Back-End(Java) 2020. 3. 25. 19:20
Spring 자바 플랫폼을 위한 오픈 소스 애플리케이션 프레임워크이다. 엔터프라이즈급 애플리케이션을 구축할 수 있는 가벼운 솔루션이자 One-Stop-Shop 이다. 원하는 부분만 가져다 사용할 수 있도록 모듈화가 잘 되어 있다. IoC 컨테이너이다. 선언적으로 트랜잭션을 관리할 수 있다. 완전한 기능을 갖춘 MVC Framework를 제공한다. AOP를 지원한다. 스프링은 도메인 논리 코드와 쉽게 분리될 수 있는 구조로 되어 있다. Spring 프레임워크 모듈 스프링 프레임워크는 약 20개의 모듈로 구성되어 있다. 필요한 모듈만 가져다 사용할 수 있다. AOP 와 Instrumentation spring-AOP : AOP 얼라이언스(Alliance)와 호환되는 방법으로 AOP를 지원합니다. spring..