인터셉터 + 세션 : 로그인 + 계시판 기능에 권한 부여 < 스프링의 아키텍처>
pageVO을 이용하여 page 기능 구현
<page알고리즘 이해 , client - controller - service - dao -view 에 활용 하는 능력>
첨부파일 기능 구현 -multipart < 아키텍처, 자바IO>
스프링 프레임 워크 : 정해진 틀이 존재
우리가 했던 기능을 중심으로 주제을 정한다
내가 갖고있는 기술로 작품하나 만들고 이 경험을 기반으로 새로운 기술을 추가한다
** 아키텍처는 컴퓨터나 시스템이 구동하는 방식을 이해 한다. jvm구조, cpu<>캐시<>주기억<>보조기억
-일상생활을 관련된 전공으로 설명하면 된다
그림도 파일도 내부적으로 모두다 이진수 문자는 아스키코드값,
<charset= utf-8> 2진수를 문자로 표현할때 기준이되는 코드표
<구조이해>
클라이언트의 파일를 서버로 옮기는것 < 같은 컴퓨터에 있기에 햇갈릴 수 있다
클라이언트와 서버는 tcp/ip 네트워크로 통신중
코드작성 설계
<수정1>서비스 단에서 먼저 글 번호를 가져오고 가져온 글번호로 글 등록과 첨부파일 등록을 진행한다
**<수정2> 서비스 단에서 먼저 글을 등록하고 이때 글번호는 가져오지않는다
첨부파일을 등록할때 쿼리문에서 서브쿼리로 이전 테이블의 글 번호중 가장 큰 번호를 가져온다
* 글 을 등록한후에 첨부파일을 바로 등록한다면 그첨부 파일은 글번호가 가장 큰사람의 것이다 (보장 필요)
<이유> dao 와 mapper랑 매핑할때 dao가 넘겨줘야할 매개변수는 1개만 가능 (객체와 map사용, map을 많이 사용한다)
파일전송때 글번호때문에 변수를2개를 넘겨야한다 별도의 vo을 만들어야한다
vo를 많이 활용하지 않을것이다 이럴때는 변수를 map으로 묶어서 파라미터로 전송
<수정3> 기존의 서비스와 dao를 유지한다
수정1, 수정2,수정3이던 boardVO에서는 첨부파일의 정보를 저장할 변수가 존재 (필수)
기존의 서비스와 dao를 유지하고 매퍼 동작에서 첨부파일을 알수있다 그래서 매퍼에 2개의 쿼리를 실행시킨다
<실습은 첨부 파일 여러개를 올릴수 있도록 파일은 배열로 작성 실제코드는 파일 하나를 전송한다>
1. 디펜던시 관리(maven설정)
2. 스프링 설정
3. 클라이언트 작업
4. VO수정
5. 컨트롤러 수정
6. 테스트 : 클라이언트의 첨부 파일이 서버로 전송되는 여부