본문 바로가기
728x90
반응형

백엔드(Back-End)/Spring7

[AWS S3, Spring] - AmazonS3Exception : The bucket does not allow ACLs 원인 & 문제 해결 프로젝트 진행 도중 발생한 문제에 대해 해결한 과정을 적어두고자 한다. 현재 만드는 서비스에서 회원가입 진행 시, 프로필 이미지를 선택적으로 업로드할 수 있는 요구사항이 있었는데 이를 위해 AWS S3 Bucket에 사진 파일을 업로드하는 과정을 테스트하는 도중 위와 같은 AmazonS3Exception 예외가 발생했다. 이 부분에 대한 원인, 해결했던 방법을 기록해 두고자 한다.    1. 문제 원인 (1) 현재 버킷 소유자만 Bucket Access Control List(ACL)에 대한 Read, Write(읽기, 쓰기) 권한이 설정되어 있는 것을 확인할 수 있다. 아마 이 부분 때문에 문제가 발생한 것으로 보인다.      2. 해결 과정(1) 객체 소유권에서 [편집]으로 들어가서 해당 부분을 수.. 2024. 4. 25.
[Spring, H2] - 스프링에서 DB 테스트를 위한 H2 DB Configuration 1. H2 DB 1-1. H2 DB (1) H2 데이터베이스란 자바로 작성된 인메모리 관계형 데이터베이스 관리 시스템이다. 자바 애플리케이션에 임베디드하거나 클라이언트-서버 아키텍처에서 구동시킬 수 있다. (2) 기본적으로 스프링 부트를 사용하는 경우 테스팅 환경에서 인메모리 DB 환경을 제공한다. (3) 인메모리 특성을 가지는만큼 서버 애플리케이션이 종료되면 사용됐던 데이터는 모두 사라지게 된다.(휘발성) (4) 개발 단계에서 비즈니스 로직의 수행 결과를 빠르게 확인해 보기 위해 사용하는 경우가 많다. 2. H2 DB 사용을 위한 의존성 설정 2-1. build.gradle 기준 의존성 추가 (1) 해당 DB를 사용하기 위해 build.gradle 파일에 다음과 같은 H2 Database Depende.. 2024. 3. 26.
[Spring, Swagger] - Spring Boot 3.x.x 이상 버전에서 Swagger 연동하기 1. 문제 원인 & 상황 (1) Spring Boot의 버전이 3.X.X 이상으로 버전업되면서 기존 SpringFox가 호환되지 않아 SwaggerConfig 설정이 꼬이는 문제가 발생했다. 2. 문제 해결 : Gradle 2-1. build.gradle에 의존성 추가 (1) build.gradle 기준으로 아래와 같은 Dependency를 추가한다. (2) implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.0.2' dependencies { // Swagger(Spring 3.x.x 이상부터 SpringFox 대신, SpringDoc) implementation 'org.springdoc:springdoc-openapi-starte.. 2024. 3. 26.
[Spring] - 객체 지향 설계 5대 원칙 (SOLID) 이번 포스팅에서는 객체 지향 설계 5대 원칙이라고 불리는 "SOLID"에 대해서 공부한 내용을 정리해 보고자 합니다. 1. 객체 지향 설계 5대 원칙 : SOLID - 객체 지향 설계 5대 원칙, SOLID는 클린 코드(Clean code)의 저자로 유명한 로버트 마틴이 좋은 객체 지향 설계를 위해 5가지 원칙을 정리한 것을 의미합니다. - 크게 아래와 같이 5가지 원칙이 존재합니다. (1) SRP(Single Responsibility Principle) : 단일 책임 원칙 (2) OCP(Open-Closed Principle) : 개방 - 폐쇄 원칙 (3) LSP(Liskov Substitution Principle) : 리스코프 치환 원칙 (4) ISP(Interface Segregation Pri.. 2023. 2. 15.
[Spring] - 좋은 객체 지향 프로그래밍 기법이란? - 이번 포스팅에서는 객체 지향 프로그래밍이 무엇인지, 이에 대한 4대 원칙들과 객체 지향의 핵심인 다형성(Polymorphism)을 위한 예시, 다형성을 통해 얻을 수 있는 여러 가지 장점에 대해 공부한 내용을 정리해 보고자 합니다. 1. 객체 지향 프로그래밍(Object Oriented Programming)이란 무엇인가? 1-1. 객체 지향 프로그래밍의 정의 - 객체 지향 프로그래밍(Object Oriented Programming)이란 컴퓨터 프로그램을 명령어의 목록에서 보는 시각에서 벗어나 여러 개의 독립된 단위인 객체들의 모임과 이들 간의 상호작용으로 바라보고자 하는 프로그래밍 패러다임 중 하나로써 이러한 객체들은 각각의 상호작용을 통해 메시지나 데이터를 주고받으면서 여러 가지 작업을 처리할 .. 2023. 2. 14.
[Spring] - Spring Framework 개요 - 이번 포스팅에서는 Spring 프레임워크와 Spring 프레임워크를 더욱 편리하게 사용할 수 있는 도구인 Spring Boot에 대해 공부한 내용을 정리해 보고자 합니다. 1. Spring의 생태계 1-1. Spring Framework - 스프링 프레임워크는 Java 플랫폼을 위한 오픈 소스 애플리케이션 프레임워크입니다. (위키백과) - Spring은 어떤 특정한 하나가 아닌 여러 기술들의 모임이라고 볼 수도 있습니다. 핵심인 스프링 프레임워크, 여러 기능들과 설정을 보다 간소화하여 이전보다 스프링을 좀 더 편리하게 사용할 수 있게 하는 스프링 부트부터 이외에 스프링 Data, Session, Security, Rest Docs, Batch, Cloud가 존재합니다. 2. Spring Framewo.. 2023. 2. 14.