[Spring Boot] AWS S3를 이용한 파일 업로드
2023. 4. 18. 17:59
Spring Boot/문법 정리
AWS S3 란? AWS Simple Storage Service의 줄임말로 파일 서버의 역할을 하는 서비스 프로젝트 개발 중 파일을 저장하고 불러오는 작업이 필요한 경우에 프로젝트 내부 폴더에 저장할 수 있지만, AWS S3를 사용하여 파일을 관리할 수도 있음 AWS S3의 장점 무제한 용량 (하나의 파일에 대한 용량 제한은 있지만, 전체 용량은 무제한) 파일 저장에 최적화 (개발자가 따로 용량을 추가하거나 성능을 높이는 작업을 하지 않아도 됨) 99.999%라는 높은 내구도 (파일이 유실될 가능성이 낮음) 이 외에도 저렴한 비용, 높은 객체 가용성, 뛰어난 보안성 등의 장점이 있음 AWS S3 생성 객체(Object) : 파일과 파일정보로 구성된 저장단위로 파일이라 생각하면 됨 버킷(Bucket) :..
[Spring Boot] Jpa와 PostgreSQL 연동
2023. 3. 23. 17:29
Spring Boot/문법 정리
만약 PostgreSQL이 설치되어 있지 않다면 [PostgreSQL] PostgreSQL 설치 및 DB 생성 참고 Jpa와 PostgreSQL 연동 라이브러리 설치 MySQL과 연동할 때와 마찬가지로 Jpa 라이브러리 설치해야 하고, PostgreSQL 라이브러리도 설치 implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.postgresql:postgresql:42.6.0' application.yml 설정 application.yml에 DB 접속 정보 및 Jpa 설정을 입력해야 함 spring: datasource: url: jdbc:postgresql://localhost:5432/ use..
[Spring Boot] OAuth 2.0 로그인 (카카오, 네이버, 페이스북 로그인)
2023. 1. 21. 19:25
Spring Boot/문법 정리
[Spring Boot] OAuth 2.0 로그인 (구글 로그인)에서 구글 로그인과 회원가입에 대해 정리했었음 구글 뿐 아니라 카카오, 네이버, 페이스북 로그인에 대해서 정리 과정이 거의 비슷하긴 하지만 조금씩 다르기 때문에 한 번씩 정리해 봄 카카오 개발자 페이지에서 애플리케이션 등록 카카오 개발자 페이지 접속 후 로그인 내 어플리케이션 클릭 애플리케이션 추가하기 앱 아이콘, 앱 이름, 사업자명 작성 앱 키 -> REST API 키 저장 보안 -> Client Secret 생성 후 코드도 저장 + 활성화 카카오 로그인 -> 활성화 설정 둘 다 ON으로 변경 + Redirect URI 설정 Redirect URI는 http://localhost:8080/login/oauth2/code/kakao로 지정 ..
[Spring Boot] OAuth 2.0 로그인 (구글 로그인)
2023. 1. 21. 19:21
Spring Boot/문법 정리
OAuth 로그인이란? 요즘 대부분의 사이트에서 카카오, 네이버, 구글 로그인 등을 지원함 사이트에서 직접 회원가입을 하지 않고 위의 소셜 서비스에 로그인을 함으로써 로그인을 할 수 있게 해줌 이러한 로그인 과정을 OAuth 로그인이라고 함 구글 로그인 예제 [Spring Boot] Spring Security를 사용한 로그인 구현 (Form Login) 여기에서 만든 코드들을 사용하여 구글 로그인을 진행 PrincipalDetails, SecurityConfig, 화면, Entity, Controller 등 재사용 과정은 사이트마다 비슷하기 때문에 일단 구글 로그인부터 정리 카카오, 네이버, 페이스북은 [Spring Boot] OAuth 2.0 로그인 (카카오, 네이버, 페이스북 로그인)에 정리 구글 ..
[Spring Boot] JpaRepository를 활용한 페이징 기능 구현 + 정렬, 검색, 알림창 띄우기를 활용한 예제
2023. 1. 14. 17:41
Spring Boot/문법 정리
페이징(Paging, Pagination) 이란? 게시판에 100개의 글이 있는 상황 게시판의 글 리스트를 조회할 때, 한 번에 100개의 글을 불러오기에는 데이터의 양이 너무 많음 이런 상황에서는 페이징 처리가 필요함 ex) 한 페이지에 글 10개씩 출력하도록 설정할 수 있음 => 1 ~ 10번 글은 1페이지에 출력, 11 ~ 20번 글은 2페이지에서 출력, ... 페이징 기능에는 정렬 기능이 포함되어 있음 ex) 글의 id순, 최신순, 이름순 등으로 정렬하여 출력할 수 있음 => 가장 최신 10개의 글은 1페이지에 출력, 다음 최신 10개의 글은 2페이지에 출력, ... 페이징 방법 Spring Boot에서 Paging 기능을 구현할 수 있는 2가지 방법 존재 Pageable 사용 PageReques..
[Spring Boot] JSON을 활용한 API 통신 예제 + JSON 형변환 (Gson, ObjectMapper, JSONParser)
2023. 1. 11. 17:26
Spring Boot/문법 정리
API 통신과 JSON에 대해 정리 JSON으로 형변환 하는 방법 정리 JSON 이란? JSON(JavaScript Object Notation)은 데이터를 저장/전송 할 때 많이 사용되는 형식 서버와 클라이언트 간의 통신에서 주로 많이 사용됨 아래와 같이 Key, Value 구조를 가짐 { "teamName" : "Tottenham", "league" : "Premier League", "ranking" : 5, "players" : [ { "name" : "Son Heungmin", "backNumber" : 7, "age" : 30 }, { "name" : "Harry Kane", "backNumber" : 10, "age" : 29 }, { "name" : "Hugo Lloris", "backNu..
[Spring Boot] Exception 처리 - @ExceptionHandler, @(Rest)ControllerAdvice (+ @ModelAttribute, @InitBinder)
2023. 1. 10. 02:46
Spring Boot/문법 정리
[Spring Boot] Exception 처리 - 에러 페이지 적용(화면), 에러 코드 적용(API) 여기서 ErrorCode와 ExceptionDto를 활용하여 Exception을 출력하는 방법에 대해서 정리했었음 이 방식은 Response의 status와 body를 직접 만들어서 응답해주는 방식 하지만 이 방식은 실제로 프로젝트에 적용하기에는 어려움이 있음 이 방식을 사용하기 위해서는 모든 Return Type을 맞춰줘야 하는 어려움이라던지, Service 단에서 에러가 발생하는 경우 에러 처리가 힘들다는 등의 단점이 존재 따라서 Response를 수정해서 응답하는 방식이 아닌 exception이 발생한 지점에서 throw를 통해 exception을 던지고 나중에 이를 받아 처리하는 작업이 필요 @..