스프링) 스프링이란?
·
자바 탐구
스프링이란? 스프링 프레임워크(Spring Framework)는 자바 플랫폼을 위한오픈 소스 애플리케이션 프레임워크로 간단히 스프링(Spring)이라고도 합니다. 스프링의 유래스프링은 JavaEE(Java Enterprise Edition)의 스펙을 구현한 EJB(Enterprise Java Bean)가기술의 복잡도가 증가해서 성능이 느렸던 것을 탈피하여, EJB 시절을 "겨울"에 빗대어 겨울 후의 "봄"으로새로운 시작을 의미하여 Spring(봄)이 되었습니다. EJBEJB는 비즈니스 객체들을 관리하는 컨테이너로부터 필요한 객체를 꺼내 사용하는 방식으로객체들 간의 의존성을 해결하려고 했습니다.하지만, 코드들이 EJB 기술에 지나치게 종속되는 문제가 발생하게 됩니다. POJO(Plain Old Java O..
스프링) @SpringBootTest와 @WebMvcTest의 차이
·
자바 탐구
@SpringBootTest와 @WebMvcTest의 차이 SpringBoot Test SpringBoot 애플리케이션의 테스트를 지원하기 위해 제공되는 테스트 모듈 SpringBoot 애플리케이션의 전체 컨텍스트를 로드하고 설정하는 것으로, 애플리케이션의 실제 구성 요소들과 상호작용하며 통합 테스트를 수행하는 데 사용한다. SpringBoot Test의 특징 애플리케이션 컨텍스트를 로드하여 통합테스트 수행 실제 빈과 구성 요소들과 상호작용하여 실제 환경과 유사한 테스트 수행. @SpringBootTest 어노테이션을 사용하여 테스트클래스에서 SpringBoot 애플리케이션 컨텍스트를 로드 SpringBoot Test 예시 @ActiveProfiles("test") @SpringBootTest class..
스프링) RestClient
·
자바 탐구
RestClient REST API 서버에 HTTP 요청을 보낼 수 있는 클라이언트 툴 또는 라이브러리 client - Frontend, Frontend - Backend 뿐만이 아니라, Backend A - Backend B 사이에도 Backend A가 Backend B의 리소스를 사용할 수 있다. 클라이언트와 서버의 관계는 상대적이기 때문에 Frontend - Backend의 관계에서는 Frontend가 클라이언트가 되고, Backend - Backend 관계에서는 리소스를 요청하는 쪽이 클라이언트가 된다. UI가 갖춰진 RestClinet로는 Postman, Thunder Client, Insomnia, Soap UI 등이 있다. SpringFramework에서는 REST엔드포인트에 대한 호출을 수..
스프링) 스프링 컨테이너(Spring Container)
·
자바 탐구
스프링 컨테이너 스프링 프레임워크의 핵심 기능 중 하나로, 스프링 애플리케이션에서 객체의 생성, 관리, 의존성 주입(Dependecy Injection), 라이프사이클 관리 등을 담당하는 컴포넌트이다. 스프링 컨테이너는 빈(Bean)이라고 불리는 객체들을 관리한다. 빈은 스프링 컨테이너에 의해 생성되고, 컨테이너 안에서 싱글톤으로 관리된다. 싱글톤은 여러 요청이나 호출에 대해 동일한 인스턴스를 유지하는 디자인 패턴을 의미한다. 스프링 컨테이너는 XML, 어노테이션 기반의 자바 설정 클래스로 만들 수 있다. 스프링 부트(Spring Boot)를 사용하기 전에는 XML을 통해 직접적으로 설정해 주어야 했지만, 스프링 부트가 등장하면서 대부분 사용하지 않게 되었다. 스프링 컨테이너의 장점 1. 의존성 주입 스..
스프링) 의존성 주입(Dependency Injection) 방식
·
자바 탐구
의존성 주입 방식 의존성을 주입하는 방법은 4가지가 있다. 1. 생성자 주입(Constructor Injection) 2. setter 3. 필드 주입 생성자 주입 생성자를 통해 의존관계를 주입하는 방법이다. @RestController public class AnimalController { private final AnimalService animalService; @Autowired public AnimalController (AnimalService animalService) { this.animalService = animalService; } @PostMapping("/animal") public ResponseEntity adoptAnAnimal(AdoptRequestDto requestDt..
스프링) SpringSecurity - 11) Oauth2.0 네이버 로그인 완료
·
자바 탐구
Oauth2.0 네이버 로그인 완료 https://developers.naver.com/main/ NAVER Developers 네이버 오픈 API들을 활용해 개발자들이 다양한 애플리케이션을 개발할 수 있도록 API 가이드와 SDK를 제공합니다. 제공중인 오픈 API에는 네이버 로그인, 검색, 단축URL, 캡차를 비롯 기계번역, 음 developers.naver.com application.yml spring: security: oauth2: client: registration: naver: client-id: client-secret: scope: - name - email - profile_image client-name: Naver authorization-grant-type: authorizat..
스프링) SpringSecurity - 10) Oauth2.0 페이스북 로그인 완료
·
자바 탐구
Oauth2.0 페이스북 로그인 완료 https://developers.facebook.com/ Meta for Developers 꿈의 아틀리에 창조 BUCK의 크리에이터와 개발자로부터 Meta Spark를 사용하여 DIOR Beauty를 위한 AR 경험을 설계 및 빌드하는 과정에 대한 비하인드 스토리를 들어보세요. Presence Platform Meta의 Presence Pl developers.facebook.com 화면의 우측 상단 "내 앱"을 클릭한다. "앱 만들기" 를 클릭한다. 필요한 부분에 체크를 하고 "다음"을 클릭한다. 필요한 부분에 체크하고 "다음"을 클릭한다. 필요한 부분을 입력하고 "앱 만들기"를 클릭한다. "제품" 탭 -> "구성" -> "빠른시작"을 클릭한다. "웹"을 클릭한..
스프링) SpringSecurity - 9) Oauth2.0 구글 로그인 및 자동 회원 가입 진행 완료
·
자바 탐구
Oauth2.0 구글 로그인 및 자동 회원 가입 Oauth2User는 user의 정보를 Attributes() 안에 담고 있다. 이는 Map형식이다. getAttributes : { sub=000000000000000000000, name=xxx, given_name=xx, family_name=x, picture=https://lh3.googleusercontent.com/a/AAcHTtcU7e8jEeWSfsxjs8_sxp_U1XoKdWQ5HJFQNPqt=s96-c, email=xxx@gmail.com, email_verified=true, locale=ko } PrincipalDetails package com.example.security1.auth; import com.example.securit..
오지랖 토끼