optional
-
혼자 공부하는 컴퓨터구조와운영체제
09. 운영체제 시작하기
09 - 1 운영체제를 알아야 하는 이유 운영체제가 무엇이며, 우리는 왜 운영체제를 알아야 하는지 알아봅시다! 우리가 일상에서 사용하고 있는 운영체제의 종류. 운영체제란? 프로그램을 실행하기 위해 필요한 자원을 할당하고, 프로그램을 올바르게 실행하도록 돕는 특별한 프로그램. 커널 이외의 영역은 사용자 영역이라 한다. 운영체제 또한 프로그램이기 때문에 메모리 내에 존재하나, 운영체제는 특별한 프로그램이기 때문에 메모리 내 커널 영역이라는 곳에 따로 적재되어 있습니다. 운영체제는 커널 영역에 적재되어 사용자 영역에 적재되어 있는 프로그램들에 자원을 할당하고 관리합니다. 또한, 메모리 자원 뿐만 아니라 CPU 자원도 운영체제가 관리합니다. 즉! 운영체제는 자원을 효율적으로 관리하고, 프로그램들이 지켜야 할 규..
-
혼자 공부하는 컴퓨터구조와운영체제
05. CPU 성능 향상 기법
05 - 1. 빠른 CPU를 위한 설계 기법 같이 생각해 봅시다! 2021년 12월 부트캠프 마지막 실전 프로젝트를 하는 과정 속에서 자바스크립트의 싱글스레드와 AWS EC2 1코어 1쓰레드 컴퓨터의 연관성에 대해 궁금증을 가지게 됩니다. 여러 개의 코어를 가진 멀티 코어, 멀티 쓰레드 고클럭 컴퓨터라도 어차피 자바스크립트는 싱글스레드로 프로그램을 수행하는 데 성능과 연관성이 있을까 ? 일단 클럭, 코어, 쓰레드부터 공부해 봅시다! 피시방을 가보면 이런 팜플릿을 볼 수(띄어쓰고 싶다.)밖에 없다. 여기서 다른 분들은 CPU 부분이 어디고 아래 설명은 무엇을 의미하는지 아시나요 ? 클럭 컴퓨터의 머리 역할을 하는 CPU의 성능과 실행시킨 프로그램의 속도에는 중요한 관계가 있다. 일반적으로 클럭의 속도가 높..
-
혼자 공부하는 컴퓨터구조와운영체제
01. 컴퓨터 구조
01-1 컴퓨터 구조를 알아야 하는 이유 개발자로서 우리가 컴퓨터 구조를 공부해야 하는 이유 2가지 문제 해결 같은 코드라고 하더라도 실행하는 컴퓨터에 따라 정상적으로 코드가 실행되지 않을 수 있다. 단순히 코드만 작성하고 컴퓨터를 이해하고 있지 못한 사람의 경우, 결과만 보여주는 '미지의 대상'이다. 컴퓨터 구조를 이해하고 있다면 위와 같은 현상에서 문제 해결의 실마리를 찾을 수 있다. 성능, 용량, 비용 서비스를 위한 컴퓨터를 구매할 경우, 선택의 기준을 세울 수 있다. 비용을 줄이기 위해 성능이 부족한 컴퓨터를 구입하는 경우, 처리 속도가 너무 늦고, 성능을 위해, 오버스펙의 컴퓨터를 구매하는 경우, 불필요한 추가 예산이 필요할 수 있다. 즉, 컴퓨터 구조를 이해하고 있다면 성능/용량/비용을 고려하..
-
자바스크립트
자바스크립트 함수 (2)
함수는 함수를 가리키는 식별자와 한쌍의 소괄호인 함수 호출 연사자로 호출, 함수는 0개 이상의 인수를 가진다. 자바스크립트 함수는 매개변수와 인수의 개수가 일치하는지 확인하지 않는다. 또한, 자바스크립트는 동적 타입 언어이다. 이로인해 매개변수와 인수의 개수의 차이가 생겨 예상하지 못한 값을 반환하거나, 함수 내부에서 예상한 매개변수의 타입이 아닌 다른 타입의 값이 할당되어 오류가 생기곤 한다. 이상적인 함수는 한 가지 일만 해야 하며 가급적 작게 만들어야 한다. (매개변수는 최대 3개 이상을 넘지 않는 것을 권장) 함수는 return 키워드를 사용해 자바스크립트에서 사용 가능한 모든 값을 반환할 수 있다. (함수 호출은 표현식이다.) 함수 호출 표현식은 return 키워드가 반환한 표현식의 경가 결과,..
-
자바스크립트
자바스크립트 함수 (1)
프로그래밍에서 함수란 일련의 과정을 문으로 구현하고 코드 블록으로 감싸서 하나의 실행 단위로 정의한 것이다. 함수는 함수 정의를 통해 생성한다. 생성한 함수를 실행하기 위해서는 인수를 매개변수를 통해 함수에 전달해야 하며 이를 함수 호출이라고 한다. 함수를 사용하는 이유는 첫째, 같은 코드를 함수로 정의하면 여러번 사용할 수 있다는 코드의 재사용성. 둘째, 수정이 필요할 경우 하나 함수만 수정하면 되기 때문에 유지보수의 편의성과 실수하게 될 경우의 수를 줄여 코드의 신뢰성을 높여준다. 셋째, 함수의 적절한 이름을 붙여 내부 코드를 이해하지 않고도 함수의 역항을 파악하게 하며, 이는 코드의 가독성을 향상시킨다. 함수 리터럴 함수 리터럴은 function 키워드, 함수이름, 매개변수 목록, 함수 몸체로 구성..
-
자바스크립트
원시 값과 객체의 비교
자바스크립트의 7가지 데이터 타입은 원시 타입과 객체 타입으로 나누어진다. 원시 타입 : 변경 불가능한 값. 메모리에 실제 값 저장 객체 타입 : 변경 가능한 값. 메모리에 참조 값 저장 변수에 원시 값을 할당하고 다시 변수 값을 변경하기 위해 원시 값을 재할당하면 새로운 메모리 공간을 확보하고 재할당한 값을 저장한 후 , 변수가 참조하던 메모리 공간의 주소를 변경한다. 이러한 특성을 불변성이라 한다. 불변성을 갖는 원시 값을 할당한 변수는 재할당 이외에 변수 값을 변경할 수 있는 방법이 없다. 문자열은 유사 배열 객체이면서 이터러블이므로 인덱스를 통해 각각의 문자에 접근할 수 있으나, 문자열 또한 원시 값이기 때문에 재할당 말고는 값을 변경할 수 없다. 변수에 값으로 변수를 할당할 경우 변수에 저장된 ..
-
자바스크립트
논리 연산자를 사용한 단축 평가
논리곱(&&) 연산자는 두 개의 피연사자가 모두 true 일 때만 true를 반환하며 좌항에서 우항으로 평가를 진행한다. 'cat' && 'dog' // -> 'dog' 좌항 'cat'은 truthy 값이므로 true 로 판단되고 아직까지는 좌항의 값이 true이기 때문에 우항을 값을 평가해야 값을 반환할 수 있다. 우항 'dog' 또한 truthy 값이므로 true로 판단되고 논리 연산의 결과를 결정하는 두 번째 피연산자. 즉 문자열 'dog'를 반환한다. 'cat' || 'dog' // -> 'cat' 논리합(||) 연산자는 두개의 피연산자 중 하나만 true여도 true를 반환하며, 논리곱과 마찬가지로 좌항에서 우항으로 평가를 진행한다. 이때 'cat'은 truthy 값이므로 true로 판단되고 이..
-
자바스크립트
동적 타입 언어와 변수
자바스크립트는 동적 타입의 언어이다. 변수에 어떠 데이트 타입의 값이라도 자유롭게 할당 가능하다. 사용하다보면 편하지만 불편한 점도 있다. 변수의 값이 언제든지 변경될 수 있기 때문에 복잡한 프로그램에서는 변화하는 변수 값을 추적하기 어렵고 타입이 고정되어 있기 때문에 변수의 값을 변경할 때 마다 타입이 변할 수 있다. 이로인해, 의도치 않은 오류가 발생할 수 있다. 유연성은 높지만 신뢰성은 떨어진다. 변수를 사용할 때 주의할 사항! 1. 무분별한 변수 사용은 자제한다. 2. 변수의 스코프는 최대한 작게한다. 3. 전역 변수는 최대한 사용하지 않는다. 4. 변수보다는 상수를 사용한다. 5. 변수 이름은 목적이나 의미를 파악할 수 있도록 네이밍한다.
-
09. 운영체제 시작하기
09 - 1 운영체제를 알아야 하는 이유 운영체제가 무엇이며, 우리는 왜 운영체제를 알아야 하는지 알아봅시다! 우리가 일상에서 사용하고 있는 운영체제의 종류. 운영체제란? 프로그램을 실행하기 위해 필요한 자원을 할당하고, 프로그램을 올바르게 실행하도록 돕는 특별한 프로그램. 커널 이외의 영역은 사용자 영역이라 한다. 운영체제 또한 프로그램이기 때문에 메모리 내에 존재하나, 운영체제는 특별한 프로그램이기 때문에 메모리 내 커널 영역이라는 곳에 따로 적재되어 있습니다. 운영체제는 커널 영역에 적재되어 사용자 영역에 적재되어 있는 프로그램들에 자원을 할당하고 관리합니다. 또한, 메모리 자원 뿐만 아니라 CPU 자원도 운영체제가 관리합니다. 즉! 운영체제는 자원을 효율적으로 관리하고, 프로그램들이 지켜야 할 규..
2022.11.04 00:11 -
05. CPU 성능 향상 기법
05 - 1. 빠른 CPU를 위한 설계 기법 같이 생각해 봅시다! 2021년 12월 부트캠프 마지막 실전 프로젝트를 하는 과정 속에서 자바스크립트의 싱글스레드와 AWS EC2 1코어 1쓰레드 컴퓨터의 연관성에 대해 궁금증을 가지게 됩니다. 여러 개의 코어를 가진 멀티 코어, 멀티 쓰레드 고클럭 컴퓨터라도 어차피 자바스크립트는 싱글스레드로 프로그램을 수행하는 데 성능과 연관성이 있을까 ? 일단 클럭, 코어, 쓰레드부터 공부해 봅시다! 피시방을 가보면 이런 팜플릿을 볼 수(띄어쓰고 싶다.)밖에 없다. 여기서 다른 분들은 CPU 부분이 어디고 아래 설명은 무엇을 의미하는지 아시나요 ? 클럭 컴퓨터의 머리 역할을 하는 CPU의 성능과 실행시킨 프로그램의 속도에는 중요한 관계가 있다. 일반적으로 클럭의 속도가 높..
2022.10.28 22:56 -
01. 컴퓨터 구조
01-1 컴퓨터 구조를 알아야 하는 이유 개발자로서 우리가 컴퓨터 구조를 공부해야 하는 이유 2가지 문제 해결 같은 코드라고 하더라도 실행하는 컴퓨터에 따라 정상적으로 코드가 실행되지 않을 수 있다. 단순히 코드만 작성하고 컴퓨터를 이해하고 있지 못한 사람의 경우, 결과만 보여주는 '미지의 대상'이다. 컴퓨터 구조를 이해하고 있다면 위와 같은 현상에서 문제 해결의 실마리를 찾을 수 있다. 성능, 용량, 비용 서비스를 위한 컴퓨터를 구매할 경우, 선택의 기준을 세울 수 있다. 비용을 줄이기 위해 성능이 부족한 컴퓨터를 구입하는 경우, 처리 속도가 너무 늦고, 성능을 위해, 오버스펙의 컴퓨터를 구매하는 경우, 불필요한 추가 예산이 필요할 수 있다. 즉, 컴퓨터 구조를 이해하고 있다면 성능/용량/비용을 고려하..
2022.10.07 19:13 -
자바스크립트 함수 (2)
함수는 함수를 가리키는 식별자와 한쌍의 소괄호인 함수 호출 연사자로 호출, 함수는 0개 이상의 인수를 가진다. 자바스크립트 함수는 매개변수와 인수의 개수가 일치하는지 확인하지 않는다. 또한, 자바스크립트는 동적 타입 언어이다. 이로인해 매개변수와 인수의 개수의 차이가 생겨 예상하지 못한 값을 반환하거나, 함수 내부에서 예상한 매개변수의 타입이 아닌 다른 타입의 값이 할당되어 오류가 생기곤 한다. 이상적인 함수는 한 가지 일만 해야 하며 가급적 작게 만들어야 한다. (매개변수는 최대 3개 이상을 넘지 않는 것을 권장) 함수는 return 키워드를 사용해 자바스크립트에서 사용 가능한 모든 값을 반환할 수 있다. (함수 호출은 표현식이다.) 함수 호출 표현식은 return 키워드가 반환한 표현식의 경가 결과,..
2022.03.21 21:59 -
자바스크립트 함수 (1)
프로그래밍에서 함수란 일련의 과정을 문으로 구현하고 코드 블록으로 감싸서 하나의 실행 단위로 정의한 것이다. 함수는 함수 정의를 통해 생성한다. 생성한 함수를 실행하기 위해서는 인수를 매개변수를 통해 함수에 전달해야 하며 이를 함수 호출이라고 한다. 함수를 사용하는 이유는 첫째, 같은 코드를 함수로 정의하면 여러번 사용할 수 있다는 코드의 재사용성. 둘째, 수정이 필요할 경우 하나 함수만 수정하면 되기 때문에 유지보수의 편의성과 실수하게 될 경우의 수를 줄여 코드의 신뢰성을 높여준다. 셋째, 함수의 적절한 이름을 붙여 내부 코드를 이해하지 않고도 함수의 역항을 파악하게 하며, 이는 코드의 가독성을 향상시킨다. 함수 리터럴 함수 리터럴은 function 키워드, 함수이름, 매개변수 목록, 함수 몸체로 구성..
2022.03.04 04:46