분류 전체보기91 [CS] 네트워크 프로그래밍 - 클라이언트 서버 프로그래밍 모델 , 네트워크, 이더넷 네트워크 어플리케이션 웹 서핑, 이메일 수발신, 온라인 게임, 카톡 수발신, 온라인 결제 ... 이들의 공통점은 네트워크 어플리케이션을 사용하고 있다는 것이다. 네트워크에 연결된 컴퓨터 한 대 한 대를 호스트(host) 라고 하는데, 어떤 호스트의 어플리케이션이 다른 호스트의 어플리케이션과 통신하고 있다면 이 어플리케이션을 네트워크 어플리케이션이라고 한다. 네트워크 어플리케이션을 이해하기 위해서는 클라이언트-서버 프로그래밍 모델과, 인터넷에서 제공되는 서비스들을 사용할 수 있는 클라이언트-서버 프로그램을 어떻게 만들 수 있는지를 알아야 한다. 클라이언트-서버 프로그래밍 모델 (The Client-Server Programming Model) 모든 네트워크 어플리케이션은 클라이언트-서버 모델을 기반으로 한.. 2022. 11. 4. [CS] 기계수준 프로그래밍 - CS:APP 3장 - 프로그래밍의 인코딩 (어셈블리어, gcc 컴파일시스템) 컴퓨터는 기계어 코드를 실행한다. 기계어 코드란 컴퓨터의 여러가지 동작(데이터 처리, 메모리 관리, 데이터 읽기 쓰기 등) 을 인코딩한 연속된 바이트이다. 그러니까 01010111001010101010101001010001010101001010101010000 ... 와 같은 코드를 실행하는데 이 이진수 코드는 바이트 단위로 이루어지고 컴퓨터의 여러가지 동작들을 수행하게 한다는 것이다. 이 기계어 코드는 너-무 읽기 어렵기 때문에 이를 텍스트 형식으로 변환한 코드가 어셈블리 코드이다. 즉 어셈블리 코드는 기계어 코드를 단순히 텍스트로 변환한, 가장 기계어에 가까운 (= 저수준의) 형태의 프로그래밍 언어이다. 리눅스의 기본 C 컴파일러인 GCC C 컴파일러는 C언어로 작성된 C 소스 파일을 어셈블리 코드를.. 2022. 11. 4. [CS] 동적 메모리 할당 - malloc /free C 언어로 구현하기 part 1. 이론 (📖CS:APP) 🔔 정글 교육과정에 따라 malloc 패키지를 사용하지 않고 직접 동적 메모리 할당기를 구현하는 과정에서 공부한 동적 메모리 할당기 이론 및 코드들을 정리하는 포스팅입니다. " CS:APP (북미판, 글로벌에디션, 한국어 모두 참고) 9.9 장을 공부하며 작성한 글이기 때문에 정보를 드리기 위함보다는 공부한 내용을 정리하기 위한 포스팅이기 때문에 독자들이 읽기에 가독성이 떨어질 수 있음을 미리 알려드립니다 🔔 🚨 1워드가 몇 바이트 인지는 CPU에 따라 다르기 때문에 CS:APP 9장 및 본 포스팅에서는 1워드를 4바이트라고 가정합니다 🚨 C 프로그래머들은 프로그램을 실행하는 중에(runtime) 추가적인 가상 메모리가 필요할 때 동적 메모리 할당기(dynamic memory allocator)를 사용하.. 2022. 11. 3. [C] 메모리 할당 - 동적 메모리 할당 (김성엽의 기초 C언어 강좌 16장 2) 🔔 김성엽 님의 Do it! C언어 입문 동영상 강의를 보면서 정리한 내용입니다. 모든 그림과 코드 예제는 해당 강의에서 발췌한 내용입니다. 스택 메모리는 작은 크기(1Mb)와 모든 것이 컴파일타임에 정해진다는 한계점이 존재한다. 이를 보완하기 위해 동적 메모리 할당을 사용할 수 있다. 메모리의 스택세그먼트에는 지역변수에 할당되는 스택 영역 외에 힙 영역이 존재한다. 힙(Heap)은 동적 메모리 할당을 위한 영역인데 컴파일 타임이 아닌 프로그램 실행 중 언제든지 원하는 시점에 메모리 할당이 가능하고, 메모리 사용이 끝나면 언제든지 할당한 메모리를 해제할 수 있다. 또한 원하는 크기 만큼, GB 단위까지도 할당이 가능하다. malloc 함수로 동적 메모리 할당하기 malloc(memory allocatio.. 2022. 10. 28. [C] 메모리 할당 - 정적 메모리 할당 (김성엽의 기초 C언어 강좌 16장 1) 🔔 김성엽 님의 Do it! C언어 입문 동영상 강의를 보면서 정리한 내용입니다. 모든 그림과 코드 예제는 해당 강의에서 발췌한 내용입니다. 🗒️ terminology 프로그램 프로그래머가 만든 프로그램 실행 파일 e.g. .exe 파일 프로세스 CPU가 프로그램의 명령등을 실행할 수 있도록, 운영체제가 프로그램의 명령들을 읽어서 메모리에 재구성한 것. '실행 중인 프로그램' 이라고도 한다 세그먼트*의 집합으로 구성 세그먼트 64kb 이하의 메모리 그룹으로서, 여러가지 정보나 사용자가 입력한 데이터를 기억하는 메모리 공간 코드 세그먼트, 데이터 세그먼트, 스택 세그먼트 등으로 구성 (이 세가지 이외에도 다양한 세그먼트들이 존재) 메모리 할당 메모리 할당이란 내 프로그램이 운영체제로 배정받은 메모리 공간 .. 2022. 10. 28. Week05 | C 언어 시작 | 물고기는 존재하지 않는다. 정글 0주차 때 3일짜리 프로젝트를 하면서 '와 정글 진짜 빡세네' 생각했는데, 요즘 깨닫고 있다. 0주차가 제일 쉬웠다. (이 글 보고있는 우리 동기들 ㅇㅈ ?) 매 주차 발제를 할 때마다 난이도가 역대급이라고 느낀다. 5주차 발제를 할 때는 어이가 없어서 약간 헛웃음이 나올 정도였다. 어느 정도였냐면 5주차 일주일 동안 1. C언어 문법을 전체적으로 다 공부, 2. gcc, linux 공부, 3. 연결리스트 및 레드블랙트리 구현 를 마쳐야 했다. 지난 한 주 어떻게 공부했는지를 짧게 요약해보면.. ! 공부 스케쥴 - 목금토일 목요일 발제를 마치고 바로 C언어 공부를 시작했다. 구글링을 해보니 세계적으로 가장 유명한 C언어 책은 K.N.King의 C :Programming A Modern Approac.. 2022. 10. 27. 이전 1 ··· 5 6 7 8 9 10 11 ··· 16 다음 반응형