전체 글

바쁜 새벽(busymidnight)을 살아보고자 만든 블로그
발단 Https 적용은 프론트 기능 구현까지 모두 완료 후에 백엔드-프론트엔드 동시에 진행하려고 했던 작업이다. 하지만 백엔드가 먼저 해야만 했다. 왜냐하면 ... 더보기 https://un-lazy-midnight.tistory.com/171 [해결] 쿠키가 브라우저에 저장 되지 않는 Chrome SameSite 이슈 (Set-Cookie 동작 안 함) 바야흐로 7월 말.. 백엔드 리팩토링과 테스트 코드를 작성하고 있던 나에게 성큼 다가온 이슈... 브라우저에서 쿠키가 저장되지 않음 . . . 프론트엔드와 개발을 구분해서 하고있기 때문에 API 구 un-lazy-midnight.tistory.com 프론트에서 Refresh Token을 담은 쿠키가 브라우저에서 자동으로 저장되지 않는 이슈가 발생했고 위..
바야흐로 7월 말.. 백엔드 리팩토링과 테스트 코드를 작성하고 있던 나에게 성큼 다가온 이슈... 브라우저에서 쿠키가 저장되지 않음 . . . 프론트엔드와 개발을 구분해서 하고있기 때문에 API 구현 후 postman과 swagger로 테스트를 마친 이후였다. 그래서 상상도 못했던 이슈였고... 프론트 팀원과 둘다 처음 겪는 문제여서 열심히 구글링을 해서 원인을 알게 되었다. 원인 백엔드 서버 = http, 프론트 서버 = http Chrome80 버전 이후 Cross Domain 상황에서의 Set-Cookie 정책이 변경됨 SameSite=None 을 통해서 제약없이 쿠키 교환이 가능하나 해당 옵션을 사용하기 위해서는 Secure Cookie + https 통신을 통해서만 교환이 가능 해결 1. HTT..
지난 글 참고: https://un-lazy-midnight.tistory.com/159 대동덕지도 | Spring Boot에서 Spring Security + JWT 로그인을 구현하자! (Access Token, Refresh Token 발급) Spring Boot에서 로그인을 구현하자! 처음 백엔드 팀원과 역할을 나눌 때, 도메인 별로 분배하는 게 좋다고 판단이 되었다. 두 명이기 때문에 사이즈가 큰 "회원"과 "이벤트"를 하나씩 맡고 나머지 un-lazy-midnight.tistory.com https://un-lazy-midnight.tistory.com/160 대동덕지도 | Spring Boot에서 Spring Security + JWT로 로그아웃을 구현하자! (feat. Redis) JWT 적..
결론부터 말하자면... Access Token의 단점을 보완하려고! Access Token의 Stateless 특성 JWT Access Token은 상태 정보를 서버에 저장하지 않고 클라이언트에게 전달되어 검증되는데, 이로 인해 탈취당한 경우를 대비하기 어렵습니다. 따라서 Access Token의 만료 기간을 짧게 설정하여 보안을 강화하는데 문제가 발생할 수 있습니다. 그.러.나 Access Token의 만료 기간을 짧게 설정하면 보안은 높아질 수 있지만, 사용자 편의성은 감소합니다. 사용자가 로그인 후 자주 Access Token을 재발급받아야 하는 번거로움이 발생할 수 있습니다. 그래서 Refresh Token을 사용합니다. Refresh Token은 Access Token이 만료되었을 때만 사용되며..
CPU 스케줄러와 스케줄링 알고리즘 CPU 스케줄러 장기스케줄러(Long-term scheduler or job scheduler) 메모리와 디스크 사이의 스케줄링을 담당. 프로세스에 memory(및 각종 리소스)를 할당(admit) degree of Multiprogramming 제어 (실행중인 프로세스의 수 제어) 프로세스의 상태 new -> ready(in memory) 단기스케줄러(Short-term scheduler or CPU scheduler) CPU 와 메모리 사이의 스케줄링을 담당. Ready Queue 에 존재하는 프로세스 중 어떤 프로세스를 running 시킬지 결정. 프로세스에 CPU 를 할당(scheduler dispatch) 프로세스의 상태 ready -> running -> w..
Design Pattern 디자인 패턴 소프트웨어 코드 작성 시에 생기는 공통적인 문제를 해결하는데 도움이 되는 코드 패턴으로 SW 재사용성, 호환성, 유지 보수성을 보장한다. 객체지향 설계 원칙(SOLID) Single Responsibility Principle(단일 책임 원칙): 하나의 클래스는 하나의 역할만 해야 함 Open - Close Principle(개방-폐쇄 원칙): 확장(상속)에는 열려있고, 수정에는 닫혀있어야 함 Liskov Substitution Principle(리스코프 치환 원칙): 자식이 부모의 자리에 항상 교체될 수 있어야 함 Interface Segregation Principle(인터페이스 분리 원칙): 인터페이스가 잘 분리되어서 클래스가 필요한 인터페이스만 구현하도록 해..
Operating System 운영체제 정의 하드웨어(CPU, 메모리, 디스크 등) 관리 응용 프로그램과 하드웨어 사이에서 인터페이스 역할을 하는 시스템 소프트웨어 프로세스 vs 스레드 프로세스 실행중인 프로그램으로 OS로부터 주소 공간, 파일, 메모리 등을 할당받아 실행, 코드/데이터/스택/힙 메모리 영역을 가짐 스레드 프로세스의 독립적인 실행 단위로 프로세스로부터 자원을 할당받아 실행, 프로세스의 코드/데이터/힙 메모리 영역을 공유하고 개별적인 스택을 가짐 cf. Java-Thread: JVM에 의해 스케쥴되는 실행 단위 코드 블럭 스레드가 개별적인 스택을 가지는 이유? 스택에는 함수 호출 시의 전달인자, 지역 변수, 되돌아갈 주소 등을 저장 독립적인 스택을 갖는 것은 독립적인 함수 호출이 가능하고 ..
JWT 적용한 로그인은 구현 했는데 말입니다 ... 로그아웃은 어떻게 하지? JWT를 적용한 로그인 기능은 Access Token(AT), Refresh Token(RT)를 이용하여 구현해냈다. 참고: https://un-lazy-midnight.tistory.com/159 대동덕지도 | Spring Boot에서 Spring Security + JWT 로그인을 구현하자! (Access Token, Refresh Token 발급) Spring Boot에서 로그인을 구현하자! 처음 백엔드 팀원과 역할을 나눌 때, 도메인 별로 분배하는 게 좋다고 판단이 되었다. 두 명이기 때문에 사이즈가 큰 "회원"과 "이벤트"를 하나씩 맡고 나머지 un-lazy-midnight.tistory.com 그런데 로그아웃은.. 어..
쁜새
(안)게으른 블로그