'면접을 위한 CS 전공지식 노트'를 읽고 개인적으로 정리한 글입니다. 2.4.1 ARP 컴퓨터와 컴퓨터 간의 통신은 흔히 IP 주소 기반으로 통신한다고 알고 있지만 정확히는 IP주소에서 ARP를 통해 MAC 주소를 찾아 MAC 주소를 기반으로 통신함 ARP(Address Resolution Protocol)란 IP 주소로부터 MAC 주소를 구하는 IP와 MAC 주소의 다리 역할을 하는 프로토콜임 => ARP를 통해 가상 주소인 IP 주소를 실제 주소인 MAC 주소로 변환함(RARP는 이와 반대로 실제 주소인 MAC 주소를 가상 주소인 IP 주소로 변환) 장치 A가 ARP Request 브로드캐스트를 보내서 IP 주소인 120.70.80.3에 해당하는 MAC 주소를 찾음 그리고 해당 주소에 맞는 장..
'면접을 위한 CS 전공지식 노트'를 읽고 개인적으로 정리한 글입니다. 2.3.1 네트워크 기기의 처리 범위 네트워크 기기는 계층별로 처리 범위를 나눌 수 있음 => 상위 계층을 처리하는 기기는 하위 계층을 처리할 수 있지만 그 반대는 불가함 ex. L7 스위치는 애플리케이션 계층을 처리하는 기기로, 그 밑의 모든 계층 프로토콜을 처리할 수 있지만, AP는 물리 계층밖에 처리하지 못함 애플리케이션 계층 : L7 스위치인터넷 계층 : 라우터, L3 스위치데이터 링크 계층 : L2 스위치, 브리지물리 계층 : NIC, 리피터, AP 2.3.2 애플리케이션 계층을 처리하는 기기 애플리케이션 계층을 처리하는 기기로는 L7 스위치가 있음L7 스위치 스위치는 여러 장비를 연결하고 데이터 통신을 중재하며 목적지가 ..
'면접을 위한 CS 전공지식 노트'를 읽고 개인적으로 정리한 글입니다. 2.2.1 계층 구조 인터넷 프로토콜 스위트(internet protocol suite)는 인터넷에서 컴퓨터들이 서로 정보를 주고받는데 쓰이는 프로토콜의 집합이며, 이를 TCP/IP 4계층 모델로 설명하거나 OSI 7계층 모델로 설명하기도함 => 이 책은 TCP/IP 4계층 모델을 중심으로 설명함 TCP/IP 4계층은 프로토콜의 네트워킹 범위에 따라 4개의 추상화 계층으로 구성됨 반면, OSI 7계층은 애플리케이션 계층을 3개로 쪼개고 링크 계층을 2개로 나눠서 표현하며 인터넷 계층을 네트워크 계층으로 부른다는점이 다름 이런 계층들은 특정 계층이 변경되었을 때 다른 계층이 영향을 받지 않도록 설계됨 => 예를 들어 전송 계층에서 ..
'면접을 위한 CS 전공지식 노트'를 읽고 개인적으로 정리한 글입니다. 2.1 네트워크의 기초 네트워크란 노드(node)와 링크(link)가 서로 연결되어 있거나 연결되어 있으며 리소스를 공유하는 집합을 의미함 => 여기서 노드란 서버, 라우터, 스위치 등 네트워크 장치를 의미하고 링크는 유선 또는 무선을 의미함 2.1.1 처리량과 지연 시간 네트워크를 구축할 때는 '좋은' 네트워크로 만드는 것이 중요함 => 좋은 네트워크란 많은 처리량을 처리할 수 있으며 지연 시간이 짧고 장애 빈도가 적으며 좋은 보안을 갖춘 네트워크를 말함 처리량처리량(throughput)은 링크 내에서 성공적으로 전달된 데이터 양을 말하며 보통 얼만큼의 트래픽을 처리했는지를 나타냄 많은 트래픽을 처리한다 = 많은 처리량을 가..
'면접을 위한 CS 전공지식 노트'를 읽고 개인적으로 정리한 글입니다. 1.2 프로그래밍 패러다임 프로그래밍 패러다임(programming paradigm)은 프로그래머에게 프로그래밍의 관점을 갖게 해주는 역할을 하는 개발 방법론임 => 객체지향 프로그래밍은 프로그래머들이 프로그램을 상호 작용하는 객체들의 집합으로 볼 수 있게 하는 반면에, 함수형 프로그래밍은 상태 값을 지니지 않는 함수 값들의 연속으로 생각할 수 있게 해줌 1.2.1 선언형과 함수형 프로그래밍 선언형 프로그래밍(declarative programming)이란 '무엇을' 풀어내는가에 집중하는 패러다임이며, '프로그램은 함수로 이루어진 것이다' 라는 명제가 담겨 있는 패러다임이기도 함 => 함수형 프로그래밍(functional progr..
'면접을 위한 CS 전공지식 노트'를 읽고 개인적으로 정리한 글입니다. 1.1 다자인 패턴 들어가기에 앞서, 라이브러리와 프레임워크의 차이점을 알아보자(결국 정의는 같음)라이브러리 : 공통으로 사용될 수 있는 특정한 기능들을 모듈화한 것을 의미함=> 폴더명, 파일명 등에 대한 규칙이 없고 프레임워크에 비해 자유로움프레임워크 : 공통으로 사용될 수 있는 특정한 기능들을 모듈화한 것을 의미함=> 폴더명, 파일명 등에 대한 규칙이 있으며 라이브러리에 비해 좀 더 엄격함 디자인 패턴이란 프로그램을 설계할 때 발생했던 문제덤들을 객체 간의 상호 관계 등을 이용하여 해결할 수 있도록 하나의 '규약' 형태로 만들어 놓은 것을 의미함 1.1.1 싱글톤 패턴 싱글톤 패턴(singleton pattern)은 하나의 ..
'가상 면접 사례로 배우는 대규모 시스템 설계 기초' 책을 통해 학습한 내용을 정리하였습니다. 사용자 수에 따른 규모 확장성 단일 서버 모든 컴포넌트가 단 한 대의 서버에서 실행되는 간단한 시스템부터 생각해보면 => 이런식으로 웹, 앱, 데이터베이스, 캐시 등이 전부 서버 한 대 에서 실행된다 사용자 요청 처리 흐름을 보면 사용자가 도메인 이름을 이용하여 웹사이트에 접속하는데 이를 위해 DNS에 질의를 하고 IP 주소로 변환하여 웹 서버로 요청을 보내면 해당하는 HTML 페이지를 렌더링 해주는 것을 알 수 있다. 데이터베이스 사용자가 늘면 서버 하나로는 충분하지 않아서 여러 서버를 두어야 한다 => 하나는 웹/모바일 트래픽 처리 용도이고 다른 하나의 서버는 데이터베이스용 (이렇게 계층을 분리하..
우선 결론부터 말하자면 합격했다!!! SAA-C03이란? 우선 SAA-C03에 대해 AWS 홈페이지에는 이렇게 나와있음 AWS 공인 솔루션스 아키텍트 – 어소시에이트(AWS 서비스 전반에서 기술 지식과 기술 능력 검증)AWS Certified Solutions Architect - Associate는 비용 및 성능 최적화 솔루션 설계에 중점을 둡니다. 이 자격증은 AWS 클라우드 또는 탄탄한 온프레미스 IT 경험을 갖춘 지원자에게 적합합니다. 이 시험에 깊이 있는 실무 코딩 경험은 필요하지 않지만 기본 프로그래밍 개념을 알고 있다면 도움이 됩니다. 총 130분동안 65문항을 풀어야 하고 총점 1000점 중 합격 최소 점수는 720점임! 시험을 예약할 때 한국어로 신청하게 되면 추가 시간을 준다는데 ..
Kubectl kubectl은 Kubernetes Cluster를 관리하기 위한 도구임 리소스 생성 (create), Update (apply) create -> 최초 생성할 때 사용함apply -> 최초든, 중간에 값이 변경된 정보든 다 사용가능리소스 삭제 (delete) 리소스 생성, 삭제에서는 -f로 Manifest File의 경로를 지정=> 경로의 Local Directory가 될 수 있고, http 경로도 가능함 리소스 상태 조회 (get) kubectl get {Resource Type} [Resource Name] [-Aw] [-n ] -A : 모든 namespace에 대해서 조회-w : watchResource Typepoding (ingress)deploymentsvc (service)..
국민대학교에서 "쉽게 배우는 알고리즘" 교재를 이용한 박하명 교수님의 강의 교안을 이용하여 수업 내용을 정리하였습니다 TSP 문제 : 완전그래프에서 가장 짧은 해밀토니안 사이클 찾기 비대칭 TSP 문제 : 두 점 사이의 거리가 방향에 따라 다를 수 있는 TSP 문제=> 방향그래프인데 가는 방향, 오는 방향의 weight가 다를 수 있는 TSP 문제 State-Space Tree 상태 공간 트리 : 문제 해결 과정의 중간 상태를 각각 한 노드로 나타낸 트리 Backtracking 백트랙킹 : 상태 공간 트리를 탐색하여 해를 찾는 알고리즘 해가 아닌 경우 되돌아간다는 의미에서 지어진 이름깊이 우선 탐색 (DFS) 알고리즘을 응용상태 공간 트리를 명시적으로 만들지는 않음 Backtracking vs..
국민대학교에서 "쉽게 배우는 알고리즘" 교재를 이용한 박하명 교수님의 강의 교안을 이용하여 수업 내용을 정리하였습니다 NP-Completeness 개요 P : 다항시간에 풀 수 있는 결정 문제 집합 NP : 비결정론적으로 다항시간에 풀 수 있는 결정 문제 집합 => 답을 다항시간에 검증할 수 있는 문제(다항시간에 검증할 수 있으면 NP 문제) NP-Hard : 모든 NP 문제에서 다항시간 변환되는 문제 집합 => 검증이 안될 수 도 있음 (NP - Complete와의 차이) NP-Complete : NP-Hard 이면서 NP인 문제(결국 NP이기에 yes/no의 결정문제 집합임) NP-Hard 증명 방법 문제 A가 NP-Hard 임을 증명하는 방법에는 2가지가 있음 1. NP-Hard 정의에 따라 모..
국민대학교에서 "쉽게 배우는 알고리즘" 교재를 이용한 박하명 교수님의 강의 교안을 이용하여 수업 내용을 정리하였습니다 Motivation 외판원 순환 문제 (TSP : Travelling salesman problem) 모든 정점을 방문하고 시작 정점으로 돌아오는 최단 경로를 찾는 문제인데 Brute-force 방식으로 n개의 정점의 모든 permutation(순열)을 조사해야함 => O(n!) TSP 문제를 다항시간에 푸는 알고리즘이 존재할까? 이론상 불가능함 Types of Problems Tractable Problem : 입력 n에 대하여 푸는데 걸리는 시간이 다항 함수 f(n) 으로 표현 되는 문제 Intractable Problem: 다항 시간안에 풀 수 없는 문제=> Θ(2^n) ..