HTTP와 HTTPS는 웹 브라우저와 웹 서버 상호 간의 데이터 통신을 위한 응용계층 프로토콜.
이 둘의 차이점은 보안으로, HTTPS는 HTTP에 데이터 암호화가 추가된 프로토콜.
사용자가 웹 사이트를 방문하게 되면 사용자의 웹 브라우저는 웹 서버에 HTTP 요청을 전송하고 웹 서버는 HTTP 응답으로 응답.
이때 HTTP의 문제점은 서버에서 브라우저로 전송되는 정보가 암호화되지 않음.
이렇게 암호화되지 않은 데이터는 중간에 누군가에 의해 가로채거나 변경될 가능성이 있어 보안에 취약.
이러한 HTTP의 문제점 해결을 위해, SSL(Secure Socket Layer) 인증서를 사용하는 HTTPS를 사용하게 됨.
SSL(또는 TLS) 인증서는 일반 HTTP 요청 및 응답을 암호화.
즉, HTTPS는 중간에서 데이터를 감청하거나 변조하는 공격을 방지하고 데이터를 제3자로부터 보호하기에 더 안전한 보안용 프로토콜이라 할 수 있음.
라이프사이클(Lifecycle)이란 객체나 컴포넌트가 실행, 업데이트, 제거되는 과정을 의미.
라이프사이클은 주로 소프트웨어, 프로그래밍, 웹 애플리케이션 개발 등 다양한 분야에서 사용되는 개념.
리액트 컴포넌트는 생성(Mounting) -> 업데이트(Updating) -> 제거(Unmounting)라는 라이프사이클이 존재하며, 이 시점에 자동으로 호출되는 메서드가 라이프사이클 메서드.
클래스 컴포넌트는 라이프 사이클 메소드를 활용하고, 함수 컴포넌트는 Hook을 사용.
우선 마운트(Mount) 단계에는 constructor 메서드가 마운트되기 전에 호출.
그리고 render() 메서드가 UI를 렌더링.
그 후 컴포넌트가 마운트된 직후 componentDidMount() 메서드가 한 번만 호출되며, 이 시점에서 DOM 조작과 비동기 작업 처리.
업데이트가 일어나는 상황
- Props가 바뀔 때
- State가 바뀔 때
- 부모 컴포넌트가 리렌더링 될 때
- this.forceUpdate로 강제로 렌더링을 trigger할 때
다음으로 업데이트(Update) 단계에서는 컴포넌트가 리렌더링 할지 말지를 결정하는 메서드로 주로 최적화할 때 사용하는 shouldComponentUpdate() 메서드.
그리고 getSnapShotBeforeUpdate() 메서드는 업데이트 되기 직전에 snapshot(props & states)을 확보하며, render에서 만들어진 결과가 브라우저에 실제로 반영되기 직전에 호출.
또한 컴포넌트의 업데이트가 완료된 직후에 호출되는 componentDidUpdate() 메서드는 이전의 프롭스와 상태를 통해 이전 상태와 비교하고, 필요한 업데이트 작업을 수행.
마지막으로 언마운트(UnMount) 단계에서는 컴포넌트가 언마운트되기 직전에 componentWillUnmount() 메서드를 호출.
주로 이벤트 리스너의 해제나 타이머의 제거, DOM 요소를 정리 작업을 수행.
컴포넌트가 언마운트되고 나면 절대로 다시 마운트되지 않음.
React Life Cycle이란? (react life cycle method와 hooks!)
[React] 리액트 라이프 사이클
자주 자주 업데이트 부탁드립니다.