Spring 5일 11/30

권준석·2022년 12월 1일
0

인터셉터 + 세션 : 로그인 + 계시판 기능에 권한 부여 < 스프링의 아키텍처>

pageVO을 이용하여 page 기능 구현
<page알고리즘 이해 , client - controller - service - dao -view 에 활용 하는 능력>

첨부파일 기능 구현 -multipart < 아키텍처, 자바IO>

스프링 프레임 워크 : 정해진 틀이 존재

우리가 했던 기능을 중심으로 주제을 정한다
내가 갖고있는 기술로 작품하나 만들고 이 경험을 기반으로 새로운 기술을 추가한다

** 아키텍처는 컴퓨터나 시스템이 구동하는 방식을 이해 한다. jvm구조, cpu<>캐시<>주기억<>보조기억
-일상생활을 관련된 전공으로 설명하면 된다

그림도 파일도 내부적으로 모두다 이진수 문자는 아스키코드값,
<charset= utf-8> 2진수를 문자로 표현할때 기준이되는 코드표

<구조이해>
클라이언트의 파일를 서버로 옮기는것 < 같은 컴퓨터에 있기에 햇갈릴 수 있다
클라이언트와 서버는 tcp/ip 네트워크로 통신중

  1. 클라이언트의 역활은 서버로 파일을 전송
  2. 서버의 역활은 클라이언트가 보낸 첨부 파일을 임시공간에 저장 > 이것을 첨부파일 위치에 이동 (자바IO기술)
    첨부파일의 정보를 저장( DB에는 첨부파일이 아닌 파일명의 정보가 저장
    실제 파일은 별도의 파일에 저장)

코드작성 설계

  1. 테이블에 첨부파일을 저장하기 위한 속성 추가할것인가? - 설계 단순, 첨부파일의 수를 정해져 있다. 유연성 떨어짐
    별도의 첨부파일 테이블을 만들어야할까? - 설개 복잡, 유연성 향상
<수정1>서비스 단에서 먼저 글 번호를 가져오고 가져온 글번호로 글 등록과 첨부파일 등록을 진행한다

**<수정2> 서비스 단에서 먼저 글을 등록하고 이때 글번호는 가져오지않는다
	첨부파일을 등록할때 쿼리문에서 서브쿼리로 이전 테이블의 글 번호중 가장 큰 번호를 가져온다
	* 글 을 등록한후에 첨부파일을 바로 등록한다면 그첨부 파일은 글번호가 가장 큰사람의 것이다 (보장 필요)

<이유> dao 와 mapper랑 매핑할때 dao가 넘겨줘야할 매개변수는 1개만 가능 (객체와 map사용, map을 많이 사용한다)
파일전송때 글번호때문에 변수를2개를 넘겨야한다 별도의 vo을 만들어야한다
vo를 많이 활용하지 않을것이다 이럴때는 변수를 map으로 묶어서 파라미터로 전송

<수정3> 기존의 서비스와 dao를 유지한다
수정1, 수정2,수정3이던 boardVO에서는 첨부파일의 정보를 저장할 변수가 존재 (필수)
기존의 서비스와 dao를 유지하고 매퍼 동작에서 첨부파일을 알수있다 그래서 매퍼에 2개의 쿼리를 실행시킨다
  1. 클라이언트가 서버에게 파일을 보냅니다.
    서버는 어떻게 할 것인가?
    서버는 임시 파일을 지정된 위치로 복사한다 java io << 사용법 써먹는다. 후에 한번 정리를 한다

<실습은 첨부 파일 여러개를 올릴수 있도록 파일은 배열로 작성 실제코드는 파일 하나를 전송한다>
1. 디펜던시 관리(maven설정)
2. 스프링 설정
3. 클라이언트 작업
4. VO수정
5. 컨트롤러 수정
6. 테스트 : 클라이언트의 첨부 파일이 서버로 전송되는 여부

  1. 클라이언트
  2. 컨트롤러는
    클라언트에 받은 첨부파이을
    지정한 폴더에 복사
    지정한 폴더에 복사한 파일명을
    boardVO files에 저장후 DB작업
profile
ㅇㅇ

0개의 댓글