Skip to content

Latest commit

 

History

History
107 lines (64 loc) · 5.05 KB

Lambda Thumbnail Image DB 저장하기.md

File metadata and controls

107 lines (64 loc) · 5.05 KB

AWS Image Origin, Resize Url DB 저장하기

저번 글 에서 Origin Image를 가지고 Thumbnail Image를 만드는 법에 대해서 정리해보았습니다. (이번 글은 저번 글에 이어가는 내용이기 때문에 꼭 먼저 보고 오셔야 합니다!)

이번 글에서는 Origin Image Url, Resize Image UrlMySQL DataBase에 저장하는 법에 대해서 알아보겠습니다. (Spring Boot 파일업로드, Lambda로 Image Resize의 글이 혼합되어 있는 형태인 것 같습니다,,)

스크린샷 2021-05-11 오후 2 51 36

이번 글의 아키텍쳐는 위와 같습니다. 즉 필요한 도구는 아래와 같습니다.

  • Spring Boot gradle
  • MySQL, RDS
  • S3 Bucket 2개
  • Lambda

그리고 이번 글에서는 Spring Boot로 S3로 File 업로드 하는 법 에 대한 개념도 필요한데요. 이 개념에 대해서 잘 모르겠다면 위의 글을 읽고 오셔야 합니다(아래에서 설명하지 않을 것이기 때문에..). 또한 DB에 관한 글이 아니기 때문에 DB 접근 관련 내용에 대한 설명은 생략하겠습니다.


build.gradle

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'
}

위의 의존성을 추가하고 진행하겠습니다.


application.yml

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 테이블 스키마

스크린샷 2021-05-11 오후 3 10 50

Image Url 주소는 위의 테이블에다 INSERT를 해보겠습니다.


프로젝트 구조

스크린샷 2021-05-11 오후 3 24 53

프로젝트에 대한 자세한 코드를 보고 싶다면 Github 에서 확인하실 수 있습니다.


스크린샷 2021-05-11 오후 3 28 05

그 중에서 파일 업로드 하는 코드에서 제가 위와 같이 OriginUrl, ResizeUrl을 DB에 저장하도록 코드를 작성하였습니다. (그냥 일단 임시로... 짠 것입니다. )

기존에 S3에 파일 업로드 하는 코드에서 ResizeBucket에 저장된 Url을 호출하는 코드와 DB 저장 코드만 추가된 것입니다. (아주 간단합니다.)


스크린샷 2021-05-11 오후 3 30 08

위와 같이 Query를 작성하여 DB에 저장하도록 하겠습니다.


PostMan 테스트

스크린샷 2021-05-11 오후 3 31 51

위와 같이 파일 업로드 API에 사진 하나를 업로드 해보겠습니다.


스크린샷 2021-05-11 오후 3 35 28

그러면 위와 같이 DB에도 문제 없이 Image Url들이 잘 저장된 것을 확인할 수 있습니다.


정리하기

꽤나 많이 생략을 하고 진행을 하였는데요! 이 글을 처음 보시거나 설명이 부족하시다면 위에서 말했던 것 처럼 아래의 글들을 같이 보시는 것을 추천드립니다.