안녕하세요. IT 엘도라도 에 오신 것을 환영합니다.
글을 쓰는 것은 귀찮지만 다시 찾아보는 것은 더 귀찮습니다.
완전한 나만의 것으로 만들기 위해 지식을 차곡차곡 저장해 보아요.   포스팅 둘러보기 ▼

분류 전체보기 (168)

[Chapter 3] Digital Logic Structures - CPU를 구성하는 기본 부품들

[Chapter 0] Introduction 게시물에서 이미 언급했지만, 우리가 사용하는 컴퓨터의 CPU는 작은 부품들이 조립되고 또 조립된 결과로 만들어진다. 이러한 맥락에서 조립을 위한 가장 작은 단위의 부품으로 MOS 트랜지스터를 소개하였고, 더 나아가 이를 조립하여 만들어낸 게이트들까지 한 차례 설명을 마친 바 있다. 여기서는 앞서 설명했던 트랜지스터와 게이트에 대해 다시 한번 간략하게 정리를 한 뒤, 이어서 그것들을 조립하여 만들어낼 수 있는 두 종류의 논리 회로를 설명할 것이다. 하나는 Combinational Logic Circuit이고, 나머지 하나는 Sequential Logic Circuit이다. ※ 최초의 PC와 ISA와 관련한 썰. 관심 있는 분만 클릭하여 읽어보시기를. 더보기 IB..

[장대익] 다윈 & 페일리 (진화론도 진화한다)

0. 책 정보 1. 제목 : 다윈 & 페일리 (진화론도 진화한다) 2. 저자 : 장대익 3. 출판사 : 김영사 4. 출간일 : 2019년 05월 11일 5. 쪽수 : 220 페이지 6. 정가 : 9,500원 1. 읽게 된 계기 2020년 새해를 맞아 독서 습관 들이기를 목표로 삼게 되면서, 무슨 책을 읽어야 할까 고민을 많이 했다. 그러던 중 유튜브에서 추천을 받아 관심이 생긴 책이 있었으니, 바로 김영사 출판사의 '지식인 마을 1~40 세트'였다. 동서양의 위대한 지식인 100명의 사상과 업적을 쉽게 풀어서 40권에 담았는데, 각 책이 300쪽을 넘지 않는 분량이어서 부담 없이 읽기 좋다고 판단하였다. 세트 품목은 완판 되어 구하기 어려웠지만, 다행히 책 개별로는 아직 판매 중이어서 일일이 하나하나 찾..

[Chapter 2] Bits, Data Types, and Operations - 데이터의 표현

누구나 귀에 못이 박히도록 들어봤겠지만, 컴퓨터는 내부적으로 모든 데이터를 0과 1로 저장한다. 따라서 CPU의 동작 원리를 이해하기 위해서는 먼저 0과 1에 익숙해질 필요가 있다. 이번 포스팅에서는 0과 1로 이루어진 이진법 체계에 대해 알아본 뒤, 이것이 CPU 구현과는 어떠한 연관을 맺고 있는지까지 한 번 다뤄보도록 할 것이다. 1. 데이터를 표현하는 0과 1의 정체 실제로 전압은 연속적인 아날로그 값이지만, 디지털 세계에서는 전압의 크기에 따라 0과 1의 신호를 약속하여 데이터를 표현한다. 예를 들어 0V ~ 0.5V에 해당하는 전압은 0의 신호, 2.4V ~ 2.9V에 해당하는 전압은 1의 신호라고 약속하는 것이다. 그리고 이를 바탕으로 모든 데이터를 0과 1로 이루어진 2진수로 표현한다. 따라..

[Chapter 1] Welcome Abroad - 튜링 머신과 추상화

컴퓨터 공학에 있어 위대한 업적을 남긴 인물을 꼽아야 한다면, 누군가는 앨런 튜링이라는 인물을 떠올릴 것이다. 그런 의미에서 앨런 튜링이라는 인물이 고안해낸 튜링 머신에 대한 개념을 간단히라도 알고 넘어갈 필요가 있다. 또한 컴퓨터 공학도라면 반드시 알고 있어야 하는 추상화라는 개념도 제대로 이해하는 것이 중요하다. 추상화는 컴퓨터 공학뿐 아니라 모든 공학 분야에서 급격한 기술의 진보를 이끌어 낸 핵심적인 아이디어라 말해도 과언이 아닐 것이다. 1. 튜링 머신 (Turing Machine) 1-1. 튜링 머신 (Turing Machine) 튜링 머신에 대해 본격적으로 알아보기 전에, 기본적으로 알고 있어야 할 배경지식이 있다. 모든 컴퓨터들은, 그것이 핸드폰 단말기이든 일반 PC이든 슈퍼 컴퓨터이든, 충..

[Chapter 0] Introduction - MOS 트랜지스터와 게이트

프로그램이 실행되는 동안 CPU 내부적으로는 무슨 일이 일어나고 있을까? 이것을 이해하는 게 우리의 최종 목표이다. 이를 위해서는 CPU를 이루는 가장 작은 단위의 부품부터 알아야 한다. 이 책에서는 CPU의 가장 밑바닥을 이루는 부품으로서 MOS 트랜지스터를 소개하고 있다. MOS 트랜지스터를 이용하여 흔히들 알고 있는 NOT, AND, OR 등의 게이트를 만들게 되고, 그러한 게이트들을 다시 여러 방식으로 조립하여 최종적으로는 CPU라는 거대한 하드웨어를 만들게 된다. 이번 포스팅에서는 MOS 트랜지스터와 그것들로 만들어지는 게이트에 대해 간략하게 한 번 알아보도록 할 것이다. 1. MOS 트랜지스터 (Metal-Oxide-Silicon Transistor) 이 책에서 소개하는 CPU의 가장 밑바닥을..

[Introduction to Computing Systems] 포스팅을 시작하며...

책 이름 : Introduction to Computing Systems (2nd Edition) 저자 : Yale N. Patt / Sanjay J. Patel 필자가 학부 1학년 때 수강했던 이라는 교양(이지만 전공에 가까운) 과목에서 사용된 서적이다. 책의 전반부(~ Chapter 10)는 CPU가 하드웨어 수준에서 어떻게 구현이 되는지를 가장 밑바닥에 있는 트랜지스터부터 시작하여 한 단계씩 위로 올라가며 설명한다. 사실상 컴퓨터 구조의 기초 내용을 다루고 있다고 해도 무방하다. 책의 후반부(Chapter 11 ~)는 컴퓨터 개론 책답게 C 언어라는 프로그래밍 언어를 소개하며, C 언어로 작성된 프로그램이 어떻게 어셈블리어로 번역이 되는지 차근차근 보여준다. 이러한 모든 내용들은 LC-3라는 가상의..

[Django] TIME_ZONE, USE_TZ 설정

장고의 설정 파일에는 시간대(EX. 대한민국 시간대, UTC 세계 표준시 등)와 관련한 설정을 할 수 있는 대표적인 변수로서 TIME_ZONE과 USE_TZ가 존재한다. 이 값들을 어떻게 설정하느냐에 따라서 장고 서버 개발 시 datetime 객체를 사용하는 방법이 달라지므로 이에 대한 공부가 필요하다. 하나씩 차근차근 알아보자. 1. Default time zone VS Current time zone ① Default time zone : TIME_ZONE 변수로 지정한 시간대 ② Current time zone : 템플릿 렌더링에 사용되는 시간대 (특별히 설정해주지 않으면 Default time zone과 동일) ※ 기본적으로 장고는 TIME_ZONE 설정 값으로 환경변수를 세팅하기 때문에, Def..

장고 (Django) 2020.01.11

[Python] Iterator, Generator

1. Iterator 1-1. Iterable 객체 파이썬에서 iterable 객체란 '반복 가능한 객체'를 의미한다. 대표적인 예로, for 문에서 사용하는 리스트, 튜플, 문자열 등이 바로 iterable 객체이다. 1-2. Iterable 객체이기 위한 조건 어떤 객체의 타입(클래스)이 A라고 해보자. 그러면 다음과 같은 조건을 만족할 때 A 타입의 객체가 곧 iterable 객체가 된다. ① 클래스 A는 __iter__() 메소드를 구현해야 한다. 반드시 iterator 객체를 반환하도록 구현해야 한다. (→ 해당 iterator 객체는 동일한 클래스(A)의 객체여도 되고 별도로 작성된 다른 클래스의 객체여도 된다.) ② iterator 객체의 클래스(A 혹은 다른 클래스)는 반드시 __next_..

파이썬 (Python) 2020.01.11

[Python] 객체와 기본 자료형

1. 객체 (Object) 파이썬에서 다루는 모든 데이터는 객체(object)이다. 정수, 실수, 문자열, 사용자 정의 클래스의 인스턴스 등 모든 것은 특정 타입(자료형)을 가지고 메모리에 상주하는 객체들인 것이다. 각 객체는 메모리 상에서의 위치를 나타내는 고유한 ID 값을 지니고 있으며, 파이썬에서의 변수는 그러한 객체들을 가리키는 레퍼런스일 뿐이다. Java에서의 객체를 가리키는 참조 변수와 그 성격이 유사하다. 2. 객체 관련 도구 (함수, 연산자) 관련 도구 분류 설명 id(객체) 내장 함수 객체의 ID 값 확인 is 연산자 두 객체의 ID 값 비교 == 연산자 두 객체의 값 비교 (권장) = 연산자 우변의 객체를 좌변의 변수가 가리키도록 함 3. immutable 객체 파이썬의 immutabl..

파이썬 (Python) 2020.01.11

[Web] XSS와 CSRF (Cross Site Scripting and Cross Site Request Forgery)

1. XSS (Cross Site Scripting) 1-1. 의미 웹사이트에 악의적 스크립트를 삽입하여 쿠키, 개인정보 등을 빼돌리는 해킹 기법이다. 간단한 예시로, 게시글을 작성할 때 와 같은 JavaScript를 삽입하여 태그 안에 작성한 악의적 목적의 코드가 실행되게끔 하는 것을 들 수 있다. 코드를 어떻게 작성하느냐에 따라 쿠키나 개인정보 등을 빼돌릴 수도 있고, 특정 웹사이트로 이동하도록 할 수도 있고, 그 밖의 다른 동작을 수행하게끔 할 수도 있다. 주로 중요한 데이터를 다른 사이트로 빼돌리기 위해 사용하기 때문에 'Cross Site'라는 이름이 붙게 되었다. 1-2. 공격 과정 예시 ① 스크립트 삽입에 취약한 웹사이트를 파악한다. ② 웹사이트에 방문자의 쿠키를 빼돌리는 악성 스크립트를 삽..