스프링 파일 업로드 처리 - MultipartResolver 스프링이 제공하는 MultiPartResolver 가 바로 CommonsMultipartResolver, 여러개의 파일 한꺼번에 업로드 가능 Commons FileUpload API를 이용해서 Multipart를 처리해준다. 연습1. 다중 파일 업로드 1. pom.xml에 라이브러리 추가 1 2 3 4 5 6 7 8 9 10 11 12 commons-fileupload commons-fileupload 1.2.1 commons-io commons-io 1.4 Colored by Color Scripter cs 2. servlet-context.xml에 multipartResolver 이름으로 빈 등록 CommonsMultipartResolver..
타일즈 (Tiles) 화면의 레이아웃 기능을 제공하는 오픈 소스 라이브러리 자주 사용되는 header, footer와 같은 정보를 한 곳에 모아둔 프레임워크 페이지 레이아웃을 단순하게 구현 가능함 공통된 레이아웃 사용 -> 유지관리 용이함 화면 구성 기본 레이아웃 템플릿 정의, 상속을 통해 대부분 구조를 재사용 가능한 기능 제공 설정 파일을 통한 통합 관리를 통해 확장성 있고 일관된 페이지 구성 관리 연습1 1. 타일즈 관련 라이브러리 pom.xml에 추가 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 org.apache.tiles tiles-core 2.2.2 org.apache.tiles tiles-jsp 2.2.2 org.apache.tiles tiles-servlet 2.2..
Maven 1. Maven 1)라이브러리 관리 + 빌드 툴 2)프로젝트 구조와 내용을 기술하는 선언적 접근 방식의 오픈 소스 빌드 툴 3)편리한 Dependent Library 관리 -의존성 라이브러리 관리(pom.xml) 4)프로젝트 종속 라이브러리들과 그 라이브러리에 의존하는 Dependency 자원까지 관리할 수 있음 5)여러 프로젝트에서 프로젝트 정보나 jar 파일들을 공유하기 쉬움 6)빌드 프로세스를 일관되게 가져갈 수 있음 7)프로젝트 전반의 리소스 관리와 설정 파일 그리고 이와 관련된 표준 디렉토리 구조를 처음부터 일괄된 형태로 구성하여 관리할 수 있음. =>오픈 소스 라이브러리들은 컴파일 할 때 합쳐져 하나의 기능을 이룸 =>컴파일보다 더 많은 과정을 거치게됨. =>이런 과정을 빌드라고 하..
스프링 어노테이션(Annotation) 1. 스프링 어노테이션(Annotation) -기존 XML에서 빈 설정 => 어노테이션을 이용해 자바 코드에서 설정 -XML에서 설정하는 것보다 유지 보수에 유리 -현재 애플리케이션 개발에서는, XML 설정 방법 + 어노테이션 방법 혼합해서 사용 2. 스프링 어노테이션 제공 클래스 1) Handler Mapping : dispatcher servlet으로 들어온 요청을 각각의 Controller로 위임 처리 스프링 프레임워크에서 제공하는 Handler Mapping 클래스 DefaultAnnotaionHandlerMapping 클래스 레벨에서 @RequestMapping을 처리함 BeanNameUrlHandlerMapping 요청 URL과 빈의 이름을 비교 -> 일..
트랜잭션 하니 예전에 오라클 배울 때 적어두었던 필기가 생각나서..ㅎㅎ 트랜잭션은 역시 계좌이체가 대표적인 예시인가... 트랜잭션(Transaction) 1.트랜잭션(Transaction) 1)여러 개의 DML 명령문을 하나의 논리적인 작업 단위로 묶어서 관리 2)All 또는 Nothing 방식으로 작업을 처리 -> 작업의 일관성 유지 3)웹 애플리케이션에서 Service 클래스의 각 메서드가 애플리케이션의 단위 기능 수행 2.단위 기능의 예 1)게시글 조회 시 해당 글을 조회하는 기능과 조회 수를 갱신하는 기능 2)쇼핑몰에서 상품 주문 시 주문 상품을 테이블에 등록하는 기능과 주문자의 포인트를 갱신하는 기능 3)은행에서 이체 시 이체자의 잔고를 갱신하는 기능과 수신자의 잔고를 갱신하는 기능 3. 스프링..
의존성 주입 1. 의존성 주입 1)개발자가 직접 코딩을 통해 컴포넌트(클래스)에 부여하는 것이 아니라 컨테이너가 연관 관계를 직접 규정하는 것. 2)각 클래스들의 변경이 자유로워짐(loosely coupled, 약한 결합) 3) 예 -쇼핑몰의 경우 상품 관리, 주문 관리, 회원 관리, 게시판 관리 등 구성. -서로 관련 있는 기능들은 강하게 결합(tightly coupled)하고, 관련이 없는 기능들은 약하게 결합(loosely coupled)해야 좋은 프로그램. 2. 의존성 주입 장점 1)코드를 단순화할 수 있다. 2)애플리케이션 더 쉽게 유지 및 관리 가능 3)기존 구현 방법은 개발자가 직접 코드 안에서 객체의 생성과 소멸을 제어했지만 의존성 주입은 객체의 생성, 소멸과 객체간의 의존 관계를 컨테이너..
필요한 용어 정리 1)의존성 주입(DI, Dependency Injection) -클래스 객체를 개발자가 코드에서 생성하지 않고 프레임워크가 생성하여 사용하는 방법 2)제어 역행(IoC, Inversion of Control) -서블릿이나 빈 등을 개발자가 코드에서 생성하지 않고 프레임워크가 직접 수행하는 방법 3)관점 지향(AOP, Aspect-Oriented Programming) -핵심 기능 외 부수 기능들을 분리 구현함으로써 모듈성을 증가시키는 방법 IoC IoC (Inversion of Control) : 제어의 역전 -인스턴스 생성 ~ 소멸까지의 인스턴스 생명 주기 관리를 개발자가 아닌 컨테이너가 대신 해줌.(역전) -컨테이너 역할을 해주는 프레임워크에게 제어하는 권한을 넘겨서 개발자의 코드가..