컴퓨터 구조
!image.png
컴퓨터가 이해하는 정보
컴퓨터는 0과 1로 표현된 정보만 이해합니다. 0과 1로 표현되는 정보에는 크게 두 가지 종류가 있는데, 바로 데이터와 명령어입니다.
- 명령어: 데이터를 움직이고 컴퓨터를 작동시키는 정보
- 데이터: 컴퓨터가 이해하는 숫자, 문자, 이미지, 동영상과 같은 정적인 정보를 가리킴
ex) 1과 2를 더하세요. → 데이터: 1, 2 명령어: 더하세요.
컴퓨터의 4가지 핵심 부품
CPU(중앙처리장치), 메모리(주기억장치), 보조기억장치, 입출력장치
주기억장치는 크게 RAM과 ROM이 있는데, 메모리는 보통 RAM을 지칭함
RAM
- 지금 실행 중인 것들을 잠깐 올려두는 공간 (카카오톡 실행, 크롬 실행 등등)
- 컴퓨터를 끄면 내용 사라짐
ROM
- 컴퓨터나 기기 안에 기본적으로 들어있는 변하지 않는 정보(전원 켰을 때 어떻게 시작할지, 기본 부팅 정보)
- 전원을 꺼도 내용이 유지
!image.png
메모리
- 현재 실행되는 프로그램의 명령어와 데이터를 저장하는 부품
- 프로그램이 실행되려면 반드시 메모리에 저장되어 있어야 한다
- 메모리에 저장된 값에 빠르고 효율적으로 접근하기 위해 주소를 사용한다.
!image.png
- 실제로는 0과 1로 이루어진 데이터를 저장한 것처럼 보인다.
CPU
- 메모리에 저장된 명령어를 읽어 들이고, 읽어 들인 명령어를 해석하고, 실행하는 부품(컴퓨터의 두뇌)
- CPU의 내부 구성요소
- ALU (산술논리연산장치)
- 컴퓨터 내부에서 수행되는 대부분의 계산은 ALU가 도맡아 수행
- 레지스터
- CPU 내부의 작은 임시 저장 장치
- 프로그램 실행하는 데 필요한 값들을 임시로 저장
- CPU 안에는 여러 개의 레지스터가 존재하고 각기 다른 이름과 역할을 가지고 있음
- 제어장치
- 제어신호라는 전기 신호를 내보내고 명령어를 해석하는 장치
- 제어신호란 컴퓨터 부품들을 관리하고 작동시키기 위한 일종의 전기 신호
- CPU가 메모리에 저장된 값을 읽고 싶을 땐 메모리를 향해 메모리 읽기라는 제어 신호를 보냄
- 저장하고 싶을 땐 메모리 쓰기라는 제어 신호를 보냄
!image.png
보조기억장치
메모리의 약점
- 비싸서 저장 용량이 작다
- 전원이 꺼지면 저장된 내용을 잃는다
크기도 크고 전원이 꺼져도 저장된 내용을 잃지 않는 메모리를 보조할 저장 장치가 필요한데, 그것이 보조기억장치
ex) 하드 디스크, SSD, USB 등등
입출력 장치
- 마이크, 스피커, 프린터, 마우스, 키보드 등등 컴퓨터 외부에 연결되어 컴퓨터 내부와 정보를 교환하는 장치
메인보드와 시스템 버스
메인보드
- 컴퓨터의 핵심 부품들은 모두 메인보드라는 판에 연결된다.
- 컴퓨터 부품을 부착할 수 있는 슬롯과 연결단자가 있다
버스
- 메인보드에 연결된 부품들은 메인보드 내부에 버스라는 통로를 통해 서로 정보를 주고 받음
- 다양한 종류의 통로가 있는데, 컴퓨터의 네 가지 핵심 부품을 연결하는 가장 중요한 버스는 시스템 버스
시스템 버스
- 주소 버스: 주소를 주고받는 통로
- 데이터 버스: 명령어와 데이터를 주고받는 통로
- 제어 버스: 제어 신호를 주고받는 통로
!image.png
- 제어 버스로 “메모리 읽기” 제어 신호를 내보내고
- 주소 버스로 읽고자 하는 주소를 내보냄
- 메모리는 데이터 버스로 CPU가 요청한 주소에 있는 내용을 보냄
추가 주제
로그인 상태 유지하는 방법에 jwt말고 세션 방식이 있습니다
세션 방식
- 사용자가 로그인
- 서버가 로그인 정보를 서버 메모리/DB에 저장
- 서버가 사용자에게 세션 ID를 줌
- 사용자는 요청할 때마다 세션 ID를 같이 보냄
- 서버가 세션 ID를 보고 “로그인한 사람 맞네” 확인
JWT 방식
- 사용자가 로그인
- 서버가 JWT 토큰 발급
- 사용자가 토큰을 저장
- 요청할 때마다 토큰을 보냄
- 서버가 토큰 서명을 확인하고 로그인 여부 판단
둘의 차이는??
세션은 서버가 기억하고, JWT는 사용자가 증명서를 들고 다님
| 구분 | 세션 | JWT |
|---|
| 로그인 정보 저장 위치 | 서버 | 클라이언트 토큰 안 |
| 서버 부담 | 상대적으로 큼 | 상대적으로 작음 |
| 강제 로그아웃 | 쉬움 | 까다로움 |
| 확장성 | 서버 여러 대면 세션 공유 필요 | 서버 여러 대에서 쓰기 편함 |
| 탈취 위험 | 세션 ID 탈취 위험 | 토큰 탈취 위험 |