반응형

Servlet JSP MVC Spring 20

[Spring] REST API 기본

REST API.. 많이 들어본 내용이다. 몇년전 기업 시험에서도 본 내용으로 기억한다. 여기서 복습하고 Spring으로 간단한 예제 코드를 작성해보자 REST(Representational State Transfer)는 하나의 URI가 고유한 리소스를 처리하는 공통 방식이다. 우린 웹 페이지에서 /page/112 와 같은 주소를 본적이 있다. 이것은 page의 112번째 글을 의미한다. 전송 방식을 나타내는 method 속성의 값에 따라 리소스에 대한 추가 작업을 요청할 수 있다. 이 API는 많은 기업에서 사용하고 있다. 스프링 4버전에서는 @RestController 애너테이션으로 REST 방식의 데이터 처리를 지원한다. 새로운 스프링 프로젝트를 생성하고 pom.xml을 통해 스프링 버전을 업그레이..

게시판 프로젝트 - 본문 업데이트-

Tiles를 이용하여 페이지를 나타냈으며 해당 페이지에 우리가 개발한 목록창을 구현해본다. tiles_member.xml에 /member/listMember.do 로 요청했을때, 표시할 태그를 추가한다. name의 값은 URL 요청명에서 .do를 제외한 요청명과 일치해야 한다. 이전 포스팅 글을 보면 해당 내용이 있다. 아래 그림과 같이 작성한다. 이후, 브라우저에서 컨트롤러 요청 시 요청명에 대한 뷰이름을 가져온다. 그리고 ModelAndView 객체에 설정한 후 뷰리졸버를 반환하도록 한다. *코드 참조* 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 /pro27/src/main/java/com/myspring/pr..

게시판 프로젝트 - Tiles-

JSP에 타일즈를 적용하는 간단한 예시이다. JSP는 다루지 않았기 때문에 어떻게 설정하고 이루어지는지 간단하게 알아본다. 타일즈는 레이아웃을 다루기 위해 제공하는것으로 JSP 페이지 레이아웃을 위한 프레임워크이다. 페이지 레이아웃을 쉽고 단순하게 구현하고 공통된 레이아웃을 사용하므로 유지관리가 쉽다. 이를 적용하기 위해 pom.xml을 통해 쉽게 라이브러리에 설치할 수 있다. 그림과 같이 라이브러리가 설치된것을 확인할 수 있다. 다음으로 타일즈 관련 XML 파일을 설정한다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 classpath:tiles/*.xml Colored by Color Scripter cs 프로젝트의 spring/appServlet/servlet-context..

[Spring] 게시판 프로젝트

우리가 이제까지 진행한 게시판을 Spring으로 나타내보자. 이전의 장에서 프로젝트를 만들었고 마이바티스 프레임워크를 pom.xml을 이용해 설치했을 것이다. 우리는 아래와 같은 프로젝트를 만들어야 한다. Spring 프레임워크를 진행하면서 느낀건 복잡하다고 느겼다. 그래서 다시한번 확인하고 가자 pom.xml에서 추가한 마이바티스 라이브러리는 Maven Dependencies에서 확인할 수 있다. 그리고 lib에는 오라클 드라이버인 ojdbc6.jar이 포함된다. 오라클은 오픈소스가 아니므로 드라이버를 직접 다운로드하여 설치해야 한다. web.xml은 다른 설정 파일을 읽어 들이는 부분과 DispatcherServlet을 매핑하는 부분이 자동으로 만들어진다. 여기서는 action-mybartis와 se..

[Spring] 마이바티스 프레임워크, 애너테이션

Spring JDBC로 DB와의 연동 설정 sql문이 복잡해지면서 개발이나 유지관리에 어려움이 생기고 확장된 JDBC의 기능을 스프링에서 제공한다. 물론 JDBC보다는 마이바티스나 하이버네이트 같은 데이터베스 연동 관련 프레임워크를 사용하니 간단하게만 알아보고 간다. 나중에 Spring 프로젝트를 하게 되면 아래와 같은 JDBC 관련 설정 파일을 확인할 수 있다. File Description web.xml ContextLoaderListener를 이용해 빈 설정 xml 파일들을 읽음 action-servlet.xml 스프링에서 필요한 여러 가지 빈을 설정 jdbc.properties 데이터베이스 연결 정보 저장 action-service.xml 서비스 빈 생성을 설정 action-dataSource 스..

[Spring] Maven 설치와 STS 프로젝트 구조

Maven 설치 maven.apache.org 에서 다운로드 받을 수 있다. 해당 zip파일의 압축을 풀고 원하는 경로에 지정한다. 지정한 후, 환경 변수를 설정해야 한다. 시스템 변수에 MAVEN_HOME 이름으로 지정한 경로를 복사 붙여넣기하고 시스템 변수의 path설정에 %MAVEN_HOME%\bin 으로 해당 경로를 추가한다. 테스트는 명령 프롬프트 창에 'mvn' 을 입력했을때, 이렇게 나오면 성공인 것이다. STS설치는 이전 글을 참고하길 바란다. 메이븐은 프로젝트 구조와 내용을 기술하는 선언적 접근 방싣의 오픈 소스 빌트 툴이다. 이것을 사용하며 ㄴ프로젝트 종속 라이브러리들과 그 라이브러리에 의존하는 Dependency 자원까지 관리할 수 있다. 메이븐은 프로젝트 전반의 리소스 관리와 설정 ..

[Spring] 관점 지향 프로그래밍_ AOP

AOP 메서드 안의 주기능과 보조 기능을 분리한 후 선택적으로 메서드에 적용해서 사용하는 개념이다. 전체 코드에 흩어져 있는 보조 기능을 하나의 장소에 모아 관리할 수 있다. 또한 보조 기능을 자신이 원하는 주기능에 선택적으로 적용할 수 있으므로 코드가 단순해지고 가독성이 향상된다. 예를 들면 아래와 같다. 각각의 보조 기능을 미리 만들어 놓고 설정만 하여 각각의 주기능을 수행하는 메서드나 클래스에 선택적으로 보조 기능이 적용된다. 이제 간단하게 스프링 API를 이용하여 AOP를 구현해보자. 그 과정은 좀 복잡하다. 타깃(target) 클래스를 지정하고, Advice 클래스를 지정하고, 설정 파일에서 pointcut을 지정한다. 설정 파일에서 Advice와 Pointcut을 결합하는 Adviser를 설정..

[Spring] Spring framework_ 설치 및 개요_ 의존성주입(DI)

Spring Framework 스프링 프레임워크는 '자바 웹 어플리케이션' 개발을 위한 오픈 소스 프레임워크이다. 경량 프레임워크라고도 불린다. 이 스프링도 사용되는 여러 비어있는 클래스 객체를 스프링이 권한을 가지고 작업하며 아래의 특징을 가진다. 의존성 주입: 클래스 객체를 개발자가 코드에서 생성하지 않고 프레임워크가 생성하여 사용 제어 역행(IoC): 서블릿이나 빈 등을 개발자가 코드에서 생성하지 않고 프레임워크가 직접 수행 관점 지향: 핵심 기능 외 부수기능들을 분리 구현하여 모듈성을 증가시킴 위와 같은 특징이 있고 주요기능들로 MVC구현, DAO로 Context, Core 등의 기능들이 있다. 그럼 이전까지 작업했던 이클립스가 있는데 Spring Framework를 설피해보자. 최근에는 이클립스..

[MVC] 게시판 구현하기: 삭제기능, 답글기능

삭제하기 게시판의 글을 삭제할 때는 테이블의 글과 그 글의 자식 글 및 이미지도 함께 삭제해야 한다. 여기서 우리는 '삭제하기' 버튼을 클릭하면 글 번호에 따라 이와 관련된 모든 자식글들을 삭제한다. 물론 글에 함께있는 이미지 파일도 삭제할 것이다. 이를 위해, Controller 클래스에서 삭제하기 전에 삭제할 글 번호와 자식 글 번호를 목록으로 가져온다. 그다음에 글을 삭제한 후 글 번호로 이루어진 이미지 폴더까지 모두 삭제하는 과정을 거친다. 새로운 패키지에 이전에 했던 내용들인 4개의 클래스와 3개의 JSP파일을 복사, 붙여넣기한다. BoardController 클래스에 추가된 부분먼저 살펴보자. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22..

[MVC] 게시판 구현하기: 글 상세보기, 글 수정하기

이전 시간에 게시판을 조회하고 새 글을 추가하는것 까지 하였다. 이번에는 게시판의 글의 제목이 아니라 내용을 보고 그 내용을 수정하는 과정을 해보자. 글 상세보기 이 기능은 글 목록에서 글 제목을 클릭하면 새로운 창을 뛰어 글의 내용을 보여준다. 1) 글 제목을 클릭하여 /viewArticle.do?articleNP={글번호} 로 요청한다. 2) 컨트롤러는 전송된 글 정보를 조회하여 상세창을 포워딩한다. 3) 상세창을 통해 글 정보와 이미지 파일을 표시한다. 첨부 이미지를 위해 새로운 패키지를 만들어 클래스를 생성한다. 코드는 아래와 같다. FileDownloadController.java 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 2..

반응형