일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 사용자예외클래스생성
- cursor문
- 정수형타입
- GRANT VIEW
- 한국건설관리시스템
- 컬렉션프레임워크
- 추상메서드
- 오라클
- 인터페이스
- exception
- 예외미루기
- 다형성
- 어윈 사용법
- 자동차수리시스템
- 집합_SET
- oracle
- 제네릭
- 객체 비교
- NestedFor
- 메소드오버로딩
- abstract
- 대덕인재개발원
- 참조형변수
- 자바
- EnhancedFor
- 환경설정
- Java
- 컬렉션 타입
- 생성자오버로드
- 예외처리
- Today
- Total
목록Java/Java_Spring Framework part1 (21)
거니의 velog
4. 마이바티스 이용해 회원 정보 CRUD 실습하기 * 이번에는 앞에서 실습한 selectList() 메서드 외에 마이바티스에서 제공하는 다른 메서드를 사용해 보자. 마이바티스의 SqlSession 클래스에서 제공하는 CRUD를 실행할 때 많이 사용되는 메서드를 다음의 표로 정리했다. * 게시판을 포함해 대부분의 프로그램이 갖고 있는 Create(생성), Read(읽기), Update(갱신), Delete(삭제) 기능을 CRUD 라고 부른다. 메서드 기능 List selectList(query_id) id에 대한 select 문을 실행한 후 여러 레코드를 List로 반환한다. List selectList(query_id, 조건) id에 대한..
1. 마이바티스란? * 애플리케이션의 규모가 작을 때는 JDBC를 이용해 충분히 개발할 수 있었다. 그러나 인터넷 사용자가 폭발적으로 증가하고 애플리케이션의 기능이 복잡해짐에 따라 기존의 JDBC로 개발하는 데는 한계가 드러나게 되었다. * 기존 JDBC로 개발할 경우 반복적으로 구현해야 할 SQL 문도 많을 뿐만 아니라 SQL 문도 복잡하다. 따라서 자연스럽게 마이바티스(MyBatis)나 하이버네이트와 같은 데이터베이스 연동 관련 프레임워크가 등장하게 되었다. 이번에는 마이바티스 프레임워크에 대해 알아볼 것이다. 우선 마이바티스를 왜 사용하게 되었는지 그 등장 배경부터 알아보자. * 기존의 JDBC를 연동하려면 다음과 같은 과정을 거쳐야 한다. connection -> Statement 객체 생성 ->..
1. 스프링 JDBC로 데이터베이스와의 연동 설정하기* JDBC(Java Database Connectivity)는 자바 데이터 접근 기술의 근간이라 할 정도로 대부분의 개발자가 쉽게 이해할 수 있어 많이 사용하는 데이터 엑세스 기술이다. 그러나 시간이 지남에 따라 SQL 문이 지나치게 복잡해지면서 개발이나 유지관리에 어려움이 생기기 시작했다. 특히 Connection 객체 같은 공유 리소스를 제대로 처리해 주지 않으면 버그를 발생시키는 원인이 되곤 했다. * 스프링에서 제공하는 JDBC는 이러한 기존 JDBC의 장점과 단순함을 유지하면서 단점을 보완했다. 간결한 API뿐만 아니라 확장된 JDBC의 기능도 제공한다.* 물론 실제 개발을 진행할 때는 스프링 JDBC 기능보다는 마이바티스나 하이버네이트 같은..
4. MultiActionController 이용해 회원 정보 표시하기 * 이번에는 로그인창이 아닌, 회원 정보 입력창에서 회원 정보를 입력한 후 요청 시 전송된 회원 정보를 표시해 보자. 1. 회원 정보를 표시하기 위해 action-servlet.xml 을 다음과 같이 수정한다. 회원 정보 요청 URL에 대해 처리할 메서드를 추가한 후 /test/memberInfo.do로 요청하면 요청명과 같은 memberInfo() 메서드를 호출한다. ... login memberInfo ... 2. UserController 클래스를 다음과 같이 수정한다. 회원 가입창에서 전송된 회원 정보를 가져온 후 ModelAndView를 이용해 회원 정보를 바인딩하여 memberInfo.ksp로 전달하는 memberInfo(..
3. MultiActionController 이용해 스프링 MVC 실습하기 * SImpleUrlController를 이용해 요청을 처리하려면 각 요청명에 대해 다시 스프링의 Controller 인터페이스를 구현한 각각의 컨트롤러 클래스를 만들어야만 한다. 하지만 MultiActionController를 이용하면 여러 요청명에 대해 한 개의 컨트롤러에 구현된 각 메서드로 처리할 수 있어 편리하다. * 이번에는 MultiActionController를 이용해 스프링 MVC를 실습해 보자. 우리가 실습에 사용할 클래스들은 다음 표와 같다. 클래스 설명 MultiActionController URL 요청명으로 바로 컨트롤러를 지정해서 사용할 수 있다. PropertiesMethodNameResolver URL ..
1. 스프링 프레임워크 MVC의 특징 * 스프링 프레임워크는 웹 애플리케이션 개발에 필요한 여러 가지 기능을 미리 만들어서 제공한다. MVC 기능도 그중 하나이다. 스프링에서 제공하는 기능 사용법을 익히고 나면 MVC 기능을 일일이 만들 필요 없이 편리하게 MVC 기능을 사용할 수 있다. * 스프링에서 지원하는 MVC 기능의 특징은 다음과 같다. - 모델2 아키텍처를 지원한다. - 스프링과 다른 모듈과의 연계가 쉽다. - 타일즈(tiles)나 사이트메시(sitemesh) 같은 View 기술과의 연계가 쉽다. - 태그 라이브러리를 통해 message 출력, theme 적용 그리고 입력 폼을 보다 쉽게 구현할 수 있다. * 스프링에서는 애플리케이션 개발 시 많이 사용되는 모델2 기반의 MVC 기능을 제공하므..
1. 관점 지향 프로그래밍의 등장 * 가끔 어떤 사이트가 해킹을 당해 피해를 입었다는 소식을 듣곤 한다. 그러다 보니 요즘은 웹 애플리케이션 개발 시 해킹에 대비한 보안 기능 구현은 필수가 되고 있다. 그리고 모든 웹 애플리케이션은 로깅 기능을 적용해 사용자의 접속 내역을 로그로 기록한다. 그 외 트랜잭션, 예외처리, 이메일 통보 기능은 모든 웹 애플리케이션에서 공통으로 사용하는 기능이다. 따라서 웹 애플리케이션에 주기능을 추가할 때마다 앞에서 언급한 공통 기능도 일일이 구현해 주어야 한다. 하지만 이는 결국 배보다 배꼽이 더 큰 결과를 초래하게 된다. 스프링에서는 이런 문제를 관점 지향 프로그래밍(AOP, Aspect Oriented Programming)으로 해결할 수 있다. * 예를 들어 살펴보자...
(2) 생성자를 이용한 DI 기능 * 이번에는 생성자 주입 방식으로 DI를 실습해 보자. 1. com.spring.ex02 패키지를 만들고 다음과 같이 클래스를 추가한다. 2. person.xml을 다음과 같이 작성한다. 태그를 이용해 id가 personService1인 빈을 생성하고 태그를 이용해 생성자 호출 시 생성자 매개변수로 태그의 값을 전달하여 속성을 초기화한다. 이처럼 PersonServiceImpl 클래스의 인자가 한 개인 생성자를 이용하여 name 속성에 태그 값이 주입된다. 두 번째 태그에서는 빈 생성 시 인자가 두 개인 생성자를 호출하면서 두 개의 값을 전달하여 각각의 속성을 초기화한다. 즉, PersonServiceImpl 클래스의 인자가 두 개인 생성자를 이용해 name과 age 속..
2. 의존성 주입 실습하기 * 이번에는 의존성 주입의 두 방법인 setter를 이용한 방식과 생성자를 이용한 방식을 각각 실습을 통해 확인해 보자. 먼저 setter를 이용해 DI를 실습하는 방식부터 알아보자. (1) setter를 이용한 DI 기능 * 다음 그림은 setter를 이용해 실습할 클래스들의 계층 구조이다. * 자바 프로젝트에서 DI 기능을 실습하려면 우선 스프링 관련 라이브러리의 패스를 설정해 주어야 한다. 1. 이클립스 상단에서 New > Project... 를 선택한 후 Java Project를 선택하고 Next를 클릭한다. 2. 프로젝트 이름으로 pro19를 입력하고 Finish를 클릭한다. 3. 이클립스에서 자바 프로젝트를 생성한다. 자바 프로젝트 생성 시 이클립스의 Perspect..
* 자바와 같은 객체 지향 프로그래밍 언어에서 클래스는 특정 기능을 수행하는 부품 역할을 한다. 우리가 살아가는 현실 세계에서도 어떤 부품을 사용하다가 이상이 있거나 오래 되면 다른 부품으로 교체해서 사용한다. 마찬가지로 애플리케이션에서도 사용자의 요구 사항에 따라 클래스 기능을 변경하거나 다른 클래스 기능으로 대체해야 하는 경우가 자주 생긴다. 이러한 상황에서 좀 더 수월하게 대체할 수 있게 도입된 기능이 바로 의존성 주입(DI)과 제어 역행(IoC)이다. 1. 의존성 주입하기 * 지금까지 우리가 프로그래밍을 할 때는 어떤 한 클래스가 다른 클래스의 기능을 사용하려면 당연히 개발자가 직접 코드에서 사용할 클래스의 생성자를 호출해서 사용했다. 즉, 사용할 클래스와 사용될 클래스의 관계는 개발자에 의해 직..