본문 바로가기

기술블로그334

8. 네트워크의 기초 [네트워크 토폴로지] 네트워크의 기초 출처 : 면접을 위한 CS전공지식 노트(책 / 강의) 네트워크 토폴로지 네트워크 토폴로지는, 네트워크의 설계를 말하는 것이다 즉 노드와 링크가 어떤 식으로 연결이 되어 있는지를 알려준다 버스 토폴로지 특징 하나의 회선 통해서 여러 노드들이 연결이 되어 있다 노드를 추가 또는 삭제하기 쉽다 장점 노드를 추가 또는 삭제하기 쉽다 회선에 연결되어 있는 노드를 그냥 설치하거나, 빼면 된다 비용이 적다 하나의 노드에 에러가 생겨도, 다른 노드에 영향을 미치지 않는다 단점 하나의 회선을 사용하기 때문에, 회선에 문제가 생길 경우, 모든 노드에 문제가 발생한다 트래픽이 매우 한정되어 있다 모든 노드들이 하나의 회선을 사용한다. 즉 제한된 대역폭에서 노드끼리 데이터를 서로 주고 받는다. 대한민국 국민이.. 2023. 2. 22.
7. 네트워크의 기초 [네트워크, 처리량, 트래픽, 대역폭, RTT] 네트워크의 기초 출처 : 면접을 위한 CS전공지식 노트(책 / 강의) 네트워크, 처리량, 트래픽, 대역폭, RTT 네트워크 노드와 링크의 집합 노드는 서버, 라우터, 스위치, 기기가 될 수 있다 링크는 노드와 노드를 이어주는 선, 즉 무선, 또는 유선이 될 수 있다 무선 : 와이파이 트래픽 (Traffic) 노드들 사이에서 일정 시간 내에 흐르는 데이터의 양 단위로는 bps(bits per second)를 사용한다 트래픽이 많다는 것은, 서비스 이용자 수가 많아서, 전송하는 데이터의 양이 많다는 것이다 10KB 이미지를 10명이 다운로드 받을 때에 누적 트래픽은 100KB가 된다 (10KB * 10) 처리량 (Throughput) 흐르는 데이터 중, 데이터를 얼만큼 처리를 했는지 알려준다 단위로는 bps.. 2023. 2. 22.
Udemy - Javascript - Tree Traversal Udemy - Javascript - Tree Traversal Udemy JavaScript 트리 순회 너비 우선 탐색 (Breadth First Search, BFS) Queue를 사용한다 [10, 7, 15, 5, 8, 20] 위의 리스트의 순서대로 탐색을 한다 class Node { constructor(value){ this.value = value; this.left = null; this.right = null; } } class BinarySearchTree { constructor() { this.root = null; } insert(value) { var newNode = new Node(value) if (this.root === null) { this.root = newNode; .. 2023. 2. 21.
6. 프로그래밍 패러다임 프로그래밍 패러다임 출처 : 면접을 위한 CS전공지식 노트(책 / 강의) 프로그래밍 패러다임이란? 프로그래밍 언어의 특징에 따라 분류를 하는 것이 프로그래밍 패러다임이다 명령형 프로그래밍 : 어떻게 (How) 할 것 인지를 설명하는 방식 선언형 프로그래밍 : 무엇을 할 것 인지를 설명하는 방식 선언형 / 함수형 프로그래밍 순수 함수로 이루어진 프로그램이다 // 그냥 코드를 사용하여 결과값을 출력할 수 있다 for(int i = 1 ; i < 10; i++){ System.out.println(i); } // 선언형은, 위와 같은 코드를 함수화 시키고 // 아래와 같이 함수를 선언해서, 결과값을 추출해 낸다 process(10, print(num)); 함수형 프로그래밍을 사용하게 되면, 함수 안에 들어오는.. 2023. 2. 21.
Udemy - Javascript - Binary Tree Search Udemy - Javascript - Binary Tree Search Udemy JavaScript Tree 트리는 간선과 노드로 이루어져 있고, 노드들 간에 부모와 자식 노드라는 관계가 있다 1은 루트 노드이다 2와 3은 1의 자식 노드고, 1은 2와 3의 부모 노드다 트리가 아닌 것 이진 트리 / 이진 검색 트리 이진 트리 (Binary Tree) 이진 트리는 부모 노드가, 최대 2개의 자식 노드를 가지는 것이다 3개 이상의 자식 노드를 가지고 있으면 이진 트리가 아니다 이진 검색 트리 (Binary Search Tree) 이진 검색 트리는 정렬이 되어 있다 부모 노드보다 숫자가 적으면 왼쪽에 배치가 되어 있고, 크면 오른쪽에 배치가 되어 있다 루트 노드를 보면, 왼쪽에 있는 자식 노드는, 루트 노.. 2023. 2. 20.
Udemy : Python Selenium Udemy : Python Selenium Udemy Python Selenium Webdriver 웹에서 자동적으로 작업을 할 수 있도록 만드는 것 입력, 클릭, 스크롤 등 인간들이 웹에서 할 수 있는 것들을 자동으로 할 수 있다 Selenium 크롬 설치하기 셀레니움/ webdriver 설치하기 pip install selenium 그리고 pip install webdriver_manager 설치하기 webdriver.Chrome(service=Service(ChromeDriverManager().install())) 예전에는 크롬드라이버를, 크롬 버전에 따라서, 직접 다운로드를 받아야 했다 하지만 이제는 service=Service(ChromeDriverManager().install())를 통해 .. 2023. 2. 19.
5. 디자인 패턴 (MVC, MVP MVVM 패턴) 4. 디자인 패턴 (MVC, MVP MVVM 패턴) 출처 : 면접을 위한 CS전공지식 노트(책 / 강의) MVC 패턴 Model, View, Controller Model 어플리케이션의 정보, 데이터를 나타낸다 어플리케이션이 무엇을 할 것인지 정의한다 데이터, DB와 상호작용 (CRUD), 알고리즘 등 View 텍스트, 체크박스 등, 데이터를 유저들이 볼 수 있도록 시각화 하는 것이다 (UI) 모델이나 컨트롤러가 보여주려고 하는 모든 것들을 보여 준다 데이터가 존재해도, 유저가 읽을 수 없거나, 볼 수 없으면 무의미하 Controller 데이터와 비즈니스 로직 사이의 상호 동작 관리한다 이벤트, 매인 로직을 담당한다 사용자의 요청에 따라, 모델을 변경할 수 있다 컨트롤러와 관련된 뷰가 있으면, 모델이 어.. 2023. 2. 19.
[Python] 백준 2467 용액 🧑‍💻 [Python] 백준 2467 용액 Gold 5 - 이진 탐색 산성 용액과, 알칼리성 용액이 있으면, 어떠한 두 용액을 섞어서 0과 제일 가까운 용액을 만드는 것이다 여기서 산성은 산성끼리, 알칼리성은 알칼리성 용액끼리 섞을 수 있다 이진 탐색을 하기 위해서는 정렬을 꼭 해야 한다 두 용액을 섞어서, 전에 섞은 용액보다 0과 가깝다면, 두 용액과, 용액들을 섞어서 나온 숫자를 저장해야 한다 즉 3개의 변수를 지속적으로 수정해야 하는 것이다 코드 N = int(input()) array = list(map(int, input().split())) array.sort() left = 0 right = N - 1 current_min = abs(array[left] + array[right]) left.. 2023. 2. 18.
[Python] 백준 2512 예산 🧑‍💻 [Python] 백준 2512 예산 Silver 3 - 이진 탐색 예산 요청이 리스트로 주어진다. 그리고 국가가 사용할 수 있는 예산이 주어진다 요청 된 모든 예산들이 국가가 사용할 수 있은 예산 안에 들어가야 한다 그러기 위해서, 상한액을 정해서, 요청 리스트 안에 있는 예산들을 수정한다 코드 N = int(input()) array = list(map(int, input().split())) budget = int(input()) array.sort() left, right = 0, array[-1] if sum(array) 2023. 2. 18.