[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을 던지고 나중에 이를 받아 처리하는 작업이 필요 @..
[Spring Boot] Exception 처리 - 에러 페이지 적용(화면), 에러 코드 적용(API)
2023. 1. 9. 23:57
Spring Boot/문법 정리
Exception을 발생시키는 방법 잘못된 요청 전송 ex) 존재하지 않는 URL 접근 => 404 Error 발생 인증하지 않음 => 401 Error 발생 서버 내부 에러 => 500 Error 발생 이와 같이 직접 잘못된 요청을 전송하여 에러를 발생시킬 수 있음 throw를 사용해 직접 에러를 던져주기 throw new RuntimeException(); throw new IllegalArgumentException(); HttpServletResponse에 에러를 담아서 전송 response.sendError(403); response.sendError(404, "404에러가 발생했습니다!"); 아래와 같이 Path Variable을 활용하여 원하는 에러를 발생 시킬 수도 있음 @GetMappin..