TIL
-
https://velog.io/@nefertiri/%EC%8A%A4%ED%94%84%EB%A7%81-%EB%B6%80%ED%8A%B8-OAuth2-%EC%86%8C%EC%85%9C-%EB%A1%9C%EA%B7%B8%EC%9D%B8-%EA%B5%AC%ED%98%84%ED%95%98%EA%B8%B0-01 스프링 부트 OAuth2 소셜 로그인 구현하기이 포스트에서는 스프링 부트로 소셜 로그인을 구현해보겠습니다. 스프링 시큐리티와 스프링 OAuth2 클라이언트 라이브러리를 사용하여 구글, 네이버, 카카오 서비스와 연동하여 로그인, 회원 탈velog.io https://chb2005.tistory.com/182 [Spring Boot] OAuth 2.0 로그인 (구글 로그인)OAuth 로그인이란? 요즘 대부분의 ..
[TIL] 230621 <Spring> 소셜 로그인https://velog.io/@nefertiri/%EC%8A%A4%ED%94%84%EB%A7%81-%EB%B6%80%ED%8A%B8-OAuth2-%EC%86%8C%EC%85%9C-%EB%A1%9C%EA%B7%B8%EC%9D%B8-%EA%B5%AC%ED%98%84%ED%95%98%EA%B8%B0-01 스프링 부트 OAuth2 소셜 로그인 구현하기이 포스트에서는 스프링 부트로 소셜 로그인을 구현해보겠습니다. 스프링 시큐리티와 스프링 OAuth2 클라이언트 라이브러리를 사용하여 구글, 네이버, 카카오 서비스와 연동하여 로그인, 회원 탈velog.io https://chb2005.tistory.com/182 [Spring Boot] OAuth 2.0 로그인 (구글 로그인)OAuth 로그인이란? 요즘 대부분의 ..
2024.06.21 -
문제 상황Organization의 repository에 git push를 시도하였는데 아래와 같은 오류가 발생remote: Permission to GreedyPeople/GreedyPeople.git denied to sihyun615. unable to access 'https://github.com/GreedyPeople/GreedyPeople.git/': The requested URL returned error: 403 해결 방법1. Github에서 personal access token을 생성하는데 이 때 repo를 꼭! 체크하여 생성해야함github page > profile > settings > Developer setting > personal access token > token(c..
[TIL] 230620 <트러블슈팅> remote: Permission to ... denied to 사용자. unable to access '...': The requested URL returned error: 403문제 상황Organization의 repository에 git push를 시도하였는데 아래와 같은 오류가 발생remote: Permission to GreedyPeople/GreedyPeople.git denied to sihyun615. unable to access 'https://github.com/GreedyPeople/GreedyPeople.git/': The requested URL returned error: 403 해결 방법1. Github에서 personal access token을 생성하는데 이 때 repo를 꼭! 체크하여 생성해야함github page > profile > settings > Developer setting > personal access token > token(c..
2024.06.20 -
계층형 vs 도메인형 계층형 아키텍처 (Layered Architecture) 소프트웨어 시스템을 기능별로 계층화하여 구성하는 방식각 계층은 특정한 책임을 가짐 com.example.project├── controller (Presentation Layer)├── service (Application Layer)├── domain (Domain Layer)└── repository (Infrastructure Layer) Presentation Layer (표현 계층): 사용자 인터페이스와 관련된 모든 요소를 포함 → controllerApplication Layer (애플리케이션 계층): 비즈니스 로직을 수행하고, Presentation Layer와 Domain Layer 간의 인..
[TIL] 230619 <Spring> 소프트웨어 아키텍처에서의 패키지 구조 설계 방식계층형 vs 도메인형 계층형 아키텍처 (Layered Architecture) 소프트웨어 시스템을 기능별로 계층화하여 구성하는 방식각 계층은 특정한 책임을 가짐 com.example.project├── controller (Presentation Layer)├── service (Application Layer)├── domain (Domain Layer)└── repository (Infrastructure Layer) Presentation Layer (표현 계층): 사용자 인터페이스와 관련된 모든 요소를 포함 → controllerApplication Layer (애플리케이션 계층): 비즈니스 로직을 수행하고, Presentation Layer와 Domain Layer 간의 인..
2024.06.19 -
🧩 Jakarta Validation API를 사용하여 객체의 유효성 검증하기 Jakarta Validation API는 Java Bean Validation의 최신 버전으로, 객체의 필드에 설정된 제약 조건(Constraints)을 검사하고, 유효하지 않은 경우에는 해당 오류를 보고.→ Java 애플리케이션에서 데이터의 일관성과 유효성을 보장하는 데 필수적인 도구Jakarta Validation API 개요1. ValidatorFactory 생성ValidatorFactory factory = Validation.buildDefaultValidatorFactory(); - 'Validation.buildDefaultValidatorFactory()' 메서드 : 기본 구성을 사용하여 `Validato..
[TIL] 230618 <Spring> Jakarta Validation API🧩 Jakarta Validation API를 사용하여 객체의 유효성 검증하기 Jakarta Validation API는 Java Bean Validation의 최신 버전으로, 객체의 필드에 설정된 제약 조건(Constraints)을 검사하고, 유효하지 않은 경우에는 해당 오류를 보고.→ Java 애플리케이션에서 데이터의 일관성과 유효성을 보장하는 데 필수적인 도구Jakarta Validation API 개요1. ValidatorFactory 생성ValidatorFactory factory = Validation.buildDefaultValidatorFactory(); - 'Validation.buildDefaultValidatorFactory()' 메서드 : 기본 구성을 사용하여 `Validato..
2024.06.18 -
[update와 delete 메서드에서의 @Transactional 사용 유무]updateSchedule 메서드와 deleteSchedule 메서드는 데이터베이스 작업의 성격과 관련하여 다른 요구사항을 갖고 있습니다. 1. updateSchedule 메서드데이터 무결성 유지 : updateSchedule 메서드는 일정을 업데이트하는 작업을 수행함. 이 작업은 데이터베이스의 무결성을 유지해야 함. ex) 두 번 이상의 사용자가 동시에 동일한 일정을 수정하려고 시도할 경우, 각각의 변경 내용이 충돌 없이 적절히 반영되어야 함!!! ㄴ 트랜잭션의 원자성과 일관성이 보장되어야 함 ㄴ 일정을 업데이트하는 동안 다른 사용자가 해당 일정을 조회하는 경우, 일관된 데이터를 반환해야 함복수 작업의 원..
[TIL] 230617 <Spring> @Transactional, @ResponseStatus, HTTP 상태 코드[update와 delete 메서드에서의 @Transactional 사용 유무]updateSchedule 메서드와 deleteSchedule 메서드는 데이터베이스 작업의 성격과 관련하여 다른 요구사항을 갖고 있습니다. 1. updateSchedule 메서드데이터 무결성 유지 : updateSchedule 메서드는 일정을 업데이트하는 작업을 수행함. 이 작업은 데이터베이스의 무결성을 유지해야 함. ex) 두 번 이상의 사용자가 동시에 동일한 일정을 수정하려고 시도할 경우, 각각의 변경 내용이 충돌 없이 적절히 반영되어야 함!!! ㄴ 트랜잭션의 원자성과 일관성이 보장되어야 함 ㄴ 일정을 업데이트하는 동안 다른 사용자가 해당 일정을 조회하는 경우, 일관된 데이터를 반환해야 함복수 작업의 원..
2024.06.17 -
[My 셀렉샵 Top5 회원 찾기 설계 및 구현] >> 회원별 'My 셀렉샵' 사용시간 조회 가능일반 회원은 조회 불가능'관리자' 만 조회 가능'나만의 셀렉샵' 서버 사용시간으로 하기로 함서버 사용시간: 'My 셀렉샵' 모든 API 수행시간의 총합상품 조회 API ("GET /api/search") 수행시간관심상품 등록 API ("POST /api/products") 수행시간폴더 저장 API ("POST /api/folders") 수행시간...예) 회원 A 의 "서버 사용시간"상품 조회 API: 6시간관심상품 등록 API: 3시간폴더 저장 API: 1시간⇒ 총합: 10시API 사용시간= Controller 에 요청이 들어온 시간 ~ 응답이 나간 시간예)Controller 에 요청이 들어온 시간: 9시 1..
[TIL] 230614 <Spring> Spring AOP[My 셀렉샵 Top5 회원 찾기 설계 및 구현] >> 회원별 'My 셀렉샵' 사용시간 조회 가능일반 회원은 조회 불가능'관리자' 만 조회 가능'나만의 셀렉샵' 서버 사용시간으로 하기로 함서버 사용시간: 'My 셀렉샵' 모든 API 수행시간의 총합상품 조회 API ("GET /api/search") 수행시간관심상품 등록 API ("POST /api/products") 수행시간폴더 저장 API ("POST /api/folders") 수행시간...예) 회원 A 의 "서버 사용시간"상품 조회 API: 6시간관심상품 등록 API: 3시간폴더 저장 API: 1시간⇒ 총합: 10시API 사용시간= Controller 에 요청이 들어온 시간 ~ 응답이 나간 시간예)Controller 에 요청이 들어온 시간: 9시 1..
2024.06.14 -
[단위 테스트] Development: 개발Unit Tests (단위 테스트): 개발자 테스트QA Testing:블랙박스 테스팅주로 QA 팀이 Production 환경과 유사한 환경(Stage)에서 테스팅Production: 실 서비스 운영 환경따라서 테스트 코드를 작성한다면 프로그램의 버그를 사전에 발견하여 기하급수적인 비용의 증가가능성을 사전에 방지가능개발자는 단위 테스트를 작성하여 프로그램을 테스트단위 테스트는 작은 단위로 쪼개서 각 단위가 정확하게 동작하는지를 검사하는 테스트 기법빠르게 작성할 수 있고 문제 발생 시 어느 부분이 잘못 되었는지를 빠르고 정확하게 확인 가능! JUnit5 : 자바 프로그래밍 언어용 단위 테스트 프레임워크 JUnit 5 User GuideAlthough the J..
[TIL] 230613 <Spring> 테스트[단위 테스트] Development: 개발Unit Tests (단위 테스트): 개발자 테스트QA Testing:블랙박스 테스팅주로 QA 팀이 Production 환경과 유사한 환경(Stage)에서 테스팅Production: 실 서비스 운영 환경따라서 테스트 코드를 작성한다면 프로그램의 버그를 사전에 발견하여 기하급수적인 비용의 증가가능성을 사전에 방지가능개발자는 단위 테스트를 작성하여 프로그램을 테스트단위 테스트는 작은 단위로 쪼개서 각 단위가 정확하게 동작하는지를 검사하는 테스트 기법빠르게 작성할 수 있고 문제 발생 시 어느 부분이 잘못 되었는지를 빠르고 정확하게 확인 가능! JUnit5 : 자바 프로그래밍 언어용 단위 테스트 프레임워크 JUnit 5 User GuideAlthough the J..
2024.06.13 -
[카카오 로그인] 소셜 로그인모든 웹 사이트에서 회원가입 과정을 거치는 것은 매번 번거로운 회원가입 과정을 수행해야 할 뿐 아니라, 웹 사이트마다 다른 아이디와 비밀번호를 기억해야 하기 때문에 사용자에게 부담!웹 사이트를 운영하는 측에서도 회원들의 개인정보를 지켜야하는 역할 부담!바이러스와 백신의 관계 처럼, 발전하는 해킹 기술을 막기 위해 보안을 강화하는 노력이 지속적으로 필요하기 때문이런 문제를 해결하기 위해 OAuth를 사용한 소셜 로그인이 등장. OAuth인터넷 사용자들이 비밀번호를 제공하지 않고 다른 웹사이트 상의 자신들의 정보에 대해 웹사이트나 애플리케이션의 접근 권한을 부여할 수 있는 공통적인 수단으로서 사용되는, 접근 위임을 위한 개방형 표준사용자가 애플리케이션에게 모든 권한을 넘기지 ..
[TIL] 230612 <Spring> 카카오 로그인[카카오 로그인] 소셜 로그인모든 웹 사이트에서 회원가입 과정을 거치는 것은 매번 번거로운 회원가입 과정을 수행해야 할 뿐 아니라, 웹 사이트마다 다른 아이디와 비밀번호를 기억해야 하기 때문에 사용자에게 부담!웹 사이트를 운영하는 측에서도 회원들의 개인정보를 지켜야하는 역할 부담!바이러스와 백신의 관계 처럼, 발전하는 해킹 기술을 막기 위해 보안을 강화하는 노력이 지속적으로 필요하기 때문이런 문제를 해결하기 위해 OAuth를 사용한 소셜 로그인이 등장. OAuth인터넷 사용자들이 비밀번호를 제공하지 않고 다른 웹사이트 상의 자신들의 정보에 대해 웹사이트나 애플리케이션의 접근 권한을 부여할 수 있는 공통적인 수단으로서 사용되는, 접근 위임을 위한 개방형 표준사용자가 애플리케이션에게 모든 권한을 넘기지 ..
2024.06.12