본문 바로가기

전체 글

(24)
[Javascript] 실행 컨텍스트(Execution Context) *** 아래 내용은 (이웅모 저) 책을 공부하며 정리한 내용입니다.*** execution context 실행 컨텍스트(execution context)란? 자바스크립트 엔진이 코드를 평가하고 실행할 때 실행 컨택스트가 역할을 수행하게 된다. 코드가 실행되려면 다음과 같이 스코프, 식별자, 코드 실행 순서 등의 관리가 있어야 한다. 첫번째, 선언에 의해 생성된 모든 식별자(변수, 함수, 클래스 등)를 스코프를 구분하여 등록하고 상태 변화(식별자에 바인딩된 값의 변화)를 지속적으로 관리할 수 있어야 한다. 둘째, 스코프는 중첩 관계에 의해 스코프 체인을 형성해야 한다. 즉, 스코프 체인을 통해 상위 스코프로 이동하여 식별자를 검색할 수 있어야 한다. 셋째, 현재 실행 중인 코드의 실행 순서를 변경(예를 들..
[Javascript] Scope, Hoisting *** 아래 내용은 (이웅모 저) 책을 공부하며 정리한 내용입니다.*** Scope 함수의 매개변수는 함수 몸체 내부에서만 참조할 수 있고 함수 몸체 외부에서는 참조할 수 없다. 이것은 매개변수를 참조할 수 있는 유효범위, 즉 매개 변수의 스코프가 함수 몸체 내부로 한정되기 때문이다. function add(x, y) { // 매개변수는 함수 몸체 내부에서만 참조할 수 있다. // 즉, 매개변수의 스코프(유효범위)는 함수 몸체 내부다. console.log(x, y); // 2 5 return x + y; } add(2, 5); // 매개변수는 함수 몸체 내부에서만 참조할 수 있다. console.log(x, y); // ReferenceError: x is not defined 변수는 코드의 바깥 영역..
[JAVASCRIPT] 변수 데이터 불변성 & 함수의 매개 변수 *** 아래의 글은 (이웅모 저) 책을 대부분 참고하였습니다.*** 변수 데이터 불변성 원시 타입과 불변성 원시 타입 은 정수, 실수, 문자, 논리 리터럴등의 실제 데이터 값을 저장하는 타입이다. 자바스크립트가 제공하는 7가지 데이터 타입(숫자, 문자열, 불리언, null, undefined, 심벌, 객체 타입)은 크게 원시 타입(primitive type)과 객체타입(object/reference type)으로 구분할 수 있다. 원시타입과 객체타입은 크게 세 가지 측면에서 다르다. 첫째, 원시 타입의 값, 즉 원시 값는 변경 불가능한 값(immutable value)이다. 이에 비해 객체(참조)타입의 값, 즉 객체는 변경 가능한 값(mutable value)이다. 둘째, 원시 값은 변수에 할당하면 변수..
[javascript] object & property descriptor, prototype *** 아래의 내용은 (이웅모 저)책을 공부하며 정리한 내용입니다. *** object & property descriptor 객체란? 속성을 통해 여러 개의 값을 하나의 단위로 구성한 복합적인 자료구조를 객체라고 한다. 객체는 상태 데이터와 동작을 하나의 논리적인 단위로 묶은 복합적인 자료구조라고 할 수 있다. 객체의 상태 데이터를 프로퍼티, 동작을 메서드라고 부른다. 원시 타입의 값, 즉 원시 값은 변경 불가능한 값이지만 객체 타입의 값, 즉 객체는 변경가능한 값이다. 객체는 프로퍼티와 메서드로 구성된 집합체이다. 프로퍼티는 객체의 상태를 나타내는 값이고 메서드는 프로퍼티(상태 데이터)를 참조하고 조작할 수 있는 동작이다. 객체 리터럴에 의한 객체 생성 자바스크립트는 프로토타입 기반 객체 지향 언어로..
[javascript] scope, closure, execution context *** 아래의 내용은 (이웅모 저)책을 공부하며 정리한 내용입니다. *** scope 모든 식별자(변수 이름, 함수 이름, 클래스 이름 등)는 자신이 선언된 위치에 의해 다른 코드가 식별자 자신을 참조할 수 있는 유효 범위가 결정된다. 이를 스코프라고 한다. 스코프는 식별자가 유효한 범위를 말한다. 자바스크립트 엔진은 스코프를 통해 스코프는 자바스크립트 엔진이 식별자를 검색할 때 사용하는 규칙이라고 할 수 있다. function add(x, y) { // 매개변수는 함수 몸체 내부에서만 참조할 수 있다. // 즉, 매개변수의 스코프(유효범위)는 함수 몸체 내부다. console.log(x, y); // 2 5 return x + y; } add(2, 5); // 매개변수는 함수 몸체 내부에서만 참조할 수..
[Flutter] Bottom Navigation Bar에 GetX 적용하기 BottomNavigationBar 에 currentIndex를 setState 대신 getX를 적용하는 방법을 살펴보자. 우선 getX를 적용하기 전에 tab bar 페이지를 생성하여 BottomNavigationBar를 생성한다. 예시를 들면 다음과 같다. import 'package:flutter/material.dart'; class NavigationBar extends StatelessWidget { const NavigationBar({Key key}) : super(key: key); @override Widget build(BuildContext context) { return Scaffold(bottomNavigationBar: Get.find(); RxInt currentIndex =..
[Flutter] flutter 설치 및 세팅하기(mac 버전) 아래에 있는 링크에서 Flutter SDK를 다운로드 받는다. https://storage.googleapis.com/flutter_infra/releases/stable/macos/flutter_macos_2.0.6-stable.zip 플루터 공식문서 설치 메뉴얼에서 Flutter SDK 링크의 위의 파란 버튼이 있다. 버튼을 눌러주면 다운로드 폴더에 자동으로 다운로드된다. 다운로드 폴더에 zip파일을 다운된 상태에서 Flutter SDK를 설치하고 싶은 폴더에 sdk를 unzip하므로 실제 설치하는 폴더가 자신이 지정할 수 있다. 2. Flutter SDK를 설치하고 싶은 폴더를 정한다. 3. Flutter SDK를 설치하고 싶은 폴더로 이동한다. 터미널을 먼저 켜 주고 설치하고 싶은 폴더로 터미널에..
[Flutter] flutter 프로젝트 새로 생성하기 플루터 프로젝트를 만드는 아주 쉬운 방법 터미널을 켠다. 터미널에서 플루터 프로젝트가 위치할 폴더로 이동한다. cd 프로젝트가 위치할 폴더명cd folder_name 2. 플루터 프로젝트에 새로운 이름을 짓고 앞에 flutter create을 붙여준다. flutter create 프로젝트 이름flutter create myapp 이 한마디의 명령어에 새로 지어진 프로젝트 이름의 폴더가 생기면서 순식간에 새로운 플루터 프로젝트가 만들어진다. Running "flutter pub get" in myapp... 3.1sWrote 76 files.All done![✓] Flutter: is fully installed. (Channel dev, 1.20.0-0.0.pre, on Mac OS X10.14.5 18..