오늘 한 일
첫 프로젝트 개발을 하기 전, 이전 프로젝트 개발에 사용되었던 코드 및 DB 데이터를 연습용으로 만져볼 수 있게 해주셔서 오늘은 기존 코드를 이용해 새로운 게시판 만들기를 시작했다. 다른 사람이 만든 코드를 살펴보고 그걸 수정하는 것은 처음이라 구조 파악부터 쉽지 않았다.
앞으로 만들 것
기존 시스템은 관리자 사이트, 사용자 사이트가 이루어져 있다. 나는 공지사항 게시판을 참고해 문의사항 게시판을 만들어보려고 한다. 공지사항 게시판과 다른 점은 다음과 같다.
- 공지사항은 관리자 페이지에서는 CRUD가 전부 가능, 사용자 페이지에서는 목록 및 상세조회만 가능하다. 하지만 문의사항은 사용자도 작성할 수 있어야 한다.
- 사용자가 작성한 문의 게시물에 대해 관리자는 답글을 달 수 있다. 따라서 답글 게시물에 관련된 컬럼을 추가해야 한다.
- 답글 게시물 여부에 따라 화면 레이아웃이 변경되어야 한다.
- 질문에 답변이 있는지 여부에 따라 처리상태가 변경되어야 한다.
- 답글 게시물의 경우 최신 날짜순이 아닌 답변의 대상 질문 바로 아래에 위치해야 한다.
오늘 개발한 것
1. QnA Tibero DB 테이블 생성
- 기존 테이블 정의서 참고
- 기존 공지사항 테이블 컬럼에 답글 관련 컬럼 3개 추가
- 기존 테이블 script 복사해서 값만 바꿔서 실행하면 편하게 만들 수 있다.
2. QnA 자바 파일 생성
- (service/impl) EgovQnADAO.java
- (service/impl) EgovQnAServiceImpl.java
- (service) EgovQnAService.java
- (service) QnAVO.java
- (web) EgovQnAController.java
- controller 안에 관리자 페이지들과 사용자 페이지들 메소드가 같이 있어서 헷갈렸다. 공지사항의 경우 이용자에 따라 CRUD 권한이 바껴야 되지만 문의사항의 경우 사용자도 CRUD가 가능하니 추후 이 부분을 수정해야 한다.
3. QnA mapper XML 생성
- EgovQnASQL_tibero.xml
- mapper의 DB 컬럼 이름을 덜 바꿔서 에러가 났었다. 항상 내 눈보다
ctrl+F
를 믿어야겠다..
4. QnA idgen
- context-idgn-QnAManage.xml
- 기존 공지사항의 idgen 파일 참고해서 만들었다.
- idgen 정보 저장하는 DB 테이블에도 값 추가
5. QnA jsp 생성
- 사용자와 관리자 페이지가 각각 있는 것을 모르고 처음엔 관리자 페이지를 수정해서 적용했더니 사용자 메인화면에서 관리자 화면으로 이동하는 것이 부자연스러웠다.
- 사용자 jsp 파일 수정 후 경로 변경해주니 잘 넘어갔다.
6. 메뉴 목록 DB 수정
- 해당 사이트는 메뉴 목록을 DB에 저장된 값에서 가져오는데, 메뉴 보여주기 및 링크 이동에 필요한 정보들이 3개 테이블에 나누어져 있어서 처음엔 파악하기 어려웠다. 그렇게 나눠진 이유는 관리자페이지에서 메뉴 생성이 가능하기 때문에 메뉴 생성 내역을 저장해야 하고, 메뉴들이 가변적이기 때문인 것 같다.
- 프로그램목록, 메뉴생성내역, 메뉴목록 테이블에 데이터 추가
- 지금까지 개인프로젝트에서는
mysql
을 자주 사용했는데, tibero
를 사용하니 테이블 수정 후 commit을 해주어야 하는 것이 살짝 어색하다.