Computer Science

0️⃣ 들어가기 전우리는 웹 브라우저와 웹 서버 간에 데이터를 주고 받기 위한 프로토콜로 HTTP를 사용하고 있다는 점은 익히 안다.그러나, 시대가 지남에 따라 다양한 해킹 방법이 등장하고, HTTP 또한 보안적으로 취약한 프로토콜로 지적받기 시작했다.특히, HTTP는 데이터 전송 과정에서 암호화 과정이 포함되어 있지 않기 때문에, 중간자 공격 같은 보안 위협에 쉽게 노출될 수 있다.그래서 더욱 안전하게 리소스를 주고 받을 수 있는 보안 체계가 필요했고, HTTPS가 탄생했다.1️⃣ HTTPSHTTPS는 HTTP의 보안버전이며,SSL(Secure Sockets Layer) 또는 TLS(Transport Layer Security) 프로토콜을 사용하여데이터를 암호화하고, 서버와 클라이언트 간의 통신을 안전..
클라우드에서의 보안 (AWS)IAM사용자의 권한을 관리하는 시스템사용자의 증명, 혹은 Group에 대한 권한을 부여함.최소 권한 원칙 (Principle of Least Privilege)보는 것이 필요할 경우, 나열 혹은 읽기 권한만 준다.viewOnlyAccessVPC네트워크 접근 제어보안 그룹인바운드 규칙 혹은 아웃바운드 규칙을 정한다.인바운드는 필요한 서비스만 연다.아웃바운드는 외부와의 연결이 필요한 인스턴스에만 적용한다.포트와 IP 주소를 기준으로 트래픽 허용 혹은 거부네트워크 ACL서브넷 수준에서 트래픽을 필터링하는 정책 기반의 보안 구성 요소이다.VPC의 서브넷 간에 오가는 트래픽을 제어한다.(보안 그룹과 다르게 상태가 비저장 방식으로 작동하므로, 들어오는 트래픽과 나가는 트래픽을 독립적으로..
📝 PROBLEMhttps://school.programmers.co.kr/learn/courses/30/lessons/67258 🤔 THINKING[요구사항]배열 gems에서 모든 보석 종류를 하나 이상 포함하는 최소 구간을 찾는 문제이다.최소 구간이 여러 개라면, 시작 번호가 작은 구간을 반환해야 한다. 💡 IDEA["어떻게 모든 종류의 보석을 포함하는지 확인할까?"]1. 중복 제거된 보석의 종류 개수를 파악해야 한다.가장 먼저 떠올릴 수 있는 것은 "set"을 활용하는 것이다. set(gems)를 사용해 보석 종류를 구하고, len(set(gems))으로 종류의 개수를 파악. 2. 현재 구간에서 보석 종류를 실시간으로 추적한다.딕셔너리를 사용해 현재 구간에서 보석의 개수를 관리. ["최소 구간..
이전 포스팅을 참고https://jinhos-devlog.tistory.com/entry/%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EC%99%84%EC%A0%84-%ED%83%90%EC%83%89-Exhaustive-Search ✒️ 1. BFS / DFS- 너비우선탐색(Breadth-First Search, BFS)는 하나의 요소를 방문하고 그 요소에 인접한 모든 요소를 우선 방문하는 방식- 깊이우선탐색(Depth-First Search, DFS)는 트리의 한 요소(노드)와 다음 수준(level)의 자식 노드를 따라가는 방향으로 탐색하는 방식- 길 찾기 등에 주로 쓰이는 알고리즘이다. (미로 등) ✒️ 2. BFS (너비 우선 탐색)BFS는 그래프나 트리 구조에서 노드를 탐색..
✒️ 1. 완전 탐색 이란?간단히 말해서, 모든 경우의 수를 시도하는 방법이다.구현에 있어서는 비교적 간단할 수 있다.하지만, 어찌보면 무식한 방법...Brute Force 라고도 불린다. 즉, 무식하게 가능한 거 다 해보겠다는 방법을 의미한다.그러나 직관적이어서 이해하기 쉽고 문제의 정확한 결과값을 얻어낼 수 있는 가장 확실하며 기초적인 방법이다. 우리는 CS적으로 어떠한 알고리즘을 쓸 것인가 고민할 때 2가지를 생각한다.어렵게 생각할 필요 없이 우리가 코딩테스트 문제를 풀다보면 맞이하는 2가지 과제이다. 1. 정확성: 문제를 정확히 해결할 수 있는가?2. 효율성: 주어진 시간 내에 해결할 수 있는가? (시간 복잡도) 완전탐색의 가장 중요한 핵심은 "가능한 모든 방법을 모두 고려한다"는 점인데,어떻게 ..
✒️ 0. 들어가기 전힙과 우선순위 큐는 데이터의 우선순위를 관리하는 데 필수적인 자료구조로, 주로 최댓값이나 최솟값을 빠르게 찾기 위해 사용된다.아래에서 힙의 구조, 힙 정렬, 그리고 우선순위 큐의 구현 방법을 배워보자. ✒️ 1. 힙(Heap)힙은 완전 이진 트리(Complete Binary Tree) 구조로, 노드 간의 특정 관계를 유지하여 데이터 중 가장 크거나 작은 값을 빠르게 찾아내는 자료구조이다. 힙은 크게 최대 힙과 최소 힙으로 나뉜다.💡 최대힙과 최소힙최대 힙(Max Heap): 부모 노드의 값이 자식 노드의 값보다 항상 크거나 같은 구조를 가진다.                                  최댓값은 항상 루트 노드에 위치하므로, O(1) 시간 복잡도로 최댓값을 찾을 수..
✒️ 0. 들어가기 전이 글에서는 주로 키-값 쌍을 저장하거나 고유한 값을 저장하는 데 사용되는 자료구조들에 대해 설명한다.해시테이블의 구현 방식과 맵, 셋의 활용 사례를 포함하여 배워보자! ✒️ 1. Map (맵)Map은 고유한 키를 기반으로 값(Value)을 저장하는 키-값(Key-Value) 쌍의 자료구조이다.삽입 시 자동으로 정렬되며, 이는 레드-블랙 트리(Red-Black Tree)를 사용해 구현된다.Map의 주요 특징은 고유한 키를 기반으로 하며, 중복 키를 허용하지 않는다는 점이다.💡 시간복잡도- 참조(Access): O(log n)- 탐색(Search): O(log n)- 삽입/삭제(Insertion/Deletion): O(log n) 💡 특징Map은 키를 기준으로 자동 정렬되기 때문에..
✒️ 0. 들어가기 전트리와 그래프는 비선형 자료구조의 대표적인 예시이다.이 글에서는 트리와 그래프의 기본 개념부터 시작해, 다양한 종류의 트리, 그래프의 표현 방법(인접행렬과 인접리스트)에 대해 다뤄보자. ✒️ 1. 그래프 이론의 기초 (Graph, Vertex, Edge, Weight)정점(Vertex)와 간선(Edge)으로 이루어진 집합을 그래프(Graph)라고 부른다.정점은 노드(Node)라고도 불리며, 특정 객체, 위치, 사람 등을 나타낼 수 있다.간선은 이 정점들을 잇는 선으로, 관계나 경로를 표현한다.- 노드/정점(Node, Vertex): 그래프를 구성하는 기본 단위로, 점 또는 노드로 표현된다.- 간선(Edge): 두 정점을 연결하는 선으로, 그래프 내의 관계나 경로를 나타낸다.- 가중치..
dog-pawwer
'Computer Science' 카테고리의 글 목록