이미지 등록 기능 (1)

HY·2025년 2월 4일

이미지 등록 기능에 대해 흐름 위주로 간략하게 알아보겠다.

DB

-Board
-Attach

Board는 기존 사용하던 게시판 관련 테이블이다. boardId를 받아와 어떤 게시글에 어떤 사진이 있는지를 확인할 수 있다.

Attach 테이블에는 이미지의 고유 Id(attachId)와 경로, 이름, 확장자 등이 들어간다.

DB에 파일 자체를 넣어버리면 파일의 크기때문에 상당히 비효율적이게된다.
그래서 보통 진짜 이미지는 서버에 저장하고, DB에는 위의 요소들을 넣어두고 불러올 때 두가지를 매칭시키는 방법을 사용한다.

파일 업로드 방식으로는 동기와 비동기 방식이 있는데 나는 비동기 방식을 사용하겠다.

jsp

register.jsp에 두 가지 영역이 생긴다.
게시글의 정보 영역과 이미지 업로드 영역이다.

게시글의 정보 영역에는 boardId(시퀀스)나 날짜, 작성자 등을 불러오고, 사용자가 입력한 제목과 내용을 전송한다.
이들은 BoardController와 연결된다.

이미지 업로드 영역에는 사용자가 입력한 이미지를 비동기 방식으로 전송한다.
이들은 ImageUploadRESTController와 연결된다.

Controller

jsp파일에서 BoardController를 통해 전달받은 내용이 DB에 저장된다면,
ImageUploadRESTController로 전달받은 이미지는 서버에 있는 업로드 폴더로 저장된다.
(경로, 이름, 확장자 등을 제외하고 이미지만. 자세한건 아래에서 추가 서술)
이 때 이미지는 썸네일용 이미지와 원본 이미지 두 가지로 나뉘어 저장된다.
원본 이미지는 데이터를 많이 소모해야하기 때문에 썸네일용 이미지를 따로 만들어 데이터 소모를 줄이며 이미지를 출력하기 위함이다.

마지막으로 등록 버튼을 누르면 게시글의 정보 영역과 이미지 정보(경로, 이름, 확장자...)를 모두 BoardController로 전송한다. 전송된 데이터는 위에서 말했듯 DB에 저장된다.

profile
안녕하세요

0개의 댓글