개발 여행/CS (4) 썸네일형 리스트형 [혼공컴운] Chapter 3. 명령어 소스 코드가 명령어로 어떻게 변할까? 3-1. 소스 코드와 명령어 모든 소스 코드는 컴퓨터가 이해 가능한 명령어로 변환된다. 고급 언어와 저급 언어 고급 언어: 인간이 이해할 수 있음 저급 언어: 컴퓨터가 직접 이해 가능함 기계어: 0과 1로 이루어진 언어 어셈블리어: 기계어를 읽기 편한 형태로 변환한 저급 언어. 한 줄 한 줄이 명령어 단위이다. 로우 레벨 개발자(임베디드 등)의 경우 위 어셈블리어를 직접 작성해야 하는 경우도 있다. 컴파일 언어와 인터프리트 언어 컴파일 언어: 소스 코드가 컴파일이라는 과정을 거쳐 저급 언어로 변환되는 언어 컴파일 결과로 나온 저급 언어는 목적 코드이다. 위 과정은 굉장히 단순화된 과정이며, C의 경우 전처리기를 거치고, 실행 파일이 생성되는 경우 등 컴파일 언어마다 .. [혼공컴+운] Chapter 2. 데이터 Chapter 2. 데이터 2-1. 0과 1로 숫자를 표현하는 방법 컴퓨터는 0과 1만 가지고 어떻게 숫자를 인식하는 것인가? 정보 단위는 어떻게 이루어져있는가? 정보 단위 비트: 0과 1 하나를 나타내는 단위. n비트로 2^n(2의 n승)가지 정보 표현 가능. 다음 단위로 넘어갈때마다 1000배(2의 10승 단위는 버렸음) 워드: CPU가 한번에 처리 가능한 정보의 크기 예) x86 cpu는 워드가 32비트, x64는 워드가 64비트 하프 워드, 풀 워드, 더블 워드 등의 파생이 존재한다. 이진법: 0과 1만으로 숫자를 표현하기. 개념은 교육과정에서 배웠으니 생략… 표기는 (2)를 붙이거나, 0b를 붙이거나 한다. 이진수의 음수 표기: -라는걸 쓸 수 없으므로 별도 표기 방법이 필요하다. 가장 흔히 사.. [혼공컴운] Chapter 1. 컴퓨터 구조 시작하기 개인적으로 정리하는 강의록 목적이다. 1-1. 컴퓨터 구조를 알아야 하는 이유 왜 코드나 짜는 개발자가 굳이 컴퓨터 구조를 알아야 하는가? 문제 해결 똑같은 코드라도 사람마다, 장비마다 패턴이 다른 경우가 있다. 컴퓨터 내부를 들여다볼 수 있어야 한다. 성능, 용량, 비용 고려 웹사이트를 운영하더라도 서버의 사양을 알아야 한다. 서버의 사용량 등을 고려하여 개발자가 스스로 사양을 선택할 수 있어야 한다. 클라우드도 상황은 마찬가지이다. 코어, 메모리 골라야 한다. 1-2. 컴퓨터 구조의 큰 그림 전체적인 그림을 그려서 이해하는 데에 도움을 주자. 컴퓨터가 이해하는 정보 데이터: 숫자, 문자, 이미지, 동영상과 같은 정적인 정보. 내부에 저장된 정보를 통칭하기도 한다. 이진법을 사용하는 컴퓨터가 어떻게 숫.. 비전공 개발자가 추천하는 필수 컴퓨터공학 전공과목 비전공자로 개발을 시작하게 되면서, 여러 가지 문제를 마주하게 되었지만 항상 불안감을 느끼던 부분은, 전공지식의 부재로 인해 나중에 손해를 볼 것 같다는 불안감이었다. 실무를 통해 많은 것을 배울 수 있다 생각했고, 실제로도 코드 짜는 것이라든지 프레임워크라든지 좋은 디자인같은 것은 좋은 동료들을 통해 익혀나갈 수 있었지만, 컴퓨터공학의 기본적인 전공지식들(하다 못해 용어들)은 정말 백지 상태였다. 여러 커뮤니티 등을 통해 당장 들어야 할 전공지식들에 대해 자문을 구해보았을 때, 당연히 모든 걸 공부하라는 이야기가 대다수였지만(전공자 입장에선 당연히 다 필요해보일 것이다) 몇 가지 공통적인 의견은, OS, DB, 네트워크를 필수적으로 보아라 대학교 커리큘럼을 따라가면서 공부해라 였다. 그래서 당장 대학교.. 이전 1 다음