본문 바로가기

Code44

Dockerfile 작성 시 캐싱문제 방지하기 Dockerfile를 통해서 도커 이미지를 빌드할 때 패키지 관리 이슈가 생길 수 있다. 알아보니 Dockerfile의 레이어(Layer)와 캐싱 문제를 확인할 수 있었다. 우선, 이미지 레이어 캐싱을 통해 얻을 수 있는 장점은 재사용에 의한 빌드 시간 단축이다. Dockerfile에 정의된 명령문을 순서대로 실행하면서 이미지가 빌드될 때 레이어가 만들어지는데, 만약 특정 줄에 해당하는 명령어와 이전 명령어들이 같다면 동일한 레이어로 판단하기 때문에 캐싱되어 있는 부분을 가져온다. 이미 생성된 레이어가 캐시되어 다시 사용되기 때문에 빌드 시간을 줄일 수 있는 것이다. 공식 홈페이지 문서의 Dockerfile 작성 안내에서는 아래처럼 말하고 있다. A Docker image consists of read-.. 2021. 4. 20.
진법 변환과 컴퓨터의 사칙연산 전에 컴퓨터의 2진수 사용과 아스키코드에 대해 포스팅했다. 이번에는 컴퓨터의 진법 변환에 대해 이야기해보려 한다. 8bit = 전선 8가닥 = 1byte 앞서 포스팅했듯 컴퓨터는 전기의 OFF/ON 상태를 기반으로 2진법을 사용한다. 0과 1의 두 가지 상태를 나타내는 단위를 bit라고 한다. 0과 1 (1bit)의 단순함을 모아 정교하게 만들어 전자식 컴퓨터의 원리를 갖는다. 이때 1bit의 다른 말은 전선 한 가닥이다. 전선 가닥을 부르는 용어가 bit라는 것이다. 예를 들어 10010110(2)는 8bit로, 전선 8가닥을 의미한다. 8개의 bit를 묶은 byte 단위는 컴퓨터가 데이터를 저장하는 최소 단위다. 1byte는 영문 한글자를 담을 수 있는 기억공간의 크기다. 진법 변환 인간과 기계의 숫.. 2021. 1. 27.
메모리(RAM) 구조 작성한 프로그램이 컴퓨터에서 어떻게 동작하는지 이해하려면 메모리 구조에 대해 이해할 필요가 있다. 프로그램이 실행되는 과정을 메모리 구조와 함께 정리한다. RAM과 ROM 본문에서 이야기하는 메모리는 RAM을 의미한다. RAM과 ROM의 차이를 간단히 정리하자면 다음과 같다. RAM은 자유롭게 읽고 쓸 수 있는 기억장치로, RWM(Read Write Memory)라고 부르기도 한다. 또한 RAM에는 현재 사용 중인 프로그램이나 데이터가 저장되어 있다. 시스템의 전원이 꺼지면 기억된 내용이 모두 사라지는 휘발성 메모리의 특징을 가진다. 일반적으로 주기억장치 또는 메모리라고 불린다. ROM은 기억된 내용을 읽을 수만 있는 기억장치로서 일반적으로 쓰기가 불가능하다. 또한 시스템의 전원이 꺼져도 기억된 내용이 .. 2020. 12. 28.
c언어 정적변수, 지역변수, 전역변수 비교 (static, local, global) 함수 내에서 사용하는 변수로서 지역변수, 전역변수, 정적변수의 차이를 알아본다. [전체 요약] ☑️ 지역변수(local variable, 자동변수)는 중괄호 내부, 함수의 매개변수(Parameter)에서 사용되는 변수를 의미한다. 지역변수의 지역은 함수의 내부, 중괄호 내부를 의미한다. 따라서 함수 안에서만 접근 가능하며, 함수를 벗어나면 사라진다 (= 변수의 메모리 공간이 소멸된다). 지역변수는 초기화하지 않으면 컴파일 에러가 나거나 쓰레기값이 저장된다. 더보기 지역변수(local variable)는 자동변수(auto variable)와 같다. 자동변수는 흔히 블록(중괄호) 안에서 사용하는 변수로서, 변수가 생성된 뒤에 자동으로 사라진다고 하여 자동변수라고 부른다. 매우 흔히 사용하기 때문에 auto .. 2020. 12. 25.
파일 디스크립터(File Descriptor)란? 파일 디스크립터 (FD, File Descriptor)란, Unix OS에서 네트워크 소켓과 같은 파일이나 기타 입력/출력 리소스에 액세스하는 데 사용되는 추상표현이다. 즉, 시스템으로 부터 할당받은 파일이나 소켓을 대표하는 정수다. 파일 디스크립터는 음이 아닌 정수(Non-negative Integer)로, 일반적으로 형식 int로 C 프로그래밍 언어로 표현된다(음수 값은 "무값" 또는 오류 조건을 나타내기 위해 예약된다). (Window에서는 file handle이라고 부르고 값은 랜덤하게 할당된다.) FD의 0번에서 2번까지는 고정되어 있다. (unistd.h 헤더파일에 명시) 각 Unix 프로세스는 세 가지 standard streams에 해당하는 고정된 standard POSIX file des.. 2020. 10. 13.