본문 바로가기

CS

(53)
포트 번호의 구조 모두의 네트워크 책을 읽고 정리하고 있다.오늘은 포트 번호의 구조에 대해 알아보자OSI 모델 4계층인 전송계층의 기능오류를 점검하는 기능. 오류가 발생하면 데이터를 재전송하도록 요청한다(연결 확립,재전송 제어,윈도우 제어)전송된 데이터의 목적지가 어떤 애플리케이션인지 식별하는 기능여기서 2번째 기능을 위해 포트번호를 활용한다. TCP헤더의 포트 번호를 사용해서 통신시 목적지 애플리케이션을 구분할 수 있다.TCP헤더  TCP 헤더를 간단히 살펴보자면... 그림에는 영어가 많아서 한글로 적어보겠다. 발신지 포트 번호, 목적지 포트 번호일련번호(32비트)확인 응답 번호(32비트)헤더길이(4비트), 예약 영역(6비트), 코드비트(6비트), 윈도우 크기(16비트)체크섬(16비트), 긴급 포인터(16비트)옵션포트 ..
Memory Leak 메모리 누수 Memory Leak 메모리 누수 컴퓨터 프로그램이 필요하지 않는 메모리를 점유하고 있는 현상 메모리를 동적 할당한 뒤 더 이상 필요하지 않는 메모리가 해제되지 않으면서 메모리가 부족해서 발생하는 현상이다 메모리 누수가 계속되면 Out of Memory 현상이 발생해서 애플리케이션이 동작하지 못하고 프로그램이 종료되는 현상이 발생할 수 있다 GC가 진행되어도 메모리 확보가 되지 않는 것을 확인하면 메모리 누수 존재 가능성이 있다 힙덤프 분석을 통해서 메모리에 지나치게 존재하는 오브젝트를 확인해보자
VPN VPN? VPN이란 Virtual Private Network의 약자로, 가상 사설망이라는 의미입니다. 일반적으로 사설망은 외부에서 접근이 안 되고, 사설망 내부에서만 통신을 할 수 있습니다. 예를 들어, 게임 서버와 데이터베이스는 외부에서 직접 접근하지 못하면서도 서로 통신은 할 수 있어야하기 때문에, 사설망 내부에 함께 두는 것이 적절합니다. 그런데 서버 개발 혹은 운영을 하다보면, 직접 그러한 자원들에 사람이 직접 접근해야할 필요가 종종 생깁니다. 이럴 때 VPN을 사용하게 되면, 외부 네트워크로부터 VPN 서버를 통해 사설망 내부 자원에 접근할 수 있게 됩니다. VPN은 외부 네트워크와 사설 네트워크 망을 잇는 통로이기 때문에, 그만큼 보안이 중요합니다. 허가된 사용자만 접근할 수 있어야하며, 통..
깊이우선탐색 & 너비우선탐색 (백준 1260번 문제 java풀이) [Silver II] DFS와 BFS - 1260 https://www.acmicpc.net/problem/1260 분류 그래프 이론, 그래프 탐색, 너비 우선 탐색, 깊이 우선 탐색 문제 설명 그래프를 DFS로 탐색한 결과와 BFS로 탐색한 결과를 출력하는 프로그램을 작성하시오. 단, 방문할 수 있는 정점이 여러 개인 경우에는 정점 번호가 작은 것을 먼저 방문하고, 더 이상 방문할 수 있는 점이 없는 경우 종료한다. 정점 번호는 1번부터 N번까지이다. 입력 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사이에 여러 개의 간선이 ..
DP(동적 프로그래밍) 동적 프로그래밍은 하위의 작은 문제들을 풀고 이를 이용해서 더 큰 문제를 풀어나가는 방법입니다. 모든 동적 프로그래밍 알고리즘은 격자(grid)로부터 시작합니다. 동적 프로그래밍의 특징 모든 답안에는 격자가 있습니다. 격자의 각 칸에는 최적화하고자 하는 값을 적습니다(최대화 또는 최소화). 배낭 문제의 경우에는 모든 물건의 총 가치를 썼습니다. 각 칸은 원래 문제에 대한 하위문제이고, 다른 문제를 하위문제로 가질 수 있습니다. 원래의 문제를 어떻게 하위문제로 나눌 수 있을지 생각해야합니다. 그러면 각각의 축이 어떻게 되어야 하는지 알아내는 데 도움이 됩니다 대표적인 문제로는 배낭채우기 문제가 있습니다. 물건이 3개일 때, 스테레오 $3000 4kg 노트북 $2000 3kg 기타 $1500 1kg dp[]..
대칭키와 공개키(비대칭키) 방식의 차이 SSL(Secure Sockets Layer)은 클라이언트와 서버가 서로 데이터를 암호화해 통신할 수 있도록 돕는 보안계층입니다.SSL 3.0부터 SSL의 이름을 TLS로 변경했고, 대다수의 보안 프로토콜이 TLS로 교체되었습니다. 더 이상 SSL을 사용하고 있지 않으나 계속 SSL로 불리고 있습니다. SSL의 구조를 이해하기 위해 대칭키와 공개키에 대해서 알아보겠습니다. 대칭키 암호화 방식대칭키는 동일한 key를 가지고 암호화와 복호화(암호화를 평문으로 변환)를 수행합니다.장점 - 공개키 암호화 방식에 비해 연산 속도가 빠르다단점 - 키를 교환해야 한다. 이 과정에서 키가 탈취될 가능성이 있다.대표적인 알고리즘 : DES, 3DES, AES, SEED, ARIA… 공개키 암호화 방식대칭키 암호화 방식의..
JWT, 사용자 인증 방식 정리 이전 개인프로젝트를 진행하면서 JWT를 이용하여 인증하는 방식을 택했는데,JWT에 대해 제대로 알아보고자 글로 정리하면서 학습해보겠습니다. 서버가 클라이언트 인증을 확인하는 방식 3가지 : Cookie, Session, Token 클라이언트가 사용자 인증을 하면 그 인증을 유지할 수 있도록 쿠키와 세션을 사용해왔다. but, 쿠키는 탈취 가능성이 있다. 보안에 취약하다세션은 유저의 인증정보를 서버쪽에서 유지함.-> 서버의 확장성이 떨어진다     서버의 메모리를 차지하여 요청이 많을 경우 서버 과부하의 원인이 된다.토큰도 탈취 가능성이 있지만 accessToken 유효기간을 짧게 설정하고, refreshToken을 따로 저장해서 보완할 수 있습니다. -> 이를 보완하고자 토큰 기반 인증 시스템이 도입되었..
BFS(너비우선탐색) - 최단 경로 문제를 푸는 알고리즘 최단경로,즉 가장 짧은 것을 찾는 문제. 예를 들어 여러분이 친구 집까지 가는 최단 경로일 수도 있고, 체스 게임에서 체크 메이트를 만드는 데 필요한 최소한의 수 일수도 있습니다. 이렇게 최단 경로 문제를 푸는 알고리즘을 너비 우선 탐색이라고 합니다. 문제를 풀기 위해선 다음과 같은 절차가 필요합니다. 문제를 그래프로 모형화한다 너비 우선 탐색으로 문제를 푼다 너비 우선 탐색은 다음과 같은 두 가지 종류의 질문에 대답하는 데 도움이 됩니다. 유형 1. 정점A에서 정점B 로 가는 경로가 존재하는가? 유형 2. 정점A에서 정점B로 가는 최단 경로는 무엇인가? BFS는 Queue를 이용합니다. 망고 판매상을 찾는다고 가정할 경우 나->1촌->2촌->3촌->... 1촌관계인 모든 사람중에서 찾는다 -> 목록에 ..