[제로베이스] 백엔드 파트타임 스쿨 5기 - 7주차 회고

회고

진행하고 있는 업무의 일정이 이제 바빠지기 시작하였다.

퇴근 후 강의를 수강하는 시간과 더불어 휴식을 갖는 시간의 경계가 점차 모호해지고 있는 것 같다.

그래서 대안으로 강의를 1차적으로 듣고 과제 수행을 하는 것에 목표를 두고 학습을 하는 데에 일정을 짜고 그에 맞게 진행해보았다.

강의 수강과 과제 제출을 하는 것에는 일정에 맞춰서 완료하였으나, 기술 면접과 실무에서도 이해를 하고 있어야하는 기초적인 CS에 대해선 이해가 잘 되지 않고 어렵다고 느껴지는 것은 여전하다.

따라서, 해당 부분에 대해서는 서적을 통해서 추가적인 보완을 하면서 내 것으로 만들어서 이해하는 것을 병행하여야 할 것 같다.

학습 내용

[CS/네트워크] OSI 7 계층

- [CS/네트워크] TCP/IP 모델

- [CS/네트워크] IP 프로토콜

- [CS/네트워크] TCP 프로토콜

- [CS/네트워크] UDP 프로토콜

- [CS/네트워크] HTTP 프로토콜

- [CS/네트워크] URL과 HTTPS

- [CS/네트워크] Rest API와 hTTP

- [CS/네트워크] 응용 계층 프로토콜 (DNS, SMTP, POP, IMAP)

과제 내용

컴퓨터 공학 퀴즈

- 오픈북 테스트 형태로 진행하며, 총 60문항을 풀어보는 과제이다.

- 퀴즈를 풀고 오답을 제출한 항목에 대해서 정리하였다.

오답 노트

1) 파이프라인 설계와 구현

- 실제 구현에서 각 세그먼트의 수행 속도가 서로 다르다.

- 대표적인 설계로 산술 파이프라인과 명령어 파이프라인이 있다.

- 수행시간이 가장 늦는 세그먼트로 인해 레지스터 전송에 싱크를 맞추어 주어야 한다.

2) 명령어 파이프라인

- 분기가 발생할 경우 파이프라인을 모두 비우고 분기 이후의 명령어들은 모두 무시되어야 한다.

3) 명령어 파이프라인의 정상 동작을 저해하는 요인

- Resource Conflict (자원 충돌)

- Data Dependency (데이터 종속성)

- Branch Difficulty (지점 난이도)

4)  명령어 파이프라인에서 분기 명령어 처리

- 분기로 인한 성능 감소를 해결하기 위해 분기 예측을 이용할 수 있다.

- Branch Target Buffer (BTB)를 사용해 분기 예측을 구현할 수 있다.

- BTB는 이전 분기 명령어의 결과를 토대로 분기 결과를 예측한다.

5) 주 기억 장치(Main Memory Unit)의 종류와 설명

- SRAM: 전원이 연결되어 있는 동안 정보를 유지한다.

- DRAM: 전원이 연결되어 있더라도 주기적으로 정보를 유지하기 위해서는 주기적인 충전이 필요하다.

- ROM: 읽기 전용 메모리이다.

6) Associative Memory(연상 메모리)에 관한 설명

- 내용을 활용해 접근할 수 있는 메모리 장치를 말하며 CAM(Content Addressable Memory)라고도 한다.

- 전체 워드 또는 워드의 일부 만으로 탐색할 수 있다.

- 워드의 일부 영역을 선택하기 위한 Mask를 사용한다.

7)  가상 메모리 시스템과 캐시 메모리 시스템에 대한 설명

- 가상 메모리 시스템은 보조 기억 장치와 주 기억 장치 사이에서 데이터 전송을 관리한다.

- 캐시 메모리 시스템은 주 기억 장치와 CPU 사이의 데이터 전송을 관리한다.

- 두 메모리 시스템 모두 최소 경비로 높은 평균 접근 속도를 얻기 위한 기법이다.

8)  시스템 버스의 구성 요소

- 제어 유닛

- 데이터 라인

- 주소 라인

9) 인터럽트를 사용한 I/O

- I/O 장치는 데이터 전송을 위해 인터럽트를 사용하여 전송 준비 상태를 CPU에 알린다.

10) 멀티프로세서를 위한 운영체제에 관한 설명

- Master-slave 모드에서 Slave 프로세서는 인터럽트를 통해 OS 기능을 요청한다.

- 모든 프로세서가 각자 운영체제를 가지고 운영되는 방식을 분리 운영체제라고 한다.

- 운영체제의 기능을 여러 프로세스에 분산 시키는 방식을 분산 운영체제 라고 한다.

11) 운영체제에 대한 일반적인 설명

- 하드웨어 시스템 자원을 관리하는 관리자이다.

- 하드웨어가 요청하는 시스템 자원을 제공하고 관리하는 관리자이다.

12) 프로세스 상태에 대한 설명

프로세스 상태

- 실행(running) 상태는 프로세스가 CPU에서 실행 중인 상태를 의미한다.

- 준비(ready) 상태는 프로세스가 CPU에서 실행이 가능한 상태를 의미한다.

-

생성(new) 상태는 프로세스가 생성된 상태를 의미한다. 13) 멀티 프로세싱에 대한 설명 - 여러 프로세스를 동시에 실행하여 작업을 더 빠르고 효율적으로 처리하는 기법이다.

- 여러 프로세서나 CPU 코어를 활용해 작업을 병렬로 처리할 수 있다.

14) 인터럽트가 필요한 이유 - 입출력 하드웨어와의 커뮤니케이션 - 선점형 스케쥴러 구현

- 예외 상황 핸들링

15) 프로세스 구조

- TEXT(CODE)

- DATA

- STACK

- HEAP


사람은 누구나 자신이 할 수 있다고 생각하는 그 이상의 일을 할 수 있다.
- 헨리 포드