\(@^0^@)/
[BOOK] 모든 용어 모아보기 본문
728x90
1 회독을 마무리하면서 책에 설명된 용어들을 리마인드도 할 겸 정리하는 시간을 가져보려 한다.
끝부분에 찾아보기 목차에 있는 용어들도 시간이 된다면 ChatGPT를 활용해서 정리해 볼 수 있도록 하자!
[ 1장 디자인 패턴과 프로그래밍 패러다임 ]
- 라이브러리
- 공통으로 사용될 수 있는 특정한 기능들을 모듈화 한 것을 의미한다.
- 폴더명, 파일명 등에 대한 규칙이 없고 프레임워크에 비해 자유롭다.
- ex) 무언가를 자를 때 '도구'인 '가위'를 사용해서 '내가' 직접 컨트롤하여 자르는데, 라이브러리는 이와 비슷하다.
- 프레임워크
- 공통으로 사용될 수 있는 특정한 기능들을 모듈화 한 것을 의미한다.
- 폴더명, 파일명 등에 대한 규칙이 있으며 라이브러리에 비해 좀 더 엄격하다.
- ex) 다른 곳으로 이동할 때 '도구'인 비행기를 타고 이동하지만 '비행기'가 컨트롤하고 나는 가만히 앉아 있어야 한다.
- Enum
- 상수의 집합을 정의할 때 사용되는 타입이다.
- 상수나 메서드 등을 집어넣어서 관리하며 코드를 리팩터링할 때, 해당 집합에 관한 로직 수정 시
이 부분만 수정하면 되므로 코드 리팩터링 시 강점이 생긴다.
- 컨텍스트
- 프로그래밍에서의 콘텍스트는 상황, 맥락, 문맥을 의미하며
개발자가 어떠한 작업을 완료하는 데 필요한 모든 관련 정보를 말한다.
- 프로그래밍에서의 콘텍스트는 상황, 맥락, 문맥을 의미하며
- DOM(Document Object Model)
- 문서 객체 모델을 말하며, 웹 브라우저상의 화면을 이루고 있는 요소들을 지칭한다.
- 프록시 서버에서의 캐싱
- 캐시 안에 정보를 담아두고, 캐시 안에 있는 정보를 요구하는 요청에 대해
다시 저 멀리 있는 원격 서버에 요청하지 않고 캐시 안에 있는 데이터를 활용하는 것을 말한다. - 이를 통해 불필요하게 외부와 연결하지 않기 때문에 트래픽을 줄일 수 있다는 장점이 있다.
- 캐시 안에 정보를 담아두고, 캐시 안에 있는 정보를 요구하는 요청에 대해
- 버퍼 오버플로우
- 버퍼는 보통 데이터가 저장되는 메모리 공간으로, 메모리 공간을 벗어나는 경우를 말한다.
이때 사용되지 않아야 할 영역에 데이터가 덮어씌워져 주소, 값을 바꾸는 공격이 발생하기도 한다.
- 버퍼는 보통 데이터가 저장되는 메모리 공간으로, 메모리 공간을 벗어나는 경우를 말한다.
- gzip 압축
- LZ77과 Huffman 코딩의 조합인 DEFLATE 알고리즘을 기반으로 한 압축 기술이다.
gzip 압축을 하면 데이터 전송량을 줄일 수 있지만, 압축을 해제했을 때 서버에서의 CPU 오버헤드도 생각해서 gzip 압축 사용 유무를 결정해야 한다.
- LZ77과 Huffman 코딩의 조합인 DEFLATE 알고리즘을 기반으로 한 압축 기술이다.
- CDN(Content Delivery Network)
- 각 사용자가 인터넷에 접속하는 곳과 가까운 곳에서 콘텐츠를 캐싱 또는 배포하는 서버 네트워크를 말한다.
이를 통해 사용자가 웹 서버로부터 콘텐츠를 다운로드하는 시간을 줄일 수 있다.
- 각 사용자가 인터넷에 접속하는 곳과 가까운 곳에서 콘텐츠를 캐싱 또는 배포하는 서버 네트워크를 말한다.
- 오리진
- 프로토콜과 호스트 이름, 포트의 조합을 말한다.
- ex) https://test, com:123/test라는 주소에서 오리진은 https://test.com:123을 뜻한다.
- 이터러블한 객체
- 반복 가능한 객체로 배열을 일반화한 객체
- 이터레이터 프로토콜
- 이터러블한 객체들을 순회할 때 쓰이는 규칙
- public
- 클래스에 정의된 함수에서 접근 가능하며 자식 클래스와 외부 클래스에서 접근 가능한 범위
- protected
- 클래스에 정의된 함수에서 접근 가능, 자식 클래스에서 접근 가능하지만 외부 클래스에서 접근 불가능한 범위
- private
- 클래스에서 정의된 함수에서 접근 가능하지만 자식 클래스와 외부 클래스에서 접근 불가능한 범위
- 즉시 실행 함수
- 함수를 정의하자마자 바로 호출하는 함수.
- 초기화 코드, 라이브러리 내 전역 변수의 충돌 방지 등에 사용한다.
- 커맨드
- 여러 가지 요소에 대한 처리를 하나의 액션으로 처리할 수 있게 하는 기법이다.
- 데이터 바인딩
- 화면에 보이는 데이터와 웹 브라우저의 메모리 데이터를 일치시키는 기법으로,
뷰모델을 변경하면 뷰가 변경된다.
- 화면에 보이는 데이터와 웹 브라우저의 메모리 데이터를 일치시키는 기법으로,
[ 2장 네트워크 ]
- 대역폭
- 주어진 시간 동안 네트워크 연결을 통해 흐를 수 있는 최대 비트 수
- 병목(bottleneck) 현상
- 전체 시스템의 성능이나 용량이 하나의 구성 요소로 인해 제한을 받는 현상
- ex) 병의 몸통보다 병의 목 부분 내부 지름이 좁아서 물이 상대적으로 천천히 쏟아지는 것에 비유할 수 있다.
- 서비스에서 이벤트를 열었을 때 트래픽이 많이 생기고 그 트래픽을 잘 관리하지 못하면
병목 현상이 생겨 사용자는 웹 사이트로 들어가지 못한다.
- FTP
- 장치와 장치 간의 파일을 전송하는 데 사용되는 표준 통신 프로토콜
- SSH
- 보안되지 않은 네트워크에서 네트워크 서비스를 안전하게 운영하기 위한 암호화 네트워크 프로토콜
- HTTP
- World Wide Web을 위한 데이터 통신의 기초이자 웹 사이트를 이용하는 데 쓰는 프로토콜
- SMTP
- 전자 메일 전송을 위한 인터넷 표준 통신 프로토콜
- DNS
- 도메인 이름과 IP 주소를 매핑해 주는 서버
- ex) www.naver.com에 DNS 쿼리가 오면 [Root DNS] -> [.com DNS] -> [.naver DNS] -> [.www DNS] 과정을 거쳐 완벽한 주소를 찾아 IP주소를 매핑한다.
이를 통해 IP주소가 바뀌어도 사용자들에게 똑같은 도메인 주소로 서비스할 수 있다. - ex) www.naver.com의 IP 주소가 222.111.222.111에서 222.111.222.122로 바뀌었음에도 똑같은 www.naver.com이라는 주소로 서비스가 가능하다.
- SYN
- SYNchronization의 약자, 연결 요청 플래그
- ACK
- ACKnowledgement의 약자, 응답 플래그
- ISN
- Initial Sequence Numbers의 약어, 초기 네트워크 연결을 할 때 할당된 32비트 고유 시퀀스 번호이다.
- TIME_WAIT
- 소켓이 바로 소멸되지 않고 일정 시간 유지되는 상태를 말하며 지연 패킷 등의 문제점을 해결하는 데 쓰인다.
- CentOS6, 우분투에는 60초로 설정되어 있으며 윈도는 4분으로 설정되어 있다.
즉, OS마다 조금씩 다를 수 있다.
- 데이터 무결성(data integrity)
- 데이터의 정확성과 일관성을 유지하고 보증하는 것
- MAC 주소
- 컴퓨터나 노트북 등 각 장치에는 네트워크에 연결하기 위한 장치(LAN 카드)가 있는데,
이를 구별하기 위한 식별번호를 말한다. 6바이트(48비트)로 구성된다.
- 컴퓨터나 노트북 등 각 장치에는 네트워크에 연결하기 위한 장치(LAN 카드)가 있는데,
- 라우팅
- IP 주소를 찾아가는 과정
- RTT
- 패킷이 목적지에 도달하고 나서 다시 출발지로 돌아오기까지 걸리는 시간, 패킷 왕복 시간
- 인코딩
- 정보의 형태나 형식을 표준화, 보안, 처리 속도 향상, 저장 공간 절약 등을 위해 다른 형태나 형식으로 변환하는 처리 방식
- 스트림(stream)
- 시간이 지남에 따라 사용할 수 있게 되는 일련의 데이터 요소를 가리키는 데이터 흐름
- 세션
- 운영체제가 어떠한 사용자로부터 자신의 자산 이용을 허락하는 일정한 기간을 뜻한다.
- 즉, 사용자는 일정 시간 동안 응용 프로그램, 자원 등을 사용할 수 있다.
- 개인키
- 비밀키라고도 하며, 개인이 소유하고 있는 키이자 반드시 자신만이 소유해야 하는 키
- 공개키
- 공개되어 있는 키
- 해시
- 다양한 길이를 가진 데이터를 고정된 길이를 가진 데이터로 매핑(mapping)한 값
- 해싱
- 임의의 데이터를 해시로 바꿔주는 일이며 해시 함수가 이를 담당
- 해시 함수
- 임의의 데이터를 입력으로 받아 일정한 길이의 데이터로 바꿔주는 함수
[ 3장 운영체제 ]
- GUI
- 사용자가 전자장치와 상호 작용할 수 있도록 하는 사용자 인터페이스의 한 형태
- 단순 명령어 창이 아닌 아이콘을 마우스로 클릭하는 단순한 동작으로 컴퓨터와 상호 작용할 수 있도록 해준다.
- 드라이버
- 하드웨어를 제어하기 위한 소프트웨어
- CUI
- 그래픽이 아닌 명령어로 처리하는 인터페이스
- I/O 요청
- 입출력 함수, 데이터베이스, 네트워크, 파일 접근 등에 관한 일
- 유저 모드
- 유저가 접근할 수 있는 영역을 제한적으로 두며 컴퓨터 자원에 함부로 침범하지 못하는 모드
- 커널 모드
- 모든 컴퓨터 자원에 접근할 수 있는 모드
- 커널
- 운영체체의 핵심 부분이자 시스템콜 인터페이스를 제공하며 보안, 메모리, 프로세스, 파일 시스템, I/O 디바이스, I/O 요청 관리 등 운영체제의 중추적인 역할을 한다.
- 인터럽트 핸들러 함수
- 인터럽트가 발생했을 때 이를 핸들링하기 위한 함수
- 커널 내부의 IRQ를 통해 호출되며 request_irq()를 통해 인터럽트 핸들러 함수를 등록할 수 있다.
- TLB
- 메모리와 CPU 사이에 있는 주소 변환을 위한 캐시이다.
- 페이지 테이블에 있는 리스트를 보관하여 CPU가 페이지 테이블까지 가지 않도록 해 속도를 향상시킬 수 있는 캐시 계층이다.
- 페이지(page)
- 가상 메모리를 사용하는 최소 크기 단위
- 프레임(frame)
- 실제 메모리를 사용하는 최소 크기 단위
- 내부 단편화(internal fragmentation)
- 메모리를 나눈 크기보다 프로그램이 작아서 들어가지 못하는 공간이 많이 발생하는 현상
- 외부 단편화(external fragmentation)
- 메모리를 나눈 크기보다 프로그램이 커서 들어가지 못하는 공간이 많이 발생하는 현상
- ex) 100MB를 55MB, 45MB로 나눴지만 프로그램의 크기는 70MB일 때 들어가지 못하는 것을 말한다.
- 홀(hole)
- 할당할 수 있는 비어 있는 메모리 공간.
- 메타데이터
- 데이터에 관한 구조화된 데이터이자 데이터를 설명하는 작은 데이터
- 대량의 정보 가운데에서 찾고 있는 정보를 효율적으로 찾아내서 이용하기 위해 일정한 규칙에 따라 콘텐츠에 대해 부여되는 데이터
- 동시성
- 서로 독립적인 작업들을 작은 단위로 나누고 동시에 실행되는 것처럼 보여주는 것
- 상호 배제
- 한 프로세스가 임계 영역에 들어갔을 때 다른 프로세스는 들어갈 수 없다.
- 한정 대기
- 특정 프로세스가 영원히 임계 영역에 들어가지 못하면 안 된다.
- 융통성
- 한 프로세스가 다른 프로세스의 일을 방해해서는 안 된다.
- 은행원 알고리즘
- 총자원의 양과 현재 할당한 자원의 양을 기준으로 안정 또는 불안정 상태로 나누고 안정 상태로 가도록 자원을 할당하는 알고리즘
[ 4장 데이터베이스 ]
- 비정형 데이터
- 비구조화 데이터
- 미리 정의된 데이터 모델이 없거나 미리 정의된 방식으로 정리되지 않은 정보를 말한다.
- 결정자
- 함수 종속 관계에서 특정 종속자(dependent)를 결정짓는 요소
- 'X' -> 'Y'일 때 X는 결정자, Y는 종속자이다.
- 체크섬
- 중복 검사의 한 형태
- 오류 정정을 통해 송신된 자료의 무결성을 보호하는 단순한 방법
- 저널링
- 파일 시스템 또는 데이터베이스 시스템에 변경 사항을 반영(commit) 하기 전에 로깅하는 것
- 트랜잭션 등 변경 사항에 대한 로그를 남기는 것
- STL
- C++의 표준 템플릿 라이브러리이자 스택, 배열 등 데이터 구조의 함수 등을 제공하는 라이브러리의 묶음
출처 : 면접을 위한 CS 전공지식 노트
728x90
'BOOKS > 면접을 위한 CS 전공지식 노트' 카테고리의 다른 글
[BOOK] 포트폴리오, 면접 (0) | 2023.06.02 |
---|---|
[BOOK] 복잡도, 선형 자료 구조, 비선형 자료 구조 (0) | 2023.05.26 |
[BOOK] 인덱스, 조인의 종류, 조인의 원리 (0) | 2023.05.22 |
[BOOK] 트랜잭션과 무결성, 데이터베이스의 종류 (0) | 2023.05.10 |
[BOOK] 데이터베이스의 기본, ERD와 정규화 과정 (0) | 2023.05.09 |