
자바스크립트에서 값, 변수, 함수 등은 스코프에 따라 생애주기를 갖는다.
스코프에는 전역스코프, 지역스코프, 블록스코프가 있다.
프로그램의 생애 주기와 동일한 스코프
브라우저가 HTML을 로딩한 후 페이를 벗어나 새로고침 할 때까지의 주기를 가진다.
전역스코프 이외에 생성된 스코프
함수가 호출되는 즉시 함수 스코프가 생성
함수 안에서 생성된 모든 변수들은(인수 포함) 함수가 실행되는 순간에 생성되며 함수가 종료되는 순간 함수와 함께 제거됩니다.
if, whie, for등의 코드 블록으로 스코프를 생성
블록 내에서 변수를 만들 때 var로 만든다면 상위의 함수 스코프에 변수가 만들어진다.
블록 스코프에 변수를 만들기 위해서는 let, const를 사용해야 한다.
지역 스코프에서 생성된 변수는 스코프가 소멸될 때 함께 소멸됩니다.
예외적으로는 함수는 생성시점에 참조 가능한 알려진 변수들을 캡처하는능력을 가진다. 이렇게 캡처된 지역을 클로저라 한다.
함수 내에서 함수가 생성되어 리턴 값으로 반환될 때 생성된 함수에 캡쳐된 클로저 영역은 해당 함수 내에서만 접근 가능한 특별한 공간이 된다.
리액트는 컴포넌트 단위로 개발하는데 각 컴포넌트들은 생명주기를 가지고 있다.
생명주기는 생성, 업데이트, 소멸의 과정을 거친다.
클래스형 컴포넌트: 주로 생명주기 메서드를 통해 라이프사이클에 따라 컴포넌트를 조작. 마운트(생성), 업데이트(갱신), 언마운트(제거) 각 단계마다 메서드가 존재한다.
함수형 컴포넌트: 생명주기 메서드가 따로 존재하지 않기 때문에 리액트 HOOK을 사용하여 생명주기 메서드와 비슷하게 동작하도록 구현한다.
useRef, useState ⇒ 렌더링할때, useEffect ⇒ 렌더링 직후prop, state 를 useEffect deps로 설정useEffect 에 callback을 return 해서 사용요구사항 분석 -> 설계 -> 구현 -> 테스트 -> 유지보수
폭포수 모델 / 프로토타이핑 모델 / 나선형 모델 / 반복적 모델
폭포수 모델 (Waterfall Model):
소프트웨어 개발 시, 각 단계를 확실하게 마무리 지은 후에 다음 단계로 넘어가는 모델
프로토타이핑 모델 (Prototyping Model) :
고객이 요구한 주요 기능을 프로토타입으로 구현하여, 고객의 피드백을 반영하여 소프트웨어를 만들어가는 모델
나선형 모델(Spiral Model) :
시스템 개발 시, 위험을 최소화하기 위해 점진적으로 완벽한 시스템으로 개발해 나가는 모델
반복적 모델(Iteration Model) :
구축대상을 나누어 병렬적으로 개발 후 통합하거나, 반복적으로 개발하여 점증 완성시키는 모델