Life Cycle(JS, React, Software)

Jnns·2024년 2월 19일
2
post-thumbnail

📌 자바스크립트의 라이프사이클

자바스크립트에서 값, 변수, 함수 등은 스코프에 따라 생애주기를 갖는다.
스코프에는 전역스코프, 지역스코프, 블록스코프가 있다.

👉 전역 스코프

프로그램의 생애 주기와 동일한 스코프
브라우저가 HTML을 로딩한 후 페이를 벗어나 새로고침 할 때까지의 주기를 가진다.

👉 지역 스코프

전역스코프 이외에 생성된 스코프

  • 함수 스코프

    함수가 호출되는 즉시 함수 스코프가 생성
    함수 안에서 생성된 모든 변수들은(인수 포함) 함수가 실행되는 순간에 생성되며 함수가 종료되는 순간 함수와 함께 제거됩니다.

  • 블록 스코프

    if, whie, for등의 코드 블록으로 스코프를 생성
    블록 내에서 변수를 만들 때 var로 만든다면 상위의 함수 스코프에 변수가 만들어진다.
    블록 스코프에 변수를 만들기 위해서는 let, const를 사용해야 한다.

  • 클로저

    지역 스코프에서 생성된 변수는 스코프가 소멸될 때 함께 소멸됩니다.
    예외적으로는 함수는 생성시점에 참조 가능한 알려진 변수들을 캡처하는능력을 가진다. 이렇게 캡처된 지역을 클로저라 한다.
    함수 내에서 함수가 생성되어 리턴 값으로 반환될 때 생성된 함수에 캡쳐된 클로저 영역은 해당 함수 내에서만 접근 가능한 특별한 공간이 된다.


📌 리액트의 라이프사이클

리액트는 컴포넌트 단위로 개발하는데 각 컴포넌트들은 생명주기를 가지고 있다.
생명주기는 생성, 업데이트, 소멸의 과정을 거친다.

  • 클래스형 컴포넌트: 주로 생명주기 메서드를 통해 라이프사이클에 따라 컴포넌트를 조작. 마운트(생성), 업데이트(갱신), 언마운트(제거) 각 단계마다 메서드가 존재한다.

  • 함수형 컴포넌트: 생명주기 메서드가 따로 존재하지 않기 때문에 리액트 HOOK을 사용하여 생명주기 메서드와 비슷하게 동작하도록 구현한다.

    • 마운트: useRef, useState ⇒ 렌더링할때, useEffect ⇒ 렌더링 직후
    • 업데이트: 변화 감지를 원하는 prop, stateuseEffect deps로 설정
    • 언마운트: useEffect 에 callback을 return 해서 사용

📌 소프트웨어 라이프사이클

요구사항 분석 -> 설계 -> 구현 -> 테스트 -> 유지보수
폭포수 모델 / 프로토타이핑 모델 / 나선형 모델 / 반복적 모델

  • 폭포수 모델 (Waterfall Model):

    소프트웨어 개발 시, 각 단계를 확실하게 마무리 지은 후에 다음 단계로 넘어가는 모델

  • 프로토타이핑 모델 (Prototyping Model) :

    고객이 요구한 주요 기능을 프로토타입으로 구현하여, 고객의 피드백을 반영하여 소프트웨어를 만들어가는 모델

  • 나선형 모델(Spiral Model) :

    시스템 개발 시, 위험을 최소화하기 위해 점진적으로 완벽한 시스템으로 개발해 나가는 모델

  • 반복적 모델(Iteration Model) :

    구축대상을 나누어 병렬적으로 개발 후 통합하거나, 반복적으로 개발하여 점증 완성시키는 모델

출처: https://chobopark.tistory.com/222

0개의 댓글