전체 글
-
코딩 테스트 공부 방법알고리즘/백준알고리즘 2025. 8. 26. 10:25
'[전체 문제 내용]- [입력 예시 와 출력 예시] -[문제 1줄 요약 및 도식화]- 목표: [입력/출력/제약]- 입력:- 출력: [기준선 & 목표 복잡도 (해당 복잡도가 노안 이유도 설명)]- 브루트포스 복잡도: O( )- 목표 복잡도: O( ) [핵심 아이디어/패턴 후보 (핵심 아이디어,패턴 후보로 선택된 이유도 설명)]- 패턴(한 개만 고르기): 투포인터 / BFS-DFS / 이분 / DP / 그리디 / 유파 / 기타( )- 자료구조: 배열 / 해시 / 힙 / 덱 / 스택 / 그래프 인접리스트 / 기타( ) [불변식/상태 정의]- 불변식 또는 DP 상태:- 전이/업데이트 규칙(수식 or 한 줄 설명): [의사코드 출력]- [예제 & 핸드런]- 예제 입력:- 과정 스냅샷(윈도우/큐/스택/배열 상태)..
-
spring security oauth2 구조 분석카테고리 없음 2025. 8. 26. 06:52
[사용자 브라우저] │ (code 전달) ▼OAuth2LoginAuthenticationFilter │ (code ↔ token 교환) ▼OAuth2AccessTokenResponseClient │ (access token 획득) ▼OAuth2UserRequest ──► OAuth2UserService#loadUser(OAuth2UserRequest) │ ▼ OAuth2User (= 당신의 OAuth2MemberPrincipal) │ ..
-
코딩테스트 공부 방법알고리즘 2025. 8. 21. 17:57
좋아요! 코딩테스트는 “문제 이해 → 설계 → 수도코드 → 구현 → 검증 → 회고” 루틴을 습관화하면 실력이 가장 빨리 오릅니다. 아래는 쉬운 문제부터 단계적으로 올라가는 학습법과, 바로 써먹을 설계/수도코드 템플릿입니다.1) 한 문제를 푸는 루틴 (타임박싱)00:00–05:00 문제 파악입력/출력, 제약(N 최대), 요구 연산 파악05:00–12:00 설계자료구조/알고리즘 선택, 복잡도 목표 세우기예외 케이스(빈 배열, 중복, 음수/0, 한 원소, 이미 정렬) 나열12:00–25:00 수도코드 → 구현25:00–30:00 자가 테스트 & 디버깅정상·엣지·극단 케이스 3종 최소30분 내 감이 안 오면 힌트 1개만 보고 재설계(10분) → 재도전(20분). 그래도 막히면 풀이를 보고 오답노트 작성.2) 설..
-
oauth2 자세한 플로우 체크Spring/Spring Security 2025. 8. 21. 16:03
용어 정리(중요)Authorization Server: 구글Client(또는 RP): 스프링 기반 웹 앱 (로그인 시작/콜백 처리 주체)Resource Server: 여러분 API 서버(액세스 토큰으로 보호 자원 제공). 실서비스에선 Client와 Resource Server가 같은 앱일 수도 있지만 역할은 구분해서 생각하세요.OIDC(OpenID Connect): “로그인(신원)”을 다루는 확장 규격. 구글 로그인은 사실상 OIDC 사용이 표준입니다.보강된 전체 플로우브라우저 → Client: 로그인 시작 (여러분 1과 동일)로그인 버튼 클릭 → /oauth2/authorization/google 같은 엔드포인트 호출Client: 요청 컨텍스트 생성(중요)state 생성 후 서버 세션/스토리지에 보관(..
-
-
비관적 락(Pessimistic Lock)과 낙관적 락(Optimistic Lock) 차이 with JPA자바웹프로그래밍/JPA 2024. 12. 18. 16:07
1. 비관적 락(Pessimistic Lock)특징:데이터에 대한 충돌이 빈번할 것으로 예상될 때 사용하는 방법.데이터가 다른 트랜잭션에 의해 변경되지 않도록 **락(Lock)**을 이용해 강제적으로 제어.데이터에 접근하려는 시점에 바로 락을 걸어서 다른 트랜잭션이 데이터를 읽거나 수정하지 못하게 한다.데이터의 일관성을 보장하지만, 성능에 영향을 줄 수 있음.장점:데이터 충돌 가능성을 완벽히 방지.데이터의 신뢰성이 중요하거나 다수의 사용자 간 충돌이 예상될 때 적합.단점:락을 사용하기 때문에 성능이 저하될 가능성이 있음.데드락(Deadlock) 상황이 발생할 수 있음.JPA에서의 사용: JPA에서는 @Lock 어노테이션과 엔티티 매니저의 lock() 메서드를 통해 비관적 락을 구현합니다. @Lock(Lo..
-
자바의 타입 시스템에서 참조 타입과 원시 타입(또는 기본형 타입)을 구분한다는것은 무엇을 의미하는가?자바웹프로그래밍/JAVA 2024. 12. 5. 15:35
1. 원시 타입 (Primitive Types)원시 타입은 자바에서 제공하는 기본 데이터 타입입니다. 원시 타입 변수는 값을 직접 저장합니다. 이러한 변수는 메모리 상에 값을 직접 저장하며, 값 자체를 다룹니다. 자바에서 원시 타입에는 다음과 같은 데이터 타입들이 있습니다:int (정수)char (문자)boolean (참/거짓)float, double (실수)byte, short, long (정수 타입의 다른 크기들)원시 타입 변수의 동작:원시 타입의 변수는 값 자체를 저장하고, == 연산자로 비교할 때 값이 같으면 true를 반환합니다.원시 타입 변수는 스택(stack) 메모리에 저장됩니다int x = 5;int y = 5;System.out.println(x == y); // true (값이 같음)..
-
스프링 AOP에서 "프록시를 거친다"는 것은 무슨뜻일까? AOP @Transacitonal 원리Spring/Spring Core 2024. 12. 3. 10:32
스프링 AOP에서 "프록시를 거친다"는 것은, 스프링이 **프록시 객체(Proxy Object)**를 생성하여 메서드 호출을 가로채고, AOP 로직(Advice)을 실행한 후 실제 객체의 메서드를 호출하는 과정을 의미합니다.프록시의 개념프록시는 객체를 대신해서 동작하는 중간 대리자 역할을 합니다. 스프링 AOP는 프록시 패턴을 사용하여, 대상 객체의 메서드 호출을 가로채고, AOP로 정의된 부가 작업(예: 로깅, 트랜잭션 관리)을 실행합니다. 프록시가 생성되는 과정빈 등록 시 프록시 생성:스프링 컨테이너는 빈(bean)을 등록할 때, 해당 빈에 AOP가 적용되어야 하는지 확인합니다.AOP 설정이 적용된 경우, 원래의 빈 대신 프록시 객체를 생성합니다.프록시 객체의 역할:프록시는 실제 객체를 감싸고 있으며..