목록모든 글 (126)
코딩쌀롱
컴퓨터를 사용해서 작업을 수행할 때 사용자가 입력한 명령이 컴퓨터 하드웨어를 제어하도록 해줘야 한다. 사용자가 명령을 입력하면 쉘이 명령을 받아 해석하고 커널에 전달하면 커널을 통해 하드웨어를 조작하는 것이다. 커널(Kernel) 컴퓨터 제일 내부에는 하드웨어가 있고, 그 하드웨어를 관리해주는 것이 운영체제(OS)이다. 이 운영체제의 핵심이 바로 커널(Kernel)이다. • 소프트웨어 - 하드웨어간의 커뮤니케이션을 관리하는 프로그램. • 입출력을 관리, 소프트웨어로의 요청을 하드웨어(CPU, 메모리, 저장장치 등)가 처리할 수 있도록 요청을 변환 • 하드웨어 관리 및 프로세스 분배 등 여러 시스템 자원 관리 •하드웨어를 직접적으로 제어하는 운영체제에서 가장 핵심 요소 커널은 주로 하드웨어 자원을 효율적으..
유닉스(Unix) 1970년대 초 미국 벨 연구소의 켄 톰슨, 데니스 리치가 만든 운영체제. 장점 C언어로 만들어 다른 컴퓨터에 수정해서 적용하기 쉬움(이식성) → 다양한 버전의 Unix 탄생 → POSIX라는 Unix 표준(규격) 만듦 단점 라이센스 지금(AT&T) 처음 개발 당시에는 소스코드의 모든 부분이 공개되었고 소스코드 접근까지 가능했다. 연구소, 대학교 등에서 유닉스가 활성화되면서 많은 소스코드가 공개되어 사용되었다. 1976년에 빌게이츠가 마이크로소프트를 창업했고, 소프트웨어의 소스코드를 공개하는 것에 부정적인 시각을 제시하면서 소프트웨어가 자산화 상품이 되어야 한다고 주장했다. 1980년 초부터 상용 유닉스가 수수료를 높이기 시작했고, 공개 개념의 소프트웨어가 점점 사라져 갔다. 독점 소프..
문제 백준 1076 저항 문제 나의 풀이 각각의 색에 대한 값, 곱을 처음에는 객체로 정리하려다가 인덱스 값이 곧 값이어서 배열로 했다. 입력값의 첫 번째, 두 번째의 '값'을 문자열로 더해서 숫자를 이어서 연결해주고, 세 번째 입력값의 '곱'은 10의 '인덱스'승한 값과 같기 때문에 곱해주었다.
문제 백준 1009 분산처리 문제 1번 데이터는 1번 컴퓨터, 2번 데이터는 2번 컴퓨터, ..., 10번 데이터는 10번 컴퓨터, 11번 데이터는 1번 컴퓨터, 반복되고, 총 데이터의 개수는 a의 b승개의 형태로 주어진다. 입력 첫 줄은 테스트 케이스의 개수 T, 그 다음 줄 부터 각각의 테스트 케이스에 대해 정수 a와 b가 주어진다.( 1 ≤ a ≤ 100, 1 ≤ b < 1,000,000)데이터를 처리할 컴퓨터 번호를 출력하는 문제 나의 풀이 a의 b승 수의 일의 자리 숫자가 곧 컴퓨터 번호가 된다.(0일 때는 10) 그래서 a의 b승을 구하고 일의 자리 숫자를 반환하려고 했다. 그런데 9의 635승처럼 큰 수는 Infinity가 나온다. 그리고 성능 상으로도 좋지 않을 것 같아 수정해야 했다. 1..
이진법(Binary): 스위치로 켜고 끄는 2가지의 전기적 상태만으로도 중요한 정보를 표현할 수 있다. - On 상태: 전류가 흐르고, true를 나타내는 상태 - Off 상태: 전류가 흐르지 않고, false를 나타내는 상태 초기의 전자 컴퓨터는 3개의 상태를 갖고 있는 3진법을 사용하거나 5진법을 사용할 수도 있었다. 이러한 진법들의 문제는, 중간 상태가 더 존재할수록 그것들을 나누기가 어려웠다는 것이다. 그래서 가능한 한 두 개의 신호를 멀리 배치하고, 단지 'on'과 'off'를 사용함으로써 가장 명확한 신호로 사용할 수 있다. 이진수를 사용하는 다른 이유 중 하나는 수학 분야에서 이미 존재했던 참과 거짓을 다룬 분야가 있었기 때문. 그 수학 분야는 참과 거짓을 조작하는 데에 필요한 규칙과 연산방..
릴레이(Relay) 전류의 유무에 따라 회로를 여닫는 장치, ✱작동 원리: 전자기력을 이용해 기계적으로 스위치를 작동 1. 제어선(control wire)이 회로가 닫힐지 열릴지 결정 2. 제어선(control wire)은 안쪽의 내부 코일선과 연결 3. 전류가 코일로 흐를 때 전자기장 발생 > 금속을 당겨 회로가 닫힘 ✱한계: 전환 속도가 매우 느리고 기계식이라 마모된다는 것 ✱추가 내용 - 1940년대의 성능이 좋은 계전기는 1초에 50번 정도 왔다갔다 할 수 있었음. - Havard Mark 1은 약 3500개의 릴레이를 가지고 있었음 릴레이의 고장이 생길 때마다 문제 발생. 진공관(Vacuum tube) ✱작동 원리: 열 이온 밸브(Thermionic valve): 최초의 진공관. 밀폐된 유리 전..
2020년 전반_우울 2020년은 정말 중요한 해였다. 졸업하고, 진로를 고민하던 중 쇼핑몰을 생각했다가 어쩌다 보니 코딩을 시작했고, 웹 개발자라는 목표를 정하게 된 해. 처음에는 쇼핑몰에 취업을 해서 일을 배워야지라는 생각으로 웹디자격증을 준비했다. 웹디자격증은 의외로 일러스트레이터는 아예 사용하지 않았고, 포토샵도 아주 조금만 사용했다. 거의 코딩이었고, 이렇게 처음으로 HTML, CSS, JavaScript를 배웠다. 이 당시 쇼핑몰에 대해서 고민도 굉장히 많이 하고, 걱정도 많이 하면서 자신감도 떨어져 있었는데, 코딩에 재미를 느끼면서 프론트엔드 개발자에 관심을 갖게 됐다. 웹디자격증을 따고, 웹퍼블리싱 학원 과정이 끝나고, 어떤 공부를 더 해야할까 어떻게 공부를 해야할까 고민하던 중 코드스쿼드..
메서드 오버라이드 const Person = function (name) { this.name = name; }; Person.prototype.getName = function () { return this.name; }; const iu = new Person('지금'); iu.getName = function () { return '바로 ' + this.name; }; console.log(iu.getName()); // 바로 지금 prototype에도 getName 메서드가 있고, 인스턴스인 iu에도 getName 메서드가 있다. iu.getName()을 호출하면 어떤 메서드를 실행할까? 자바스크립트 엔진이 메서드를 찾는 방식은 가장 가까운 대상인 자신의 프로퍼티를 검색하고, 없으면 그 다음으로 ..
자바스크립트는 프로토타입 기반 언어이다. 클래스 기반 언어에서는 '상속'을 사용하지만 프로토타입 기반 언어에서는 어떤 객체를 원형(prototype)으로 삼고 이를 복제(참조)함으로써 상속과 비슷한 효과를 얻는다. Constructor, prototype, instance 프로토타입을 도식으로 추상화 해본다면, const instance = new Constructor(); 1. 어떤 생성자 함수(Constructor)를 new 연산자와 함께 호출하면 2. Constructor에서 정의된 내용을 바탕으로 새로운 인스턴스(instance)가 생성된다. 3. 이때 instance에는 __proto__라는 프로퍼티가 자동으로 부여되는데, 4. 이 프로퍼티는 Constructor의 prototype이라는 프로퍼..
부분 적용 함수(partially applied function) 부분 적용 함수란 n개의 인자를 받는 함수에 미리 m개의 인자만 넘겨 기억시켰다가, 나중에 n-m개의 인자를 넘기면 비로소 원래 함수의 실행 결과를 얻을 수 있게끔 하는 함수이다. this를 바인딩해야 하는 점을 제외하면 bind 메서드의 실행 결과가 바로 부분 적용 함수다. this를 사용하지 않는다면 bind 메서드만으로 문제없이 구현되겠지만 this의 값을 변경(null)할 수 밖에 없기 때문에 메서드에서는 사용할 수 없다. bind와 다르게 this에 관여하지 않는 부분 적용 함수가 있다면 더 좋을 것이다. 1) 부분 적용 함수 구현(1) 첫 번째 인자로 원본 함수, 두 번째 인자 이후부터는 미리 적용할 인자들을 전달하고, 반환할 ..