카테고리 없음

한 권으로 읽는 컴퓨터 구조와 프로그래밍

ITSCASSIE1107 2025. 4. 13. 08:40
반응형

컴퓨터는 일반화할 줄 모른 다는 점에서도 어린아이와 같다.
 
컴퓨터 그래픽스는 전자 모눈종이에 색을 표현하는 점 blob를 찍어서 그림을 만드는 과정이다.
 

**"blob"**이라는 단어는 일상 영어에서는 자주 쓰이는 단어는 아니야. 원어민들도 특정 맥락에서만 사용하는 경향이 있어. 예를 들면:


📘 일반적인 의미:

  • blob: (명확한 형태가 없는) 방울, 덩어리
    • A blob of paint (물감 한 방울 / 뭉치)
    • There was a blob of ketchup on his shirt. (셔츠에 케첩 한 덩어리가 묻어 있었다)비트

비트를 처리하기 위한 하드웨어
 
릴레이
전지가 컴퓨터에 필요한 동력을 공급하는 데 쓰이기 시작한 것은 전기가 발명된 지 얼마 되지 않아서였다. 덴마크 과학자인 한스 크리스티안 외르스테드가 이를 발견했다. 선을 둥글게 말아서 코일로 만들고 전기를 흘려보내면 코일이 전자선이 된다. 전자선은 켜고 끌 수 있기 때문에 물건을 움직이는 데 이를 활용할 수 있다. 
 
릴레이 relay (계전기 라고도 부름)  스위치를 움직이기 위해 전자석을 사용하는 장치다. 
 
시간 표현과 상태 기억
우리는 주기함수를 사용해 시간을 측정할 수 있따. 예를 들어 지구의 자전이 바로 주기적 함수다. 
 
tcp/ip
전송 제어 트로토콜 / 인터넷 프로토콜은 인터넷이 사용하는 두 가지 프로토콜이다. IP는 한 곳에서 다른 곳으로 옮겨주며, 이 패킷을 데이터그램이라고 부른다. (datagram) 
 
영화 화면은 1촏당 16프레임을 샘플링해 만들어졌다. 샘플링을 다루는 이산 수학 discrete mathematics 이라는 분야가 있을 정도다. 
 
가비지 컬렉션
 
동적 메모리를 명시적으로 관리하면서 포인터를 잘못 쓰면 두 가지 문제가 생긴다. 포인터는 단지 메모리 주소를 나타내는 숫자에 지나지 않는다는 사실을 기억하라. 
 
자바나 자바스크립트 같은 언어에는 포인터가 없지만 직접 malloc이나 free를 하지않으면서도 동적 메모리 할당을 지원한다. 이런 언어는 malloc이나 free대신에 가비지 컬렉션을 구현한다. 
 
자바 같은 언어는 포인터 대신 참조를 사용한다. 참조 reference는 포인터를 추상화해서 거의 비슷한 기능을 제공하지만 실제 메모리 주소는 노출하지는 않는다.
 
1. malloc이랑 free는 뭐야?
이건 C 언어 같은 저수준 언어에서 메모리를 직접 다룰 때 쓰는 함수야.

malloc(size):
→ "메모리(memory) allocate(할당)"의 줄임말.
→ 필요한 만큼 메모리를 '동적으로' 요청할 때 사용해.
→ 예: malloc(4)는 4바이트를 컴퓨터 메모리에서 빌려오는 거야.

free(pointer):
→ **malloc으로 빌린 메모리를 다 쓰고 나서 '반납'**할 때 써.
→ 안 쓰면 '메모리 누수(leak)'가 생겨서 프로그램이 무거워지거나 오류 날 수도 있어.

2. 자바나 자바스크립트는 왜 malloc/free가 없는데 메모리를 쓸 수 있어?
자바나 자바스크립트는 개발자가 직접 메모리를 관리할 필요가 없어.
왜냐면 **"가비지 컬렉터(Garbage Collector)"**라는 시스템이 자동으로 메모리를 관리해 주기 때문이야.

→ 즉,

자바스크립트에서 let a = {name: 'Cassie'} 이런 식으로 객체를 만들면,
내부적으로는 메모리가 할당돼 (malloc 역할)

그리고 이 a를 더 이상 안 쓰면, 가비지 컬렉터가 자동으로 free를 해 줘.

한 줄 요약
C는 개발자가 직접 메모리를 할당(malloc)하고 해제(free)해야 하지만,
자바나 자바스크립트는 그걸 자동으로 해 주는 똑똑한 시스템이 있어서 직접 안 해도 돼!
 
**C++**도 malloc/free를 쓸 수는 있지만, 실제로는 다른 방식이 더 일반적이야.
 

 
이중 연결 리스트
단일 연결 리스트 delete 함수에서는 포인터를 제대로 변경하기 위해 삭제하려는 원소의 앞 원소를 찾아야만 했다.
이중 연결 리스트는 doubly linked list 노드에 다음 원소에 대한 포인터뿐만 아니라 이전 원소에 대한 포인터도 들어 있는 리스트다. 

브라우저는 문서를 DOM 구조에 따라 처리하고, 트리를 깊이 우선 방식으로 탐색하면서 해석한다.

전방향 안정성

대칭 암호 세션 키를 실제 통신에 사용할 경우, 키를 발견하면 모든 메세지를 읽을 수 있다는 문제가 있다.


공개키 암호
공개키 암호는 트랩도어 함수에 의존한다. 트랩도어함수는 한 방향으로는 계산하기쉽지만 비밀 정보를 알지못하면 반대쪽 방향으로는 계산이 어려운 함수를 뜻한다.



정규식

정규식(정규 표현식)은 테이블을 만드는 등의 복잡한 과정을 생략하고, 패턴 매칭을 통해 문자를 간단하게 표현하고 처리할 수 있도록 도와주는 도구이다

반응형