분류 전체보기
-
[Network] HTTP 프로토콜의 발전 (HTTP 1.1 vs HTTP2) 그리고 구글(HTTP3, QUIC)Network Basis 2021. 12. 10. 20:39
HTTP 의 성능개선이 어떤식으로 이루어졌는지 알아보자..! 🧐 [Network Layer] HTTP 는 Application Layer(5th Layer) 의 프로토콜이며, TCP/UDP는 Transport Layer(4th Layer) 의 프로토콜이다. 자세한 내용은 아래의 포스팅을 참조하길 바란다. [Network] 네트워크 통신의 기본 구조 ( OSI 7 Layer, TCP/IP) # OSI 모델 (Open Systems Interconnection) - 1982년경, 네트워크 아키텍처를 하나로 통일하고자 만든 네트워크 표준규격 - 너무 복잡해서 현재 사용되지 않지만, 네트워크 기능 분석, 설계 및 학습에 널 developer-ping9.tistory.com # HTTP 1.0 의 핵심 (with..
-
[IT 지식] 서버성능 테스트 자동화 (Base Info)IT시사지식 및 용어 2021. 12. 10. 17:01
# 서버성능 테스트 많은 트래픽이 유입되었을 때, 서버의 작동여부를 관찰 (장애상황 시뮬레이션) # 서버성능 테스트 단계 [테스트 시나리오 구상] -> [테스트환경 구축] -> [성능테스트 생성 및 수행] -> [테스트 결과지표 기록] -> [테스트 결과분석] # 자동화가 가능한 부분 [테스트환경 구축] -> [성능테스트 생성 및 수행] -> [테스트 결과지표 기록] * 장애상황에 대한 기록도 꼭 남겨야한다. # 자동화를 가능하게 하는 툴 nGrinder AWS CLI JenKins 등 # 구현 유의점 사용하는 인프라나 시나리오가 달라지더라도 파이프라인을 쉽게 수정하고 재사용가능하게 작성할 것
-
[Network] JWT - 왜 refresh 토큰이 필요하지? (refresh 토큰이 탈취된다면?)Network Basis 2021. 12. 10. 16:00
# Refresh Token 해커의 Access Token 탈취를 방지하기 위해서, Access Token 의 유효기간을 짧게 두고 Access Toekn 의 유효기간이 만료되었을 시, 다시 서버에게 Request 헤더에 Refresh Token 을 삽입한채로 인증(Silent Authentication)을 요청하기 위해 사용되는 토큰. 서버는 Refresh Token 을 검수한 후, 클라이언트에게 Access Token 을 재발급한다. 주로 Refresh Token 은 서버 DB에 저장한다고 한다. Access Token 은 다양한 정보를 담고 있으며, Refresh Token 은 재발급때 도움을 주는 짤막한 정보만 담아야 할 것이다. (뇌피셜) # 의문점 1. Refresh Token 자체에도 인증정..
-
[Spring Security] Filter 에 대한 오해와 진실 (doFilter의 정확한 작동방식에 대한 심층분석과 Filter의 흐름) (Spring 200 OK but No Content)Back End/Spring Security 2021. 12. 8. 22:00
# [만연한 오해] doFilter() 기준으로 위쪽이 API 호출 전처리 과정이고, 아래쪽이 API 호출 후처리 과정이다. (틀린 말은 아니나 상황에 따라 아닌 경우가 있으므로, 이에대해 확실히 알고 넘어갈 필요가 있다.) @Component //default 제일 마지막 필터로 public class TestFilter implements Filter{ @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { // API 호출 전 로직? chain.doFilter(request, response); // API ..
-
[Spring Security] 응답코드가 200이지만 body 가 비어있을 때, API까지 Request가 도달하지 못할 때(response code 200 but no body)Back End/Spring Security 2021. 12. 8. 20:48
보통 이런 경우는 Filter단에서 Request 나 Response 의 버퍼를 읽어서 내용이 유실된 경우에 발생한다. 하지만 필자가 겪은 현상은 아마 그 누구도 겪지 못한 현상이 아닐까 한다. 전제조건이 필요하기 때문이다. (개발미숙 + Filter 사용 + 이왕 파고드는거 완벽하게 내 것으로 만들고 싶은 주제파악안되는 욕심) [응답코드가 200인데 body가 비어있고, Request가 API까지 도달도 못하고, 또 수정을 하니 어떤 URL에서는 API까지 도달을 하는데 또 다른 URL에서는 API까지 도달을 못하기도 했다...] 3일에 걸친 디버깅 끝에 원인을 찾은 나 자신이 뿌듯하기도 하고, 절대 잊어버리지 않기 위해 포스팅을 해본다... (찾은것이 신기할 정도...) 와 진짜,,, 왠만한 Secu..
-
[Spring] React 로 헤더 내려주기 (브라우저가 접근할 수 있는 헤더 제어하기)Back End/Spring Boot 2021. 12. 3. 20:39
React 에서 서버에서 내려주는 헤더에 접근하여 무언가 해보고싶었던 분들이 있을 것이다. (나만그런가?) 무튼 React 에서 헤더에 접근하고 싶지만, 헤더의 종류가 몇개 없어 시무룩했던 시간들을 해결한 경험을 공유하고자 한다. # 문제 현상 React 에서 Response 를 콘솔에 찍으면 보이는게 몇개 없다. # 개발자도구 -> NetWork 에서 뽑아온 Response Header # React 에서 console.log 를 통해 찍은 Response 객체 # 해결 방법 서버에서 헤더를 내려줄 때 Access-Control-Expose-Headers 에 브라우저가 접근해도 되는 헤더를 추가해주면 된다. # 예시 코드 package com.bookmarkmanager.bookmarkmanager.c..
-
[Spring Security] CSRF 에서 출발한 여행기 (CSRF 토큰만들기)(Feat. Spring & React)Back End/Spring Security 2021. 12. 3. 19:55
CSRF 관련 최신포스팅 바로가기 이 글은 CSRF 공격방식에 대한 글을 읽고, 이에 대한 방어 수단으로 쿠키를 만든다길래 직접 해보고 싶어 이리저리 삽질한 비전공자의 여행일기입니다. (+ 학생 때 시도한 뻘짓 기록 일기입니다. CSRF 적용관련 정보가 필요하시다면 최신포스팅을 읽어주세요!) # 한국인은 결론 먼저 ..! 결론부터 말씀드리자면, Spring Security 는 default로 헤더에 Cache-Control 를 추가하고, no-cashe, no-store 등의 옵션을 추가 합니다. 이는 브라우저에게 '응 쿠키 못써' 라고 알려주는 역할을 합니다. 그러니까 쿠키를 사용하려면 Cache-Control 라는 헤더를 없애주어야 합니다. 그리고, 쿠키를 쓰는 방식은 보안에 취약하여 이제는 쿠키 없..
-
[Spring] No Creators, like default construct, exist): cannot deserialize from Object value (no delegate- or property-based CreatorBack End/Spring Boot 2021. 12. 2. 15:40
# 에러원인 'jackson' library 가 empty constructor 가 없고, 파라미터가 있는 constructor 가 있을 때 어떻게 Json 모델을 생성해야되는지 몰라서 발생하는 문제 # 해결방법 (이 중에 아무거나 한개의 방법을 사용) Json 으로 취급할 필드가 무엇인지 알려준다 (@JsonProperty 사용) 또는 NoArgsConstructor 를 만들어준다 * 두가지 방법 모두 성능차이는 그다지 없다.