본문 바로가기

full of life/book

[한 권으로 읽는 컴퓨터 구조와 프로그래밍] 조너선 스타인하트 - 1

나는 평소 언어를 잘 못한다고 생각하는데 

왜냐하면 국어는 잘 하는데(?) 외국어는 정말 못하기 때문이다. 관심의 문제이려나.. 어쨌든,

 

하지만 컴퓨터 언어를 하면서 다양한 언어를 배웠다. 이것도 나름 언어라고 한다면...

C로 시작해서 Python 하고, JavaScript 하고, SQL도 하고, Java이랑 Kotlin도 조금 하고...

모든 언어를 자유자재로 쓰지는 않지만 어쨌든 경험할 일이 많았고 해 왔다.

그럴 수 있었던 이유는 컴퓨터 언어가 자연어에 비해 훨씬 단순하기 때문일까 ㅎㅎ

 


앞 부분은 대체로 C언어, 논리회로 등에서 배웠던 내용들이라 리마인드 하는 느낌으로 읽었다.

뭔가 조금씩 새록새록 떠오르는 전공수업의 기억들.. 

이 부분은 보면서 손으로 따라 쓰면서 해 봄 ㅋㅋㅋㅋㅋㅋㅋㅋㅋ 이게 된다고 !?

또 그때도 부동소수점 개념은 어려워서 거의 포기했던 것 같은 기억이 나는데, 다시 봐도 어려웠다 ㅎ_ㅎ

 


👉🏻 UTF-8

아스키코드가 7비트로 이루어져 있기 때문에 127까지밖에 없다는 것을 알게 됐고,

유니코드를 식별하기 위해 전송되는 비트가 몇비트인지에 따라 MSB에 고정된 형식이 있다는 것을 알게 됐다.

  • 8비트 : 0_______ (아스키코드)
  • 16비트 : 110_____ | 10______
  • 24비트 : 1110____ | 10______ | 10______

 

👉🏻 문자를 사용한 수 표현 - 더 많은 정보를 송수신하기 위해

문자의 통신 과정에서 의사소통을 위해 QP인코딩이라는 방법을 사용해 왔었다.

하지만 1바이트를 표현하기 위해 3바이트를 사용하는 이 방법이 비효율적이기 때문에

현재는 base64 인코딩을 사용하게 되었다고 한다.

웹 개발 하면서 파일 전송할 때, 등등 base64를 영문도 모른 채 사용했었는데 어떤 것인지 이제야 알게 되었다.

 

👉🏻 색을 표현하는 방법

32비트에서 RGB를 8비트씩 표현하고 남는 8비트를 투명도에 사용하기로 생각했다는 점이 신기했다!

 

 

위 세가지는 정말 별 생각 없이 개발하면서 사용해오고 있었던 것들인데

이제 의미를 이해하고 사용할 수 있을듯하다.

👏🏻