본문 바로가기

Web

(10)
[ MyBatis ] MyBatis Framework란? 1. MyBatis란? 1.1 등장 배경 기존의 JDBC에서는 아래 예시와 같이 수많은 Boilerplate Code와 SQL문이 프로그래밍 코드에 섞여 코드를 복잡하게 하고 사용 및 유지 보수가 어려웠습니다. public class Test { public static void main(String[] args) { Connection conn = null; try { // 0. JDBC 드라이버 로딩 Class.forName("com.mysql.cj.jdbc.Driver"); // 1. 접속 conn = DriverManager.getConnection(url, id, pw); // 2. Statemenet 객체 생성 Statement stmt = conn.createStatement(); Strin..
[ Spring ] ⑦ 메이븐과 스프링 STS 1. 아파치 메이븐 (1) 메이븐(Maven) 정의 : "프로젝트 구조와 내용을 기술하는 선언적 접근 방식의 오픈 소스 빌드 툴" 프로젝트 종속 라이브러리들과 그 라이브러리에 의존하는 Dependency 자원까지 관리. 프로젝트 전반의 리소스 관리와 설정 파일 그리고 이와 관련된 표준디렉터리 구조를 처음부터 일관된 형태로 구성하여 관리할 수 있음 (2) 메이븐 설치하기 maven.apache.org에 접속한 후 Download를 클릭한다. apahce-maven-version-vin.zip 파일을 다운로드한다 원하는 폴더에 다운로드 한 압축을 해제하고 경로를 복사한다 환경 변수 설정에서 MAVEN_HOME을 생성하고 MAVEN_HOME/bin을 PATH에 등록한다. 터미널에서 mvn 명령으로 설치가 잘되..
[ Spring ] ⑥ 스프링 애너테이션 기능 # 1. 스프링 애너테이션이란? (1) 스프링 애너테이션(Annotation) 기존에 XML에서 하던 빈 설정을 애너테이션을 이용해서 자바 코드에서 설정하는 방법 기능이 복잡해짐에 따라 XML에서 설정하는 것보다 유지 보수가 유리하다 현재 애플리케이션 개발 시 XML 설정 방법과 애너테이션 방법을 혼합해서 사용한다. (2) 스프링 애너테이션 제공 클래스 브라우저 URL 요청 처리 애너테이션 관련 클래스 클래스 기능 DefaultAnnotationHandlerMapping 클래스 레벨에서 @RequestMapping을 처리합니다. AnnotationMethodHandlerAdapter 메소드 레벨에서 @RequestMapping을 처리합니다. (3) 태그 기능 이 태그를 사용해 패키지 이름을 지정하면 애플..
[ MyBatis ] ③ 마이바티스 XML 설정 파일 스프링-마이바티스 연동 관련 XML 파일 설정하기 (1) 마이바티스 관련 스프링 라이브러리 mybatis-3.0.5.jar mybatis-spring-1.0.1.jar ojdbc6.jar (2) 스프링에서 사용할 빈을 생성하는데 필요한 XML 파일 Web.xml에서 MyBatis 설정파일 등록 Web.xml 파일 앞부분에서 context-param에서 action-mybatis.xml 설정파일 저장. 전역적으로 공유되는 루트 스프링 컨테이너의 정의. contextConfigLocation /WEB-INF/spring/action-mybatis.xml org.springframework.web.context.ContextLoaderListener encodingFilter org.springframewor..
[ MyBatis ] ② 마이바티스의 기능과 SqlSession 클래스 마이바티스 기능 (1) 마이바티스 프레임워크의 특징 SQL 실행 결과를 자바 빈즈 또는 Map 객체에 매핑해 주는 Persistence 솔루션으로 관리한다. 즉 SQL을 소스 코드가 아닌 XML로 분리한다. SQL문과 프로그래밍 코드를 분리해서 구현한다. 데이터소스(DataSource) 기능과 트랜잭션 처리 기능을 제공한다. (2) DataSource 기능 DataSource기능을 사용하려면, 1) action-mybatis.xml에서 이렇게 정의할 수 있고, /WEB-INF/config/jdbc/jdbc.properties ... 2) mybatis.dtd를 이용하여 modelConfig.xml의 configuration 안에서 태그에서 태그를 정의할 수 있다 (3) SQL문과 프로그래밍 코드 분리 m..
[ Spring ] ⑤ 스프링 JDBC 기능 # 스프링 JDBC (1) 스프링에서 제공하는 JDBC 특징 기존 JDBC의 장점과 단순함을 유지하면서 단점 보완 간결한 API뿐만 아니라 확장된 JDBC의 기능도 제공 Note) 실제 개발에서 진행할 때는 스프링 JDBC 기능보다는 마이바티스나 하이버네이트 같은 데이터베이스 연동 관련 프레임워크 사용 (2) 스프링 JDBC 설정 파일 파일 설명 web.xml ContextLoaderListener를 이용해 빈 설정 XML 파일들을 읽어 들입니다. action-servlet.xml 스프링에서 필요한 여러가지 빈을 설정합니다. action-dataSource.xml 스프링 JDBC 설정에 필요한 정보를 설정합니다. jdbc.properties 데이터베이스 연결 정보를 저장합니다. action-service..
[ Spring ] ④ 스프링 MVC 기능 # 스프링 프레임워크 MVC 특징 (1) 스프링에서 지원하는 MVC 기능의 특징 모델2 아키텍처를 지원 스프링과 다른 모듈과의 연계가 용이 타일즈(tiles)나 사이트메시(sitemesh)같은 View 기술과의 연계가 용이 태그 라이브러리를 톻해 message 출력, theme 적용 그리고 입력 폼을 보다 쉽게 구현 가능 (2) 스프링 프레임워크의 구조 ...더보기 (3) 스프링 프레임워크 MVC 구성 요소 구성 요소 설명 DispatcherServlet 클라이언트의 요청을 전달받아 해당 요청에 대한 컨트롤러를 선택하여 클라이언트의 요청을 전달한다. 또한 컨트롤러가 반환한 값을 View에 전달하여 알맞은 응답을 생성. HandlerMapping 클라이언트가 요청한 URL을 처리할 컨트롤러를 지정함. Co..
[ Spring ] ③ AOP # 1. AOP란? (1) AOP(Aspect-Oriented Programming); 관점 지향 프로그래밍 AOP란? 횡단 관심사(cross-cutting concern)의 분리를 허용함으로써 모듈성을 증가시키는 것이 목적인 프로그래밍 패러다임이다. 관점 지향 프로그래밍을 이용해서 주 기능과 보조기능을 분리해서 메소드에 적용. AOP를 적용해야하는 이유 주기능을 위해서 보조 기능(로깅, 보안, 트랜재션) 들을 일일히 구현해야 한다. 규모가 있는 웹 애플리케이션일 경우 클래스의 메소드마다 이런 작업을 일일히 수작업으로 하기에서는 시간이 많이 걸리고 소스 코드도 복잡해진다. 즉, 유지보수의 어려움이 있다. # 2. 스프링에서 AOP 기능 사용하기 (1) AOP 관련 용어 용어 설명 aspect 구현하고자 ..