본문 바로가기

반응형

Spring Framework 개발 일지/Spring으로 게시판 만들기

(21)
FirstSpringBoard#5-3] 특정 게시글 조회 기능 구현 저번 시간에는 드디어 웹 페이지를 구현해보았습니다.스프링 컨트롤러의 코드 수를 보면 이전의 방식에 비해 획기적으로 줄어든 것을 확인할 수 있을거에요.스프링 MVC 컨트롤러에서는 command 객체를 이용해서 객체의 필드네임과 요청된 객체의 네임이 같다면 자동적으로setter를 이용해서 매핑해줍니다.그래서 이전에 많이 사용하셨을 User.serName( request.getParam("name") ) 이런 코드를 없애줍니다.사실 Jsp에서 사용하던 과 비슷하다고 볼 수도 있어요.오늘도 유익한 시간이 되었으면 좋겠습니다. 1. 특정 글 조회 기능저번 시간에 전체 글 목록을 불러와서 화면에 뿌려주는 기능을 구현했었죠.이제는 글을 선택하면 그 글의 내용을 불러오는 화면을 구현하겠습니다.화면은 아래와 같아요. 우..
FirstSpringBoard#5-2] 전체 글 조회 기능 구현 포스팅 제목이 FirstSpringBoard인데도 불구하고 여태 게시판 비슷한 것도 본적이 없었죠.많은 설정과 코딩을 하느라 고생하셨습니다.이제 드디어 view와 controller를 구현하면서 게시판을 눈으로 직접 볼 수 있으실거에요. 우선 메인 페이지를 구현해볼게요.프로젝트에서 아래 그림에 맞춰서 패키지와 파일을 생성해주세요. 아래는 home.html의 소스코드입니다. 부트스트랩으로 구현한 간단한 메인페이지입니다. 서버에 올려서 실행해주세요.성공적으로 실행되면 아래와같은 화면이 브라우저상에서 나타납니다.이제 전체 글 조회 기능을 구현할 겁니다.우선 화면이 어떻게 되는지 파악해야겠죠. 아래가 우리가 구현할 화면입니다. controller에서 데이터를 받아서 jsp파일에서 받은 데이터를 화면에 그려줄 것..
FirstSpringBoard#5-1] web.xml 설정과 presentation 레이어 용 설정 파일 생성. 웹 애플리케이션의 영역을 크게 두가지로 나눌 수 있습니다. 비즈니스 레이어(business layer)와 프레젠테이션 레이어(presentation layer)입니다. 비즈니스 레이어는 비즈니스 로직과 DB와 연동하는 부분입니다. 프레젠테이션 레이어는 사용자에게 보이는 부분과 사용자의 요청을 처리해주는 부분으로 나뉩니다. 우리는 이제까지 비즈니스 레이어를 구현한 거에요. 다음 시간부터는 프레젠테이션 레이어를 구현할게요. 출처: http://anomie7.tistory.com/24 [아노미7] 저번 시간에는 기본적인 비즈니스 로직을 모두 구현했어요. 웹 애플리케이션의 영역은 크게 두가지로 나뉘어요. 비즈니스 레이어(business layer)와 프레젠테이션 레이어(presentation layer)입니다...
FirstSpringBoard#4-2] 마이바티스(mybatis)의 매퍼 인터페이스(mapper Interface)를 스프링 컨테이너에 등록하기 저번 시간에는 sqlSessionTemplate를 root-context.xml이라는 설정 파일에 등록하고 @Autowired를 통해서 의존성을 주입받는 방법을 테스트해보았어요. 그러나 sqlSessionTemplate뿐만 아니라 우리가 설정했던 Mapper Interface도 스프링 컨테이너에 등록해서 애노테이션으로 주입 받을 수 있어요. 그 방법을 알아보고 설정 파일에 알맞게 DAO와 Service 클래스도 수정할 겁니다. root-context.xml에 아래 엘리먼트를 추가해주세요. 아래 그림을 보고 테스트 코드를 수정해서 실행하세요. DAO를 수정해주세요. 코드가 엄청나게 많이 줄어든 것을 확인할 수 있어요. public class BoardDAO { @Autowired BoardMapper bo..
FirstSpringBoard#4-1] 마이바티스(Mybatis)와 스프링 프레임워크(Spring FrameWork) 연동 안녕하세요. 이제 드디어 스프링 설정을 하게되었습니다. 포스팅 제목이 FirstSpringBoard인데 여태 진행 사항을 보면서 "스프링도 자바 코딩과 다를게 없잖아?"라고 의구심이 드셨을 수도 있어요. 이제 부터 본격적으로 스프링을 이용해서 프로젝트를 구현해나갈 겁니다. 우선 우리가 사용할 기능은 DI(Dependenxy Injection)입니다. 우리말로는 의존성 주입이라고 해요. BoardDAO에서 SqlSession이나 ServiceBoardImpl에서 BoardDAO의 객체를 생성해서 사용해 주잖아요. BoardDAO boardDAO = new BoardDAO() 이런 식으로요. 스프링 의존성 주입을 사용하면 new 키워드를 사용한 객체 생성없이 스프링에서 객체를 생성해서 변수에 주입을 해줍니다..
FirstSpringBoard#3-4] Service 인터페이스 구현 & 테스트 코드 수정 안녕하세요.저번 시간에 DAO를 직접 호출하는 방법보다 Service인터페이스와 구현 클래스를 이용해서 간접적으로 DB연동 메소드를 호출하는 것이 기능의 변경과 확장에서 더 유용하고 스프링의 AOP 기능을 적용하는 것이 더 좋다고 설명했었죠.그리고 클래스 다이어그램을 보여드리면서 직접 구현해보는 것을 추천해드렸어요.아마 타이핑하기 귀찮다고 느끼셨을 수도 있어요.이번시간에는 IDE의 기능을 적극 활용해서 인터페이스를 만들어서 변경사항을 반영할게요.IDE에서는 변수와 클래스의 자동완성기능을 제공합니다. 그리고 자바빈 규약에 맞게 getter와 setter 등을 만드는 기능도 지원하죠.이런 방법을 적극활용해서 오타와 타이핑하는 시간을 줄일 수 있습니다. 1. 우선 BoardDAO.java 파일을 열어주세요.그..
FirstSpringBoard#3-3] 수정, 삭제, 특정 게시물 조회 기능 구현 & Service 인터페이스 구현 안녕하세요. 오늘은 나머지 기능을 구현할게요.그리고 현재 테스트코드에서 DAO를 호출해서 비즈니스 로직을 처리하고 있습니다. 그러나 DAO를 바로 호출해서 비즈니스 로직을 처리하는 것은 기능의 확장이나 변화에 대해서 유연하게 대처하지 못하고 나중에 스프링의 AOP 기능을 적용하는데 문제가 있습니다. 그렇기 때문에 DAO를 추상화한 Service Interface를 만들고 Interface를 구현한 ServiceImpl 클래스를 만들어서 이 클래스에서 DAO를 호출하도록 할 것입니다. 과정은 이전과 동일해요. 1. Mapper.xml에 mapper 추가 2. mapper interface에 대응하는 메소드 추가3. DAO에서 DB연동 코드 추가4. 테스트 코드 작성 위와 같은 순서대로 진행됩니다. 나머지 ..
FirstSpringBoard#3-2] 프로젝트 과정 설명 & 비즈니스로직 구현하기(게시물 등록 하기) 아래 그림은 여태까지 진행한 프로젝트의 순서를 간단히 정리한 것입니다. 1. 프로젝트 계획-ERD는 데이터베이스 테이블에 관한 명세입니다. 테이블에 관한 정보과 테이블들간의 관계에 관한 정보가 담겨있어요. 프로젝트에 앞서서 필요한 데이터베이스 테이블를 설계한다고 생각하면 됩니다.-Mockup은 내가 구현할 애플리케이션의 UI를 설계하는 것입니다. 설계하면서 웹페이지 컴포넌트들의 동작들에 대해서 생각할 수 있고실제 비즈니스 로직 구성에 대해서 생각해 볼 수 있어요.-UML은 폭넓은 개념인데 대표적으로 시퀸스 다이어그램이나 클래스 다이어그램을 예로 들 수 있어요. 프로젝트 구성에서 객체들의 관계나 비즈니스 로직에서 객체들의 동작이 어떻게 되는지 정해진 형식으로 보여줍니다. 2. 프로젝트 생성입니다.-디렉토리..

반응형