본문 바로가기
알아두면 좋은것들

02.01 (TIL)

by 오랑이귀엽다 2024. 2. 1.
  1. 가비지 컬렉터 회피 전략
    • 핵심: 관리되는 리소스 사용 최소화 및 효율적 관리로 가비지 컬렉터 회피.
    • 객체를 필요 이상으로 생성하지 않고, 사용이 끝난 객체는 즉시 참조를 해제합니다. 또한, 대규모 객체 대신 작은 객체를 사용하고, 장기간 지속되는 객체는 풀링(pooling) 기법을 사용하여 관리합니다. 불필요한 박싱/언박싱을 피하고, 비관리형 리소스를 사용하는 경우에는 적절히 해제하는 것이 중요합니다.
  2. 가비지 컬렉션(Garbage Collection)
    • 핵심: 가비지 컬렉션은 자동으로 메모리를 관리합니다.
    • 프로그램이 동적으로 할당한 메모리 영역 중 사용하지 않는 부분을 자동으로 탐지하여 해제하는 시스템입니다. 이 과정은 메모리 누수를 방지하고 프로그램의 안정성을 높이지만, 때때로 성능 저하의 원인이 될 수 있습니다.
  3. 박싱(Boxing)과 언박싱(Unboxing)
    • 핵심: 박싱은 값 형식을 참조 형식으로, 언박싱은 그 반대로 변환합니다.
    • 박싱은 값 형식(예: int)을 참조 형식으로 변환하는 과정이며, 언박싱은 참조 형식을 다시 값 형식으로 변환하는 과정입니다. 이는 CLR(Common Language Runtime)에서 자동으로 수행됩니다.
    • 주의점: 박싱과 언박싱은 성능 저하를 일으킬 수 있으므로 불필요한 사용을 피해야 합니다.
  4. 배열, List, ArrayList, Dictionary의 차이
    • 핵심: 각 자료구조는 특성과 사용 용도에 차이가 있습니다.
    • 배열은 고정된 크기의 동일한 타입의 요소를 순차적으로 저장합니다. List와 ArrayList는 유사하지만, List는 제네릭을 지원하여 타입 안전성을 제공합니다. ArrayList는 제네릭을 지원하지 않습니다. Dictionary는 키-값 쌍을 저장하며, 빠른 검색을 위해 해시 테이블을 사용합니다.
    • Dictionary 구현: Dictionary<TKey, TValue> 형태로, 키와 값을 제네릭 타입으로 지정하여 구현합니다.
    • Dictionary의 빠른 검색: 키의 해시 코드를 사용하여 데이터를 저장하고 검색하므로, 평균적으로 빠른 검색 시간을 제공합니다.
  5. 제네릭(Generic)
    • 핵심: 제네릭은 타입 안전성과 재사용성을 높이는 프로그래밍 기법입니다.
    • 제네릭을 사용하면 다양한 타입에 대해 동일한 코드를 사용할 수 있습니다. 이는 코드 중복을 줄이고 타입 안전성을 높여, 실행 시간에 타입 오류를 방지하는 데 도움을 줍니다. 예를 들어, 제네릭 리스트 List<T>는 어떤 타입의 요소도 저장할 수 있지만, 해당 타입에 대해서만 작동합니다.

'알아두면 좋은것들' 카테고리의 다른 글

02.05 (TIL)  (0) 2024.02.05
02.02 (TIL)  (0) 2024.02.02
01.31 (TIL)  (0) 2024.01.31
class에 대해서  (0) 2023.10.27
객체에 대해서  (0) 2023.10.27