본문 바로가기

Spring | SpringBoot10

oauth2-client 라이브러리를 이용하여 OAuth2 구현하기 (Kakao, Github) spring boot에서는 OAuth2.0을 더욱 편리하게 구현할 수 있도록 도와주는 oauth2-client 라는 라이브러리가 존재한다. JDON의 카카오와 깃헙 로그인 기능을 구현하기 위해서 oauth2-client를 사용해보았다. 구현과정 렛츠고 [ 개발환경 ]java 17spring boot 3.3spring security 6.2spring security oauth2 client 6.2 oauth2 clientoauth2 client란 OAuth 2.0 서비스에 대한 인증을 처리하기 위한 모듈로 Spring Boot 프레임워크에서 OAuth 2.0 프로토콜을 사용하여 인증을 수행하는 클라이언트이다.  oauth2-client 를 사용하면 정말 간단하게 소셜 로그인을 뚝딱 구현할 수 있다.  간.. 2024. 6. 19.
[스프링 스터디] 2주차. JPA ?? 각 애노테이션에 대해서 모두 알고 쓸 것 아닌가? 그럼 애노테이션은 따로 어떻게 공부하는지? 애노테이션으로 쓸 수 있는 옵션에 대해서 어떻게 공부하는지? 이거 final 왜쓸까요? 컬럼 이름이 이상하다. # 배운 점 관계형 데이터베이스 (RDB, Relational DataBase) 서로 지향하는 바가 다른 두 영역의 중간에서 JPA를 통해 패러다임 일치를 시킬 수 있다. 관계형 데이터베이스 : 어떻게 데이터를 저장할지에 중점을 둔 기술 관계형 데이터베이스를 사용하기 위해서 각 테이블마다 반복적인 CRUD SQL이 생성되어야한다. 객체지향 언어 : 메시지를 기반으로 기능과 속성을 한 곳에서 관리하는 기술 JPA 2022. 5. 7.
[스프링 스터디] 1주차. 단위테스트, 롬복 공부하는 책 : 스프링 부트와 AWS로 혼자 구현하는 웹 서비스 - 이동욱 지음 공부한 Github : https://github.com/anso33/jojo.springboot-example.git 견고한 서비스를 만들기 위해서는 TDD, 적어도 테스트코드를 작성하면서 진행해야한다. TDD : 테스트가 주도하는 개발 테스트 코드를 먼저 작성한다. 단위 테스트 : 기능 단위의 테스트 코드를 작성 장점1 : 코드에 대한 결과(피드백)확인이 빠르다. 장점2: 자동검증이 가능하다. 장점3: 새로 코드를 추가하고자 할 때 개발자가 만든 기존의 기능이 잘 작동함을 보장한다. 테스트 코드 작성할 때 사용하는 프레임워크 ex) JAVA - JUnit, DB - DBUnit, C++ - CppUnit, ... 스프링 .. 2022. 5. 7.
[스프링 스터디] 7주차 - 스프링 핵심 원리.기본편 (마지막) 긴 듯, 짧은 듯 스프링 스터디의 마지막 주차...! 공부한 github : https://github.com/anso33/SpringStudy_second.git [ 섹션 9. 빈 스코프 ] 빈 스코프 : 빈이 존재할 수 있느 범위 스프링은 싱글톤과 프로트타입 등 다양한 스코프를 지원한다. ex) 싱글톤 프로토타입 웹 관련 request session application - @Component를 이용해서 자동으로 등록할 수도 있고, 수동으로 등록할 수도 있다. # 프로토타입 스코프 : 프로토타입 스코프의 빈을 요청하면 스프링 컨테이너가 프로토타입 빈을 생성하고 의존관계를 주입하여 반환한다. 싱글톤과 다르게 요청을 받을 때마다 새로운 프로토타입 빈을 생성하여 반환한다. 스프링 컨테이너는 프로토타입 빈에.. 2022. 2. 24.
[스프링 스터디] 6주차 - 스프링 핵심 원리.기본편 공부한 github : https://github.com/anso33/SpringStudy_second.git [ 섹션 7. 의존관계 자동 주입 ] # 의존관계 주입 방법 + 생성자 주입 : 생성자를 통해서 의존 관계를 주입 받는 방식 @Component public class OrderServiceImpl implements OrderService { private final MemberRepository memberRepository; private final DiscountPolicy discountPolicy; @Autowired public OrderServiceImpl(MemberRepository memberRepository, DiscountPolicy discountPolicy) { th.. 2022. 2. 17.
[스프링 스터디] 5주차 - 스프링 핵심 원리.기본편 공부한 github : https://github.com/anso33/SpringStudy_second [ 섹션 5. 싱글톤 컨테이너 ] >> 순수한 DI 컨테이너 테스트 public class SingletonTest { @Test @DisplayName("스프링 없는 순수한 DI 컨테이너") void pureContainer() { AppConfig appConfig = new AppConfig(); //1. 조회: 호출할 때 마다 객체를 생성 MemberService memberService1 = appConfig.memberService(); //2. 조회: 호출할 때 마다 객체를 생성 MemberService memberService2 = appConfig.memberService(); //참조.. 2022. 2. 10.
[스프링 스터디] 4주차 - 스프링 핵심 원리.기본편 섹션 3. 스프링 핵심 원리 이해2 - 객체 지향 원리 적용 # public class AppConfig { public MemberService memberService() { return new MemberServiceImpl(new MemoryMemberRepository()); } //생성자 주입 public OrderService orderService() { return new OrderServiceImpl( new MemoryMemberRepository(), new FixDiscountPolicy()); } 섹션 4. 스프링 컨테이너와 스프링 빈 # 2022. 1. 30.
[스프링 스터디] 3주차 - 스프링 핵심 원리.기본편 # 참고 강의 스프링 핵심 원리 : 김영한님 # 공부한 코드를 올린 Github https://github.com/anso33/SpringStudy_second.git # EJB (Enterprise Java Bean) EJB의 비전 : EJB는 애플리케이션 개발을 쉽게 만들어준다. 애플리케이션의 개발자는 로우레벨의 기술에 관심을 가질 필요가 없다. 기업환경의 시스템을 구현하기 위한 서버 측 컴포넌트 모델 많은 동시접속자에 대한 안정성 지원 안정적인 데이터 조작 >> 동시접속자가 많은 동시에 안정적인 트랜젝션이 필요한 사이트 구축시에 사용 ex) 공공기관, 금융, 포털사이트 게임사이트, 기업 등등 지금도 그런지는 모르겠 - 문제점 객체지향적이지 않다. 프로그래밍 모델이 복잡하다. 특정 환경, 기술에 종속.. 2022. 1. 25.
[스프링 스터디] 2주차 - 스프링 입문 # 1주차 정리 내용 2022.01.13 - [컴퓨터 언어/Spring | SpringBoot] - [스프링 스터디] 1주차 - 스프링 입문 # 2주차 정리 내용 05. 회원 관리 예제 - 웹 MVC 개발 스프링 컨테이너에 관련된 컨트롤러가 없으면 정적 컨텐츠의 내용을 전달한다. >> 컨트롤러가 정적 파일보다 높은 우선순위를 가진다. 06. 스프링 DB 접근 기술 + 순수 JDBC (Plain JDBC, Java DataBase Connectivity) JDBC : 자바 프로그램이 DB와 연결되어 데이터를 주고 받을 수 있게 하는 프로그래밍 인터페이스 - JAVA 기반 앱에서 JDBC-API -> JDBC driver를 통해 DB에 접근한다. - 함수 호출용 SQL 인터페이스 - 공통된 SQL 인터페이스.. 2022. 1. 20.