일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- kubernetes
- es6
- docker
- react
- HTML
- 타입스크립트
- 이더리움
- 컴퓨터공학
- 프론트엔드
- JavaScript
- 블록체인
- 솔리디티
- 가상화
- 클라우드
- 자바스크립트
- 알고리즘
- next.js
- k8s
- 백엔드
- AWS
- CSS
- BFS
- 리액트
- TypeScript
- 이슈
- VUE
- 웹
- 파이썬
- 백준
- 쿠버네티스
- Today
- Total
목록📖 🖥 컴퓨터공학 (10)
즐겁게, 코드
오늘은 메모리계의 날쎈돌이, 캐시 메모리의 역할과 원리를 간단히 요약해보도록 하겠습니다. ✅ 읽기 전에 알려드려요! 이 글에서는 L1 ~ L3 캐시 구조 등 하드웨어적인 동작 원리에 대해서는 다루지 않으며, 캐시의 지역성만을 다룰 예정입니다. 🙂 캐시 메모리란? 먼저 캐시 메모리 란 처리속도가 다른 두 장치간의 속도차에 따른 병목 현상을 줄이기 위한 범용 메모리입니다. 만일 캐시가 존재하지 않는다면 RAM에서 데이터를 인출해오는 속도가 CPU가 태스크를 처리하는 속도보다 느리기 때문에 불필요하게 시간을 낭비해야 하지만, 실제로는 중간에 위치한 캐시 메모리가 둘 사이에서 데이터를 고속으로 전달해 줌으로써 속도 차이로 인한 병목을 어느정도 해결해 줄 수 있습니다. 그러나 캐시 메모리는 처리속도가 굉장히 빠른..
이번 글에서는 SOLID의 L과 I에 해당하는 리스코프 치환 원칙과 인터페이스 분리 원칙을 다뤄보도록 하겠습니다. 리스코프 치환 원칙 (Liskov Substitution Principle) 위키피디아에서는 리스코프 치환 원칙을 다음과 같이 정의하고 있습니다. 컴퓨터 프로그램에서 자료형 S가 자료형 T의 하위형이라면 필요한 프로그램의 속성의 변경 없이 자료형 T의 객체를 자료형 S의 객체로 교체(치환)할 수 있어야 한다는 원칙이다. 다만 이렇게 이해하면 어려우니, 자식 클래스와 부모 클래스 간의 행위에는 일관성이 있어야 한다는 의미로 이해해도 좋습니다. 예를 들어, 다음과 같은 직사각형 클래스가 있는 상태입니다. class Rect { _width: number = 0; _height: number = ..
SOLID 원칙은 작은 모듈을 만들거나 큰 아키텍처를 기획할 때 모두 유용하게 사용되는 원칙입니다. 이 원칙은 객체지향 프로그래밍에만 적용할 수 있는 이론이 아니라, 소프트웨어를 설계할 때 이 원칙을 지켜가며 설계하면 소프트웨어의 유연성과 재사용성을 높일 수 있을 것이라 기대됩니다. SOLID 란? S : Single Responsive Principle (단일 책임 원칙) O : Open Closed Principle (개방 - 폐쇄 원칙) L : Liskov Substitution Principle (리스코프 치환 원칙) I : Interface Segregation Principle (인터페이스 분리 원칙) D : Dependency Inversion Principle (의존성 역전 원칙) 단일 책..
이전 글에서 Geth라는 CLI 기반 소프트웨어를 통해 프라이빗 블록체인을 배포해 보았습니다. Geth를 활용한 프라이빗 블록체인 구축 & 마이닝 실습 Geth(Go + Etherium)는 이더리움 기반 블록체인 네트워크를 구성하기 위한 클라이언트 소프트웨어인데요, 오늘은 Geth를 활용해 이더리움 기반 블록체인을 구성하고 블록을 직접 마이닝해 이더를 획 merrily-code.tistory.com 그런데 사실 복잡한 세팅과 명령어로 인해 Geth를 활용하는 방법이 쉽지는 않습니다.. 😂 오늘은 Ganache(가나슈) 라는 툴을 활용해 프라이빗 블록체인을 구축한 다음, 보다 쉽게 스마트 컨트랙트를 배포해보겠습니다! Ganache 사용법 가나슈는 가나슈 공식 홈페이지에서 간단하게 설치할 수 있습니다. Ga..
이 글은 한국기술대학교 컴퓨터공학부의 OS 공개강의를 시청한 후 정리한 내용입니다. 목차 스케줄링 스케줄링의 목적 스케줄링 기준 및 단계 스케줄링 정책 1. 스케줄링 다중 프로그래밍에서는 시스템에 여러 프로세스가 존재하게 됩니다. 따라서 여러 프로세스를 효율적으로 관리하기 위해서는 자원을 현명하게 배분해야겠죠? 오늘 다룰 스케줄링이 바로 자원을 효율적으로 배분하기 위한 방법을 의미합니다. 스케줄링(자원 관리)의 종류 시간 분할 관리 하나의 자원을 여러 스레드들이 번갈아가며 사용 Ex. 프로세스 & 프로세스 스케줄링 공간 분할 관리 하나의 자원을 분할하여 동시에 사용 Ex. 메모리 & 메모리 스케줄링 2. 스케줄링의 목적 당연히 스케줄링의 목적은 시스템의 성능을 향상시키는 것입니다. 시스템의 성능을 판별하..
Geth(Go + Etherium)는 이더리움 기반 블록체인 네트워크를 구성하기 위한 클라이언트 소프트웨어인데요, 오늘은 Geth를 활용해 이더리움 기반 블록체인을 구성하고 블록을 직접 마이닝해 이더를 획득하는 과정을 소개해보려 합니다. Geth는 geth.ethereum.org/downloads/ 에서 설치할 수 있습니다. (※ MacOS는 이상하게도 Geth 설치 파일이 아닌 실행 스크립트만을 제공하기 때문에, 이곳에서 소개하는 터미널을 통한 설치 방법을 이용하시길 바랍니다.) 1. Private Network 구축하기 먼저 실습을 진행할 폴더를 하나 만들어준 후 아래의 json 파일을 genesis.json 이라는 이름으로 저장해줍니다. (※ chainId는 본인의 ID이므로 원하는 대로 수정해도 ..
이 글은 한국기술대학교 컴퓨터공학부의 OS 공개강의를 시청한 후 정리한 내용입니다. 목차 스레드의 개념 스레드의 구현 사용자 수준 스레드 (다대일 모델) 커널 수준 스레드 (다대다 모델) 혼합 스레드 1. 스레드의 개념 프로세스는 커널 위에서 실행되고 있는 작업인데요, 프로세스가 자원을 어떻게 배분할지 제어하는 친구가 바로 스레드입니다. 비유를 들어보자면 한 연구를 수행한다고 할 때, 프로세스는 연구실이 되고 스레드가 연구원이라고 생각하면 될 듯 합니다. (연구비가 연구실마다 배정되어 연구원들이 이를 나눠 사용하듯, 프로세스의 스레드들은 공동의 자원을 소모합니다.) 스레드는 보다 작은 프로세스라는 의미로 Light Weight Process(LWP) 라고 부르기도 하며, 프로세스 활용의 기본 단위가 됩니..