본문 바로가기

12. 실행 컨텍스트 실행 컨텍스트(Context)는 Scope, Hoisting, this, Function, Closure 등의 동작원리를 담고 있는 원리.ECMAScript에 따르면 실행 컨텍스트를 실행 가능한 코드를 형상화하고 구분하는 추상적인 개념이라고 정의함.즉, 실행 가능한 코드가 실행되기 위해 필요한 환경.전역 코드 : 전역 영역에 존재하는 코드Eval 코드 : Eval 함수 (텍스트로 된 자바스크립트 코드를 실행시킬 수 있는 함수) 함수 코드 : 함수 내에 존재하는 코드 자바스크립트 엔진은 코드를 실행하기 위해 여러가지 정보를 알고 있어야 하며, 아래와 같음.변수 : 전역변수, 지역변수, 매개변수, 객체의 프로퍼티함수 선언변수의 유효범위(Scope)this현재 실행 중인 컨텍스트에서 이 컨텍스트와 관련 없는 .. 더보기
11. This 함수가 호출될 때, 매개 변수로 전달되는 인자 값 외에도 arguments와 this 를 암묵적으로 전달받음. 자바스크립트의 this는 함수 호출 방식에 따라 바인딩 되는 객체가 달라짐. function func1 () { console.log(arguments, 'arguments') //Arguments [callee: ƒ, Symbol(Symbol.iterator): ƒ] "arguments" console.log(this, 'this') //Window {postMessage: ƒ, blur: ƒ, focus: ƒ, close: ƒ, frames: Window, …} "this" } func1();함수 호출과 바인딩함수 호출에 따라 어떤 객체를 this에 바인딩할지가 결정 됨. 함수 호출 패턴 (.. 더보기
10. Scope Life-Cycle 모든 변수는 Scope 유효범위를 가짐.전역 Scope (Global)코드 어디에서든지 참고 가능지역 Scope (Local or Function-level)정의된 지역 또는 함수 내에서만 가능 변수의 선언 위치(전역 또는 지역)에 의해 Scope를 가지게됨. 즉, 전역에서 선언된 변수는 전역 Scope를 갖고, 지역에서 선언된 변수는 지역 Scope를 가짐. 전역 Scope를 갖는 전역 변수는 전역에서 참조가 가능하며, 지역 변수는 선언된 지역과 그 지역 내부에서만 참조가 가능함. 자바스크립트는 function-level scope를 사용 하기에, 함수 블록 코드내에서 선언된 변수는 함수 코드 블럭 내에서만 유효하고 함수 외부에서는 유효하지 않음.var x = 5 console.log(x); // 5 .. 더보기
iOS typeText() TextInput 필드에 텍스트를 입력하기 위해 쓰는 typeText 는 Simulator에서 키패드가 출력되어야함.await element(by.id(TestIds.browseView.searchTextFiled)).typeText(`bart\n`); Simulator keyboard toggle 사용 하기 Simulator > Hardware 메뉴 > Keyboard > Toggle Software Keyboard를 선택. 추가적으로 Use the Same keyboard Language as macOS를 킬 경우, 내가 테스트로 입력해야되는 단어 또는 문장이 영어인데, macOS가 한글 키보드 사용중이라, Simulator 의 키보드도 한글로 출력되어 입력이 실패될 가능성이 높음. 추가적으로,Tex.. 더보기
Detox iOS System Pop up Control Detox에서 Inspector가 되지 않는 Button 컨트를을 하려면, Xcode 에서 Debug View Hierarchy를 조회하여, 제어해야 한다. 이후 by.type 으로 제어하면 됨. 특히나 React-navigation 등의 뒤로가기 버튼을 제어할 때도 해당 방법으로 적용해야 함.await element(by.type('_UIButtonBarButton')).tap(); 더보기
9. 프로토타입과 객체지향 프로토타입 객체자바스크트는 java, C++과 같은 클래스 기반 객체지향 프로그래밍 언어와 다르게 프로토타입 기반 객체지향 프로그래밍 언어.클래스 기반 객체지향 프로그래밍 언어는 객체 생성 이전에 클래스를 정의하고 이를 통해 객체(인스턴스)를 생성하나,프로토타입 기반 객체지향 프로그래밍 언어는 클래스 없이도 객체를 생성할 수 있음. 자바스크립트의 모든 객체는 자신의 부모 역할을 담당하는 객체와 연결 되어, 객체 지향의 상속 개념과 같이 부모 객체의 프로퍼티 또는 메소드를 상속받아 사용 가능함. 이러한 부모 객체를 Prototype(프로토타입) 객체라 부름. ECMAScript spec에서는 자바스크립트의 모든 객체는 자신의 프로토타입을 가르키는 [[Prototype]] 이라는 숨겨진 프로퍼티를 가짐.크롬.. 더보기
8. 타입 체크 자바 스크립트는 동적 타입 (Dynamic typed) 언어이므로 변수에 어떤 값이 할당될 지 예측하기 어려움. 아래와 같이 숫자나 문자열이 인수로 전달되어도 결과를 반환하기 때문에, 명확하지 않아질 수 있음. function sum(a, b){ return a + b; } sum('a','b'); sum(1,4); 이와 같은 이유로 자바스크립트는 타입 체크가 필요함. 타입 연산자(Type Operators)는 피연산자의 데이터 타입(자료형)을 문자열로 반환. typeof ''; // string typeof 1; // number typeof NaN; // number typeof true; // boolean typeof []; // object typeof {}; // object typeof ne.. 더보기
5.1 Test Organization (테스트 조직) Termstester, test leader, test manager. 5.1.1 Test Organization and independence The effectiveness of finding defects by testing and reviews can be improved by using independent testers. Options for independence are:- No independent testers. Developers test their own code.- Independent testers within the development terms.- Independent test team or group within the organization, reporting to pro.. 더보기