본문 바로가기

개발자/Computer Science

CS관련 지식 정리

반응형

1. 프로세스 쓰레드 차이(OS)

 

-프로세스는 OS로 부터 Resource 받아 실행, 

-스레드는 프로세스로부터 자원 받아 실행.

 

-하나의 프로세스에서 여러 스레드 생성가능

-각 스레드는 개별 스택을 가지고, 프로세스의 전역 메모리 공간을 공유하며 프로그램을 실행.

: 보통 프로세스는 코드/데이터/스택/힙 메모리 영역 기반의 실행.

: 스레드는 프로세스 안에서 ,개별적 스택 가지고, 코드/데이터/힙 영역을 공유하며 실행

 

2. 스크립트언어와 컴파일 언어 설명, 및 차이점 설명하라.(컴퓨터 구조, OS)

-스크립트 언어 : python,ruby,php 

-컴파일 언어로는 C,C++,C#, JAVA 등

 

-컴파일 언어는 컴파일러를 통해 사전에 컴파일, 기계어 상태로 실행되므로 실행이 빠름

-또한 컴파일 단계에서 전체 코드를 기계어로 변환, 최적화 작업진행, 실행 시간을 보다 빠르게 가능

<->

-스크립트 언어는 컴파일 단계 없이, 실행 단계에서 한 줄 씩 기계어로 번역 후 실행, 통상 컴파일 언어보다 실행이 느림

-또한 전체 코드에 대한 코드 최적화가 어려움

 

3. 동기식 비동기식 차이와 장단점

-동기식은 요청에 대한 응답 기다리고, 응답이 오면 다음 요청을 하는 방식

-비동기식은 요청에 대해 응답을 기다리지 않고, 다음 동작을 진행함

장단점

-동기 : 장점은 구성 단순, 순서대로 실행 가능 단점은 여러 일을 동시에 멀티태스킹 불가

-비동기 : 장점은 여러 일을 수행 가능, 단점은 여러 요청을 처리하다 보면 데이터 잘못 참조된다던가 부하 높아질 가능성

4. DB에서 인덱스 사용하는 이유와 장단점

-배경 : 최근 실무에서 데이터 양이 너무 막대해서, DB의 인덱스는 필수적임.

-인덱스는 데이터를 논리적으로 정렬해서 검색과 정렬속도를 높이기 위해 사용

-단 데이터 삽입, 변경이 수시로 일어나면 매번 수시로 인덱스 변경해야하니까, 성능 저하를 막기위한 고려가 필요함

 

5.Redis와 MongoDB에 대해 간략히 설명하시오

최신 기술을 알고 있는지를 판단하기 위한 질문임. 다양한 데이터베이스를 써보지 못 하더라도, 최신
기술에 관심이 많은 개발자라면 익히 들어봤을만한 기술을 물어보면서, 최신 기술에 대한 관심이 있는
지를 판단하기 위해 묻는 질문 (복불복인 측면은 있음)
- 둘다 No SQL 방식을 사용합니다. Mongodb가 document 형식으로 데이터를 저장하는데 반해,
Redis는 key-value 형식으로 데이터를 저장함
- Redis는 인메모리DB로 데이터를 메모리에 저장하고 관리하기 때문에 성능이 좋지만,
데이터를 유한하게 저장하기 때문에, 캐쉬등과 같이 데이터의 저장기한이 있고,
빠른 성능이 필요한 기능에 사용됩니다.
- Mongodb는 mysql처럼 서버-클라이언트 방식으로 설치해서 사용합니다.
Mysql과 같은 SQL 방식이 아니므로, 가변적 데이터 구조를 다루는데 유용함

반응형

'개발자 > Computer Science' 카테고리의 다른 글

빅 엔디안 /리틀 엔디안 정리  (0) 2020.03.22