전체 글

전체 글

    TypeORM의 Entity Listener 데코레이터: @BeforeInsert 등 자동 실행

    TypeORM의 Entity Listener 데코레이터: @BeforeInsert 등 자동 실행

    TypeORM Entity Listener 데코레이터▫️엔티티의 생명주기(Lifecycle) 에 특정 작업을 자동 실행하는 데코레이터 데코레이터설명@BeforeInsert ➕데이터 저장(INSERT) 전 실행@AfterInsert ✅데이터 저장 후 실행@BeforeUpdate ✏️데이터 수정(UPDATE) 전 실행@AfterUpdate 🔄데이터 수정 후 실행@BeforeRemove 🗑️데이터 삭제(DELETE) 전 실행@AfterRemove ❌데이터 삭제 후 실행@AfterLoad 📥데이터 조회(LOAD) 후 실행 Entity Listener는 엔티티의 생성, 수정, 삭제, 조회 등 특정 시점에 원하는 로직을 자동으로 실행하는 데코레이터이다.

    NestJS GraphQL의 DTO 유틸리티 타입(Utility Type) : PickType과 PartialType 등

    NestJS GraphQL의 DTO 유틸리티 타입(Utility Type) : PickType과 PartialType 등

    🛠 NestJS GraphQL DTO 유틸리티 타입(Utility Type)DTO를 재사용하여 새로운 DTO를 쉽게 만드는 기능🎯 PickType → 필요한 필드만 선택🚫 OmitType → 특정 필드 제외✏️ PartialType → 모든 필드를 Optional로 변경➕ IntersectionType → 여러 DTO를 하나로 합치기주의 : 수정(Update) DTO는 PartialType 사용하기 (PickType만 사용시 주의해야함)▫️ PickType만 사용하면 선택한 필드가 필수(required) 가 된다.▫️ 따라서 수정(Update) DTO는 PartialType을 사용하여 필요한 필드만 선택적으로 수정할 수 있도록 만든다. 유틸리티 타입설명예시PickType 🎯기존 DTO에서 필요..

    메모리와 포인터

    메모리와 포인터

    ✨ 1. 메모리와 주소 메모리 = 데이터를 저장하는 공간메모리 셀의 연속과 같음셀의 크기 1바이트고유한 주소가 있음변수를 선언만 해도 메모리 영역을 예약한다. 메모리 주소 = 데이터가 저장된 위치(주소)사용하는 메모리 주소의 첫번째다른 값을 넣어도 주소는 변하지 않는다. ✨ 2. 포인터 포인터 = 메모리 주소를 담는 타입 메모리 동적 할당데이터 복사하지 않고 함수 매개 변수를 사용클래스 및 구조체 연결 포인터 크기OS에 따라 값이 고정 됨 ✨ 3. 역참조 연산자포인터가 저장하고 있는 메모리 주소의 실제 값에 접근하는 연산자.int num = 10;int* ptr = # int* : 포인터/ &num : 메모리 주소값printf("%d", *ptr); // 10 *ptr : 역참조연산자_메모리..

    프로세스의 메모리 구조

    프로세스의 메모리 구조

    🧠 운영체제는 프로세스에 적잘한 메모리를 할당하는데 다음 구조를 기반으로 할당한다.1. Stack 2. Heap 3. Data segment 4. BSS segment 5. text/code segment[동적 할당]런타임 단계에서 메모리 할당 Stack - 자동 할당 지역변수, 매개변수, 반환주소 예시) int a = 10; Heap - 동적 할당 동적으로 할당한 객체, 배열 malloc (), new, new[] [정적 할당]컴파일 단계에서 메모리 할당 Data segment - 전역 또는 static, const로 선언 + 0이 아닌 값으로 초기화 BSS segment - 전역 또는 static, const로 선언 + 0으로 초기화 전역 - 또는 static, const로 선언 (어떠한 값으로도..