본문 바로가기

전체 글61

[Javascript] 기본 매개변수(Default Function Parameters) 아래의 코드를 보자.function greet(name, greeting) { name = (typeof name !== 'undefined') ? name : 'Student'; greeting = (typeof greeting !== 'undefined') ? greeting : 'Welcome'; return `${greeting} ${name}!`; } greet(); // Welcome Student! greet('James'); // Welcome James! greet('Richard', 'Howdy'); // Howdy Richard! greet()은 2개의 인자를 받아 각각 출력하는 간단한 함수이다. 다만 인자가 들어오지 않았거나 'undefined'인 경우에 대비해 각각 'Student.. 2018. 6. 12.
[Javascript] 프로토타입 상속(Prototypal Inheritance) function Cat() { this.lives = 9; this.sayName = function () { console.log(`Meow! My name is ${this.name}`); }; }위의 코드에서, 새롭게 생성된 'Cat' object의 'sayName' attribute에 함수를 추가함으로써, sayName() 메소드가 모든 'Cat' Object에 추가된다.문제 없이 잘 동작하는 코드이지만, 만약 이 constructor로 더 많은 'Cat' object들을 초기화하고 싶다면? 각각의 'Cat' object의 sayName을 위한 함수를 매번 생성해야 할 것이다. 뿐만 아니라, 메소드를 수정해야 할 경우 각각의 object들을 일일이 고쳐야 한다.이 경우, 'Cat' construc.. 2018. 6. 2.
미들웨어 / 웹서버 / WAS 미들웨어(Middleware)클라이언트 쪽에 비즈니스 로직이 많을 경우, 클라이언트 관리(배포 등)로 인해 비용이 많이 발생하는 문제가 있다.비즈니스 로직을 클라이언트와 DBMS사이의 미들웨어 서버에서 동작하도록 함으로써, 클라이언트는 입력과 출력만 담당하도록 한다. 웹 서버 vs WAS(Web Application Server)WAS는 일종의 미들웨어로, 웹 클라이언트(보통 웹 브라우저)의 요청 중 웹 애플리케이션이 동작하도록 지원한다. 웹 서버는 정적인 컨텐츠를 웹 브라우저에게 전송하는 역할. WAS는 프로그램의 동적인 결과를 웹 브라우저에게 전송하는 역할. 웹 서버가 없어도 WAS만으로도 정적인 컨텐츠를 전송할 수 있다(성능상 거의 차이가 없다). 하지만 웹서버가 WAS 앞에 위치하게 될 때의 장점.. 2018. 5. 30.
[Javascript] Closure, 그리고 IIFE의 활용 이번에는 지난 포스트에서 소개한 Scope에 이어서, 역시 Javascript에서 자주 쓰이는 개념인 Closure에 대해 알아 보고, 추가로 IIFE(Immediately-Invoked Function Expressions)까지 정리해보도록 한다. Closure (클로저)closure를 이해하기 위해, 이렇게 생각해보자. 함수의 scope에 대한 접근(access) 권한이 일회성이 아니라 계속 유지될 수 있다.아직은 감이 잘 오지 않는다. 다음 코드에서 remember() 함수에 주목해 보자:function remember(number) { return function() { return number; } } const returnedFunction = remember(5); console.log( r.. 2018. 5. 3.
Javascript의 스코프(Scope)에 대한 이해 Javascript에서 어떤 함수가 실행되면, 새로운 runtime scope가 생성된다. 이 scope는 함수의 context를 규정하며, 즉 어떤 함수에서 어떤 변수들이 사용 가능한지를 규정하게 된다.그렇다면 함수가 접근할 수 있는 영역은 어디까지일까? 이와 관련된 개념인 스코프(scope)에 대해 알아보자. Scope함수의 runtime scope는 주어진 함수 내에서 사용 가능한 변수를 일컫는다. 함수 내부의 코드는 다음에 대해 접근 가능하다: 1. 함수의 인자(argument)2. 함수 내부에 선언된 지역 변수3. 부모 함수의 scope로부터의 변수4. 전역 변수 다음의 코드를 보자.const myName = 'Kim'; // 전역 변수(Global variable) function introd.. 2018. 4. 29.
nth-child와 nth-of-type의 차이점 CSS pseudo-class 중 nth-child와 nth-of-type가 있다. 코드를 살펴보자. span:nth-child(2n+1), without an inside the child elements. Children 1, 3, 5, and 7 are selected, as expected. This span is selected! This span is not. :( What about this? And this one? Another example Yet another example Aaaaand another span:nth-child(2n+1), with an inside the child elements. Children 1, 5, and 7 are selected. 3.. 2018. 4. 24.
운영체제 (Silberschatz) 1.1~5.5 주요 연습문제 풀이 운영체제 (Silberschatz 저; 일명 공룡책) 한글판의 주요 연습문제 풀이입니다. 범위는 1장부터 5.5(멀티프로세서 스케줄링)까지이며, 중요하다고 생각되는 주요 문제만 선정해 올립니다. 혹시 틀린 풀이가 포함되어 있다면, 댓글로 남겨 주시면 감사하겠습니다. 1.4 대칭적 다중 처리(SMP)와 비대칭적 다중 처리(AMP)의 차이점을 설명하시오. 다중 처리기 시스템의 세 가지 장점과 한 가지 단점은 무엇인가? 대칭적 다중 처리(SMP)는 각 프로세서가 OS의 모든 task를 수행하고, 모든 프로세서는 대등하다. 비대칭적 다중 처리(AMP)는 하나의 메인 프로세서가 시스템을 제어하고, 다른 프로세서들은 메인 프로세서의 명령을 수행하거나 미리 정의된 태스크를 수행한다. 장점➀: 증가된 처리량(throu.. 2018. 4. 23.
[Javascript] Callbacks: forEach, map, filter Callback Functions 지난 포스트에서 언급했듯이, Javascript의 함수는 first-class 함수다. first-class 함수의 특성 중 하나는 일반적인 값들을 함수에 넘겨주듯, 함수를 함수에 넘겨주는 것 역시 가능하다는 것이었다. 다른 함수를 인자로 받아들이거나 return하는 함수를 "higher-order function"이라 칭하고, 다른 함수에 인자로 들어가는 함수를 우리는 "Callback function"이라고 부른다. 특히 배열에서 콜백 함수를 자주 볼 수 있는데, 배열 메소드의 내부로 함수가 전달되는 것이다. 이번 글에서는 배열에서 콜백 함수와 함께 자주 활용되는 다음의 3가지 메소드에 대해 알아 보도록 한다. forEach()map()filter() forEach(.. 2018. 4. 14.