본문 바로가기

반응형

분류 전체보기

(501)
25장 클래스(3) 2023년 4월 26일 448p~468p 25.8 상속에 의한 클래스 확장 상속에 의한 클래스 확장은 프로토타입 기반 상속과는 다른 개념이다. 프로토타입 기반 상속은 프로토타입 체인을 통해 다른 객체의 자산을 상속받는 개념이지만, 상속에 의한 클래스 확장은 기존 클래스를 상속받아 새로운 클래스를 확장하여 정의하는 것이다. 클래스는 상속을 통해 기존 클래스를 확장할 수 있는 문법이 기본적으로 제공되지만 생성자 함수는 그렇지 않다. 상속에 의해 확장된 클래스 Bird를 통해 생성된 인스턴스의 프로토타입 체인은 아래와 같다. 상속에 의한 클래스 확장은 코드 재사용 관점에서 매우 유용하다. class Animal { constructor(age, weight) { this.age = age; this.weigh..
[구현] 프로그래머스 '숫자 게임' - js 1. 문제 https://school.programmers.co.kr/learn/courses/30/lessons/12987 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2. 코드 처음엔 이걸 dp로 풀어야하나, dfs로 풀어야하나 삽질을 하고 있었다...ㅋㅋㅋㅋ A팀의 순서에 목매달아서... 이 문제는 A팀의 순서에 연연할 필요가 없었다. 중요한 개념은 큰 수는 큰 수로 막아야 가장 효율적이라는 것, 이거 하나다. 그래서 내림차순을 하여 비교를 시작하는 것이다. 내림차순 순서대로 비교할 때, 현재 B팀이 가지고 있는 수(B[j])가 A팀이 가지고 있는..
25장 클래스(2) 2023년 4월 25일 435p~448p 25.6 클래스의 인스턴스 생성 과정 1.인스턴스 생성과 this바인딩 new 연산자와 함께 클래스를 호출하면 암묵적으로 빈 객체(인스턴스)가 생성된다. 빈 객체는 this에 바인딩된다. 2.인스턴스 초기화 constructor 내부의 코드가 실행되며 this에 인스턴스 프로퍼티를 추가한다. 이로써 빈 객체 즉, 인스턴스에 프로퍼티가 추가되어 인스턴스를 초기화된다. 3.인스턴스 반환 클래스의 모든 처리가 끝나면 완성된 인스턴스가 바인딩된 this가 암묵적으로 반환된다. 인스턴스 프로퍼티는 언제나 public하다. class Person { // 생성자 constructor(name) { // 1. 암묵적으로 인스턴스가 생성되고 this에 바인딩된다. consol..
[구현] 프로그래머스 '2개 이하로 다른 비트' - js 1. 문제 https://school.programmers.co.kr/learn/courses/30/lessons/77885 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2. 코드 풀이의 핵심은 아래의 글을 참고하였다. https://school.programmers.co.kr/questions/37104 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr function solution(numbers) { ..
25장 클래스(1) 2023년 4월 24일 417p~434p 25장 클래스 25.1 클래스는 프로토타입의 문법적 설탕인가? 자바스크립트는 프로토타입 기반 객체지향 언어다. 프로토타입 기반 객체지향 언어는 클래스가 필요 없는(class free)객체지향 프로그래밍 언어다. ES5에서는 클래스 없이도 아래와 같이 생성자 함수와 프로토타입을 통해 객체지향 언어의 상속을 구현할 수 있다. // ES5 생성자 함수 var Person = (function () { // 생성자 함수 function Person(name) { this.name = name; } // 프로토타입 메서드 Person.prototype.sayHi = function () { console.log('Hi! My name is ' + this.name); };..
[운영체제] 공유자원과 임계영역/교착상태/CPU 스케줄링 알고리즘 2023년 4월 24일 172p~181p 3.3.7 공유 자원과 임계 영역 공유 자원은 시스템 안에서 각 프로세스, 스레드가 함께 접근할 수 있는 모니터, 프린터, 파일, 데이터 등의 자원이나 변수를 의미한다. 이 공유 자원을 두 개 이상의 프로세스가 동시에 읽거나 쓰는 상황을 경쟁 상태(Race Condition)라고 한다. 동시에 접근을 시도할 때 접근의 타이밍이나 순서 등이 결과값에 영향을 줄 수 있는 상태인 것이다. Race Condition이 발생하는 경우를 정리하면 다음과 같다. - 커널 작업을 수행하는 중에 인터럽트 발생 문제점 : 커널모드에서 데이터를 로드하여 작업을 수행하다가 인터럽트가 발생하여 같은 데이터를 조작하는 경우 해결법 : 커널모드에서 작업을 수행하는 동안, 인터럽트를 disa..
[피보나치] 프로그래머스 '2xn 타일링' - js 1. 문제 https://school.programmers.co.kr/learn/courses/30/lessons/12900#qna 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2. 코드 오랜만에 메모이제이션 방식으로 풀어보고 싶어, 해당 코드를 작성했는데 타임아웃이 해결되지 않았다. 이유는 아직 파악하지 못했다.. 아 재귀라서 그런가...? 계속 solution 함수를 불러와서..? 처음 푼 코드) 타임아웃 function solution(n, memo = []) { if (n
[운영체제] 프로세스와 스레드/ 멀티프로세싱과 멀티스레딩 2023년 4월 22일 157p~172p 3.3 프로세스와 스레드 기본적으로 프로세스마다 최소 1개의 스레드를 소유 (메인 스레드 포함)한다. 하나의 프로세스가 생성될 때, 기본적으로 하나의 스레드가 같이 생성된다. 프로세스(process) : 실행 중인 프로그램으로, 디스크로부터 메모리에 적재되어 CPU 의 할당을 받을 수 있는 것 스레드(thread) : 프로세스의 실행 단위 그림처럼 프로그램이 메모리에 올라가면 프로세스가 되는 인스턴스화가 일어나고, 이후 운영체제의 CPU 스케줄러에 따라 CPU가 프로세스를 실행한다. 3.3.1 프로세스와 컴파일 과정 (예시 : C언어) 프로세스는 프로그램이 메모리에 올라가 인스턴스화 된 것을 말한다. 예를 들어 프로그램은 구글 크롬 프로그램과 같은 실행 파일이며,..

반응형