전체 글 (144) 썸네일형 리스트형 쿠키와 세션의 구조 - 세션 로그인과 JWT 로그인 차이 관련 내용 [스프링] - Spring Security와 JWT 토큰을 이용하여 REST API 인증,인가 구현하기 글의 목적 관련 내용 글에서는 SpringSecurity와 JWT 토큰을 이용한 REST API 인증 인가 구현을 해보았다. 이번 글에서는, 인증과 인가 처리의 필수 요소인 세션과 쿠키 구조에 대해서 알아보고, 세션 로그인과 JWT 로그인의 작동 과정과 장, 단점을 통해서 둘 사이의 어떤 차이가 있는지 알아보자. 쿠키와 세션의 구조 쿠키와 세션의 필요성 HTTP 프로토콜은 Stateless 특성이 있다. 그래서 클라이언트와 서버의 Request Response 통신이 끝나는 순간, 이전 상태를 보존하지 않는다. 장점으로는, 상태를 보관하지 않으므로 클라이언트의 요청에 어느 서버가 응답해도 상.. TCP 통신 보안 허점과 RSA 보안 방식 관련 내용 [스프링] - Spring Security와 JWT 토큰을 이용하여 REST API 인증,인가 구현하기 개요와 목적 관련 내용 블로그 글에서는 Spring Security와 JWT 토큰을 사용해서, 인증과 인가에 처리 보안에 대해서 알아보았다. 이번 글에서는, 네트워크 통신에 가장 많이 쓰이는 TCP 통신에서 보안이 필요한 이유와 RSA 보안 방식에 대해서 알아보겠다. 먼저 TCP 통신이란 무엇인가 OSI 7계층 OSI 7 계층은, 네트워크 프로토콜들이 통신하는 구조를 7계층으로 분리한 것이다. 각 계층 간의 상호 작동하는 방식을 정해 놓았다. (OSI는 개념적 모델로 실질적 통신에는 사용되지 않는다. TCP/IP는 실질 네트워크 통신에 사용되는 모델이다) TCP는 7 계층 중 트랜스포트 계층.. ELK 통해서 Spring Server Log 모으기, ELK 기본 설정 관련 내용 해당 프로젝트 깃허브 ELK란, ELK의 특징과 인기 이유 개요와 목적 이 글에서는 ELK를 사용하여, 여러 서버에서 발생하는 로그 메세지를 Elastic Search와 Kibana가 있는 하나의 서버로 모으는 방법에 대해서 설명한다. 현재 VirtualBox의 서버의 상황은 아래 그림과 같다. 개발 환경 SpringBoot(gradle) - 2.7.5 Ubuntu - 20.04 OpenJdk - 11 ELK - 7.17 Spring Server와 LogStash 연결하기 Spring Server 설정 Build.gradle 의존성 추가 implementation group: 'net.logstash.logback', name: 'logstash-logback-encoder', version:.. Spring - Prometheus, NodeExporter, Grafana 를 사용해서, 서버와 컴퓨터의 정보 확인하기 관련 내용 해당 프로젝트 깃허브 개발 환경 SpringBoot(gradle) - 2.7.5 Ubuntu - 20.04 개요 목표 Spring Server - Prometheus와 Grafana 연결을 통해서 api별 호출 횟수 파악, api 별 오류율 확인(해당 api가 몇 퍼센트 오류율을 가지고 있는 지), api별 호출 시간(해당 api 함수가 얼마나 시간이 걸리는 지 파악) 정보를 얻어서, 그래프로 시각화 방법을 알아본다. 그리고 NodeExporter - Prometheus와 Grafana 연결을 통해서 해당 서버의 메모리 사용량 파악, CPU사용 % 정보를 나타내는 방법을 알아본다. spring sub 6 서버에서 실행 되고 있는 Spring Server API 메트릭 정보와, node-expo.. VirtualBox NAT network 고정 IP 할당하기 관련 내용 [리눅스 인프라] - 스프링 부트 무중단 배포를 위한 NginX 적용하기 [네트워크] - NAT DHCP 목적, 구조와 동작 방법 개요와 목적 관련 내용 블로그 글에서, Nginx 동작을 확인 하기 위해 아래 그림과 같이 각 서버에 고정 IP를 할당했다. VirtualBox에서 우분투 서버를 운영할 때, 외부 인터넷 통신, 우분투 서버 간의 통신, 호스트 PC와 통신 할 수 있는 네트워크 환경이 필요하다. Nginx 서버를 테스트 할 때도 같은 네트워크 환경이 필요했다. 이번 글에서는 VirtualBox의 NAT Network방식 + 고정 IP 할당 방식을 사용해서 위 조건을 충족하는 네트워크 환경을 만들어보자. 적용 방법 NAT Network 방식이란 VirtualBox의 NAT Networ.. Spring 서버 무중단 배포를 위한 Nginx 로드밸런싱 사용 관련 내용 해당 프로젝트 깃허브 [리눅스 인프라/Ubuntu] - VirtualBox NAT network 고정 IP 할당하기 [네트워크] - NAT DHCP 목적, 구조와 동작 방법 터미널이 종료해도 동작하는 스프링 서비스 만들기(PM2, Linux service) 개요와 목적 이번 글에서는 Spring Server의 무중단 배포를 위한 Nginx 로드 밸런싱 사용법에 대해서 알아본다. NginX 적용 전 Nginx 적용 전에는, UI 서버와 API 서버에 접속 할 때, 각각의 개별 IP를 통해서 접속이 가능하다. 그래서 Clinet1과 2가 UI 접속하는 IP 정보가 다르고, UI 서버들이 API 서버와 접속하는 IP가 다르다. API2가 문제가 생기게 되면, API2 개별 IP로 접속하는 UI 2에.. NAT DHCP 목적, 구조와 동작 방법 관련 내용 [리눅스 인프라/우분투] - VirtualBox NAT network 고정 IP 할당하기 개요와 목적 관련 내용 블로그 글에서는 VirtualBox의 NAT Network를 사용한 고정 IP 할당 방법에 대해서 알아보았다. 이번 글에서는 위에서 언급한 NAT란 무엇인지, 그리고 자동으로 IP를 할당해주는 DHCP는 무엇이고 어떻게 동작하는 지 알아보겠다. NAT 목적1 - 공인 IP 절약 NAT(Network Address Translation)는 하나의 공인 IP를 하나 또는 여러 개의 사설 IP 변환해준다. 하나의 공인 IP를 여러 사설 IP로 나누어 사용 할 수 있기 때문에, 공인 IP를 절약하는 효과가 있다. 사설 IP에서 외부 인터넷과 연결하려면 반드시, NAT을 거쳐서 공인 IP로 .. 자바 해시 테이블 자료구조 1. 해시와 해시 테이블 용어 정리 해시는 인덱스를 의미한다. 데이터(key + value)에서 key를 해시 함수에 넣어서, 해시(인덱스)를 얻어낸다. 얻어낸 해시(인덱스)를 배열 인덱스와 매치 하여, 데이터를 저장한다. 이렇게 데이터 중 키를 해시함수를 통해서, 인덱스를 얻어내고, 이 인덱스를 배열 인덱스에 맞춰 데이터 value를 저장하는 자료구조가 해시 테이블이다. 2. 좋은 해시 함수란? 예를 들어 데이터(key:이름, value:나이)라는 데이터로 좋은 해시 함수에 대해서 알아보자. 데이터(김민성, 16), 데이터(최선화, 33)가 있다. 이제 각 데이터의 key를 해시 함수를 얻어 인덱스 값을 얻어낸다. 하지만 이때, 김민성과 최선화의 해시 함수를 통해 얻은 인덱스 값이 같아지는 상황이 발생.. 이전 1 ··· 9 10 11 12 13 14 15 ··· 18 다음