
미국에 악명 높은 시스템 프로그래밍 관련 실험이 있다. CS:APP(Computer Science:A Programmer's Perspective)라고, 미국 카네기 멜론 대학(CMU) 랩(과제) 시리즈라고 한다. 각 과제마다 매우 성격이 다르지만, 나중에 프로그래밍으로 밥 벌어먹고살아야 하는 사람이라면 한 번은 거치고 가야 한다는 말이 있을 정도로 전 세계적으로 인기가 많고, 또 그만큼 유명세도 높은 랩이다. 나의 전공수업 '마이크로프로세서'(라 하고 시스템프로그래밍 가르치는 수업)에서 이 시리즈의 과제를 진행하는데, 과제 제출 이후 CSAPP 시리즈를 연재하면서 이에 대한 복기 차원에서 포스팅을 진행할 예정이다. 첫 번째 CSAPP의 과제는 Data lab으로, 제한된 횟수의 제한된 비트 연산을 통해..

Javascript에서는 변수를 선언하는 세 가지 키워드가 있다. 고전 JS부터 이어진 var와, ES6에서 새로 도입된 키워드 const, let이 있다. 현재 많은 JS 개발자들이 var 대신 const, let을 권장하고 있지만, 아직 많은 고전 JS 코드에서 var를 사용하는 경우도 많다. 임의의 변수를 let과 const로 선언할 경우 var보다 많은 장점이 존재한다. 예를 들어, 호이스팅 문제에서 자유롭거나, 중복된 변수 방지 등등 활용할 수 있다. var, let, const을 비교한 글은 여러 블로그에서 찾을 수 있으니, 구글에서 이에 대하여 검색하면 쉽게 얻을 수 있다. (만약 귀찮다면, 다음 글을 참고하면 된다.) 그러면, var가 let과 const를 사용하는 경우보다 나은 경우가 존..

컴퓨터가 브라우저에서 웹을 접속하는 첫 과정으로, 웹 브라우저에 웹사이트 주소(예를 들어, https://www.google.com)를 입력하면 실제 홈페이지가 열린다. 근데, 생각해보면 모든 서버는 고유한 주소(IP 주소)로 이루어져 있다. 그럼, 브라우저에 "https://www.google.com"를 입력하면 이것이 IP 주소로 자동 변환되는 것인가? 브라우저에 모든 서버에 대한 주소를 담고 있는 것인가? 모든 서버에 대한 주소를 담고 있으면, 새로 생성된 서버에 대한 주소는 누가 가지고 있는 것인가? 우리가 모르는 번호가 있으면 전화로 114에 물어보고, 모르는 것이 있으면 구글링이 있듯이, 브라우저도 해당 주소에 대하여 모르면 "구글링"을 수행한다. 이때, 114 안내소, 구글 검색처럼 홈페이지..

파이썬만의 독특한 문법으로 파이썬은 함수의 return문에도 and와 or를 사용할 수 있다. 다만, 이 경우 보통우리가 생각하는 and와 or과 같이 동작을 하지 않는다. 이를 이해하려면 and와 or의 정확한 동작원리 및 우선순위에 대한 탐구가 필요하다. 이번 포스팅에서 함께 알아보도록 하자. 1. and와 or의 우선순위 정리 파이썬 공식 문서에 따르면, and와 or, not의 정확한 우선순위는 다음과 같이 쓴다. 위에 있을 수록 더 높은 우선순위를 갖는다. 연산자 작동 원리 우선순위 x OR y (또는 연산자) if x is FALSE, then y, else x 1 x AND y (그리고 연산자) if x is FALSE, then x, else y 2 NOT x (부정 연산자) if x if..

파이썬을 다루다 보면 곱셈 연산 이외에 별표(*)가 쓰인 경우가 있다. 이럴 때 쓰이는 별표는 어떤 의미를 가질까? 가령 파이썬의 함수에 대하여 배웠다면 다음과 같이 매개변수에 별표(*args)가 붙는 경우를 볼 수 있다. HTML 삽입 미리보기할 수 없는 소스 왜 이런 꼴이 가능할까? 이번 포스팅에서는 파이썬의 별표, 즉 asterisk 연산자의 다양한 활용에 대하여 알아보자. 1. *operator 파이썬에서의 별표(*) 연산자, 혹은 asterisk 연산자는 집합 형태의 자료형을 풀거나, 묶을 때 사용하는 연산자이다. 우린 이를 unpacking, packing 연산자라 부르기로 하였다. 다음과 같이 하나의 list가 있다고 가정하자. new_list = [1, 2, 3, 4, 5] 이때 new_l..

파이썬에서의 list를 야무지게 사용하는 방법 중 하나는 리스트 함축(list comprehension)이다. 이 또한 파이썬 이외에 언어에서는 찾아볼 수 없는, 독특한 문법 중 하나이다. list를 새로 생성할 때 매우 유용하게 사용할 수 있으며, 특히 코드의 가독성을 높이고 코드의 길이를 짧게 할 때 유용하게 사용할 수 있는 테크닉이다. 이번 포스팅에서는 리스트 함축에 대하여 알아보고 이를 극한까지 활용하여보자. 1. list comprehension이란? 파이썬 공식 문서에는 리스트 함축(list comprehension)에 대한 정의를 다음과 같이 하고 있다. List comprehension은 list를 생성하는데 하나의 간결한 방법을 제공하는 방법입니다. 다른 sequence 혹은 iterab..
- Total
- Today
- Yesterday
- for
- effective async
- bomblab
- 프로그래밍
- Max
- Network
- 알고리즘
- GDSC
- 시간복잡도
- 백준
- 수학
- BOJ
- C++
- 함수
- 구현
- MIN
- C
- 헤더
- Python
- CSAPP
- 제어문
- Proactor
- react
- 문자열
- equal
- 사칙연산
- docker
- JS
- BRONZE
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |