분류 전체보기
-
모던 자바스크립트 딥 다이브 12장. 함수Modern JavaScript Deep Dive 2022. 4. 30. 21:08
함수란? 함수는 일련의 과정을 문으로 구현하고 코드 블록으로 감싸서 하나의 실행 단위로 정의하는 것 함수는 코드의 재사용 측면에서 유용하다. -> 유지보수의 편의성을 높인다. -> 코드의 신뢰성을 높인다. 함수를 정의하는 방식 함수 선언문 함수 표현식 Function 생성자 함수 화살표 함수 자바스크립트 함수는 일급 객체다. 일급 객체라는 것은 함수를 값처럼 자유롭게 사용할 수 있다는 의미다. 함수 생성 시점과 함수 호이스팅 함수 선언문이 코드의 선두로 끌어 올려진 것처럼 동작하는 자바스크립트 고유의 특징을 함수 호이스팅이라고 한다. vs 함수 표현식으로 함수를 정의하면 함수 호이스팅이 발생하는 것이 아니라 변수 호이스팅이 발생한다. 화살표 함수 화살표 함수는 생성자 함수로 사용할 수 없으며, 기존 함수..
-
운영체제 8강. 메모리 관리방송통신대학교 - 컴퓨터과학과/운영체제 2022. 4. 28. 17:02
프로세스와 메모리 프로세스의 동작 프로그램 카운터를 참조하여 메모리로부터 수행될 명령을 읽어 CPU의 해당 명령을 수행 기억장치 계층 구조 적절한 비용으로 높은 성능을 낼 수 있도록 계층적으로 구성 CPU로 올라갈 수록 접근속도가 빠르고, 비트당 기억장치 비용이 높다. 보조기억장치로 내려갈 수록 용량이 커진다. CPU (레지스터) 캐시 기억장치 메모리 보조기억장치 메모리 관리 언제 새로운 프로세스를 메모리에 둘 것인가? 메모리 배치 실행될 프로세스를 메모리 내의 어느 곳에 둘 것인가? 메모리 교체 메모리가 꽉 찬 상태에서 새로운 프로세스를 적재해야 한다면 어떤 프로세스를 제거할 것인가? 그 외 메모리를 고정 분할할 것인가 동적 분할할 것인가? 프로세스의 적재 영역이 고정적인가 유동적인가? 단일 프로그래밍..
-
클린코드자기계발 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 = {}