전체 글
-
모두의 네트워크 Lesson 정리Book Review 2021. 5. 30. 12:27
Lesson 1 네트워크 구조 컴퓨터 간의 연결을 컴퓨터 네트워크라고 부른다. 인터넷은 전 세계의 큰 네트워크부터 작은 네트워크까지 연결하는 거대한 네트워크다. 패킷은 컴퓨터 간의 데이터를 주고받을 때 네트워크를 통해 흘러가는 작은 데이터 조각이다. 큰 데이터는 작은 패킷으로 분할한다(대역폭을 줄이기 위해서). Lesson 2 정보의 양을 나타내는 단위 컴퓨터는 0과 1밖에 이해하지 못한다. 정보를 나타내는 최소 단위를 비트라고 하며, 비트 여덟 개를 1바이트라고 한다. 숫자와 문자의 대응표를 문자 코드라고 한다. Lesson 3 LAN과 WAN 특정 지역을 범위로 하는 네트워크를 LAN이라고 한다. 인터넷 서비스 제공자(ISP)가 제공하는 서비스를 사용하여 구축한 네트워크를 WAN이라고 한다. LAN은..
-
파이썬 코딩의 기술 (브렛 슬라킨)Book Review 2021. 5. 29. 22:24
Chapter 1 파이썬답게 생각하기 Better Way 3 | bytes와 str의 차이를 알아두라 - 파이썬은 bytes와 str 두 가지 타입을 이용해 문자열 데이터의 시퀀스를 표현한다. bytes에는 8비트 값의 시퀀스가 들어 있고, str에는 유니코드 코드 포인트의 시퀀스가 들어 있다. - 일반적으로는 UTF-8이 시스템 디폴트 인코딩 방식이다. (도우미 함수를 이용해서 문자 시퀀스 타입을 확실히 알 수 있다.) - 유니코드 데이터를 인코딩하거나 디코딩하는 부분을 인터페이스의 가장 먼 경계 지점에 위치시켜라. (= 유니코드 샌드위치) - 이진 8비트 값과 유니코드 문자열을 파이썬에서 다룰 때 꼭 기억해야 할 두 가지 문제점이 있다. 첫 번째 문제점은 bytes와 str이 똑같이 작동하는 것처럼 ..
-
해커와 화가 (폴 그레이엄)Book Review 2021. 5. 29. 17:42
1장. 공부벌레는 왜 인기가 없을까 (XX) :미국 공부벌레들을 예로 들었는데 한국과는 상황이 매우 달라서 공감되지 않는 장이다. 2장. 해커와 화가 (O) p.48 큰 회사는 최악의 재난을 피하기 위해서 설계 산출물에 대한 표준 편차를 줄이려고 노력한다. 하지만 활기차게 진동하는 기운을 억누르면 진폭의 저점만이 아니라 고점도 함께 잃어버리게 됨을 기억해야 한다. 큰 회사는 훌륭한 제품을 만들어서 번창하는 것이 아니기 때문에 고점의 상실이 문제 되지 않는다. 그들은 다른 큰 회사에 비해서 상대적으로 덜 망치면 되는 것이다. p.49 스타트업과 관련된 또 하나의 문제점은 돈을 벌 수 있는 소프트웨어와 작성하고 싶은 재미있는 소프트웨어 사이에는 별로 겹치는 부분이 없다는 사실이다. p.52..
-
컴파일러 언어vs 인터프리터 언어Computer Science 2021. 5. 9. 22:00
컴파일 언어와 인터프리터 언어는 컴파일 타임이 있느냐 없느냐 즉, 소스 코드를 분석하는 시점과 입력 데이터를 받는 시점이 언제이냐에 따라 나뉜다. 이 문장만으로는 명확히 이해되지 않으니 C와 파이썬을 예로 들어보자. C언어 : 컴파일러 분석 언어 C언어는 소스코드를 컴파일하여 목적 코드(object code/object file)인 기계어로 된 인스트럭션을 만들어 낸다. 링커(linker)는 필요한 라이브러리를 가져오고 여러 개의 목적 파일을 함께 묶어 실행 파일(executable file)을 생성한다. 이제 프로그램을 실행하고 데이터를 입력하면 결과 데이터가 출력된다. 중요한 점은 소스 코드를 분석하는 컴파일 타임(compile time)과 실제 데이터를 입력받아 결과를 출력하는 런타임(run tim..
-
Home serverComputer Science 2021. 4. 10. 12:10
공유기에 연결되어 있는 컴퓨터에 서버를 설치해서 운영하는 것은 쉽지 않다. 이를 위해 알아야 할 사전 지식 Network Address Translation Public VS Private IP Address Port forwarding Dynamic VS Static IP address Dynamic DNS 공유기(Router) Network Address Translation 이 기술 덕분에 사설 IP를 쓰고있는 컴퓨터들이 외부의 인터넷에 접속할 수 있다. 개인용 컴퓨터(private IP address)에서는 Gateway address에 해당되는 머신으로 신호를 보낸다. 신호를 받은 라우터에서는 두 가지 일이 일어나는데 첫 번째는 private IP address의 주소를 기억해둔다. 두 번째로는..
-
Django - 03 Model 코딩Django 2021. 3. 31. 17:02
모델 작업은 데이터베이스에 테이블을 생성하는 작업이다. 다음 순서대로 진행한다. >notepad models.py // 테이블을 정의함 >notepad admins.py // 정의된 테이블이 Admin 화면에 보이게 함 >python manage.py makemigrations // 데이터베이스에 변경이 필요한 사항을 추출함 >python manage.py migrate // 데이터베이서에 변경사항을 반영함 >python manage.py runserver // 현재까지 작업을 개발용 웹 서버로 확인함 테이블 정의 앞에서 설계한 것처럼, polls 애플리케이션은 Question과 Choice 두 개의 테이블이 필요하다. 테이블은 models.py 파일에 정의한다. 장고에서는 테이블을 하나의 클래스, 테이..
-
Django - 02 애플리케이션 설계 / 프로젝트 뼈대 만들기Django 2021. 3. 29. 23:01
애플리케이션 설계하기 프로젝트란 전체 프로그램을 의미하며, 프로젝트를 몇 개의 기능 그룹(프로그램)으로 나누었을 때, 하위 프로그램을 애플리케이션이라고 한다. 이런 개념으로 프로젝트 디렉터리와 애플리케이션 디렉터리를 구분하고, 코딩하는 파일도 프로젝트 파일인지 애플리케이션 파일인지 구분해서 저장해야 한다. 이런 개념에서 중요한 점은 하나의 애플리케이션이 여러 프로젝트에 포함될 수 있기 때문에, 애플리케이션을 한 번만 개발하고, 이를 다른 프로젝트에 재사용해서 개발의 생산성을 높일 수 있다. 또한 애플리케이션 단위로 모아서 프로젝트를 만들고, 프로젝트를 모아서 더 큰 프로젝트를 만드는 방식으로, 계층적인 개발이 가능하다는 장점이 있다. 다음 그림은 설문에 해당하는 질문을 보여준 후 질문에 포함되어 있는 답..
-
Django - 01 애플리케이션 개발 방식Django 2021. 3. 29. 20:15
웹 사이트를 설계할 때 가장 먼저 해야 할 일은 프로그램이 해야 할 일을 나누어서 모듈화 하는 것이다. 웹 사이트의 전체 프로그램 또는 모듈화된 단위 프로그램을 애플리케이션이라고 한다. 즉, 코딩할 대상을 애플리케이션이라고 부른다. 장고에서는 애플리케이션의 개념을 웹 서버 개발 측면에서 좀 더 구체화 한다. 웹 사이트에 대한 전체 프로그램을 프로젝트라 하고, 모듈화된 단위 프로그램을 애플리케이션이라 부른다. 즉, 애플리케이션 프로그램들이 모여서 프로젝트를 개발하는 개념이다. MVT 패턴 MVC(Model-View-Controller)패턴은 데이터, 사용자 인터페이스, 데이터를 처리하는 로직을 구분해서 한 요소가 다른 요소들에 영향을 주지 않도록 설계하는 방식이다. 이런 방식으로 개발하면 디자이너는 데이터..