저번 글 에서 Origin Image
를 가지고 Thumbnail Image
를 만드는 법에 대해서 정리해보았습니다. (이번 글은 저번 글에 이어가는 내용이기 때문에 꼭 먼저 보고 오셔야 합니다!)
이번 글에서는 Origin Image Url
, Resize Image Url
을 MySQL DataBase
에 저장하는 법에 대해서 알아보겠습니다. (Spring Boot 파일업로드, Lambda로 Image Resize의 글이 혼합되어 있는 형태인 것 같습니다,,)
이번 글의 아키텍쳐는 위와 같습니다. 즉 필요한 도구는 아래와 같습니다.
Spring Boot gradle
MySQL, RDS
S3 Bucket 2개
Lambda
그리고 이번 글에서는 Spring Boot로 S3로 File 업로드 하는 법 에 대한 개념도 필요한데요. 이 개념에 대해서 잘 모르겠다면 위의 글을 읽고 오셔야 합니다(아래에서 설명하지 않을 것이기 때문에..). 또한 DB에 관한 글이 아니기 때문에 DB 접근 관련 내용에 대한 설명은 생략하겠습니다.
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:2.0.1'
implementation 'mysql:mysql-connector-java'
compile 'org.springframework.cloud:spring-cloud-starter-aws:2.0.1.RELEASE'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
위의 의존성을 추가하고 진행하겠습니다.
spring:
datasource:
url: jdbc:mysql://엔드포인트/스키마이름?allowPublicKeyRetrieval=true&autoReconnect=true&useSSL=false&useUnicode=true&characterEncoding=utf8&mysqlEncoding=utf8&serverTimezone=UTC
username: 유저네임
password: 비밀번호
driver-class-name: com.mysql.cj.jdbc.Driver
위의 엔드포인트
, 스키마이름
, 유저이름
, 비밀번호
는 자신의 RDS에 맞는 정보를 입력하면 됩니다.
Image Url
주소는 위의 테이블에다 INSERT
를 해보겠습니다.
프로젝트에 대한 자세한 코드를 보고 싶다면 Github 에서 확인하실 수 있습니다.
그 중에서 파일 업로드
하는 코드에서 제가 위와 같이 OriginUrl
, ResizeUrl
을 DB에 저장하도록 코드를 작성하였습니다. (그냥 일단 임시로... 짠 것입니다. )
기존에 S3에 파일 업로드 하는 코드에서 ResizeBucket
에 저장된 Url
을 호출하는 코드와 DB 저장 코드만 추가된 것입니다. (아주 간단합니다.)
위와 같이 Query
를 작성하여 DB에 저장하도록 하겠습니다.
위와 같이 파일 업로드 API에 사진 하나를 업로드 해보겠습니다.
그러면 위와 같이 DB
에도 문제 없이 Image Url
들이 잘 저장된 것을 확인할 수 있습니다.
꽤나 많이 생략을 하고 진행을 하였는데요! 이 글을 처음 보시거나 설명이 부족하시다면 위에서 말했던 것 처럼 아래의 글들을 같이 보시는 것을 추천드립니다.