본문 바로가기

전체 글135

TLS Handshake는 어떻게 진행되는가? | Session Key TLS(Transport Layer Security)란? 인터넷 상의 커뮤니케이션에서 개인 정보와 데이터 보안을 위해 설계되어 널리 채택된 보안 프로토콜이다. 주요 사용 사례는 웹 브라우저(웹 응용 프로그램)와 서버 간의 통신 데이터를 암호화하는 것이다. 그 외에도 이메일, 메시지, 보이스오버 IP(VoIP)등 여러 통신 데이터를 암호화한다. TLS는 Netscape가 개발한 SSL(Secure Sockets Layer)이라는 이전의 암호화 프로토콜에서 발전한 것이다. HTTPS는 HTTP 프로토콜 상위에서 TLS 암호화를 구현한 것이다. HTTPS를 사용하는 웹 사이트는 TLS 암호화를 사용한다. *참고 TLS : 4계층 Transport Layer 아래 포스팅에 TLS 내용을 보고 오시면 아래 Han.. 2022. 7. 23.
웹 브라우저에 URL을 입력하고 사용자에게 보여주기까지 과정 웹 브라우저에 URL을 입력하면 어떤 일이 생기는가? (SW 엔지니어 인터뷰에서 나오는 단골 질문으로 웹 브라우저, PC의 운영 체제, 인터넷 서비스 제공업체, 웹 사이트를 호스팅하는 서버, 해당 서버에서 실행되는 서비스에 대한 지식 등이 필요, 실제 문제가 발생할 수 있는 위치와 성능 문제를 찾을 수 있는 위치를 파악해야 한다.) * 웹 브라우저에서 https://sunrise-min.tistory.com 과 같은 URL을 입력하면 브라우저는 인터넷에서 사이트를 호스팅하는 서버를 파악하는데, 이때 sunrise-min.tistory.com 도메인을 검색해서 주소를 찾는다. sunrise-min.tistory.com 또한 고유한 IP주소를 가진다. 하지만 숫자보다 도메인이 기억하기 쉽다. DNS는 휴대폰.. 2022. 7. 22.
[백준] 2957 이진 탐색 트리 풀이 Java, BST, TreeSet BST(Binary Search Tree, 이진 탐색 트리) 이진 탐색 트리는 모든 노드가 많아야 2개의 자식 노드를 가지고 있는 트리이고, 각 노드에는 수가 하나씩 쓰여있다. 만약 어떤 노드에 쓰여 있는 수가 X라면, 그 노드의 왼쪽 서브트리에는 X보다 작은 수, 오른쪽 서브트리에는 X보다 큰 수만 저장되어 있어야 한다. 배열의 첫 번째 수를 루트 노드로 놓고, 다른 나머지 수들을 순서대로 삽입하면서 이진 탐색 트리를 만들려고 한다. 즉, 첫 번째 수를 제외한 모든 수에 대해서 insert(X,root)를 실행하는 것과 같다. 이진 탐색 트리에 삽입하는 함수는 다음과 같다. insert(number X, node N) 카운터 C값을 1 증가시킨다 if X가 노드 N에 있는 수보다 작다면 if N의 왼쪽.. 2022. 7. 18.
[백준] 2637 장난감 조립 풀이 Java, 위상 정렬 2637번: 장난감 조립 첫째 줄에는 자연수 N(3 ≤ N ≤ 100)이 주어지는데, 1부터 N-1까지는 기본 부품이나 중간 부품의 번호를 나타내고, N은 완제품의 번호를 나타낸다. 그리고 그 다음 줄에는 자연수 M(3 ≤ M ≤ 100)이 주 www.acmicpc.net ★ 위상 정렬(Topological Sort)을 잘 모르면 아래 게시글을 보고 오는걸 추천드립니다. 위상 정렬(Topological sort) BFS,DFS 비순환 방향 그래프 DAG (Directed Acyclic Graph) 사이클이 없는 방향 그래프 위상 정렬(Topological sort) 모든 간선(u,v)에 대해 먼저 오는 정점 순서로 정렬이 된다. (u가 v보다 먼저 오면 u->v) 그래프가 DA.. sunrise-min... 2022. 7. 18.
[백준] 2252 줄 세우기 풀이 Java, 위상 정렬 2252번: 줄 세우기 첫째 줄에 N(1 ≤ N ≤ 32,000), M(1 ≤ M ≤ 100,000)이 주어진다. M은 키를 비교한 회수이다. 다음 M개의 줄에는 키를 비교한 두 학생의 번호 A, B가 주어진다. 이는 학생 A가 학생 B의 앞에 서야 한다는 의 www.acmicpc.net ★ 위상 정렬(Topological Sort)를 잘 모르면 아래 게시글을 보고 오는걸 추천드립니다. 위상 정렬(Topological sort) BFS,DFS 비순환 방향 그래프 DAG (Directed Acyclic Graph) 사이클이 없는 방향 그래프 위상 정렬(Topological sort) 모든 간선(u,v)에 대해 먼저 오는 정점 순서로 정렬이 된다. (u가 v보다 먼저 오면 u->v) 그래프가 DA.. sun.. 2022. 7. 17.
위상 정렬(Topological sort) BFS,DFS 비순환 방향 그래프 DAG (Directed Acyclic Graph) 사이클이 없는 방향 그래프 위상 정렬(Topological sort) 모든 간선(u,v)에 대해 먼저 오는 정점 순서로 정렬이 된다. (u가 v보다 먼저 오면 u->v) 그래프가 DAG인 경우만 가능한데 그 이유는 그래프에 사이클이 있으면 u가 먼저인지 v가 먼저인지 알 수 없기 때문이다. 대표적인 예로 대학교 선수과목이 있다. 위 그림을 보면 하나의 DAG에서 하나 이상의 위상정렬 결과가 나올 수 있으며, 왼쪽에서 오른쪽으로 향하는 단방향이다. 구현은 BFS(in-degree), DFS 둘 다 가능하다. * 참고 - 진입차수 (Indegree) : 특정 노드로 들어오는 간선의 개수 - 진출차수 (Outdegree) : 특정 노드에서.. 2022. 7. 17.
[HackerRank]Fraudulent Activity Notifications(Sort) 풀이 Java Fraudulent Activity Notifications | HackerRank Print the number of times a customer receives a notification www.hackerrank.com Sorting문제인데 어려웠음.. Counting Sort를 사용하지 않으면 풀 수 없는 문제이다. 나를 포함한 다수의 사람들이 기본 정렬을 사용했다가 Timeout이 발생했다. Count sort는 아래 블로그에 굉장히 정리가 잘 되어 있으니 참고하면 좋다. https://bowbowbow.tistory.com/8 Counting Sort : 계수 정렬 Counting Sort Counting Sort Counting Sort 소개 정렬 과정 애니메이션 예시 구현 정리 끝 소개 .. 2022. 7. 17.
Tree: Height of a Binary Tree 풀이 Java (Binary Tree 높이 구하기) Tree: Height of a Binary Tree | HackerRank Given a binary tree, print its height. www.hackerrank.com 문제 The height of a binary tree is the number of edges between the tree's root and its furthest leaf. Binary Tree의 높이를 구해라. Output Format Your function should return a single integer denoting the height of the binary tree. Sample Input 풀이 point 1) 각 노드별 높이를 저장하는 1차원 배열을 만든다 point 2) Stack사용 (Queue.. 2022. 7. 15.
[백준] 15681 트리와 쿼리 풀이 Java 15681번: 트리와 쿼리 트리의 정점의 수 N과 루트의 번호 R, 쿼리의 수 Q가 주어진다. (2 ≤ N ≤ 105, 1 ≤ R ≤ N, 1 ≤ Q ≤ 105) 이어 N-1줄에 걸쳐, U V의 형태로 트리에 속한 간선의 정보가 주어진다. (1 ≤ U, V ≤ N, U ≠ V) www.acmicpc.net 문제 간선에 가중치와 방향성이 없는 임의의 루트 있는 트리가 주어졌을 때, 아래의 쿼리에 답해보도록 하자. 정점 U를 루트로 하는 서브트리에 속한 정점의 수를 출력한다. (*) 메모리 제한 : 128MB (*) 백준 문제 하단에 Tree에 대한 간단한 설명이 있으니 읽어보면 좋음 트리의 정점의 수 N과 루트의 번호 R, 쿼리의 수 Q가 주어진다. (2 ≤ N ≤ 105, 1 ≤ R ≤ N, 1 ≤ Q .. 2022. 7. 15.
반응형