뜯어본 것공개

유니티 최근 업데이트

일주일 치를 정직하게 그으니 릴리스 5건이 전부였습니다. 그런데 그 안에 기능 추가가 아니라 이사가 들어 있었습니다.

breaking 188

“이번 주 뉴스”를 정직하게 그었더니 릴리스 빌드 5건이 전부였습니다. 발표도 키노트도 그 창 안에 없었습니다. 그런데 버전 번호만 보면 「베타 빌드 두 개 나왔네」로 끝날 것을 열어 보니, 안에 엔진 구조를 갈아치우는 공사가 들어 있었습니다. 깨지는 변경 188건. 이건 “새 기능 써볼까” 가 아니라 “내 코드가 컴파일이나 되나” 를 물어야 하는 규모입니다.

사흘 동안 네 트랙에서 빌드 다섯 개 — 병행 유지 구조가 그대로 보인다 장기 지원 유지보수 패치 안전 정식 안정화 패치 25건 지금 쓸 것 베타 — 이번 주 알맹이 식별자 전면 교체 공사 프로덕션 금지 알파 차기 런타임 선발대 실험만 ⇒ 이번 주는 "발표 주"가 아니라 "굴러가는 주"였다 — 그리고 그게 정보다 네 트랙을 동시에 굴린다는 사실 자체가, 어느 버전에 서 있어야 하는지를 결정한다 ⚠ 기간을 늘려 "최근 소식"으로 묶으면 이 구조가 안 보인다 — 큰 뉴스가 작은 사실을 덮는다
다섯 건을 나열하는 것으로는 의미가 안 나온다. 네 트랙이라는 배치를 봐야 어디에 서야 할지가 나온다.

무엇이 있었나

기간을 먼저 정직하게 그은 게 이 자료의 시작입니다. 요청은 “최근 1주일” 이었고, 그 창 안에 실제로 일어난 일은 릴리스 빌드 5건이 전부였습니다. 발표나 키노트 같은 큰 뉴스는 그 창 밖에 있었습니다.

그래서 둘로 나눠 적혀 있습니다 — 기간 안에 실제로 나온 것, 그리고 그걸 이해하는 데 필요한 직전 맥락을 따로. 기간을 늘려서 큰 뉴스를 끌어오지 않았습니다.

사흘 동안 네 트랙에서 빌드 다섯 개가 나왔습니다. 장기 지원 · 정식 · 베타 · 알파를 동시에 굴리는 구조가 그대로 드러납니다.

대표 변화 — 기능 추가가 아니라 이사다

엔진 전반에서 객체 식별자를 체계적으로 갈아치우는 중입니다. 애니메이션·물리·그래픽스 등 수백 개 API가 영향을 받고, 베타 기준 깨지는 변경이 188건 쌓였습니다.

왜 하느냐가 중요합니다 — 엔티티 기반 워크플로와 기존 오브젝트 워크플로를 하나로 합치는 기반 공사입니다. 엔티티 개념을 엔진 전체의 공용 식별자로 끌어올리는 것이 목적입니다. 그래서 이 버전은 기능 추가 버전이 아니라 이사 버전입니다.

그 옆에 오래 기다린 기능이 하나 들어옵니다. 사전 자료구조 직렬화가 내장됩니다. 지금까지는 콜백이나 커스텀 래퍼, 서드파티 에셋에 의존해야 했던 부분입니다.

항목 내용
대상 선언 타입이 정확히 그것이어야 한다 — 상속·래핑은 안 된다
방식 옵트인. 직렬화할 필드마다 표시를 붙여야 한다
인스펙터 전용 2컬럼 뷰(키 / 값)
중복 키 편집 중에는 임시 허용하고, 중복 행마다 아이콘과 안내를 띄운다

그리고 엔티티 패키지 전체가 코어로 들어옵니다. 엔진 릴리스와 버전이 같이 가게 되어 별도 버전 관리가 사라집니다. 대신 매니지드 컴포넌트가 폐기 수순이라 클래스 기반 컴포넌트를 구조체로 바꿔야 합니다 — 이쪽도 파괴적 변경입니다.

깨본 결과

“188건”이 무엇의 수인지 봐야 합니다. 이건 베타 트랙 누적치이고, 정식으로 풀릴 때 그대로 남아 있을지는 알 수 없습니다. 지금 정식 버전을 쓰는 사람에게는 오늘 해당되는 숫자가 아닙니다.

사전 직렬화도 조건이 빡빡합니다. 선언 타입이 정확해야 하고 상속이나 래핑이 안 됩니다. 기존 프로젝트가 대개 래퍼를 거쳐 쓰고 있을 텐데, 그 래퍼를 걷어내는 작업이 먼저입니다. “드디어 내장됐다”“내일부터 쓸 수 있다” 사이에 그 일이 있습니다.

그리고 이 자료 자체의 성격이 다른 편들과 다릅니다. 뜯을 대상이 레포도 영상도 아니라 릴리스 노트입니다. 깨볼 주장이 별로 없고, 있는 건 “이번 주는 조용했다” 를 인정한 것 정도입니다. ⚠ 그래서 이 편은 판정보다 위치 확인에 가깝습니다.

다섯 건 중 오늘 나에게 해당되는 것 정식 안정화 패치 오늘 해당 — 유일하다 깨지는 변경 188건 베타 누적치 — 정식에 그대로 남을지 모른다 사전 직렬화 내장 기다리던 것 — 단 래퍼 제거가 선행이다 엔티티 워크플로 통합 해당 없음 — 내 게임 규모가 필요로 하지 않는다 차기 런타임 알파 실험만 ⇒ 다섯 중 넷은 "언젠가"이지 "지금"이 아니다 — 그걸 아는 게 이 자료의 값어치다 그리고 이사 버전이라는 걸 미리 알면 올릴 시점이 달라진다 — 개발 중반이 아니라 한 덩어리가 끝난 뒤 ⚠ "188건"은 베타 트랙 누적치다. 지금 정식을 쓰는 사람에게 오늘 해당되는 숫자가 아니다
릴리스 노트를 읽는 일은 "무엇이 나왔나"가 아니라 "그중 무엇이 지금 나에게 오나"를 가르는 일이다.

내 환경에 대봤다

저는 정식 트랙에 서 있어야 합니다. 베타는 프로덕션 금지이고, 제 게임은 만드는 중이라 엔진이 흔들리면 안 됩니다. 이번 주 릴리스 중 제게 해당하는 건 정식 안정화 패치 하나입니다.

이사 버전을 미리 아는 게 이 자료의 값어치입니다. 언젠가 올려야 할 텐데, 그게 기능 추가가 아니라 대공사라는 걸 알면 올릴 시점을 다르게 잡습니다 — 개발 중반이 아니라 한 덩어리가 끝난 뒤로.

사전 직렬화는 실제로 기다리던 것입니다. 제 프로젝트에도 래퍼가 들어가 있고, 걷어낼 수 있으면 코드가 줄어듭니다. ⚠ 다만 정식으로 풀린 뒤의 얘기이고, 래퍼를 먼저 걷어내야 합니다.

판정

무엇 판정
지금 서 있을 트랙 정식 유지. 베타는 프로덕션 금지
이사 버전 대비 채택 — 시점 규칙으로. 올린다면 개발 중반이 아니라 한 덩어리가 끝난 뒤
사전 직렬화 대기. 정식 이후 + 래퍼 제거가 선행
엔티티 워크플로 해당 없음. 제 게임 규모가 그걸 필요로 하지 않는다
“188건” 인용 한정 필요. 베타 누적치이고 정식에 그대로 남을지 모른다

이 편에서 값을 치른 교훈은 자료 쪽이 아니라 읽는 법입니다 — 기간을 정직하게 그으면 「조용한 주」가 그 자체로 정보가 됩니다. 다섯 건뿐이라는 사실이, 네 트랙을 동시에 굴리고 있다는 구조를 오히려 선명하게 보여줬습니다.

그리고 ⚠ 버전 번호로는 대공사가 안 보입니다. “베타 빌드 두 개”“깨지는 변경 188건” 은 같은 사건인데, 앞의 표현만 보고 넘기면 나중에 올릴 때 그 188건을 처음 만납니다.