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 |
---|