본문 바로가기
728x90

Backend_Development2

[PYTHON] 객체 생성의 비밀 2단계 : __new__와 __init__의 실행 순서 및 활용 방법 차이 해결 파이썬에서 클래스를 정의하고 인스턴스를 생성할 때, 대부분의 개발자는 __init__ 메서드가 가장 먼저 호출된다고 생각합니다. 하지만 파이썬의 객체 생성 매커니즘은 생각보다 정교하며, 실제로는 생성(Construction)과 초기화(Initialization)라는 두 가지 명확한 단계로 나뉩니다. 이 과정을 이해하는 것은 싱글톤 패턴 구현, 불변 객체(Immutable Object) 커스텀, 또는 메타프로그래밍을 다루는 시니어 개발자에게 필수적인 지식입니다. 본 글에서는 __new__와 __init__의 내부 동작 차이를 완벽하게 분석합니다.1. 객체 생성의 타임라인: 누가 먼저인가?파이썬에서 obj = MyClass()를 실행하면 내부적으로 두 개의 매직 메서드가 순차적으로 호출됩니다. 첫 번째는 메.. 2026. 3. 3.
[JAVA] Generic의 Type Erasure란 무엇인가? 컴파일 타임의 마법과 런타임의 진실 자바 5(Java 5)에서 제네릭(Generic)이 도입되었을 때, 이는 혁명적인 변화였습니다. 코드의 재사용성을 높이고 컴파일 시점에 강력한 타입 체크를 가능하게 했기 때문입니다. 하지만 많은 자바 개발자가 간과하는 사실이 하나 있습니다. 우리가 코드에 정성껏 작성한 나 같은 타입 정보가 컴파일이 끝난 뒤에는 바이트코드에서 흔적도 없이 사라진다는 점입니다. 오늘은 이 현상인 Type Erasure(타입 소거)의 본질과 자바가 왜 이런 방식을 택했는지, 그리고 이로 인해 발생하는 제약 사항들을 심층적으로 파헤쳐 보겠습니다.1. Type Erasure(타입 소거)란 무엇인가?Type Erasure는 자바 컴파일러가 제네릭 타입을 처리하는 방식입니다. 컴파일러는 컴파일 시점에만 제네릭 타입 정보를 사용하여.. 2026. 1. 26.
728x90