본문 바로가기

카테고리137

[깃터디/Auth] 로그아웃 요청 구현 💡 .java를 클릭시 관련 커밋으로 이동💡   AuthController.javaprivate final static int REFRESH_TOKEN_INDEX = 2;@ApiResponse(responseCode = "200", description = "로그아웃 성공")@PostMapping("/logout") public JsonResult logout(@RequestHeader(name = "Authorization") String token) { List tokens = Arrays.asList(token.split(" ")); if (tokens.size() == 3) { authService.logout(tokens.get(REFRESH.. 2024. 5. 10.
[깃터디/Auth] 로그인 페이지 요청 구현 💡 .java를 클릭시 관련 커밋으로 이동💡 /auth/loginPagestate 생성 → state로 url 생성( 인가 코드 요청하여 URL 빌더로 생성 ) → OAuthService의 loginPage 함수를 통해 로그인 페이지 생성후 리턴 → JsonResult로 리턴 AuthController.java@Slf4j@RequiredArgsConstructor@RequestMapping("/auth")@RestControllerpublic class AuthController { private final AuthService authService; private final OAuthService oAuthService; private final LoginStateService lo.. 2024. 5. 10.
[깃터디/Auth] OAuth2 Login 구현 💡 .java를 클릭시 관련 커밋으로 이동💡  GoogleAdapter.java@Slf4j@Component@RequiredArgsConstructorpublic class GoogleAdapter implements OAuthAdapter { private final GoogleTokenClients googleTokenClients; private final GoogleProfileClients googleProfileClients; @Override public String getToken(String tokenURL) { try { GoogleTokenResponse token = googleTokenClients.getToken(URI.c.. 2024. 5. 10.
[깃터디] OAuth 2.0 OAuth인터넷 사용자들이 비밀번호를 제공하지 않고 다른 웹사이트 상의 자신들의 정보에 대해 웹사이트나 애플리케이션의 접근 권한을 부여할 수 있는 공통적인 수단으로서 사용되는, 접근 위임을 위한 개방형 표준이다.OAuth 2.01.0에서 알려진 보안 문제 등을 개선한 버전이다.웹 서핑을 하다 보면 Google과 Facebook 등의 외부 소셜 계정을 기반으로 간편히 회원가입 및 로그인할 수 있는 웹 어플리케이션을 쉽게 찾아볼 수 있다. 클릭 한 번으로 간편하게 로그인할 수 있을 뿐만 아니라, 연동되는 외부 웹 어플리케이션에서 Facebook 및 Twitter 등이 제공하는 기능을 간편하게 사용할 수 있다는 장점이 있다.예를 들어, Google로 로그인하면 API를 통해 연동된 계정의 Google Cale.. 2024. 5. 10.
[클라우드] 8. 스토리지 가상화 (Storage Virtualization) 스토리지 기술스토리지 • 데이터와 프로그램을 저장하는 기록 장치스토리지 기술 •  HDD, SSD 등과 같은 다양한 물리적 장치를 비롯하여 파일 시스템, 데이터 암호화 등과 같은 소프트웨어기술을포함고려사항 • 데이터 안정성, 신뢰성, 가용성, 성능, 확장성 및 비용 등을 고려 • 복제, 백업, 복구, 암호화, 압축, 색인화, 분산 등의 기술을 통해 제공 스토리지 가상화 기술스토리지 가상화 기술 • 여러 개의 물리적 스토리지 장치를 하나의 가상 스토리지로 묶어서 제공하는 기술, 이를 통해 효율적으로 자원 관리대표적인 예시(Local) • Redundant Array of Independent Disk (RAID) • Logical Volume Manager (LVM) RAID• 여러 개의 하드 디스크를 일.. 2024. 5. 10.
[깃터디] JWT Json web token Json web token당사자 간에 정보를 JSON 개체로 안전하게 전송하기 위한 간결하고 독립적인 방법을 정의하는 인터넷 표준 인증 방식이다.즉, 인증에 필요한 정보들을 암호화시킨 JSON 토큰을 의미한다. JWT 구조JWT는 .(점)을 구분자로 나누어지는 세 가지 문자열의 조합이다..(점)을 기준으로 좌측부터 Header, Payload, Signature을 의미한다. Header 에는 JWT에서 사용할 타입과 해시 알고리즘의 종류가 담겨있으며, Payload는 서버에서 첨부한 사용자 권한 정보와 데이터가 담겨있다. 마지막으로 Signature에는 Header, Payload를 Base64 URL-safe Encode를 한 이후 Header에 명시된 해시함수를 적용하고, 개인키(Private Key.. 2024. 5. 6.
[클라우드] 7. 현대 네트워크 가상화 (Modern Network Virtualization) Packet Flow in KernelL2 (Layer 2): 패킷이 네트워크 인터페이스를 통해 처음 받아들여지는 레이어, 주로 물리적 주소인 MAC 주소를 사용Ingress: 패킷이 커널 내부로 들어오는 지점L3 (Layer 3): 네트워크 레이어, 주로 IP 주소를 사용하여 패킷의 라우팅을 결정, 여기서 패킷은 다음 목적지를 향해 이동하도록 설정Proto Handler: 패킷이 어떤 프로토콜을 사용하고 있는지 확인하고, 그에 맞는 프로토콜 핸들러로 패킷을 전달Routing: 패킷이 최종 목적지로 라우팅되는 방식을 결정, 패킷이 내부 라우팅 테이블에 따라 적절한 인터페이스로 전송되거나 다른 라우터로 전달Forwarding: 패킷이 최종 목적지를 향해 전달되는 단계, 라우팅 테이블의 정보를 사용하여 패킷.. 2024. 5. 1.
[클라우드] 6. Kubernetes (쿠버네티스) Google과 컨테이너 • Google의 업무 방식 • Gmail에서 YouTube, 검색에 이르기까지 모두 컨테이너에서 실행 • 개발팀은 컨테이너화를 통해 더욱 신속하게 소프트웨어를 배포 • 매주 수십억 개가 넘는 컨테이너를 생성 • 쿠버네티스 • 대규모 워크로드를 운영/관리한 경험과 노하우가 축적된 다년 간의 프로젝트로 컨테이너를 통합 관리함 • 그리고 2014년 오픈소스 프로젝트로 외부로 공개 • Go로 작성된 오픈소스 SW (Apache License 2.0) • Cloud-Native Computing Foundation (CNCF) 에서 관리 • 컨테이너 배포, 네트워크, 스토리지 관리 정책을 세부적으로 명세 가능 (네트워킹 제공x => 정책들을 관리) • 대규모의 클러스터 운영이 가능하도록 .. 2024. 4. 17.
[Java] Queue 메서드 자바에서는 Queue 는 인터페이스고 필요에 따라 큐 컬렉션을 골라 사용할 수 있다.자주 사용하는 큐 컬렉션에는 LinkedList, ArrayDeque 가 있다. 코테에서는 주로 ArrayDeque사용import java.util.Queue;import java.util.ArrayDeque;ArrayDeque queue = new ArrayDeque(); 메서드설명boolean add(Object o)지정된 객체를 Queue에 추가저장공간 부족 시 IllegalStateException 발생Object remove()Queue에서 객체를 꺼내 반환비어있을 경우 NoSuchElementException 발생Object element()삭제없이 요소를 읽어온다.비어있을 경우 NoSuchElementExce.. 2024. 4. 16.
[Java] Stack 메서드 import java.util.Stack; 메서드 설명 boolean empty() Stack이 비어있는지 알려준다 Object peek() Stack의 맨 위에 저장된 객체를 반환 pop과 달리 Stack에서 객체를 꺼내지는 않는다 비어있을 경우 EmptyStackException 발생 Object pop() Stack의 맨 위에 저장된 객체를 꺼낸다 비어있을 경우 EmptyStackException 발생 Object push(Object item) Stack에 객체(item)를 저장한다 int search(Object o) Stack에서 주어진 객체(o)를 찾아서 그 위치를 반환 못 찾을 경우 -1 반환 배열과 달리 위치는 0이 아닌 1부터 시작 2024. 4. 16.