전체 글
-
클린코드자기계발 2022. 4. 26. 13:21
다음은 로버트 C.마틴의 Clean Code 책 내용을 요약한 전문입니다. 클린 코드란? 읽기 쉬운 코드가 클린코드이다. 전체적으로 고려해야 할 사항 단일 책임 원칙: 하나의 인터페이스가 하나의 역할을 수행해야 한다. → 컴포넌트를 분리할 때 디자인보다 시나리오를 중점적으로 바라보기 변수명 의도가 분명한 이름을 지으라. 검색하기 쉬운 이름을 사용하라. 기발한 이름보다는 명료한 이름을 선택하라. 한 개념에 한 단어를 사용하라. ex. fetch, retrieve, get 등 중 하나만 선택 의미있는 맥락을 추가하라 ex. state 보다는 address 함수 함수명은 동사, 동사구가 적합하다. ex. getName() 함수가 하는 일을 서술적으로 표현할 수 있는 이름을 사용하라. ex. isTestable..
-
운영체제 6강. 교착상태 1방송통신대학교 - 컴퓨터과학과/운영체제 2022. 4. 26. 01:04
교착 상태의 개념 교착상태 (deadlock) 2개 이상의 프로세스가 서로 상대방의 작업이 끝나기만을 기다리고 있는 상태 결과적으로 아무도 완료되지 못함 교착상태와 기아 상태의 차이 교착상태: 아무리 기다려도 어떻게든지 해결되지 못함 기아상태: 기다리다보면 해소될 가능성이 있음 교착 상태의 특성 교착상태의 필요조건 네 가지 조건이 동시에 만족될 경우 교착상태가 발생할 수 있음 상호배제 조건 프로세스들이 자원에 대한 배타적인 통제권을 요구 적어도 하나 이상의 자원은 공동 사용될 수 없음 즉, 필요로 하는 자원을 다른 프로세스가 점유하고 있으면 반드시 대기해야 함 점유 대기 조건 프로세스가 이미 다른 자원을 할당받아 배타적으로 점유하고 있는 상황에서 다른 프로세스가 점유하고 있는 자원이 해제되기를 기다리는 ..
-
운영체제 5강. 병행 프로세스 2방송통신대학교 - 컴퓨터과학과/운영체제 2022. 4. 24. 23:50
프로세스의 상호협력 공통작업을 수행하기 위해 서로 협동하는 경우 예. 생산자/소비자 문제, 판독기/기록기 문제 프로세스 간의 통신 병행 프로세스 사이의 통신을 위한 방법 공유 기억장치 기법 프로세스 간에 공유 변수를 이용하여 정보를 교환 고속 통신 가능 통신기능 제공의 책임: 응용 프로그래머 메시지 시스템 기법 메시지 교환방식으로 정보를 교환 send/receive 연산자 소량의 데이터 교환에 유용 통신기능 제공의 책임: 운영체제 통신 링크: 프로세스들 사이에 메시지를 주고 받기 위한 연결통로 두 방법은 상호배타적이 아님 단일 운영체제 내에서 동시에 사용 가능 5강 정리. 생산자/소비자 문제는 상호배제와 동기화가 필요한 문제로 세마포어를 이용하여 구현할 수 있다. 판독기/기록기 문제에서 판독기는 동시에 ..
-
모던 자바스크립트 딥 다이브 11장. 원시 값과 객체의 비교Modern JavaScript Deep Dive 2022. 4. 23. 18:26
원시 값 원시값은 변경 불가능한 값이다. 읽기 전용. 변수 값을 변경할 수 없다는 말과는 다르다. 변수는 재할당을 통해 값을 변경할 수 있다. 변수 값을 변경하기 위해 원시 값을 재할당하면 새로운 메모리 공간을 확보하고 재할당한 값을 저장한 후, 변수가 참조하던 메모리 공간의 주소를 변경한다. 값에 의한 전달 변수에 원시 값을 갖는 변수를 할당하면 할당받는 변수에는 할당되는 변수의 원시 값이 복사되어 전달되는 것 (이 때 다른 메모리 공간에 저장된 별개의 값이라는 것에 주목) 객체 객체는 원시값과 다른 방식으로 동작한다. 객체는 참조 타입의 값으로서 객체는 변경 가능한 값이다. -> 여러 개의 식별자가 하나의 객체를 공유할 수 있다.
-
모던 자바스크립트 딥 다이브 10장. 객체 리터럴Modern JavaScript Deep Dive 2022. 4. 22. 18:21
원시 타입의 값은 변경 불가능한 값(immutable)이지만, 참조 타입의 값은 변경가능한(mutable) 값이다. 객체는 0개 이상의 프로퍼티로 구성된 집합이며, 프로퍼티는 키와 값으로 구성된다. 자바스크립트에서 사용할 수 있는 모든 값은 프로퍼티값이 될 수 있다. 함수도 마찬가지다. 프로퍼티 값이 함수일 경우 이것을 메서드 라고 한다. 객체 리터럴에 의한 객체 생성 클래스는 템플릿 / 인스턴스는 실체 객체 리터럴은 객체를 생성하기 위한 표기법 ex. let obj = {}
-
운영체제 4강. 병행 프로세스 1방송통신대학교 - 컴퓨터과학과/운영체제 2022. 4. 21. 15:08
병행 프로세스의 개념 병행성 여러 개의 프로세스 또는 쓰레드가 동시에 실행되는 시스템의 특성 병행 프로세스 동시에 실행되는 여러 개의 프로세스 또는 쓰레드 병행 프로세스의 실행 형태 CPU의 개수에 따른 병행 프로세스의 실행 형태 하나의 CPU에서 인터리빙 형식으로 실행 여러 개의 CPU에서 병렬 처리 형식으로 실행 여러 개의 CPU가 있을 경우 메모리 구조에 따른 병행 프로세스의 실행 형태 강결합 멀티프로세서 시스템: 공유 메모리 구조 약결합 멀티프로세서 시스템: 분산 메모리 구조 병행성 문제 병행 프로세스들이 상호작용 하는 경우 발생 공유자원 점유 문제 동기화 문제 통신 문제 상황에 따른 구분 단일 프로세스 내의 병행성 우선순위 그래프 (DAG) Fork / Join 구조 병행문 프로세스 간의 병행성..
-
운영체제 3강. 스케줄링 알고리즘방송통신대학교 - 컴퓨터과학과/운영체제 2022. 4. 20. 14:02
스케줄링 성능 평가 기준 평균 대기시간 각 프로세스가 수행이 완료될 때까지 준비 큐에서 기다리는 시간의 합의 평균 값 평균 반환시간 각 프로세스가 생성된 시점부터 수행이 완료된 시점까지의 소요시간의 평균값 다양한 스케줄링 알고리즘 FCFS 스케줄링 First-Come First-Served 비선점 스케줄링 알고리즘 준비 큐에 도착한 순서에 따라 디스패치 장점 가장 간단한 스케줄링 기법 단점 짧은 프로세스가 긴 프로세스를 기다리거나, 중요한 프로세스가 나중에 수행될 수 있음 프로세스들의 도착 순서에 따라 평균 반환시간이 크게 변함 SJF 스케줄링 Shortest Job First 비선점 스케줄링 알고리즘 준비 큐에서 기다리는 프로레스 중 실행시간이 가장 짧다고 예상된 것을 먼저 디스패치 장점 일괄처리 환경..