Study/오늘의 CS 질문 10

DNS와 DHCP를 설명해주세요

DHCP는 dynamic host configuration protocol PC에 자동으로 네임 서버 주소, IP주소, 게이트웨이 주소 등을 할당해주는 프로토콜 IP를 자동으로 할당해줘서 IP 충돌을 사전에 방지할 수 있다 DHCP서버에 의존해서 IP 주소를 할당받으니까 DHCP서버 다운되면 IP 받지 못해서 인터넷 사용이 불가능해짐 DNS는 domain name system IP주소를 www.naver.com 처럼 변환, 역변환 하는 프로토콜 DNS를 운영한느 서버를 name server라고 한다 DDNS는 dynamic DNS(동적 DNS) 실시간으로 DNS를 갱신하는 방식 도메인의 IP가 유동적인 경우 사용된다 -> ip가 바뀌어도 DDNS로 설정한 도메인 값은 안변함 유동 IP에 DNS주소 할당하..

블로킹과 논블로킹에 대해 설명해주세요

**제어권 : 자신의 코드를 실행할 권리. 제어권을 가진 함수는 자신의 코드를 끝까지 실행한 후 자신을 호출한 함수에게 돌려준다 블로킹과 논블로킹은 제어권을 어떻게 처리하느냐에 따라 달라진다 1) 블로킹은 A함수가 B함수를 호출하면 제어권을 B함수에게 넘겨준다. B함수가 완료되면 다시 A함수에게 제어권 돌려준다 -> B 함수를 호출한 후에 A함수는 함수 실행은 잠시 멈춘다 2) 논블로킹은 A함수가 B함수를 호출해도 제어권은 그대로 A함수가 가지고있는다 -> B함수를 호출한 후에도 계속 A함수가 실행중 앞에서 얘기했던 동기와 비동기 1) 동기는 함수 A가 함수 B를 호출한 뒤 함수 B의 리턴값을 계속 확인하면서 신경씀 2) 비동기는 함수 A가 함수 B를 호출할때 콜백 함수를 같이 전달해서 함수 B를 호출한..

동기(synhronous)와 비동기(Asynhronous)에 대해 설명해주세요

동기(synchronous) -> 동시에 일어난다 요청과 그에 따른 결과가 동시에 일어난다 = 요청을 하면 시간이 많이 걸려도 요청한 자리에서 결과가 주어져야한다 A노드와 B노드 사이의 작업 처리 단위(transaction)을 동시에 맞춤 비동기(Asynchronous) -> 동시에 일어나지 않는다 요청한 그 자리에서 결과가 나오지 않는다 노드끼리의 작업 처리 단위를 동시에 맞추지않아도 됨 동기&비동기 차이점 동기는 설계가 간단하고 직관적 but 결과가 나올때까지 무한대기 비동기는 동기보다 복잡 but 결과 나오는데 걸리는 시간동안 다른 작업 가능

대표적인 sql종류 3가지에 대해서 설명하고 종류별 명령어 나열해주세요

SQL이란?? Structured Query Language 관계형 데이터베이스 관리 시스템(RDBMS)에 저장되어있는 데이터들을 관리하기 위한 프로그램 언어 1. Data Definition Language(데이터 정의 언어) 스키마(DB내 자료의 구조, 표현방법, 관계를 형식언어로 정의한 구조)의 생성과 변형을 담당 CREATE(생성) ALTER1(변경) DROP(삭제) RENAME(이름변경) 2. Data Manipulation Language(데이터 조작 언어) 조작에 용이한 생성자들을 제공하는 언어 INSERT(삽입) UPDATE(수정) DELETE(삭제) SELECT(조회) 3.Data Control Language(데이터 제어 언어) 사용자 인증과 보안을 다루는 언어 GRANT(사용자 권한 ..

HTTP의 문제점이 무엇이라고 생각하나요?

http web은 불안정적이고 중앙화, 비효율적, 느리고 고도의 연결성을 필요로한다 1. 불안정 (brittle, low resiliency) 클라이언트가 서버에 데이터 요청을 보내면 서버에서 응답하여 데이터를 보내는 구조 만약 서버의 전원이 차단되면 링크가 끊기고 컨텐츠에 접근할수 있는 방법이 없다 404에러 -> 데이터가 집중되어있는 중앙화된 서버가 백업업이 고장나거나 닫히는경우, 도메인 주인이 바뀐경우, 서버 운영핟너 기업이 해산한경우 2. 고도로 중앙화(hyper centralization) 웹의 목표는 원래 탈 중앙화 그러나 많은 사람들이 소수의 서비스에 의존하게되면서 중앙화됨 중앙화된 서버는 몇개의 서버만으로 사람들 감시할수있고 DDos 공격이 성공할경우 치명적 3. 비효율(inefficien..

#AVL 트리에 대해서 설명해주세요

AVL 트리는 이진 탐색 트리의 단점을 보완한 이진 탐색 트리이다 이진 탐색 트리가 효율적이기 위해서는 균형이 잡혀있어야한다 1. 이진 탐색 트리의 속성을 가진다 2. 왼쪽, 오른쪽 서브 트리의 높이 차이가 최대 1이다 3. 높이 차이가 1보다 커지면 회전(Rotation)을 통해 균형을 맞춰 높이 차이를 줄인다 4. 삽입, 검색, 삭제의 시간 복잡도가 O(log N)이다(N: 노드의 개수) AVL 트리는 회전 과정을 통해 균형을 잡는다 균형이 무너졌는지 판단하기 위해서 Balance Factor 라는 것을 활용한다 BF(K) = K의 왼쪽 서브트리의 높이 - K의 오른쪽 서브트리의 높이 우회전(Right Rotation) 1. y노드의 오른쪽 자식 노드를 z노드로 변경한다. 2. z노드 왼쪽 자식 노드..

#CORS(Cross-Origin Resource Sharing)이란 무엇일까요?

CORS란? Cross-Site Http Request를 가능하게 하는 표준 규약 다른 도메인으로부터 리소스가 필요한 경우에 cross-site http request가 필요하다 XMLHttpRequest는 보안상의 이유로 동일한 도메인으로만 HTTP 요청을 보내도록 제한(cross-origin http 요청 제한) -> XMLHttpRequest가 cross-domain을 요청할 수 있도록 하는 방법 필요!! CORS의 종류 1) Simple Request GET, HEAD, POST 중 한가지 방식을 사용 POST 일 경우 Content-type이 -application/x-www-form-urlencoded -multipart/form-data -text/plain 셋중 하나를 만족 커스텀 헤더를 ..

#HashMap과 HashTable의 차이를 설명해주세요

HashTable이란? 컬렉션 프레임워크가 만들어지기 이전부터 존재하던 것이라서 컬렉션 프레임워크의 명명법을 따르지 않는다 자바에서 해시테이블을 구현한 클래스 중 가장 오래된 클래스이다 그 다음으로 구현된 클래스가 HashMap 클래스 -> 사용법이 거의 동일하다 차이점 1) Thread-safe 여부 HashTable은 Thread-safe 하고, HashMap은 Thread-safe하지 않다 멀티스레드 환경이 아니라면 HashTable은 HashMap 보다 성능이 떨어진다 2) Null 값 허용 여부 HashTable은 key에 null을 허용하지 않는데 HashMap은 key에 null을 허용한다 3) Enumeration 여부 HashTable은 not fail-fast Enumeration을 제..

#브라우저에 접속하여 주소창에 특정 URL을 입력하면 어떤일이 일어날까요?

인터넷이 어떻게 작동하는지에 대한 질문 1. 브라우저 주소창에 URL입력 2. URL의 IP 주소를 찾기 위해 캐시에서 DNS 기록을 확인한다 DNS(Domain Name System) 은 웹사이트의 IP주소와 도메인 주소를 연결해줌 like 전화번호부 인터넷의 모든 URL에는 고유한 IP 주소가 할당되어 있으며 IP 주소는 엑세스 요청 웹 사이트의 서버를 호스트하는 컴퓨터에 속한다 DNS의 주요 목적은 사람들이 사이트 주소를 쉽게 찾을 수 있도록!! 우리가 142.250.196.110 ip 주소 대신에 google.com을 이용해서 접속할수 있도록한다 DNS가 자동으로 URL과 IP 주소를 매핑해준다 DNS 기록을 찾기위해서 브라우저는 4개의 캐시 확인 1. 브라우저 캐시 확인 브라우저 캐시에는 이전에..

# Stack 2개로 queue를 구하는 방법을 설명해주세요.

# Stack 2개로 queue를 구하는 방법을 설명해주세요. 1. Stack 이란? 바구니인데 한줄로만 들어갈수 있는 바구니!! 입구가 하나라서 그 입구로 요소를 넣고 뺀다 Stack의 특징 = LIFO(Last In First Out) = 나중에 들어간 요소가 가장 먼저 나온다 Stack 의 대표 기능 1) push : stack 에 요소 추가 2) pop : stack 에서 요소 빼내기 3) top : stack 의 입구랑 가장 가까운 요소 반환 4) empty : 비어있는지 확인 5) size : stack의 크기 반환 2. Queue 란?? Stack 이 입구랑 출구가 동일하고 하나라면 Queue는 입구랑 출구가 다르다 Queue에서 요소가 들어가는 입구를 rear라고 하고 요소가 나오는 출구를..