Languege/Java & Spring

Languege/Java & Spring

[Spring Framework OPEN API서비스 교육] OAuth 2.0

[OAuth 1.0의 문제점] - WebApp 클라이언트에서는 사용할 수 없음 - 개발과 테스트의 어려움 : Signature - 인증서버와 리소스 서버의 분리가 힘듦 [OAuth 2.0] - 다양한 인증 방식 제공(4가지) - HTTPS 사용의 의무화 - Signature를 사용하지 않음(Secret 평문으로 전송 -> HTTPS 사용 필수) - 인증&인가 단계의 간소화(앱 승인 -> 액세스 토큰 발행) [OAuth 2.0과 1.0의 차이] - HTTPS 사용 의무 - Access Token Secret이 없음 [OAuth 2.0 작동 방식] 1.사용자(브라우저)가 클라이언트 웹서버에 접근한다. 2.클라이언트 웹서버는 사용자에게 앱 승인을 요청한다.(리다이렉트) 3.사용자는 인증서버에 클라이언트 승인을..

Languege/Java & Spring

[Spring Framework OPEN API서비스 교육] OAuth 1.0

OAuth 1.0 OAuth는 사용자들은 Consumer에게 Provider상의 인증 정보를 제공할 필요 없이, Consumer에서 Provider의 개인 데이터로의 접근을 허용하는 방법을 제공하는 인증 위임 프로토콜 Consumer에게 실제 ID와 비밀번호가 전달되지 않고 Provider에 제공하면 Provider에서 Consumer에게 인증 토큰을 제공하는 방식 3-legged OAuth [프로세스 요약] 컨슈머는 CK,CS를 이용해 RT,RTS를 응답받는다. 컨슈머는 사용자를 Provider가 제공한 Redirect Authorization page로 이동시킨다. 사용자는 provider에 컨슈머를 인가한다. 사용자가 클라이언트를 승인했음을 증빙하는 정보 Verifier(Code)를 가지고 클라이언..

Languege/Java & Spring

[Spring Framework OPEN API서비스 교육] 1.API KEY란?

[API KEY] 특징 - 인증(X) : 식별만 수행한다. - 목적 : 통계와 사용량 제한 - 공용 데이터 조회시에 주로 사용 사이트 단위로 접근 허용 - 사용자별 로그인을 하지 않아도 접근 가능한 페이지에 적용 가능 - 1일 사용량 제한하는 경우가 많음 서명 키 없이 API KEY와 사이트 URL을 이용해 접근 제한이 가능하다. 1.클라이언트 개발자는 Provider에 hostName 및 기타 정보를 이용해 API KEY를 요청한다. 2.Provider는 API KEY를 생성하고 hostName 및 기타 정보를 DB에 저장하고 , API KEY를 발급한다. 3.클라이언트 개발자는 해당 API KEY를 통해 데이터를 요청한다. 4.Provider는 API KEY & Origin을 Validate하고 성공..

Languege/Java & Spring

[스프링 에러] 카카오 로그인 시 발생 오류 및 해결방법 Provider ID must be specified for client registration 'kakao'

카카오 로그인 api 적용 도중 Provider ID must be specified for client registration 'kakao' 에러가 발생했습니다. 에러로그 2022-08-24 22:35:26.863 ERROR 21516 --- [ restartedMain] o.s.boot.SpringApplication : Application run failed org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'webSecurityConfig': Unsatisfied dependency expressed through method 'setContentNegotationStrate..

Languege/Java & Spring

[김영한 스프링] 빈 스코프

빈 스코프란? 기본적으로 스프링 빈은 스프링 빈이 스프링 컨테이너의 시작과 함께 생성되어서 스프링 컨테이너가 종료될때 까지 유지되는데, 이것은 스프링 빈이 싱글톤 스코프로 생성되기 때문입니다. 그렇다면 다른 생명주기를 가진 스코프는 어떤게 있을까요? 싱글톤: 기본스코프, 스프링 컨테이너의 시작과 종료까지 유지되는 가장 넓은 범위의 스코프 프로토타입 : 스프링 컨테이너가 프로토타입 빈의 생성과 의존관계 주입까지만 관여하고 더는 관리하지 않는 짧은 범위의 스코프 request : 웹 요청이 들어오고 나갈때 까지 유지되는 스코프 session : 웹 세션이 생성되고 종료될 때 까지 유지되는 스코프 application : 웹의 서블릿 컨텍스트와 같은 범위로 유지되는 스코프 싱글톤으로 생성된 빈은 스프링 DI ..

Languege/Java & Spring

[김영한 스프링] 빈 생명주기 콜백

빈 생명주기 콜백 시작 DB 커넥션 풀이나, 네트워크 소켓처럼 애플리케이션이 시작하는 시점에 연결하고, 종료되는 시점에 연결을 종료하는 작업을 하려면 객체의 초기화와 종료 작업이 필요합니다. 이번 강의에서는 스프링에서의 빈 생명주기 콜백을 공부했습니다. 스프링 빈의 이벤트 라이프사이클 스프링 컨테이너 생성 스프링 빈 생성 의존관계 주입 초기화 콜백 사용 소멸전 콜백 스프링 종료 초기화 콜백: 빈이생성되고, 빈의 의존관계 주입이 완료된 후 호출 소멸전 콜백: 빈이 소멸되기 직전에 호출 객체의 생성과 초기화를 분리하자. 생성자는 필수 파라미터를 받고, 메모리를 할당해서 객체를 생성하는 책임을 가집니다. 반면 초기화는 이렇게 생성된 값들을 이용해 외부 커넥션 연결 등 무거운 동작을 수행합니다. 따라서, 생성자..

Languege/Java & Spring

[김영한 스프링] 의존관계 자동주입

다양한 의존관계 주입 방법 의존관계 주입은 크게 4가지 방법이 있습니다. 생성자 주입 수정자 주입(setter 주입) 필드 주입 일반 메서드 주입 생성자 주입이 가장 중요하고 많이 쓰임으로 생성자 주입만 기재하겠습니다. 생성자 주입은 말 그대로 생성자를 통해서 주입을 받는 방법입니다. 생성자 주입의 특징 생성자 호출 시점에 딱 1번 호출되는 것이 보장 불변, 필수 의존관계에 사용 생성자 주입의 특징은 생성자가 딱 1개만 있다면 @AutoWired를 생략해도 자동으로 주입됩니다. (스프링 빈에만 해당) 옵션처리 주입할 빈이 없어도 스프링이 동작해야 하는 경우가 있은데 @Autowired만 사용하면 required 옵션의 기본값이 true로 되어있어서 자동 주입 대상이 없으면 오류가 발생합니다. 자동 주입 ..

Languege/Java & Spring

[김영한 스프링] 싱글톤 컨테이너

웹 애플리케이션과 싱글톤 웹 애플리케이션은 보통 여러 고객이 동시에 서버에 요청을 보냅니다. 스프링이 없는 순수한 DI 컨테이너에 memberService를 클라이언트 A,B,C가 요청한다고 쳤을 때, DI 컨테이너는 매번 다른 객체를 새롭게 생성하게 됩니다. 하지만 고객 트래픽이 초당 100개 1000개씩 생성된다면 메모리 낭비가 심해질 것 입니다. 이를 해결하기 위해서 gof디자인 패턴에서 나오는 싱글톤(Singleton) 이라는 패턴이 나왔는데, 하나의 static 객체를 메모리에 띄우고 이를 재사용하여 시스템의 효율을 높이는 방법입니다. 싱글톤 패턴의 문제점 순수 자바의 싱글톤 패턴은 아래와 같은 형식으로 사용이 가능합니다. 하지만 이 방법에는 여러가지 문제점이 있습니다. 싱글톤 패턴을 구현하는 ..

mntdev
'Languege/Java & Spring' 카테고리의 글 목록 (2 Page)