분류 전체보기(79)
-
CS 50 - 메모리와 데이터의 저장
메모리는 프로그램의 동작에 필요한 데이터들을 저장하는 공간으로, 아무렇게나 쓰는 것이 아니라, 용도에 따라 구분지어 사용된다. 메모리 영역의 도식도 RAM위의 각 메모리는 프로그램의 코드가 들어가는 Code 영역, 전역, Data 영역, 그리고 힙, 스택영역이 있다. CPU는 CODE 영역의 메모리 중 함수, 분기문, 상수 등을 읽어와 그에 따라 RAM에서 메모리를 관리한다. CPU가 다루는 메모리 영역 중 Data Memory 영역은 global 변수, static 변수를 할당하는 공간이며, 프로그램의 실행과 동시에 생성되며 프로그램의 종료와 동시에 소멸한다. 그 밑에는 Heap 영역과 Stack 영역이 존재하는데, Stack 영역은 프로그램이 필요에 따라 임시로 사용하는 영역이며, 함수의 호출 시 필..
2021.07.18 -
CS 50 - 16진법과 포인터, Call by reference
현재 카테고리의 첫 글에서 binary와 컴퓨터가 값을 표현하는 방법에 대해 설명했다. 컴퓨터는 8비트(1바이트)를 기준으로 8개의 0과 1로 표현을 하게 되는데, 이를 사람이 어느 정도 보기 편하게 바꿔놓은 것이 16진수이다. 16진수는 대부분 알 것 같으니 패스하고, 10진수는 0과 1로 이루어진 코드를 직관적으로 보기 힘들지만, 2^4 = 16이라는 사실로 1바이트를 16진수 숫자 2자리로 표기하는 것이다. 그런데 10진법 10과 16진법 10은 서로 "10"이지만 나타내는 값은 10과 16이다. 이런 모호함을 방지하기 위해 사람들은 16진수 수의 앞에는 0x를 붙이도록 약속했음. 예를 들어 1111 1111은 0xFF로, 0010 1100은 0x2C 이런 식으로.. 이 정도 설명하면 16진수는 끝..
2021.07.18 -
CS 50 - 코드가 동작하는 과정, 컴파일링
컴파일링이란 무엇인가? 우리가 C언어로 이루어진 .c를 작성하고 ./ 을 입력하면 컴파일러는 전처리 - 컴파일 - 어셈블 - 링크의 과정을 거쳐 실제 사용할 수 있는 파일을 만들어낸다. 인간 친화적으로 작성된 코드를 컴퓨터가 이해할 수 있는 코드로 변환시켜주는 과정을 컴파일이라고 한다. 예시로 헬로월드 컴파일링 과정이나 보자꾸나 전처리 전처리는 컴파일 전 전처리기에 의해 실행되며, 코드 내의 #으로 시작되는 모든 것은 전처리기에 의해 변환된다. 예를 들어 #include 는 lib의 stdio.h에 있는 모든 코드를 #include 의 위치에 작성하며, #include "a.h"같은 사제 헤더는 해당 .c 파일이 위치한 디렉토리에서 상대경로를 통해 a.h라는 헤더의 모든 코드를 복사해넣으며, #defin..
2021.07.16 -
CS 50 - 컴퓨터 과학과 컴퓨팅 사고
컴퓨터 과학이란 무엇인가? 컴퓨터 과학이란 문제 해결에 대한 학문으로, 정보 자체보다는 정보의 수집, 전달, 축적, 가공 등에 대해 다루는 기계, 즉 컴퓨터를 다루는 학문이다. 실생활에서 컴퓨터 과학과 컴퓨터 공학에 대해 헷갈려하는 사람들이 많은데, 컴퓨터 과학은 응용수학과 전산학 이론 등 자연 과학의 Theory를 다루는 학문이라면, 컴퓨터 공학은 그 Theory를 이용해 실제 application을 만들어내는 학과라고 생각하면 쉽다. 컴퓨팅 사고 binary, 2진법 만약 당신이 "123"이라는 글자를 본다면 본능적으로 백의 자리 1, 십의 자리 2, 1의 자리 3이라는 계산을 해서 10진수 123으로 읽을 것이다. 당신도 모르는 사이 100 * 1 + 2 * 10 + 3 * 1 => 100 + 20..
2021.07.16 -
42 SEOUL, 라 피씬 후기 -2
위치 서울특별시 서초구 서초동 1337-20, 강남역 5번출구에서 뛰어서 5분, 걸어서 15분거리 처음갔는데 건물 화장실도 깨끗하고 냄새도 안나고 좋았다. 외관도 깨끗함 그리고 일단 개포가 아니라 서초라 제일 좋았던 점인데, 맛있는 곳이 많다. 물론 먹을 곳은 많은데 진짜 맛있는데는 테헤란로 쪽 가야지 좀 더 많음 .. ㅠ 야아악간 애매함 위치가 클러스터 클러스터에 도착한 순서대로 클러스터를 채우고 설명을 듣는다. 4기는 총 600명의 지원자가 1차 2차로 300명씩 나뉘고 또 여기서 1그룹과 2그룹으로 150명씩 나뉜다. 나는 1그룹이라 월 수 금 토를 출석하게 되었으며, 2그룹은 화 목 금 일을 출석했다. 금요일은 시험이라 1그룹과 2그룹이 겹치게 되며, 주말 역시 러쉬라고 불리는 팀 과제를 하며 짜..
2021.07.16 -
42 SEOUL, 라 피씬 후기 -1
42 서울이란? 이노베이션 아카데미에서 시행하는 정부 지원 SW 인재 양성 프로그램으로, 프랑스의 에꼴42의 교육 프로그램을 차용해 한국에 적용함. 근데 42가 머임 ?_? 지독한 컨셉,, 지원금도 42분,,, 외부에서 오는 행사 제외한 자체 행사는 거의 42분에 시작한다. 9시 42분,, 11시 42분,,,, 4시 42분,,, 은하수를 여행하는 히치하이커를 위한 안내서라는 영화에서 Deepthought라는 귀여운 컴퓨터가 750만 년 동안 삶, 우주, 그리고 모든 것에 대한 절대적인 답을 구했는데 그게 42다. 그냥 다른 거 없이 42다. 나였으면 망치로 컴퓨터 부셨는데 그건 세돌이도 마찬가지 아니냐? 아무튼 영화 안 좋아하는데 나름 재밌었음 삶, 우주, 그리고 모든 것을 알아내는 데는 750만 년 걸..
2021.07.16