본문 바로가기

분류 전체보기68

TDD(Test Driven Development) TDD(Test Driven Development)란? 기존에 우리는 개발을 할때 코딩을 먼저 한 뒤 테스트를 수행한다. 하지만 TDD는 이 순서를 바꿔서 개발한다. 이말인 즉슨 테스트를 먼저 진행한 뒤 코드를 짠다는 것인데... 대체 뭘로 어떻게 테스트 한다는 것일까? 예를 들어 집을 짓기위해 벽돌을 쌓는다고 하자. 벽돌을 쌓기 전에 일정 분량의 틀을 만들어 놓고 만들어 놓은 틀까지 벽돌을 쌓는다. 틀이 다 채워지면 벽돌이 틀에 잘 채워졌는지 체크하고 수정작업을 거친 뒤 다시 새로운 틀을 만들고 벽돌을 쌓는 행위를 반복한다고 한다고 할때, 이러한 방식이 TDD이다. 미리 틀을 만드는것은 테스트 코드를 작성하는 것이고 벽돌을 쌓는것은 테스트 코드에 맞는 실제 코드 작성을, 틀에 잘 채워졌는지 체크하고 수.. 2021. 9. 7.
(JavaScript)컨텍스트와 클로져 컨텍스트에 대해서 실행가능한 자바스크립트 코드 블록이 실행되는 환경이다. 컨텍스트가 실행되는 경우는 전역코드, Eval() 함수로 실행되는 코드, 함수코드 이다. 이러한 코드가 실행되면 해당 코드에 맞는 실행 컨텍스트가 실행되게 된다. C나 Java의 콜스택과 같이 스택에 쌓이고 가장 최상단 스택의 내용이 현재 실행되고 있는 컨텍스트이다. 활성객체(변수객체) 컨텍스트가 생성되면 JS엔진은 컨텍스트의 정보를 담을 객체를 같이 생성함. 해당 객체 안에는 그 컨텍스트의 Arguments(함수코드일때), 스코프체인([[scope]]), 일반변수(정의된 함수 포함), this가 들어있다. 스코프 체인 변수와 함수들을 인식하기 위한 연결리스트이다. 활성객체안에 있는 [[scope]] 프로퍼티를 통해 해당 스코프 체.. 2021. 9. 6.
(JavaScript)ES6와 TypeScript의 공통점과 차이점 - 차이점편 이번에는 저번에 이어 차이점에 대해 써보려고 한다. 사실 TypeScript안에 ES6가 포함되어 있으므로 차이점이란 그냥 TypeScript의 특징으로 봐도 될것 같다. 타입스크립트가 가진 기능들을 서술하고 각 기능들이 ES6에 대하여 어떤 의의가 있는지 서술하고자 한다. 정적 타입체크 기능 위의 코드는 string을 함수로 호출하려는 코드이다. 이런 코드에 대해 기존 자바스크립트에서는 어떠한 에러도 발생시키지 않은채 컴파일이 되고 런타임상에서 에러를 뱉는다. 하지만 타입스크립트의 경우 컴파일 이전에 에러를 뱉는것을 볼 수 있다. 이러한 기능을 하는 도구가 static type-checker이다. 그외의 에러체킹 기능 만약 존재하지 않는 프로퍼티에 접근하려 할때 기존 자바스크립트는 undefiend를 .. 2021. 9. 1.
(JavaScript)ES6와 TypeScript의 공통점과 차이점 - 공통점편 ES6의 개념 ECMA 2015로도 불리는 ES6는 기존 ES5에 비해서 화살표 함수, 클래스 등 여러 문법들이 추가된 버전이다. 타입스크립트의 개념 MS에서 만든 자바스크립트의 상위언어로써 서로 다른 언어는 아니다. 타입스크립트는 기존 자바스크립트가 타입을 명시하지 않아서 생기는 에러들을 타입을 명시해줌으로써 해결해줬다. 또한 인터페이스나 제네릭, Enum 등의 기능들을 추가했다. 공통점 사실 타입스크립트 안에 ES6가 속해있기 때문에 공통점은 기존 ES5와 비교해 ES6에 추가된 기능들을 써보겠다. 1. 화살표 함수 function 키워드 대신 =>를 써서 간단하게 함수를 선언할 수 있다. 기존 const f = function(){} 과같은 함수표현식의 단축표현이기 때문에 호이스팅 되진 않는다. f.. 2021. 8. 31.