1. 운영체제 & 하드웨어
✍️ 운영체제(Operating System, 약칭:OS)
- 하드웨어와 소프트웨어를 관리하는 시스템 소프트웨어
- 프로그램들을 실행시키기 위해 하드웨어의 자원들을 이용해 응용 프로그램을 관리한다
- 최근에는 가상화 기술로 실제 하드웨어가 아닌 하이퍼바이저(가상머신) 위에서 실행되기도 한다
- 입출력과 메모리 할당과 같은 하드웨어 기능의 경우 운영 체제는 응용 프로그램과 컴퓨터 하드웨어 사이의 중재 역할을 한다
커널
- 운영체제의 구성중 가장 중요한 요소로 컴퓨터 하드웨어 장치에 대한 가장 기초 수준의 제어권을 제공한다
- 한정된 시스템 자원을 효율적으로 관리하여 프로그램의 실행을 원활하게 한다
- 컴퓨터 하드웨어와 프로세스의 보안을 책임진다
✍️ 하드웨어
- 컴퓨터 시스템이 작동하는 데 필요한 물리적 구성 요소
- 입력, 연산, 제어, 기억, 출력 등 다섯 가지 기능을 구현하며 cpu, 메모리, 메인보드, 모니터 등이 있다
CPU(Central Processing Unit, 중앙처리장치)
- 컴퓨터 부품과 정보를 교환하면서 컴퓨터 시스템 전체를 제어하는 장치로 컴퓨터의 두뇌에 해당한다
- 기억, 해석, 연산, 제어라는 4대 주요 기능을 관할하며 기계어로 쓰인 컴퓨터 프로그램의 명령어를 해석하여 실행한다
메모리(Random Access Memory, 약칭:RAM)
- 컴퓨터가 빠른 액세스를 하기 위해 데이터를 단기간 저장(휘발성 기억장치)
- CPU가 연산할 정보들이나 응용프로그램의 일부(또는 전부), 그리고 현재 사용중인 데이터가 임시로 저장되어 있다
- 시스템에서 많은 프로그램을 실행할수록 더 많은 메모리가 필요하고 램이 많으면 한번에 많은 일을 할 수 있기에 메모리 용량은 클수록 좋다
보조기억장치
- 메모리(주기억 장치)를 확장한 것으로 속도가 느리지만 보통 용량이 상대적으로 크다(비휘발성 기억장치)
- 하드디스크, USB 등이 있다
2. 프로그램 & 네트워크
✍️ 정리중..
HTTP(HyperText Transfer Protocol)
- 웹 환경에서 서버와 클라이언트가 데이터를 주고받기 위한 프로토콜
- 리소스 낭비를 줄이려고 response을 받으면 연결을 끊어버리므로 실시간상호 작용성이 떨어진다
WS(WebSocket)
- 송신과 수신을 동시에 처리할 수 있는 양방향 데이터 통신 방식으로 client와 server 연결을 유지한다
- HTTP 기반으로 HTTP의 문제점을 해결하는 것을 목표로 나온 기술
- HTML5에 포함돼 프로토콜로 제정되어있다
REST(Representational State Transfer)
- 분산 하이퍼미디어 시스템을 위한 소프트웨어 아키텍처
- REST에서 HTTP는 필수가 아니고 다른 프로토콜을 사용해도 된다
- 하지만 웹 환경 통신의 대부분이 HTTP를 사용해 필수는 아니지만 그 사용에 있어 필수적으로 변한 경우다
프로세스
- 실행중인 프로그램, PCB를 가진 프로그램, 실기억장치에 저장된 프로그램
- 프로세서가 할당되는 실체, 프로시저가 활동중인 것
- 비동기적 행위를 일으키는 주체, 지정된 결과를 얻기 위한 일련의 계통적 동작
- 목적 또는 결과에 따라 발생되는 사건들의 과정
- 프로세서가 할당하는 개체로서 디스패치가 가능한 단위
3. 프론트엔드
✍️ 웹 상식
SPA(Single Page Application)
- 웹서버에서 최초 한번에 모든 페이지를 다운받은 이후 동적으로 페이지를 구성해서 이동하는 방식(하나의 html파일로만 동작)
- 장점 : 페이지 전환이 빠르게 가능해서 좋은 사용성을 제공한다
- 단점 : 모든페이지를 다운받아야해서 처음에는 로딩이 느리다
MPA(Multi Page Application)
- 페이지 별로 새롭게 웹 서버에서 페이지를 다운받는 방식
- 장점 : 해당페이지만 제공해주면 되기 때문에 초기화면 구동이 빠르다
- 단점 : 페이지를 이동할때마다 새로 페이지를 로드해야하기 때문에 사용성이 떨어진다
CSR(Client Side Rendering)
- 브라우저 측에서 HTML, CSS, Javascript를 처음부터 실행시키는 방식
- 웹 서버는 HTML, CSS, Javascript를 단순히 서빙(건네주는)하는 역할을 하기때문에 서버에 큰 부담이 없다
- 대부분 CSR 렌더링 방식을 사용할 때는 SPA 형태로 웹을 만들게 된다
SSR(Server Side Rendering)
- 웹 서버에서 HTML, CSS, Javascript 를 미리 한 번 실행시킨 후 브라우저에게 건네주는 방식
- 웹 서버에서 미리 진행해서 데이터를 적용하기 때문에 브라우저는 최종적으로 결과가 적용된 파일을 받게 되서 더 빠르게 화면을 보여줄 수 있지만 웹 서버가 그만큼 많이 일하게 된다
- SEO 적용이 용이하다
SEO(Search Engine Optimization)
- 네이버, 다음, 구글과 같은 검색엔진이 퍼블리싱한 웹사이트를 잘 읽도록 검색엔진에 최적화하는 기술