전체 글 73

2021-03-10 일지3

* Web API - REST API 아키텍처 스타일을 완벽하게 구현하지 못할 경우 이를 Web API라고 부름 * 관련 내용 - DispatcherServlet은 컨트롤러 메소드를 실행하고 해당 메소드가 리턴한 객체를 변환시키려고 함 - 변환을 시킬 때 메시지 컨버터(MessageConverter)를 사용하게 되는데 메시지 컨버터가 Bean으로 등록되어 있지 않으면 오류 발생 - 보통 Web API는 JSON, XML과 같은 데이터를 표현하기에 알맞은 형태로 결과를 출력함 * @RestController - Spring 4에서 Rest API 또는 Web API를 개발하기 위해 등장한 어노테이션 - 이전 버전의 @Controller와 @ResponseBody를 포함 * MessageConverter -..

IT/Java 2021.03.10

2021-03-10 일지2

* REST 구성 > 자원(Resource): 자원은 Data, Meta Data, HATEOAS로 나뉨 > 행위(Verb): HTTP Method로 표현 > 표현(Representations) * REST 특징 1) Uniform Interface (유니폼 인터페이스) - 구성 요소(클라이언트, 서버 등) 사이의 인터페이스는 균일(uniform)해야 함 인터페이스를 일반화함으로써, 전체 시스템 아키텍처가 단순해지고, 상호 작용의 가시성이 개선되며, 구현과 서비스가 분리되므로 독립적인 진화가 가능해짐 2) Stateless (무상태성) - 클라이언트와 서버의 통신에는 상태가 없어야 함 모든 요청은 필요한 모든 정보를 담고 있어야 함 요청 하나만 봐도 바로 뭔지 알 수 있으므로 가시성이 개선되고, task..

IT/Java 2021.03.10

2021-03-10 일지1

* 서비스(Service) 객체 - 비지니스 로직(Business Logic)을 수행하는 메소드를 가지고 있는 객체 - 보동 하나의 비지니스 로직은 하나의 트랜잭션으로 동작 * 트랜잭션(Transaction) - 하나의 논리적인 작업 - 트랜잭션의 4가지 특징 > 원자성(Atomicity) : 전체가 성공하거나 전체가 실패하는 것 > 일관성(Consistency) > 독립성(Isolation) > 지속성(Durability) : 트랜잭션이 성공적으로 완료되었을 경우, 결과는 영구적으로 반영되어야 함 * JDBC 프로그래밍에서 트랜잭션 처리 방법 - DB에 연결된 후 Connection 객체의 setAutoCommit 메소드에 false를 파라미터로 지정 - 입력, 수정, 삭제 SQL이 실행을 한 후 모두..

IT/Java 2021.03.10

2021-03-09 일지2

* MVC (Model-View-Controller) - Model: 뷰가 렌더링하는데 필요한 데이터 (ex. 사용자가 요청한 상품 목록이나, 주문 내역) - View: 웹 애플리케이션에서 실제로 보이는 부분이며, 모델을 사용해 렌더링함 (ex. JSP, JSF, PDF, XML 등으로 결과 표현) - Controller: 사용자의 액션에 응답하는 컴포넌트 모델을 업데이트하고, 다른 액션을 수행함 * DispatcherServlet - 프론트 컨트롤러 (Front Controller) - 클라이언트의 모든 요청을 받은 후 이를 처리할 핸들러에게 넘기고 핸들러가 처리한 결과를 받아 사용자에게 응답 결과를 보여줌 - 여러 컴포넌트를 이용해 작업을 처리함 * 요청 선처리 작업시 사용된 컴포넌트 - org.sp..

IT/Java 2021.03.09

2021-03-09 일지1

* JDBC Template - org.springframework.jdbc.core 에서 가장 중요한 클래스 - 리소스 생성, 해지를 처리해서 - 리소스 생성, 해지를 처리해서 연결을 닫는 것을 잊어 발생하는 문제 등을 피할 수 있도록 함 - 스테이먼트(Statement)의 생성과 실행을 처리 - SQL조회, 업데이트, 저장 프로시저 호출, ResultSet 반복 호출 등을 실행 - JDBC 예외가 발생할 경우 org.spring.framework.dao 패키지에 정의되어 있는 일반적인 예외로 변환 * DTO(Data Transfer Object) - 계층간 데이터 교환을 위한 자바 빈즈 - 여기서 계층은 컨트롤러 뷰, 비지니스 계층, 퍼시스턴트 계층을 의미 - 일반적으로 DTO는 로직을 가지고 있지 ..

IT/Java 2021.03.09

2021-03-08 일지1

* 컨테이너(Container) - 컨테이너는 인스턴스의 생명주기를 관리함 - 생성된 인스턴스들에게 추가적인 기능을 제공함 * IoC - Inversion of Control의 약어 / inversion의 사전적 의미: '도치, 역전' - 보통 IoC를 제어의 역전이라고 번역함 - 개발자는 프로그램의 흐름을 제어하는 코드를 작성함, 그런데 이 흐름의 제어를 개발자가 하는 것이 아니라 다른 프로그램이 그 흐름을 제어하는 것을 IoC라고 말함 * DI - Dependency Injection의 약자로, 의존성 주입이라는 뜻을 가지고 있음 - 클래스 사이의 의존 관계를 빈(Bean) 설정 정보를 바탕으로 컨테이너가 자동으로 연결 * Spring에서 제공하는 IoC/DI 컨테이너 - BeanFactory: Io..

IT/Java 2021.03.08

2021-03-06 일지1

* Spring Framework - 엔터프라이즈 급 어플리케이션을 구축할 수 있는 가벼운 솔루션이자, 원-스탑-숍(One-Stop-Shop) > 여기서, 원-스탑-숍(One-Stop-Shop): "모든 과정을 한꺼번에 해결하는 상점" - 원하는 부분을 가져다 사용할 수 있도록 모듈화가 잘 되어있음 [약 20개의 모듈] - IoC 컨테이너 - 선언적으로 트랜잭션을 관리할 수 있음 - 완전한 기능을 갖춘 MVC Framework를 제공함 - AOP 지원 - 스프링은 도메인 논리 코드와 쉽게 분리될 수 있는 구조를 가짐 * AOP와 Instrumentation - spring-AOP: AOP 얼라이언스(Aliance)와 호환되는 방법으로 AOP를 지원함 - spring-aspects: AspectJ와의 통합..

IT/Java 2021.03.06

2021-03-05 일지3

* EL(Expression Language): 표현 언어 - JSP의 scope에 맞는 속성 제공 - 집합 객체에 대한 접근 방법 제공 - 수치 연산, 관계 연산, 논리 연산자 제공 - 자바 클래스 메소드 호출 기능 제공 - 표현 언어만의 기본 객체 제공 * 표현 언어의 표현 방법 - 문법: "${expr}" [여기서, expr: 표현 언어가 정의한 문법에 따라 값을 표현하는 식] - 예제: ${sessionScope.member.id}님 환영합니다. - 표현 언어는 JSP의 스크립트 요소(스크립트릿, 표현식, 선언부)를 제외한 나머지 부분에서 사용될 수 있으며, 표현식보다 편리하게 값을 출력할 수 있음 * 객체 접근 규칙 - 문법: "${.}" > 표현 1이나 표현 2가 null이면 null을 반환 ..

IT/Java 2021.03.05

2021-03-05 일지2

* scope (4가지) - Application [Most Visible], Session, Request, Page [Least Visible] * Page scope - PageContext 추상 클래스를 사용 - JSP 페이지에서 pageContext 라는 내장 객체로 사용 가능 - forward가 될 경우 해당 Page scope에 지정된 변수는 사용할 수 없음 - 사용방법은 Application scope나 Session scope, request scope와 같음 - 마치 지역변수처럼 사용된다는 것이 다른 Scope들과 다름 - jsp에서 pageScope에 값을 저장한 후 해당 값을 EL표기법 등에서 사용할 때 사용 지역 변수처럼 해당 jsp나 서블릿이 실행되는..

IT/Java 2021.03.05

2021-03-05 일지1

* HttpServletRequest, HttpServletResponse - WAS는 웹브라우저로부터 Servlet 요청을 받으면, > 요청할 때 가지고 있는 정보를 HttpServletRequest 객체를 생성하여 저장 > 웹브라우저에게 응답을 보낼 때 사용하기 위하여 HttpServletResponse 객체를 생성 > 생성된 HttpServletRequest, HttpServletResponse 객체를 서블릿에게 전달 * HttpServletRequest - http 프로토콜의 request 정보를 서블릿에게 전달하기 위한 목적으로 사용 - 헤더정보, 파라미터, 쿠키, URI, URL 등의 정보를 읽어 들이는 메소드를 가지고 있음 - Body의 Stream을 읽어 들이는 메소드를 가지고 있음 * H..

IT/Java 2021.03.05