# TIL 웹개발 - CS면접 대비 정리글

모의 CS면접을 하루 앞두고 기억나는대로 정리를 해보려한다.

### 컴퓨터 구조

컴퓨터는 네 가지 장치로 이뤄진다.

1. CPU

컴퓨터의 뇌에 해당하며 연산을 담당한다.

2. 주기억장치 = RAM , 메모리

보조기억장치에 저장된 프로그램을 실행시키면 주기억장치에 올라와 사용한다. 전원이 꺼지면 주기억장치에 담긴 메모리도 없어진다.

3. 보조기억장치

HDD, SSD 등 컴퓨터가 꺼져도 유지되는 장치. 평소 보조기억장치에 저장되었다가 프로그램이 실행되면 주기억장치에서 작동한다.

4. 입출력장치

마우스, 키보드, 모니터 등 컴퓨터에 입력 혹은 출력을 할 수 있는 것들을 말한다.

- 프로세스: 작업이 이루어지는 것을 말한다.

- 프로세스의 순서

    - 신규, 준비, 실행, 대기, 종료 로 이루어진다.

    - 프로그램을 불러오면 신규에서 준비단계로 넘어온다.

    - 메모리의 할당을 마치면 준비에서 실행 단계로 넘어가 실행된다.

    - 실행 중 입력이 필요하면 대기단계로 넘어간다.

    - 입력을 마치면 다시 준비 단계로 넘어가고 실행단계에서 출력한다.

    - 종료를 하면 실행에서 종료 단계로 넘어간다.

- 프로세스 구조

    - 코드 영역

        - 프로그램의 실행 코드가 저장되는 영역

        - 컴파일된 기계어 코드거 이 영역에 위치한다.

        - 읽기 전용이며, 실행 파일의 명령어가 로드된다.

    - 데이터 영역

        - 전역 변수와 정적 변수가 저장되는 영역

        - 프로그램이 실행되는 동안 데이터가 유지된다.

        - 초기화된 데이터와 초기화되지 않은 데이터 영역으로 나뉜다.

    - 힙 영역

        - 동적 메모리 할당을 위해 사용되는 공간

        - 프로그램 실행 중에 필요에 따라 동적으로 메모리를 할당하고 해체한다.

    - 스택 영역

        - 함수 호출과 관련된 로컬 변수, 반환 주소, 함수 매개변수 등이 저장되는 영역

        - 함수 호출시 할당되고 함수가 종료되면 해제된다.

        - LIFO 구조로 관리

- 스레드

    - 작업 단위를 말한다.

- http

    - Hypertext transper protocol로 클라이언트와 서버간 통신하기 위한 규약

- 패킷

    - 네트워크를 통해 전송되는 데이터의 단

- 서버

    - 클라이언트 요청에 응답하여 서비스를 제공하는 컴퓨터 시스템.

    - 서버는 웹 페이지 제공, 데이터베이스 관리, 파일 저장 등의 역할을 수행할 수 있다.

- 형상관리 : 소프트웨어의 버전 및 변경사항을 추적, 관리하는 작업

- git : 형상관리 프로그램 중 하나

For the site tree, see the [root Markdown](https://slashpage.com/kyugntae-ai.md).
