전체 글 (664) 썸네일형 리스트형 "그건 우리에게 이익이 되지 않아요" 영어로 표현해 봅시다 직장인으로서 일하다 보면 궁극적으로 우리가 하고 있는 일이 "이익"을 추구하는 일임을 깨닫는 시점이 옵니다. 당연한 이야기라고 생각할 수도 있겠지만 자신이 대표이사나 주주가 아닌 이상에야 이익보다는 여러가지 다른 가치나 목적을 우선으로 생각하는 경우도 종종 있습니다. 그러다 보면 어느 순간 자신이 하는 일이 회사나 조직의 관점에서는 이익이 되지 않는 경우가 있기도 하죠. 반대로 계약이나 거래를 하는 과정에서 꼼꼼하게 뜯어보면, 막상 우리에게는 실질적으로 이득이 되는 것이 없는 협상을 하게 되는 경우도 있습니다. 오늘 배워볼 표현은, 이러한 상황에서 써먹을 수 있는 '이익'과 관련된 표현입니다. "그건 우리에게 이익이 되지 않아요."라는 표현을 한 번 생각해볼까요? 예를 들어 계약 조건을 협의하는 과정에서.. 10. Javascript 프로토타입 체이닝 (1) - 프로토타입이 뭐지? Javascript는 기본적으로 프로토타입 기반의 객체 지향 프로그래밍을 지원합니다. JAVA나 C# 등의 여타 프로그래밍 언어의 상속 체계 등에 익숙한 사람이라면, 오히려 혼란스러워질 수 있는 구조를 갖고 있죠. 프로토타입 체이닝을 주제로 한 아티클에서는 Javascript에서 OOP 기능을 제공하는 기본 원리인 프로토타입과 프로토타입 체이닝을 살펴보도록 하겠습니다. 기존 언어와 비교해보도록 하겠습니다. 우선, Javascript 역시 ‘부모’객체와 ‘자식’ 객체의 개념을 사용할 수 있습니다. 하지만 다른 언어와의 차이점은, 객체를 생성하는 방식입니다. 근본적인 차이점은 바로 클래스의 개념이 없다는 점이죠. 이제까지 살펴본 내용을 되짚어보면, 객체를 리터럴 방식으로 선언하거나 생성자 함수를 사용해 생성.. 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)들이 정상적으로 만들어졌는지, 누락된 사항은 없는지를 점검해야 합니다... 이전 1 ··· 72 73 74 75 76 77 78 ··· 83 다음