본문 바로가기

분류 전체보기202

동시성에 대해 공부해보자(1) 목차 최근에 면접을 진행 한 곳에서 여러 질문들이 오갔지만, 제일 약한 부분이 동시성에 관한 질문이였다. security에서의 contextholder에 저장되는인증 정보들이 비동기적 요청에 의해서 별도의 쓰레드에서 진행된다면 그 쓰레드에 담겨있는 인증 정보는 어떻게 되냐 ? 나는 이 질문에 인증정보가 쓰레드 로컬에 담겨 모든 쓰레드가 공유할 수 있다고 생각했다.즉 그냥 "전역변수" 같은 것 아니냐? 가 내 지식의 핵심이였다ㅠㅠ 제대로된 쓰레드 로컬의 위치와 공유 방법을 몰라서 생긴 일이였다. 1. ThreadLocal ThreadLocal은 각각의 쓰레드 별로 별도의 저장공간을 제공하는 컨테이너 멀티 쓰레드 환경에서 각각의 쓰레드에게 별도의 자원을 제공함으로써 공유되는 서비스에서 별도의 자.. 2025. 5. 29.
결제 시스템 이해하기(1) 보호되어 있는 글 입니다. 2025. 5. 29.
env 파일 설정 오류 목차 현재 yml yml에 민감 정보인 s3 관련 access-key, secret-key 들은 do env 파일로 관리중예전 글 참조My Record - 환경변수 dotenv으로 관리 My Record - 환경변수 dotenv으로 관리예전 프로젝트에서는 환경변수를 하드코딩식으로 local에 올렸었는데 (aws서버에서도),이번엔 .env 파일 + application.yml 조합으로 해봐야겠다. 그러기 위해서 가장 쉬운 방법이 dotenv라이브러리 활용ernest45.tistory.com 2. 실제 dotenv 파일 1. dotenv 설정이 s3 설정을 인식 하지 못하는 에러 .env는 Spring Boot 자체 기능이 아니라 java-dotenv 라이브러리를 통해 로드됨.java-dot.. 2025. 5. 21.
Refresh Token을 Redis로 관리해보자! feat.리팩토링 목차 1. 도입 이유 사실 이전 refresh Token은 DB에 저장해서 인증 시에 반환하는 용도로 썼다. 여기서 드는 의문이 우리가 세션 로그인 대신 JWT를 도입하는 이유는 무상태성 + 서버의 부담을 줄이고 싶다는 이유이다.그런데 refresh Token을 DB에 저장하게 된다면 이러한 장점이 없어지지 않을까?.. 찾아 본 결과 1. 무상태성 유지DB에 저장하는건 사실 무상태성이 깨지는 것은 아니다.무상태성이 깨지는 경우는 클라이언트에 대한 상태를 유지하는 경우이다. 즉 db 자체에 refresh Token을 저장한다고 깨지지 않음!즉 무상태성을 유지할 수 있음 2.서버의 부담db에 접근 하는 것이이 서버쪽 부담이 될 것이라고 생각하지만 리프레시라는 동작은 굉장히 드물게 일어나.. 2025. 5. 16.
Chain of Responsibility 전에 doFilter를 호출할 때 3개의 파라미터로 넘겼다가 (Filter를 포함한 파라미터)에러가 났다.받는 filter는 chain을 따로 넘겨줄 필요가 없다. 왤까.. 근데 직접 dofilter를 확인 했을 땐 분명히 chain까지 받았딴 말이지.. 그 이유는 ApplicationFilterChain가 중간 관리자로 다음 필터를 호출하기 때문! 뭔가 Chain of Responsibility로 구성된 securityChiain이라서 객체가 체인형태라서 각 객체가 부를 것 같았지만,역시 중간에서 모든 걸 지휘하는 관리자가 있었다.. 그렇지만 핵심은 각 체인이다! 현재 체인이 이 일을 처리할 지 말 지를 정해서 다음 필터를 호출하니까! 현재 체인이 이 일을 처리하지 않고 넘기기로 했다면.. 2025. 5. 10.
설로인 면접 리스트 공개 https://github.com/sirloin-bondaero/meatplatform/blob/master/job-description/interview-questions.adoc#interview-questions-java-jvm meatplatform/job-description/interview-questions.adoc at master · sirloin-bondaero/meatplatform설로인의 육류 플랫폼 서비스를 소개합니다! Contribute to sirloin-bondaero/meatplatform development by creating an account on GitHub.github.com 깃허브에 설로인 기업에 대한 질문 리스트가 공개되어 있다.. 읽어봤는데 선뜻 대답 못하.. 2025. 5. 8.
백준 킹 - 1063번 1. 문제8*8크기의 체스판에 왕이 하나 있다. 킹의 현재 위치가 주어진다. 체스판에서 말의 위치는 다음과 같이 주어진다. 알파벳 하나와 숫자 하나로 이루어져 있는데, 알파벳은 열을 상징하고, 숫자는 행을 상징한다. 열은 가장 왼쪽 열이 A이고, 가장 오른쪽 열이 H까지 이고, 행은 가장 아래가 1이고 가장 위가 8이다. 예를 들어, 왼쪽 아래 코너는 A1이고, 그 오른쪽 칸은 B1이다.킹은 다음과 같이 움직일 수 있다.R : 한 칸 오른쪽으로L : 한 칸 왼쪽으로B : 한 칸 아래로T : 한 칸 위로RT : 오른쪽 위 대각선으로LT : 왼쪽 위 대각선으로RB : 오른쪽 아래 대각선으로LB : 왼쪽 아래 대각선으로체스판에는 돌이 하나 있는데, 돌과 같은 곳으로 이동할 때는, 돌을 킹이 움직인 방향과 같.. 2025. 5. 5.
Full HD 화면상의 직사각형들이 차지하고 있는 총면적 더보기목차 코테 문제 중 하나이고,구글링 후 완벽하게 내는 건 나도 좀 찝찝하고 또 이 회사에선 진짜로 "실력이 있는" 사람을 뽑고 싶지..나처럼 풀이법을 생각해내지 못했는데도, 잘하는 사람인 척하는 사람은 원하지 않는다고 생각해서 내 풀이대로 내고 틀려야 겠다.. 1. 문제 920x1080 픽셀을 가진 Full HD 화면상에 수직선,수평선으로만 이루어진 직사각형들이 놓여 있습니다. 이 직사각형들은 홀로 떨어져 있거나, 일부 겹치거나, 변 또는 꼭지점이 접하거나, 포함관계에 있을 수 있습니다. 이 직사각형들이 차지하고 있는 총면적을 구하는 프로그램을 작성해서 보내주세요 작성하세요. 프로그래밍 언어는 가장 자신있는 것을 사용하세요.예로 10x10 픽셀을 가진 화면상에 아래와 같은 직사각형들이 있을 수.. 2025. 4. 27.
SQL mapper VS ORM 2025. 4. 26.
내가 무슨 OAuth로 로그인 했더라? --기능 추가중 고민들-- 목차 요새 들어 거의 모든 걸 oauth로 로그인하기 시작했다. 한국인의 경우 카카오, 네이버, 구글 등 다양하게 쓰기 때문에 사실 아무거나 oauth로 만들어도 상관 없을 것이다. 근데 막상 특정 OAuth로 로그인을 선택하는 이유는 각 회사에서 만든 OAuth의 버튼 위치가 가장 주된 이유일 것이다.(나만 그래?) 예를 들어 설명하자면, 원티드의 경우 바로 위에 있는 카카오로 누를 가능성이 높고,잡코리아의 경우 네이버로 OAuth2를 로그인할 경우가 제일 많을 것이다. 근데 이걸 규칙화해서 생각하지 않아서 항상이 사이트에 내가 아이디가 있었나? -> 무슨 OAuth2로 로그인을 했지?고민하게 되다가 하나 씩 다 눌러서 로그인 해보는 경우가 잦을 때 마다 불편하다..... 2025. 4. 22.