본문 바로가기

반응형

전체 글

(65)
FirstSpringBoard#6-2] 검색 기능 비즈니스 로직 구현 안녕하세요. 저번 시간에는 페이징 처리를 했었죠.아마 완벽하게 되지 않아서 찝찝하게 느껴지시는 분들도 계실거에요.제가 프로젝트를하면서 느끼는 것은 한번에 완벽하게 되는 것 없다는 거에요.일단 기능을 구현하고 문제점을 찾아서 고치는 사이클이 이상적인거 같아요.누구도 한번에 이상적인 기능을 구현할 수는 없어요. 시행착오가 있을 뿐이죠.한번에 완성된 기능을 딱 보여주는게 아닌 문제점을 발견하고 고치는 과정을 거쳐야 실력이 업그레이드됩니다. 단순한 코더나 타이퍼? 타이피스트가 될 수는 없잖아요. 우리는 개발자가 되어야합니다. 검색 기능에 대해서 생각해봅시다.우선 우리는 작성자와 내용에 대한 검색 기능을 구현할 거에요.아래는 검색기능에 해당하는 HTML 태그입니다.구현된 화면도 같이 보시죠. 셀렉트 박스에서 검색..
FirstSpringBoard#6-1] 페이징 기능 구현하기 안녕하세요. 저번 챕터에서는 간단한 CRUD 기능을 구현했었죠.오늘 추가할 기능은 페이징 기능입니다.우리가 전체 게시글을 조회할 때 모든 게시물을 하나의 화면에 보여주었습니다.이렇게 할 경우 개발하는 우리 입장에서는 아주 편합니다.그러나 사용자 입장에서 가독성은 아주 떨어지죠.웹 애플리케이션에서 페이징 처리는 필수입니다. 우선 저희는 Controller에서 페이징을 처리해 줄 겁니다.일단 구현해 보고 문제점을 찾아야죠. 리팩토링해서 더 효율적인 방향으로 고쳐볼게요. 페이징 처리를 하는데 있어서 고려해야할 사항은 무엇이 있을까요.우선 게시판에서 페이지라는 것이 어떤 기능을 하는지 생각해봅시다.게시판에서 페이지는 게시글을 정해진 숫자로 나눠서 보여주는 기능입니다.그리고 페이지 번호를 클릭하면 해당하는 페이지..
FirstSpringBoard#5-5] 게시물 삭제 기능 구현 안녕하세요.여태까지 전체 글 조회, 특정 게시글 조회, 게시글 수정을 구현해봤는데요.아마 웹 애플리케이션에서 구현하는 기능 중에 제일 간단한 것이 삭제 기능일 겁니다.이번에는 가볍게 삭제 기능을 구현해보죠. 여러분은 DB에서 특정 튜플을 삭제할 때 어떻게 하시나요?아마 바로 답이 나올 겁니다. 삭제 기능에 해당하는 DML은 Delete이죠.그리고 특정 조건을 넣는 키워드는 where 입니다.우리 프로젝트에서 특정 게시물을 삭제하는 SQL문은Delte from board where id = ? 입니다.이미 마이바티스를 이용해서 비즈니스 로직으로 구현을 했죠.위 조건에서 알 수 있듯이 id를 DAO에 넘겨 줘야합니다.아래는 게시글 조회 화면에서 삭제 기능에 해당하는 HTML 태그에요.id를 넘겨주고 있죠? ..
FirstSpringBoard#5-4] 게시물 수정 기능 구현 저번 시간에는 특정 글 조회 기능을 구현했었죠.이번 시간에는 게시물을 수정하는 기능을 구현해보겠습니다. 기능을 구현하는데 있어서. 게시물의 어떤 칼럼을 수정할지 생각해야겠죠.우리가 수정할 것은 제목과 본문입니다.작성자는 그냥 화면에 보여주기만 합니다.아래는 board_update.jsp의 소스코드입니다. 이제 컨트롤러를 구현해줄게요.우선 소스코드를 먼저 볼게요. 그런데 사용되는 메소드가 두개입니다.각 메소드는 어떤 기능을 할까요? 아래는 글 수정 화면입니다.글 수정 화면을 보니 태그 안에 수정할 게시물의 제목과 내용을 넣어서 보여주고 있네요.글 수정 화면으로 넘어갈 때 해당 게시물의 board 객체를 board_update.jsp에 뿌려주고 있습니다.boardDAO에 getBoard(int id)를 이용..
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..

반응형