들어가기 전
- 프레임워크 깔아서 스프링 연동하고 db연동하고 라이브러리 쓰며 게시판을 할 줄 알아야 욕을 안먹는다,,
- 토요일 4시간 밖에 안되지만 현업 팁과 노하우를 전수하러 도와주시러 오신 것이다
개발환경구성
- 프로젝트 설정은 aa의 역할만이 아니다. 모두가 알아야하는 기초임.
- 오늘 연습하면서 프로젝트 구조를 같이 짜야할 것
ppt



- Mapper: 인터페이스 사용하는 매퍼방식을 이용할 것
- VO: 맵을 사용하는것은 추천하지않음,
- implements 하는 이유
- 무조건 인터페이스를 만들어서 구현체를 만들 필요가 없는데 왜할까?
- 특수한 경우가 아니면 interface 만들고 구현하는 방식은 퍼포먼스를 떨어트릴수가 있다.

- 베이스컨트롤러: 최상위 계층 컨트롤러, 중복제거를 위함
- 베이스컨트롤러를 상속받아 logger사용
- 코드서비스: 공통코드 테이블
- 코드테이블에 쉽게 접근할 수 있도록



- context-mapper.xml에서 mapUnderscoreToCamelCase로 vo와 컬럼명을 매핑

- 프로젝트마다 맵으로 개발하는사람, vo로 개발하는사람 나뉘는데 vo로 개발하도록
- 타입미스매치같은 runtime오류가 나는 건 큰일, 이미 서버에 올라갔는데 런타임오류가난다..? 끔찍

- 이름, 아이디 뿐만아니라 업무용 시스템에서는 검색조건이 10개가 되기도함

- BoardVO가 BaseVO를 상속받고있음
- BoardVO에는 CRUD관한 데이터
- SearchBoardVO에는 검색어, 검색조건이 들어감

<form:hidden path="boardVO.id" id="sid"/>
컴파일전
<input type="hidden" name="boardVO.id" id="sid" />

- boardVO: 게시판의 순기능 crud
- searchBoardVO: 게시판의 검색기능 담당

- 스프링 폼태그랑 jstl이랑 착각하지마세요..

- log4j모드를 debug로 해두고 서버올린다면? -> log4j 부하걸려서 OutOfMemory 난리남
프로젝트 생성



구성
VO
BaseVO



ERD
- ERD를 어렵게 생각하지말자, 개발하면서 계속 바뀐다
- ERD그리다보면 USER로 연결이 되어있다
- ERD를 한장에 그리기 쉽지않다, 업무단위별로 ERD를 쪼개는 방법도 있다
- 메뉴구조도와 요구사항의 내용을 ERD에 투영시켜야함
게시판
- 게시판마다 테이블을 만드는게 아닌 게시판마다 구분코드
코드
- 코드테이블: 코드명, 코드디스크립션
- 코드테이블은 어디서나 쓸 수 있게만든다
- 코드테이블은 코드안에서도 분류체계가 있어야한다
- 보드BD, BD밑에 A,B,C,D
- 취미HB, HB밑에 A,B,C,D
- 자바에 넣고 쓰면, 변경시 재컴파일해서 서버재구동을 해야하기때문에 코드테이블이 중요하다
파일
- 어지간하면 파일도 한테이블에서 관리
- 보드처럼 구분코드를 주어라
- 파일사이즈(업로드시 파일사이즈 제한을 위해, 상세화면에서 파일사이즈 보여주고싶을때), 파일원본명, 시스템네임(파일명칭, 저장명), 확장자
화면정의서
- JSP로 만든후 캡쳐하여 만들어라 -> 역공학
메뉴구조도
- 3depth까지만, 4depth는 사이트맵을 만들어도 찾기어려움