본문 바로가기

분류 전체보기

(662)
9. Javascript에서의 함수 리턴 지금까지 함수의 선언과 실행, this 바인딩을 살펴보면서 산발적으로 Javascript 함수의 리턴 규칙에 대해서 함께 배워왔습니다. 하지만 함수의 리턴 규칙은 코드 작성에 있어서 무엇보다도 중요한 영역입니다. 이번 아티클에서는 함수의 리턴 규칙에 대해 다시 한번 정리해 보도록 하겠습니다. 일반 함수, 메서드 - 리턴 값 미지정 시 undefined 리턴 일반적인 함수 또는 메서드 상에서, 특정 값이나 객체를 리턴하지 않을 경우에는 undefined가 리턴됩니다. 간단한 원칙이지만, 아래 예제를 통해서 특정 변수에 이런 형식의 함수를 대입하여 직접 살펴보도록 하겠습니다. var noReturn = function() { console.log("got no return"); }; var result = ..
8. Javascript 함수 호출 (5) - call, apply 메서드와 this 바인딩 지금까지 우리는 Javascript 함수 호출(즉, 함수를 실행하는 것을 의미합니다) 과정에서 다양한 this 바인딩 규칙을 살펴보았습니다. 현재까지 메서드, 함수, new 연산자를 통한 함수 호출 과정에서 this 바인딩이 일어나는 것들은 규칙에 의한 묵시적(implicit)인 바인딩이었습니다. 하지만 지금부터는 어떤 객체를 this에 명시적(explicit)으로 바인딩 하는 방법을 살펴보고자 합니다. this 바인딩을 명시적으로 진행하기 위해서는 call과 apply 메서드를 사용해야 합니다. 이 중apply 메서드를 우선 살펴보도록 하겠습니다. apply 메서드는 기본적으로 모든 함수의 [[Prototype]] 객체인 Function.prototype에 정의된 함수이기 때문에, 모든 함수가 호출할 ..
8. Javascript 함수 호출 (4) - 생성자 함수 호출 시 this 바인딩 2 객체 리터럴 VS 생성자 함수 우리가 지금까지 사용해왔던 객체 리터럴을 통해 객체를 생성해 직접 객체를 선언하는 방식과 생성자 함수를 이용해 객체를 생성하는데 어떤 차이가 있을까요? 결론부터 이야기하자면, 프로토타입 객체에 있어서 차이가 발생하게 됩니다. Javascript에서의 객체 생성 기본 규칙은 "자신을 생성한 생성자 함수의 prototype 프로퍼티가 가리키는 객체를 자신의 [[Prototype]] 객체로 설정한다."입니다. 생성자 함수에서 강조했던 규칙이지만, 역시 객체 리터럴 방식의 객체 선언의 경우에도 적용되는 기본 규칙이죠. 여기서 생성자 함수의 경우는 알겠는데 객체 리터럴 방식일 경우에는 무엇이 생성자 함수가 될까요? 객체 리터럴 방식으로 객체를 생성할 때 이를 만들어내는 생성자 함수는..
8. Javascript 함수 호출 (4) - 생성자 함수 호출 시 this 바인딩 1 Javascript에서의 생성자 함수 동작 Javascript에서 객체를 생성하는 방법 중, 리터럴 방식을 제외하면 생성자 함수를 이용하는 방법이 있습니다. 일단 생성자 함수 생성에 있어서 C# 또는 JAVA에서의 생성자 개념은 (언뜻 비슷하지만) 그대로 적용시키기는 어려운 부분이 있습니다. 일단, 함수의 종류를 구분하지 않고 new 키워드를 사용하면 함수를 생성자 함수로 동작할 수 있게 됩니다. 그렇기 때문에 통상적으로 생성자 함수로 사용할 것을 의도하여 선언한 함수라면, 함수명 첫 문자를 대문자로 사용해줘야 합니다(문법적으로 강제된 것은 아닙니다). 그리고 this 키워드의 경우 이러한 생성자 함수 내부에서 사용될 때는 앞서 살펴본 메서드 / 함수 호출에서의 this 바인딩과는 다르게 사용됩니다. 생..
"이거 수백 번은 논의했던 거예요!" 영어로 표현해 봅시다 회의를 진행하다 보면, 언제나 꼭 한 번쯤은 겪게 되는 상황이 있습니다. 바로, 이전에 이야기했던 문제나 이슈를 모두 잊어버린 듯이 다시 한번 반복해서 이야기를 나누게 되는 경우 말이죠. 했던 얘기를 지겹게 반복하게 되는 이유는 여러 가지가 있겠지만, 미팅 자체가 적절한 어젠다 설정 없이 마구잡이로 이루어 지거나 아니면 회의 진행자가 생각나는 대로 의제를 던지는(높으신 분^^;) 사람이었을 때, 혹은 미팅 진행자가 불명확하여, 의사결정 사항에 대하여 제대로 정리하거나 회의록이 산출되지 않아서 회의만 끝나면 모두 언제 그랬냐는 듯이 잊어버리는 경우도 있죠. 물론 이런 경우는 누구 하나의 잘못이나 귀책 사유가 있다고 말하기는 어렵습니다. 대부분 조직문화 자체에서 기인하는 문제들이니까요. 여러 가지 옛 기억(..
[Chapter 6] JIRA 스프린트(Sprint) 관리 - (4) 스프린트 리뷰, 스프린트 회고를 해봅시다 별로 한 것도 없는 것 같은데, 어느새 스프린트 종료 단계가 찾아왔습니다. 스프린트 종료 단계에서는 무엇을 수행하며 프로젝트를 마무리할까요? 명확히 분리할 수 있는 부분은 아니지만, 관념적으로는 스프린트 리뷰를 진행한 후 스프린트 회고(Sprint Retrospective)를 진행하게 됩니다. 스프린트 리뷰(Sprint Review) 얼핏 스프린트 회고 단계, 또는 흔히 얘기하는 포스트모템(Postmortem)과 혼용되어 사용될 위험이 있는 단계입니다. 스프린트 리뷰 단계는 말 그대로 현재까지 진행된 스프린트를 점검하고, 스프린트를 제대로 끝냈는지 결론을 내린 후 결과물을 정리하는 단계입니다. 우선은 스프린트 산출물(Increment)들이 정상적으로 만들어졌는지, 누락된 사항은 없는지를 점검해야 합니다...
[Chapter 6] JIRA 스프린트(Sprint) 관리 - (3) 스크럼 미팅이 뭐지? 데일리 스크럼 미팅이란? 데일리 스크럼 미팅은, 스프린트를 진행하는 스크럼 팀이 매일(혹은 일정 주기로) 일정 시간에 모여 진행하는 짧은 미팅입니다. 미팅의 형태는 상황에 따라 여러 가지 방식으로 진행되겠지만, 통상적으로 15분 내외의 시간으로 진행되는 것이 원칙입니다. 이 미팅을 통해, 스프린트 진행 상황과 업무 진척도를 체크하게 됩니다. 공식적으로 '데일리' 스크럼 미팅으로 명칭이 생겼지만, 실제로 현업 상에서는 매일 진행하기보다는 일주일에 2-3회 정도 진행되는 것이 일반적이기도 합니다. 그럼 이 스크럼 미팅은 어떤 방식으로 진행되어야 할까요? 한 번 살펴보도록 합시다. 데일리 스크럼 미팅의 아젠다 중요한 부분입니다. 데일리 스크럼 미팅을 진행하는 데 있어서, 미팅의 목적이 무엇인지 / 어떤 내용을..
8. Javascript 함수 호출 (3) - 함수를 호출할 때 this 바인딩 전역 객체의 이해 이번에는 지난 아티클인 [객체 메서드]와 다른 개념인, 함수 호출 시의 this 바인딩에 대해서 살펴보려고 합니다. 이를 이해하기 위해서는 Javascript에서의 전역 객체에 대한 이해가 우선 필요합니다. 우선 Javascript를 브라우저에서 실행하게 될 때, 기본적으로 전역 객체는 window 객체가 됩니다. (Node.js의 경우 global이 전역 객체) 특별히 명시되지 않는다고 하더라도, 기본적으로 Javascript에서 선언되는 전역 변수들은 모두 이 전역 객체의 프로퍼티가 됩니다. 아래 예제 코드를 통해 전역 객체를 살펴보겠습니다. var testValue = "Test String"; console.log(testValue); console.log(window.testV..