CS

    디자인 패턴/싱글턴 패턴 🆘

    (최근에 이벤트 루프를 디자인 패턴으로 잘못 설명하여 다음엔 그러지 않기 위하여 이 포스트를 포스팅 합니다.) 디자인 패턴이란 객체 지향 프로그래밍 설계를 할 때 사용되는 패턴으로 자주 발생하는 문제를 피하기 위해 사용됩니다. 제가 이해한 흐름은 객체 지향 프로그래밍 설계를 할때 반복하여 발생하는 문제들에 직면하는 상황이 생겼습니다. 이러한 문제를 해결하는 방식들은 고착화 되었을 것입니다. 예를 들면 '메모리를 save하기 위해 전역 범위에 객체 인스턴스를 생성해두고 의존성이 주입되면 그때 이미 생성된 인스턴스를 참조할 수 있도록 하는 방법'이 있을 것입니다. 자주 발생하는 문제를 해결하기 위해 위와 같이 매번 말하는 방법도 있을 수 있고 이러한 패턴에 이름을 붙여 좀 더 간단하게 소통할 수 도 있을 것..

    멀티 프로세스, 싱글 스레드, 멀티 스레드 🔥

    멀티 프로세스, 싱글 스레드, 멀티 스레드 🔥

    멀티 프로세스 2개 이상의 프로세스가 동시에 실행 되는 것, 여기서 동시에 실행되는 것은 1개의 cpu, 여러개의 cpu 일때가 있을수 있습니다. 1개의 cpu일때는 여러 프로세스를 짧은 시간동안 할당받아 번갈아 가면서 수행하는 시분할 시스템으로 실행이 되고 복수개 일때는 각각의 cpu가 각각의 process를 수행함으로써 process가 동시에 수행됩니다. 1개의 cpu는 한번에 하나의 연산만 수행할 수 있습니다. 그런데 우리가 사용하는 컴퓨터에서는 음악도 들을 수 있고 카톡도 보낼수 있고 웹 서핑도 할 수 있습니다. 하나의 cpu라고 가정했을때 이게 가능한 이유는 cpu가 수 ms 동안 프로세스를 번갈아 수행함으로써 우리는 프로세스 들이 동시에 실행되고 있다고 느끼게 됩니다. 프로세스를 번갈아 수행하..

    프로세스, 스레드 🔥

    프로세스, 스레드 🔥

    프로세스 프로세스는 실행중인 프로그램을 의미합니다. 프로그램이 memory에 적재되어 cpu를 할당받아 실행되는 것을 프로세스라 합니다 memory는 cpu가 직접 접근할 수 있는 컴퓨터 내부의 기억장치 입니다. cpu는 하드디스크에 직접 접근할 수 없습니다. 하드 디스크에 저장되어 있는 프로그램은 메모리에 적재되어 cpu를 할당받아야 실행이 될 수 있습니다. 폰 노이만 구조는 실행되는 모든 프로그램은 메모리에 적재되어야 한다는 구조, 폰 노이만 구조 전에는 프로세스를 변경하려면 외부 전선을 변경해 주었어야 하는데 등장 후에는 메모리상의 프로그램만 변경해주면 된다(추후 수정 예정) 프로세스는 코드, 데이터, 힙, 스택으로 구성되어 있습니다. 코드에는 실제 코드 데이터 영역에는 전역변수와 할당이 되지 않은..

    CQS 원칙 - Command Query Separation

    최근에 알게된 CQS 원칙에 대하여 정리해놓으려 합니다. 영어로는 Command Query Separation입니다. 한글로는 명령과 조회는 분리되어야 한다는 뜻입니다. 저는 Command(set)과 Query(get)은 분리되어야 한다는 것으로 이해하였습니다. Command(set)을 할때 요청에 대한 결과를 return하지 않는 것이 대표적인 적용 예시 일것 같습니다. 아래는 개선 전 class People { constructor(name) { this.name = name; } setName(newName){ this.name = newName; return this.name } } const test = new People('test'); console.log(test.setName("123")..

    컴퓨터는 어떻게 켜질까?[컴퓨터 부팅 과정]

    컴퓨터는 어떻게 켜질까?[컴퓨터 부팅 과정]

    1. 전원이 들어오면 cpu는 ROM에 있는 BIOS 프로그램을 메모리에 올려 실행시킵니다. 2. BIOS(Basic Input Output System)은 POST(Power On Self Test)를 실행하여 필요 하드웨어에 이상이 없는지 체크합니다. 3. BIOS는 저장매체의 첫번째 섹터에 있는 MBR에 접근하여 부트 로더를 메모리에서 실행시킵니다. 4. 메모리에서는 부트 섹터에 접근하고 운영체제 이미지를 메모리에 올려 운영체제를 실행시킵니다. 1. 전원이 들어오면 cpu는 ROM에 있는 BIOS 프로그램을 메모리에 올려 실행시킵니다. 컴퓨터가 켜지면 power supply에 전원이 들어오고 메모리(ROM) 0번지 주소의 데이터를 읽습니다. ROM-BIOS에서 BIOS프로그램이 메모리로 올라갑니다...