본문 바로가기

백엔드(Back-End)55

[MySQL] - ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) / --host 프로젝트를 진행하면서 AWS 서비스 중 하나인 AWS RDS를 사용해 클라우드 데이터베이스 시스템을 AWS EC2 환경에서 접속하는 과정에서 발생한 오류와, 오류의 원인 이를 해결한 방법을 기록해 두고자 한다.     1. 문제 원인(1) AWS EC2 환경에서 AWS RDS에 접속하기 위해 아래와 같은 커맨드를 주는 과정에서 오류가 발생했다.mysql -u [RDS 생성 시 지정한 사용자명] -p -h [RDS 접속 엔드포인트 주소]    (2) RDS 생성 시 지정한 유저명, 비밀번호를 정확하게 입력했음에도 불구하고 지속적으로 위와 같은 접속 오류 "ERROR 1045 (28000): Access denied for user ~ (using password: YES)"를 확인할 수 있었다.      .. 2024. 5. 13.
[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.
[MySQL] - INNER JOIN, OUTER JOIN, CROSS JOIN 1. JOIN? 1-1. SQL JOIN (1) SQL에서 JOIN은 두 개 이상의 테이블에서 데이터를 결합하는 데 사용되는 연산 방법이다. 두 개 이상의 테이블을 묶어서 하나의 결과를 만들어내는 것으로 실무에서는 두 개 이상의 테이블을 엮어서 원하는 데이터를 뽑아오는 일이 상당히 많으며 이러한 join은 데이터베이스 테이블 간에 관계를 설정, 관련된 컬럼을 사용해서 데이터를 연결할 수 있다. select (...) from (...) inner join (...) on (...) where (...) 2. (INNER) JOIN 2-1. INNER JOIN (1) inner join은 내부 조인이라고도 하며 두 테이블 간에 조인 조건을 만족하는 로우만 반환하고 형식은 아래와 같다. select colu.. 2024. 2. 12.
[MySQL] - ORDER BY, LIMIT, DISTNCT, 집계 함수(Aggregation function), GROUP BY & HAVING 1. 일반적인 조회 쿼리에서 상황에 맞게 필터링이 필요하다면? 1-1. 개요 기본적인 select ~ from ~ where 형식의 간단한 조회 쿼리에서 해당 조회 결과에 부가적인 요소를 통해 결과를 정렬하거나, 중복을 제거, 또는 일부만 조회하는 형식 등의 특정한 처리가 필요할 때가 있다. 이러한 상황에서 ORDER BY, LIMIT, DISTNCT, GROUP BY, HAVING이 사용된다. 이에 대해 자세히 알아보고자 한다. 1-2. SQL의 일반적인 순서 select (...) from (...) where (...) group by (...) order by (...) limit (...) 2. ORDER BY 2-1. 정의 (1) 우선 order by, group by에 대해 정리해 보고자 한.. 2024. 2. 12.