[🧑🏻💻혼자 공부하는 컴퓨터 구조+운영체제] 9장(운영체제란?) 요약 정리
2023. 3. 30. 01:06
개발자: 지식 정리/CS 지식: 컴퓨터 구조와 운영체제
운영체제 시작하기 운영체제를 알아야 하는 이유 운영체제란 모든 프로그램은 하드웨어를 필요로 한다. ex1. 1+3 을 계산하는 프로그램은 CPU가 필요하다. ex2. 이미지를 하드 디스크에 저장하는 프로그램은 하드 디스크를 필요로 한다. 프로그램 실행에 마땅히 필요한 요소를 가리켜, 시스템 자원 혹은 자원 이라고 한다. 컴퓨터 구성부품(CPU, 메모리, 보조기억장치, 입출력장치 등)은 모두 자원이다. 당연하게도, 모든 프로그램은 실행되기 위해 자원이 필요하다. 실행할 프로그램이 필요로 하는 자원을 할당하고, 프로그램이 올바르게 실행되도록 돕는 특별한 프로그램이 바로 운영체제이다. 말했듯, 운영체제도 인터넷 브라우저, 게임과 같은 프로그램이다. 따라서 실행되기 위해선 똑같이 메모리에 적재되어야 한다. 다만..
(링크) 심플 팩토리 패턴 vs 팩토리 메서드 패턴 vs 추상 팩토리 메서드 패턴
2023. 2. 3. 00:21
개발자: 지식 정리/아키텍처&설계
인터넷으로 열심히 찾아보고 둘이 같은거 아닌가..?? 싶었는데 차이에 대해 굉장히 잘 정리해두신 글을 찾았다. 나중에 까먹을까봐 저장해둔다. 심플 팩토리 가장 단순한 형태의 Factory 패턴 https://bcp0109.tistory.com/366 Factory 패턴 (1/3) - Simple Factory 1. Overview Factory 패턴은 객체 생성 역할을 별도의 클래스 (Factory) 에게 위임하는 것이 가장 궁극적인 목표입니다. 디자인 패턴 중 Facotry 와 관련된 패턴은 크게 두 가지가 있습니다. 팩토리 메서드 bcp0109.tistory.com 팩토리 메서드 패턴 https://bcp0109.tistory.com/367 Factory 패턴 (2/3) - Factory Method..
(링크) 덕 타이핑이란?
2023. 2. 3. 00:09
개발자: 지식 정리/아키텍처&설계
덕 타이핑의 개념이 와닿지 않아 굉장히 헷갈리던 중 발견한 글. 개념을 굉장히 잘 설명해주셔 저장용으로 가져왔다. https://velog.io/@thms200/Typescript-Duck-Typing-%EB%8D%95%ED%83%80%EC%9D%B4%ED%95%91
[🧑🏻💻혼자 공부하는 컴퓨터 구조+운영체제] 6~8장(메모리, 보조기억장치, 입출력장치) 요약 정리
2023. 1. 24. 12:03
개발자: 지식 정리/CS 지식: 컴퓨터 구조와 운영체제
메모리와 캐시 메모리 RAM의 특징과 종류 RAM의 특징 RAM은 전원을 끄면 저장된 내용이 모두 사라지는 휘발설 저장 장치. '실행할 대상'을 저장. 보조기억장치는 전원이 꺼져도 저장된 내용이 유지되는 비휘발성 저장 장치. '보관할 대상'을 저장. RAM의 용량과 성능 RAM 용량이 크면 많은 프로그램들을 동시에 빠르게 실행하는 데 유리하다. 다만 많은 프로그램을 동시에 실행할 일이 없다면, 성능에는 큰 차이가 없을 것이다. RAM 의 종류 DRAM은 시간이 지나면 저장된 데이터가 점차 사라지는 RAM이고, SRAM은 시간이 지나도 저장된 데이터가 사라지지 않은 RAM이다. SRAM은 빠르다는 장점도 있지만, 집적도가 낮고 소비전력도 크며 가격도 더 비싸다. DRAM은 소비전력이 비교적 낮고, 저렴하고..
[🧑🏻💻혼자 공부하는 컴퓨터 구조+운영체제] 4~5장(CPU 작동 원리) 요약 정리
2023. 1. 24. 06:01
개발자: 지식 정리/CS 지식: 컴퓨터 구조와 운영체제
CPU의 작동 원리 CPU는 메모리에 저장된 명령어를 읽어들이고 해석하고 실행하는 장치이다. CPU 내부에는 계산을 담당하는 ALU, 명령어를 읽어들이거 해석하는 제어장치, 작은 임시 저장 장치인 레지스터가 있다. 이번 챕터의 내용은 책에서 정리한 핵심 포인트 위주로 간단하게 정리했다. ALU와 제어장치 ALU는 레지스터로부터 피연산자를 받아들이고, 제어장치로부터 제어 신호를 받아들인다. ALU는 연산 결과와 플래그를 내보낸다. 연산 결과에 대한 추가적인 상태 정보를 플래그라고 한다. 제어장치(Control Unit) 는 클럭, 현재 수행할 명령어, 플래그, 제어 신호를 받아들인다.클럭의 주기에 맞춰 한 레지스터에서 다른 레지스터로 이동되거나 ALU에서 연산이 수행되거나, CPU에서 메모리에 저장된 명령..
[🧑🏻💻혼자 공부하는 컴퓨터 구조+운영체제] 1~3장(컴퓨터 구조, 데이터, 명령어) 요약 정리
2023. 1. 23. 22:20
개발자: 지식 정리/CS 지식: 컴퓨터 구조와 운영체제
컴퓨터 구조 시작하기 컴퓨터 구조를 알아야 하는 이유 컴퓨터 구조는 실력 있는 개발자가 되려면 반드시 알아야 할 기본 지식입니다. 내가 이 책을 관심있게 바라보고 읽기 시작한 것은 이 생각에서 비롯되었다. 작년부터 개발자 업무를 시작하며 컴퓨터에 대해 잘 알아야하는 이유를 몸으로 조금씩 느끼고 있었다. 다만 면접을 통과하기 위해 벼락치기로 외운 지식만으로도 충분하지 않을까란 핑계를 대며, 다시 복습할 엄두를 못내고 있었다. 해당 내용 공부는 정말 학교 공부하는 느낌이 들기 떄문이다. 하지만 이 책은 정말 읽기 쉽게 쓰여져 있고, 첫 장부터 왜 개발자라면 컴퓨터 구조를 알아야 하는지 그 근거가 분명하게 쓰여져 있어 너무 좋다. 문제 해결 컴퓨터 구조 구성 요소와 작동 원리를 몰라도, 프로그래밍 언어의 문법..
쿠버네티스 - 시크릿
2023. 1. 15. 19:05
개발자: 지식 정리/쿠버네티스
시크릿 소개 컨피그맵과 매우 비슷하며, 컨피그맵과 같은 방식으로 사용 가능. 다음의 상황에서 사용 환경변수로 시크릿 항목을 컨테이너에 전달 시크릿 항목을 볼륨 파일로 노출 시크릿 유지 방법 쿠버네티스는 시크릿에 접근해야 하는 파드가 실행되고 있는 노드에만 개별 시크릿을 배포해 시크릿을 안전하게 유지 노드 자체적으로 시크릿을 항상 메모리에만 저장. 물리 저장소에 기록 X 컨피그맵과 시크릿 사용 민감하지 않고, 일반 설정 데이터는 컨피그맵 사용 본질적으로 민감한 데이터는 시크릿을 사용해 키 아래에 보관하는 것이 필요. 설정 파일이 민감한 데이터와 그렇지 않은 데이터를 모두가지고 있다면 해당 파일을 시크릿 안에 저장해야 한다. 기본 토큰 시크릿 모든 파드는 secret 볼륨이 자동으로 연결돼어 있다. 모든 실..
쿠버네티스 - 컨피그맵
2023. 1. 15. 19:05
개발자: 지식 정리/쿠버네티스
컨피그맵 배경 개별 Pod-definiton file에서 env 키로 환경변수를 관리할 수 있다. kind: Pod spec: containers: - image: luksa/fortune:env env: - name: INTERVAL value: "30" name: html-generator ... 하지만 Pod-definiton 파일이 많아질 경우, 환경변수 데이터 관리가 복잡해질 수 있다. 컨피그맵은 이를 중앙에서 손쉽게 관리할 수 있도록 해준다. Pod를 생성할 때, config map을 통해 환경변수를 주입해줄 수 있다. 컨피그맵 소개 apiVersion: v1 kind: Pod metadata: name: fortune-env-from-configmap spec: containers: - im..
쿠버네티스 클러스터 구성 요소 및 동작 이해 (4) - Kubelet
2023. 1. 15. 19:04
개발자: 지식 정리/쿠버네티스
Kubelet 작업 Kubelet은 워커 노드에서 실행하는 모든 것을 담당한다. Kubelet은 실행 중인 노드를 노드 리소스로 만들어서 API 서버에 등록한다. 실행 중인 노드를 모니터링하고 상태를 API 서버에 보고한다. API 서버를 지속적으로 모니터링해서 해당 노드에 파드가 스케줄링되면, 파드의 컨테이너를 실행한다. 설정된 컨테이너 런타임(도커, rkt 등) 에 지정된 컨테이너 이미지로 컨테이너를 실행함으로써 이 작업을 수행한다. Kubelet은 실행 중인 컨테이너를 계속 모니터링 하면서 상태, 이벤트, 리소스 사용량을 API 서버에 보고한다. 컨테이너가 제대로 실행되지 못하면, 컨테이너를 다시 시작한다. 컨테이너가 제대로 실행되지 못하면, 컨테이너를 다시 시작한다. API 서버에서 파드가 삭제되..
쿠버네티스 클러스터 구성 요소 및 동작 이해 (3) - 스케줄러, 컨트롤러
2023. 1. 15. 19:04
개발자: 지식 정리/쿠버네티스
스케줄러 스케줄러는 API 서버의 감시 메커니즘을 통해 새로 생성될 파드를 기다리고 있다가, 할당된 노드가 없는 새로운 Pod를 노드에 할당하는 일만 한다. 스케줄러는 선택된 노드에 파드를 실행하도록 지시하지 않는다. 단지 스케줄러는 API 서버로 파드 정의를 갱신한다.(어떤 노드에 할당될지) -> API 서버는 (감시 메커니즘에 의해) kubelet에 파드가 스케줄링된 것을 통보한다. -> 대상 노드의 Kubelet은 파드가 해당 노드에 스케줄링된 것을 확인하자마자 파드의 컨테이너를 생성하고 실행한다. 컨트롤러 API 서버는 리소스를 etcd에 저장하고 변경 사항을 클라이언트에게 통보하는 것 외에 다른 일을 하지 않는다. 스케줄러는 파드를 노드에 할당만 한다. 그러므로 API 서버로 배포된 리소스에 지..