참조 카운트 증감의 메모리 순서와 객체 데이터를 처음 공개하는 메모리 순서는 왜 따로 설계해야 하나요?
꼬리 질문을 독립 문항으로 확장했습니다. 원래 문항에서 맥락 보기 →
잠깐, 답변을 보기 전에
먼저 내 말로 설명해 볼까요?
답변과 점검 포인트 펼치기답변 접기
01
구두 답변
정의를 외우기보다, 원리와 조건을 연결해 설명해 보세요.
새 참조를 얻는 증가는 이미 유효한 소유권을 가진 상태에서 수를 늘리는 경우와 객체 최초 공개가 다릅니다. 감소가 마지막 참조를 없애면 이전 쓰기가 소멸·회수 경로에 보이도록 적절한 순서가 필요합니다.
구현에 따라 증가 relaxed, 감소 release와 마지막 acquire fence 같은 패턴을 쓰지만 증명된 소유·동기화 전제를 따라야 합니다. raw pointer에서 수만 증가시키면 이미 해제된 객체를 부활시킬 수 없습니다. 참조 계수 보호와 객체 필드 동시성은 별도로 설계합니다.
02
득점 포인트
이해가 드러나는 지점을 확인해 보세요.
- 새 참조를 얻는 증가는 이미 유효한 소유권을 가진 상태에서 수를 늘리는 경우와 객체 최초 공개가 다릅니다. 감소가 마지막 참조를 없애면 이전 쓰기가 소멸·회수 경로에 보이도록 적절한 순서가 필요합니다.
- 참조 계수 보호와 객체 필드 동시성은 별도로 설계합니다.
03
감점 포인트
놓치기 쉬운 조건과 오해를 짚어 보세요.
- 다음 핵심 구분을 반대로 설명하거나 성립 조건을 생략한다: 새 참조를 얻는 증가는 이미 유효한 소유권을 가진 상태에서 수를 늘리는 경우와 객체 최초 공개가 다릅니다.
04
더 파고들 거리
하나 더 질문하며 이해의 범위를 넓혀 보세요.
득점·감점 포인트는 학습용 자기 점검 기준이며, 특정 회사의 실제 채점표가 아닙니다.
원리부터 공부하고 싶다면
답변을 보충하는 개념·예제·슈도코드를 읽어 보세요.