본문 바로가기

두두의 IT/Computer Science

CS 기본 지식

728x90

1. 프로세스와 스레드 차이 (운영체제)
- 프로세스 : 운영체제로부터 자원을 할당받아 실행하고, 스레드는 프로세스로부터 자원을 할당받아 실행
- 하나의 프로세스 안에서 여러 스레드 생성 가능하며, 각 스레드는 개별 스택을 가지고, 프로세스의 전역 메모리 공간을 공유하며 프로그램을 실행
- 보통 프로세스는 코드/데이터/스택/힙 메모리 영역을 기반으로 실행하며
- 스레드는 프로세스 안에서 개별적인 스택을 가지고 코드/데이터/힙 영역을 공유하며 실행

2. 스크립트 언어와 컴파일 언어를 나열하고 차이점을 설명하세요.
- 스크립트 언어로는 python, ruby, php 등이 있으며, 컴파일 언어로는 C, C++, JAVA 등이 있습니다.
- 컴파일 언어는 컴파일러를 통해 사전에 컴파일되어, 기계어 상태로 실행되므로 실행이 빠름
- 또한 컴파일 단계에서 전체 코드를 기계어로 변환할 때, 최적화 작업을 진행하여, 실행 시간을 보다 빠르게 할 수 있음
- 스크립트 언어는 컴파일 단계 없이, 실행 단계에서 한 줄씩 기계어로 번역 후, 실행되므로 통상 컴파일 언어보다 실행이 느림
- 또한 전체 코드에 대한 실행 코드 최적화가 어려움

3. 동기식과 비동기식 차이점/장단점
- 차이점은
- 동기식 일처리는 요청에 대한 응답을 기다린 후, 응답이 오면 다음 요청을 하는 방식임에 반해
- 비동기식 일처리는 요청에 대한 응답을 기다리지 않고, 다음 동적을 진행한다는 점
- 장단점으로는
- 동기식은 구성이 단순하고, 순서대로 실행 가능, 하지만 여러 일을 동시에 수행하는 멀티태스킹은 불가
- 비동기식은 동시에 여러 일을 수행할 수 있지만, 일정 시간당 요청량이 많아질 경우 부하가 발생할수 있으며, 이를 위한 추가적인 처리가 필요할 수 있음

4. 데이터베이스에서 인덱스를 사용하는 이유와 장단점
- 인덱스는 데이터를 논리적으로 정렬해서 검색과 정렬 속도를 높이기 위해 사용
- 단, 데이터 삽입, 변경이 수시로 일어나면 매번 인덱스를 변경해야 하므로, 성능 저하를 막기 위한 고려가 필요함

5. Redis와 mongodb에 대해 간략히 설명하세요
- 둘 다 NoSQL 방식을 사용합니다. Mongodb가 document 형식으로 데이터를 저장하는데 반해, Redis는 key-value 형식으로 데이터를 저장함
- Redis는 인메모리DB로 데이터를 메모리에 저장하고 관리하기 때문에 성능이 좋지만, 데이터를 유한하게 저장하기 때문에 캐쉬 등과 같이 데이터의 저장기한이 있고, 빠른 성능이 필요한 기능에 사용됩니다.
- Mongodb는 mysql처럼 서버-클라이언트 방식으로 설치해서 사용합니다. Mysql과 같은 SQL 방식이 아니므로, 가변적 데이터 구조를 다루는데 유용함

6. TCP와 UDP의 차이점과 장단점
- UDP는 비연결형 프로토콜로 흐름제어, 오류제어를 하지 않는데 반해 
- TCP는 연결형 프로토콜로 흐름제어와 오류에저를 함
- UDP는 TCP처럼 종단간 연결설정, 흐름제어, 오류제어를 하지 않기 때문에, 송수신에 적은 데이터를 필요로 하는데 반해, 
- TCP는 데이터 송수신에 신뢰성을 가짐

'두두의 IT > Computer Science' 카테고리의 다른 글

Python 지식  (0) 2022.08.29
Java 지식  (0) 2022.07.19
[DB] RDBMS 질의어  (0) 2022.07.02
[DB] 데이터 독립성  (0) 2022.07.02
[DB] DBMS  (0) 2022.07.02