2025/05 20

자바에서 Static 에 대한 완벽 정리

자바 메모리 구조는 크게 정확히 3가지 가 있다. 매서드 영역, 스택 영역, 힙 영역이 있다. 매서드 영역은 클래스 정보를 보관한다.( 공유해가면서 쓸 수 있다.)(이곳은 프로그램에서 실행되고 있는 모든 공통 데이터를 관리를 한다. 이 영역은 프로그램의 모든 영역에서 공유한다. )(클래스 정보 ,static 영역, 런타임 상수 풀) 스택 영역은 실제로 프로그램이 실행 되고 있는 영역이다.힙 영역은 객체(인스턴스)가 생성되는 영역이다. new 명령어를 사용하면 이 영역을 사용한다고 보면 된다. 같은 클래스로부터 만들어진 객체(인스턴스)라도 , 인스턴스 내부의 변수 값은 서로 다를 수 있다. 클래스 내부의 매서드는 서로 공유를 한다. static 이 붙으면 static 변수,클래스 변수, 정적 변수라..

Java 2025.05.31

코딩 테스트 기본 개념 복습

시간 복잡도 : 입력한 거에 따라 런타입이 어느 정도 들어가는 지 계산한다. 공간 복잡도 : 입력한 거에 따라 메모리가 어느 정도 들어가는 지 계산한다. O(1) : 이 가장 빠르다. O(logN) : 이진 트리인 경우 여러 개의 방향으로 생김O(n^2) : matrix 를 풀 때 이용 2^10 ===> 1KB2^20 ===> 1MB2^30 ===> 1GB2^40 ===> 1TB String 불변 객체이다. (자바에서는 변경을 원한다면 StringBuilder를 사용하면 된다. )String str = "ICON"; str.length();str.charAt(2);str.indexOf("o");여기는 조금 더 나중에 자세히 쓰자. Linked Lists Singly Linked List 각각..

카테고리 없음 2025.05.31

oauth2-client 를 활용한 서버단 oauth 구현

서버에서 인가코드, token ,사용자 정보 를 한꺼번에 발급받는 방식의 구현이다. 구글,kako 가 비슷하다. ->다른 블로그를 뒤지면서 해 보자 .구글 콘솔(구글 클라우드)에서의 서버의 엔드 포인트를 redirect_uri로 등록해주자 . implementation ' ' 이 부분 주석해제 oauth2-client는 Spring 기술이므로 .yml spring 밑에다가 작성을 해주자 . http://localhost:8080/login/oauth2/code/google 이거는 공식 문서에 적혀져 있다. security: oauth2: client: registration: google: client-id: 965121903088-88ujujser..

로그인 2025.05.25

카카오 로그인 방법 (일반적인 oauth 방식)

카카오 디벨로퍼에 들어가서 내 애플리케이션으로 들어간다. 애플리케이션 추가하기를 누른다. 여기서는 이메일을 받지 못했다. 여기서 REST_API키는 Client_id 값이다. 이메일 키를 발급 받기 위해서 비즈 앱으로 전환을 한다. 사용자 정보 등록을 누른다. 들어간 다음 비즈앱 을 전환 눌러준다. 그러면 표시가 밑에 와 같이 뜬다. 오른쪽에 설정을 눌러 들어가면 밑에와 같이 필수동의 선택동의 동의 목적 ( 회원가입시 필요 이런 식으로 적어주면 된다.) 카카오 로그인에서 활성화 상태를 모두 ON으로 바꾸어주고 여기에 리다이렉트 받은 주소를 써 주면 된다. 카카오의 scope 는 developers 세팅에서 결정되므로 , 여기서의 선택이 중요 개인정보를 받으려면 별도의 신청 ..

로그인 2025.05.25

구글 로그인 흐름 (콘솔 작업+ 인가코드)

1. 일반적인 oauth (프론트 인가) 프론트에서 구글로 접속하고 (로그인을 하면) 구글에서 인가코드를 프론트로 주고 프론트는 다시 서버로 주고 서버에서 구글로 (Access Token을주고) 구글을 다시 사용자에게 id ,email 을 주는데 id 는 거의 유일한 값이라고 생각하면 될꺼 같다. 여기서 구글 플랫폼에서1.URL (어디로 리다이렉트 받을 것인가?)2.SCOPE ( 어느 범위까지 가져올 것인가?)3. KEY 값 세팅 1. 구글 클라우드 콘솔에서 콘솔을 클릭 프로젝트 들어가서 새 프로젝트 선택 API 서비스 클릭 시작하기 클릭 외부 선택 연락처 정보에 이메일 주소 선택 OAUTH 클라이언트 만들기 1. 웹 애플리케이션 선택 (상황에 맞게 선택하면 될..

로그인 2025.05.24

oauth 프론트랑 백엔드 인가 방식

oauth의 주요 요소 Accesstoken 구글 카카오 서버에서 API 요청 을 받는 키 accesstoken을 통해 sns 로그인한 사용자의 정보를 조회한다. 보통 Refresh Token (Access Token을 갱신하는 용도로 사용을 한다.) 보다는 TTL이 길다. 인가 코드 AccessToken을 발급받기 위한 키 값이다.아래와 같이 Redirect 방식을 통해 사용자 정보를 받아와야 한다. Accesstoken을 url 파라미터로 받게 되면 , 웹 브라우저 상에서 보안 취약점이 존재하므로 인가 코드를 발급하여 accesstoken을 발급한다. 보안상의 이유로 인가코드 를 받고 Access_token 그 다음이 사용자 정보를 받는다. Scope 자사 서비스에서 구글이나 카카오 등등에서..

로그인 2025.05.22

Redis 의 pub 과 sub 기능

Redis를 활용하여 메시지를 발행하고 구독하는 서비스이다. Redis Pub/Sub 기능시스템에서 동일한 채널을 여러 구독자가 구독하여 해당 채널로 발행된 메시지가 모든 구독자에게 발송이 된다.한번 발송된 메시지는 저장이 되지 않는다. 한마디로 메시지가 기본적으로 웹서버의 주소가 여러개 가 저장이 된 메모리(Redis) 로 저장이 되고 (이걸 구독이 되었다고 표현 함) Redis에서 웹서버 (여러개에서 발행된 메시지를) 모든 구독자들에게 발송을 해 준다. 실습예시)터미널1 : SUBSCRIBE test_channel터미널2 : PUBLISH test_channel "Hello, this is a test message"Redis Stream 기능이걸 사용하지는 않는다. 대신 kafka 를 자주 ..

Redis 2025.05.19

Redis 중요한 개념 정리(1)

1) Redis의 중요특징 RDB 는 디스크에 주로 저장이 되고 SQL 쿼리를 날리는 등 기본적으로 멀티 쓰레드를 지원을 한다. 그에 반해 Redis는 인메모리(REM) 기반의 기본적으로 메모리에 저장이 된다.key-value 값으로 관리가 이루어지는 Nosql 데이터 베이스이다. 주기적으로 스냅샷이 디스크에 저장이 된다. 그리고 싱글 쓰레드를 지원을 한다. 해시는 키를 암호화하는 것으로 암호화된 알고리즘을 통해 특정 동일값을 보장을 해 준다. 2) Redis에서의 자료형 String은 데이터를 String 를 value 형태로 저장이 된다. 가장 일반적인 key-value 값이 된다. List는 순서가 있는 목록이고 일반적으로는 삽입이 되면서 뒤로 미룰 수 있지만 여기서는 불가능하다. 앞 뒤 ..

Redis 2025.05.19