23.1 마이바티스란? 애플리케이션 규모가 커지면서 JDBC로 개발하는데 한계(SQL문이 복잡, 연동 작업이 반복됨)가 생기며 마이바티스나 하이버네이트 같은 데이터 연동 관련 프레임워크가 등장 마이바티스를 사용하면 복잡한 SQL문도 SQL Developer 같은 도구에서 SQL문을 사용하는 것처럼 표준화된 방법으로 사용 가능 SQL 실행 결과를 자바 빈즈나 Map 객체에 매핑해주는 Persistence 솔루션으로 관리 => SQL을 소스코드가 아닌 XML로 분리 SQL문과 프로그래밍 코드를 분리해서 구현 datasource 기능과 트랜잭션 처리 기능을 제공 각 기능별로 실행할 SQL문을 xml파일(이하 SqlMap.xml이라 칭함)에 작성한 후 SqlMapConfig.xml에 등록 실행하고 싶은 sql문..

22.1 스프링 JDBC로 데이터베이스와의 연동 설정하기 기존 JDBC(Java Database Connectivity)의 장점을 유지하고 단점을 보완한 스프링 JDBC는 간결한 API 뿐만 아니라 확장된 JDBC의 기능도 제공 실제 개발할 때는 스프링 JDBC 기능보다 마이바티스나 하이버네이트 같은 데이터베이스 연동 관련 프레임워크를 사용하지만 스프링 JDBC의 기본적인 기능을 알아두면 좋음 파일 설명 web.xml ContextLoaderListener를 이용해 빈 설정 XML 파일들을 읽어드림 action-dataSource.xml 스프링 JDBC 설정에 필요한 정보를 설정 jdbc.properties 데이터베이스 연결 정보를 저장 action-service.xm..

21.1 스프링 프레임워크 MVC의 특징 모델2 아키텍쳐를 지원 스프링과 다른 모듈과의 연계가 쉬움 타일즈나 사이트메시 같은 View 기술과의 연계가 쉬움 태그 라이브러리를 통해 message 출력, theme 적용 그리고 입력 폼을 보다 쉽게 구현 가능 +) 9. view의 결과를 DispatcherServlet으로 보냄 +) 10. DispatcherServlet은 최종 결과를 브라우저로 전송 - 각 구성요소의 설명 구성 요소 설명 DispatcherServlet 클라이언트의 요청을 전달받아 해당 요청에 대한 컨트롤러를 선택하여 클라이언트의 요청을 전달, 또한 컨트롤러가 반환한 값을 View에 전달하여 알맞은 응답을 생성 HandlerMapping ..

20.1 관점 지향 프로그래밍의 등장 모든 웹 애플리케이션에서 공통으로 사용하는 보조기능(ex. 로깅, 트랜잭션, 예외 처리, 이메일 통보 기능 등)은 일일이 구현하는 번거로움을 관점 지향 프로그래밍(AOP, Aspect Oriented Programming)으로 해결한다. AOP : 메서드 안의 주기능과 보조 기능을 분리한 후 선택적으로 메서드에 적용해서 사용하는 것 AOP를 사용하면 전체 코드에 흩어져 있는 보조 기능을 하나의 장소에 모아서 관리할 수 있음 보조 기능을 자신이 원하는 주기능에 선택적으로 적용할 수 있음 20.2 스프링에서 AOP 기능 사용하기 여러가지 AOP 관련 용어 용어 설명 aspect 구현하고자 하는 보조 기능 advice aspect의 실제 구현체(클래스). 메서드 호출을 기..
객체 지향 프로그래밍 언어에서 클래스는 특정 기능을 수행하는 부품 역할을 함 사용자의 요구 사항에 따라 클래스 기능을 변경하거나 다른 클래스 기능으로 대체해야 하는 경우에 더 수월하게 대체할 수 있게 도입된 기능이 의존성 주입(DI)과 제어 역행(IoC) 19.1 의존성 주입하기 (before) 어떤 한 클래스가 다른 클래스의 기능을 사용 => 개발자가 직접 코드에서 사용할 클래스의 생성자를 호출. (before) 사용할 클래스와 사용될 클래스의 관계 => 개발자의 의해 직접 코드에서 부여 (now) 의존성 주입으로 컨테이너가 연관 관계를 직접 규정 코드에서 직접적인 연관 관계가 발생하지 않으므로 각 클래스들의 변경이 자유로워짐 약한 결합(한 기능을 변경해도 다른 기능의 변화는 거의 x) 좋은 프로그램은..
모델2 기반으로 개발하면 장점도 있지만 새로운 애플리케이션을 개발할 때마다 공통기능까지도 일일이 처음부터 다시 개발해야 한다는 단점이 있음 일반적인 웹 애플리케이션에서 많이 사용하는 기능은 미리 만들어서 제공하고 그 외에 필요한 부분만 추가 및 수정하여 표준화를 추구하여 해결한다. 지금 대부분의 웹 애플리케이션은 각 기능을 개발자가 일일이 구현하기 보단 표준화된 방법으로 개발한다. 이를 가능하게 해주는 것이 스프링 같은 프레임워크 환경이다! 18.1 프레임워크란? 어떤 것을 구성하는 구조 또는 뼈대 // 기능을 미리 클래스나 인터페이스 등으로 만들어 제공하는 반제품 개발자는 여기에 자신의 상황에 맞게 변형 및 추가해서 사용한다. 일정한 기준에 따라 개발이 이루어지므로 개발 생산성과 품질이 보장된 애플리케..
답글 쓰기 구현 - 그냥 글쓰기와 같은데 parentNO만 (세션에 저장해서) 넘겨주는 것만 다름 - view.jsp에서 replyForm.do로 현재글 번호를 parentNO라는 이름으로 바인딩 - replyForm.do에서는 parentNO를 넘겨 받아 세션에 저장 후 replyForm.jsp로 넘겨줌 - replyForm.jsp에서 글 작성 후 addReply.do로 넘겨주고, 여기서 parentNO를 포함해 VO객체를 만들어 service에 넘겨줌 - service에서는 새 글 추가한 메서드였던 dao.insertNewArticle을 호출해서 저장 >> 나는 그냥 service에서 addArticle호출 함 - 다시 컨트롤러에서 돌아와서도 새 글 추가와 기능 수행(사진 업로드 등) - view.j..
17.4 모델2로 답변형 게시판 구현하기 - 글 목록이 나열되고, 부모 글에 대한 답변 글(자식 글)이 계층 구조로 나열되어있고 답변 글에 대한 답변 글도 허용되는 게시판을 만들어보자 - 각 글에는 작성자 ID(id)가 있는데 이것은 회원 테이블의 ID컬럼에 대해 외래키를 속성으로 가진다. - parentNO 컬럼은 답변이 달린 부모글의 번호를 나타냄, 0이면 자신이 부모글임 -구현 절차 1. 게시판 기능 테이블을 생성하고 데이터 넣기 2. model(service,dao) - view(jsp) - controller(servlet) 구현 1.게시판 기능 테이블을 생성하고 데이터 넣기- sql(오라클) 코드 DROP TABLE t_Board CASCADE CONSTRAINTS; create table t..
17.1 웹 애플리케이션 모델 - 웹 애플리케이션을 개발할 때 일일이 처음부터 새로 개발하는 것이 아니라 기존에 웹 애플리케이션 개발 방법이나 방식을 따름 - 따라서 지금의 웹 애플리케이션 개발은 표준화 소스 구조(=웹 애플리케이션 모델)를 만들어 진행 - 웹 애플리케이션 모델의 종류에는 모델1과 모델2 방식이 있음 - 비즈니스 로직 작업(ex. db연동)과 그 작업 결과를 나타내주는 작업을 동일한 JSP에서 수행(앞서 했던 실습들) - 모든 클라이언트의 요청과 비즈니스 로직 처리를 JSP가 담당 - 유지보수가 어려움, 코드 재사용성이 떨어짐 - 웹 애플리케이션의 각 기능(클라이언트의 요청 처리, 응답 처리, 비즈니스 로직 처리)을 분리해서 구현 - 각 기능이 서로 분리되어 있어 개발 및 유지보수가 쉽고..
Comment