소프트웨어 개발 코드에서 라이프사이클은, 주로 객체나 컴포넌트가 생성되고 소멸될 때까지 거치는 일련의 단계들을 의미한다. 이를 통해 각 객체 또는 컴포넌트의 상태 변화를 체계적으로 관리하고, 메모리 누수나 불필요한 자원 소모를 방지할 수 있다. 프레임워크(React, Android, Spring 등)나 객체 지향 프로그래밍 등 다양한 소프트웨어 개발에서 중요한 역할을 하는 개념.
객체는 생성, 사용, 소멸의 단계를 거친다.
🖥️ java
MyClass obj = new MyClass(); // 객체 생성
🖥️ java
obj.doSomething();
🖥️ java
delete obj; // C++에서 명시적 소멸
React 같은 프레임워크에서는, 컴포넌트가 화면에 등장하고 사라질 때의 라이프사이클을 관리한다.
componentDidMount()
🖥️ javascript
useEffect(() => {
console.log("컴포넌트가 마운트되었습니다!");
}, []);
componentDidUpdate()
🖥️ javascript
useEffect(() => {
console.log("컴포넌트가 업데이트되었습니다!");
}, []);
componentWillUnmount() 🖥️ javascript
useEffect(() => {
return () => {
console.log("컴포넌트가 언마운트되었습니다!");
}
}, []);
Android 앱에서는 액티비티(Activity)의 라이프사이클을 관리해야 한다.
🖥️ java
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.d("Lifecycle", "onCreate 호출됨");
}
Spring에서는 빈(Bean) 객체의 라이프사이클이 중요하다.
🖥️ java
@PostConstruct
public void init() {
System.out.println("초기화 메서드 실행");
}
@PreDestroy
public void destroy() {
System.out.println("소멸 메서드 실행");
}
➡️ 소프트웨어 개발 코드에서 라이프사이클이란
객체, 컴포넌트, 혹은 프로그램의 생성부터 종료까지의 흐름을 뜻한다.
이에 대한 이해는 자원을 효율적으로 관리하고 성능 문제를 예방하는 데 도움을 준다. 프레임워크마다 특화된 라이프사이클 관리 방법이 있지만, 궁극적 목적은 동일. 올바른 시점에 객체나 컴포넌트를 생성하고 적절히 해제해 프로그램의 효율성을 극대화하는 것이다.