글 등록
- 글 하나, 파일4개, 파트4개중 파일은 2개만 올라가고 있음
- d드라이브 saveFiles: 미들티어의 파일시스템
- 모델어트리뷰트 리졸버가 보드브이오를 통해 파라미터를 전달받음
트랜잭션 관리
- 어느기준으로 관리할 것인지 내가 직접 결정해야함 (관리방법과 구조를 알아라)
- 트랜잭션 관리를 직접하기때문에 어떤 문제점이 발생했는지 알아야함
- 게시글 등록: 클라이언트가 하나의 명령을 보냄, 하지만 서버에서는 글 insert 후 파일첨부insert를 하며 트랜잭션이 2번이상일어남
트랜잭션: 절대로 쪼갤수없는 작업의 단위 (원자성)
게시글 등록은 글등록, 첨부파일 등록이 모두 완료가 되어야만 완료인것..
- atm기에서 10만원 뽑다가 중간에 7만원 뽑고 멈췄는데 통장에서 10만원이 차감된다면..? 빡치는군..
단점 해결
1. 비즈니스로직
- 개발자마다 방식이 다르고 논란의 여지가 있음
- 로직 = 더이상쪼개질수없는 개념 = 원자성과 일맥상통
- 공통적인 의견은 controller에서 관리하지 않는다는 것
ProdInsertController
- 컨트롤러에서 이진데이터처리를하고있음
-비즈니스로직으로 옮기자니 req.geTServlet때문에..
- bl과 p 레이어는 웹과 상관없이 스탠드얼론으로도 돌아갈수있어야하는애
serviceimpl
- 비즈니스로직레이어가 mybatis(persistence framework)에 의존하게됨
- insert말고도 update에서도 중복코드발생중..
2. 리스너
버튼만들어 -> 버튼클릭이벤트 -> 온클릭에서 호출할 수 있는 펑션 -> 펑션에 alert창 띄우는 코드
1. 이벤트 타겟 결정: 버튼
2. 처리하고 싶은 이벤트 결정: 클릭
3. 이벤트 발생시 처리하는 핸들러 구현: 호출할 수 있는 펑션 == 리스너
4. 이벤트 바인딩 : web.xml에 등록
- 프론트컨트롤러만 서블릿이어서 우리 로직에서는 서버시작시 init으로 저장경로를 잡기가 어려움
- 그래서 리스너사용할 예정
AOP: 관점지향 프로그래밍 방법론
- 트랜잭션 단점해결할 수 있는 방법론
- 스프링때..
CKEditor
https://ckeditor.com/ckeditor-4/demo/
게시글 수정
- board.xml : update
- attach.xml : delete
- attach.xml : select 이진데이터 삭제를 위해 저장명필요
미션