글.
만들면서 알게 된 것들을 적어 둡니다.
iOS와 소프트웨어, 그리고 덜어내는 일에 대한 기술 노트와 짧은 생각. 부산에서.
기장 연화리 해녀촌, 3만 원짜리 해물모듬 소의 구성이 훌륭했어요
가족이 쉬는 날에 연화리 해녀촌의 만성아줌마에서 창가에 앉아 먹었어요. 해물모듬 소는 30,000원에 구성이 아주 좋았고, 솥단지 전복죽을 2인분 시켰어요. 카드는 안 돼요.

수영 에이콘에서 요이치 한 잔, 부드럽게 하루를 마무리했어요
탄수호에서 나와 세 번째 자리로 간 위스키바예요. 일본 위스키 요이치 싱글몰트를 한 잔 마셨는데 부드러웠어요. 사장님과 이야기를 나누다가 집에 갔어요.

기장 카페 824의 망고 빙수, 바다 보이는 테라스에서 먹었어요
기장해녀촌에서 해산물을 먹고 가족과 옮겨 간 바닷가 카페예요. 테라스 자리에서 바다를 보며 2인용 시그니처 망고 빙수를 먹었어요. 한 달쯤 뒤에 친구와 다시 갔어요.

망미 탄수호의 묵은지 김밥, 음식도 공간도 깔끔했어요
이조숯불갈비에서 나와 2차로 간 한식 술집이에요. 줄이 길 것 같았는데 운 좋게 바로 들어갔어요. 묵은지 김밥이 깔끔했고 실내 분위기도 좋았어요.

망미중앙시장 이조숯불갈비, 야장에서 싸게 굽는 생삼겹살이 좋았어요
같이 간 동생의 제안으로 망미중앙시장의 야외 자리에서 생삼겹살을 구웠어요. 130g에 9,000원이고, 밖에서 구우니 연기 걱정이 덜했어요. 직원분들이 친절했어요.

부산대 양양양꼬치의 꼬치+훠궈 무한리필, 값에 비해 먹을 만했어요
마라탕과 양꼬치가 먹고 싶다는 친구가 찾아낸 부산대 앞 가게예요. 1인 24,000원에 꼬치와 훠궈를 마음껏 먹었어요. 맛은 기대를 낮췄던 것에 비해 괜찮았어요.

광안리 바 조셉, 촛불 켜진 바 자리에서 맥캘란 12를 마셨어요
야수무에서 나와 친구와 세 번째로 들른 곳이에요. 제가 광안리에 오면 찾게 되는 바예요. 저는 맥캘란 12를, 술을 마시지 않는 친구는 무알콜 칵테일을 골랐어요.

이자카야 야수무 광안점의 반반 한상, 맛있고 값도 좋았어요
두루미에서 먹고 해변을 걸은 뒤 2차로 간 이자카야예요. 육 사시미와 연어 사시미가 함께 나오는 37,000원짜리 반반 한상을 시켰는데, 배가 불러서 많이 먹지는 못했어요.

두루미 광안점의 오겹살과 볶음밥, 줄을 설 만한 맛이었어요
친구와 이날의 첫 자리로 간 돼지고깃집이에요. 직원분이 설명하면서 직접 구워 줬고, 제주 특상 오겹살과 황제갈비살을 먹은 뒤 볶음밥으로 마무리했어요.

수영 위스키바 에이콘, 처음이어도 편하게 마실 수 있었어요
지인의 추천으로 친구와 2차로 간 수영의 작은 위스키바예요. 저는 올드패션드를, 친구는 부나하벤 12년을 마셨어요. 사장님이 친절하고 유쾌해서 위스키를 잘 몰라도 편했어요.

수영 백수농원의 한돈 삼겹살, 가볍게 들르기에 무난해요
친한 동생이 가자고 해서 수영의 고깃집에서 삼겹살만 먹고 일어났어요. 130g에 11,500원인 한돈 삼겹살은 고기도 응대도 무난했고, 홀이 커서 기다린 적이 드물어요.

동래 미친막창의 A 세트, 잡내가 덜해서 편하게 먹었어요
퇴근한 대학 친구와 새로 생긴 듯한 막창집에 들어가 봤어요. 소금막창과 양념막창이 나오는 A 세트를 먹고 돼지껍데기로 마무리했어요. 잡내가 덜했어요.

칼맛나는푸짐한횟집, 벤자리가 떨어져 돗벤자리를 먹는 행운
20년 가까이 다닌 부산대 앞 횟집이에요. 시마아지와 벤자리를 섞어 달라고 했는데 벤자리가 떨어져서, 더 비싼 돗벤자리를 추가 비용 없이 받았어요.

동래 온달집의 부추 숯불 닭구이, 소주에 곁들이기 좋아요
퇴근한 친구와 늘 가던 동래의 숯불 닭구이집에서 만났어요. 평소처럼 14,000원짜리 부추 숯불 닭구이를 시키고 둘이서 참이슬 두 병을 마셨어요.

만덕 박용채의대박터진돈까스, 양은 많고 값은 예전 같지 않아요
만덕시장 골목에 있을 때부터 알던 경양식 돈까스집이에요. 양이 넉넉하고 수제비가 같이 나와요. 맛으로 찾아갈 정도는 아니고, 옮긴 뒤로 값이 많이 올랐어요.

전포 니나노의 필승조합 세트, 친구가 꼽은 것은 묵은지참치김밥
팔딱팔딱횟집에서 나와 친구들과 2차로 간 술집이에요. 묵은지참치김밥, 수육카츠, 콘치즈불닭을 묶은 필승조합 세트를 47,000원에 시켰어요. 친구는 그중에서 김밥을 가장 맛있다고 했어요.

수영 자갈치횟집의 모둠회코스, 구성은 좋고 줄이 짧을 때 가요
오랜만에 다시 간 수영의 횟집이에요. 1인 35,000원인 모둠회코스는 회와 밑반찬 구성이 좋았어요. 줄이 길면 근처 다른 횟집으로 가는 편이 낫다고 생각해요.

청사포 수민이네의 조개모듬, 직원분이 다 구워 줘서 편했어요
가족과 광안리에 갔다가 청사포까지 넘어가 조개모듬을 먹었어요. 가리비와 조개, 새우를 직원분이 전부 구워 줬고 맛있게 먹었어요. 운전 때문에 술은 못 마셨어요.

모모스커피 도모헌점, 붐볐지만 건물과 정원이 볼 만했어요
황령산에서 내려오는 길에 가족과 도모헌에 있는 모모스커피에 들렀어요. 아이스커피 두 잔에 마들렌과 쿠키를 먹었고, 가족이 맛있어했어요. 사람이 많았어요.

온천장 막서러횟집의 모듬회, 기대보다 괜찮았어요
닭두꺼비에서 나와 골목에서 우연히 찾은 횟집이에요. 기대하지 않았는데 모듬회와 밑반찬의 상태가 좋았어요. 가격대는 보통이고, 가볍게 회를 먹고 싶을 때 갈 만해요.

온천장 닭두꺼비의 닭갈비, 소금과 고추장 둘 다 맛있었어요
근처에서 일하는 친구의 소개로 고등학교 친구들과 간 닭갈비집이에요. 소금닭갈비와 고추장닭갈비를 2인분씩 먹었고, 값이 부담 없고 둘 다 맛있었어요.

연산동 민정한우수육국밥의 뭉티기, 신선하고 값도 부담 없어요
벌떼집에서 나와 2차로 간 한우국밥집이에요. 300g에 2만 원인 뭉티기가 신선했고, 뚝배기에 나오는 9천 원짜리 한우국밥도 맛있었어요. 둘 다 값이 부담스럽지 않았어요.

원주 치악산맛집의 묵은지 닭볶음탕, 묵은지가 특히 맛있었어요
용평에서 부산으로 돌아오는 길에 원주에 들러 친구와 묵은지 닭볶음탕 소를 먹었어요. 묵은지 맛이 좋아서, 운전만 아니었다면 술을 곁들이고 싶었어요.

연산동 벌떼집의 해물탕, 해산물이 넉넉하고 값이 괜찮았어요
해운대에 사는 친구와 연산역 근처 해물탕집에서 저녁을 먹었어요. 냄비에 해산물이 넉넉히 들어 있었고, 한치회도 곁들였어요. 들인 돈에 비해 만족스러웠어요.

전포동 팔딱팔딱횟집의 모듬회, 신선하고 도톰하게 썰어 줘요
전포동에서 회를 먹을 때 자주 가는 집이에요. 친구들과 첫 자리로 갔고, 모듬회는 신선했고 값과 양도 무난했어요. 가자미구이가 한 마리 같이 나와요.

수영 렌탄의 오돌갈비와 우동, 2차로 무난했어요
자갈치횟집에서 나와 2차로 간 연탄구이 술집이에요. 한돈 양념 오돌갈비는 연탄 불맛이 났고 무난했어요. 포장마차 즉석우동도 같이 먹었고, 2차로 여러 번 간 집이에요.

만덕 오뎅트럭의 우동, 오뎅과 떡이 싸고 노점 느낌이 좋아요
수영에서 두 군데를 들르고 집에 가는 길에 해장을 하러 만덕의 오뎅트럭에 섰어요. 우동에 오뎅과 떡을 넣어 달라고 했어요. 오뎅과 떡은 값이 싸서 부담이 없었어요.

수영 해삼멍게말미잘의 제철 모듬, 신선하고 맛있었어요
상하이탄에서 나와 고등학교 친구와 2차로 간 제철 해산물 술집이에요. 제철 모듬이 신선했고, 추가한 성게·단새우·아보카도는 성게가 비리지 않아 좋았어요.

수영 상하이탄의 양꼬치, 값이 싸고 맛있는데 불 조절이 어려워요
개업 초기부터 여러 번 간 수영역 앞 양꼬치집이에요. 친구와 양꼬치, 마라양꼬치, 양갈비에 계란볶음밥을 먹었어요. 값은 부담이 적고, 기름 때문에 불이 붙기도 해요.

동래 태영생막창의 돼지생막창, 잡내 없이 쫄깃했어요
친구가 쉬는 날에 동래의 막창집에 같이 갔어요. 대표 메뉴인 돼지생막창은 냄새가 없고 쫄깃했고, 직원분이 전부 구워 줘서 편했어요. 동래에서 막창이 생각나면 갈 집이에요.

동래 삼바리의 낙지와 새우, 맛은 좋았지만 가격은 부담스러웠어요
여러 번 간 집이에요. 직원이 숯불에 낙지를 구워 주고 새우도 손질해 줘요. 가격대는 낮지 않지만 맛에는 이번에도 만족했어요. 목요일 저녁에 친구와 다녀온 기록이에요.

서면 이세계의 닭 모듬구이, 한 시간쯤 기다려서 먹었어요
퇴근한 친구와 서면에서 닭 모듬구이와 구운 찰주먹밥을 먹었어요. 직원이 화로에서 전부 구워 줘서 편했고, 긴 대기만 감수하면 자주 가고 싶은 집이에요.

송정 어부의 술상, 무늬오징어와 갑오징어찜이 만족스러웠어요
친구와 둘이서 가리비·붉은대게찜 세트와 무늬오징어·갑오징어찜을 시켰어요. 오징어 두 가지는 만족스러웠고, 대게는 먹을 살이 적어 아쉬웠어요. 가게 앞으로 바다가 보이는 것도 좋았어요.

대관령에서 버거가 생각나면 가는 알앤티, 싱글이면 충분할 듯해요
대관령에 머물 때 자주 가는 수제버거 가게예요. 평소처럼 베이컨 버거 세트를 먹었어요. 더블은 양이 넉넉해서 저는 싱글이면 충분할 것 같아요. 월요일 점심에 다녀온 기록이에요.

좌동재래시장 아라생선구이의 참소라 숙회, 2차로 좋았어요
해운대에 사는 친구와 2차로 좌동재래시장의 생선구이집에 갔어요. 참소라 숙회는 맛있었고 가격도 부담스럽지 않았어요. 전에도 몇 번 간 집이에요.

광안리 어방축제에서 먹은 회, 가격은 무난하고 모양은 투박했어요
친구들과 처음 가 본 광안리 어방축제에서 해변 음식 코너의 회를 먹었어요. 가격은 무난했고 썰어 낸 모양은 투박했어요. 내년에 다시 갈 생각이 없는 이유도 적었어요.

수영 어촌횟집의 모듬회 소, 회는 좋았고 2층 자리는 불편했어요
수영팔도시장 안의 횟집에 친구와 처음 가 봤어요. 4만 원짜리 모듬회 소는 회 상태도 가격도 마음에 들었고, 천장이 낮은 2층 자리와 주문하기 번거로운 점은 아쉬웠어요.

macOS 27에서 Time Capsule 백업을 SMB로 옮긴 기록
macOS 27에서 AFP 클라이언트가 빠지면서 4세대 AirPort Time Capsule로 하던 Time Machine 백업이 끊겼어요. TimeCapsuleSMB로 기기 안에서 Samba 4를 돌려 SMB3 백업으로 바꾼 과정과, 설치 전에 알아야 할 보안 조건을 기록해요.
해운대 잇시 테라스에서 기네스 한 잔, 바다 보며 쉬기 좋아요
고기를 먹은 뒤 친구와 해운대해수욕장 앞 잇시로 옮겨 기네스를 마셨어요. 바깥 테라스 자리에서 바다를 바라보면서 느긋하게 이야기를 나누기 좋은 곳이에요.

동래김씨의 시마아지회, 생선은 좋았지만 늦게 나왔어요
시마아지가 먹고 싶어서 퇴근하는 친구와 동래역 근처 이자카야에 갔어요. 7만 원짜리 시마아지회는 생선 상태가 좋았는데, 나오는 데 오래 걸렸고 곁들임은 땅콩 정도였어요.

광안리 조개뷰의 무한리필 한상, 전망은 좋았는데 식사는 아쉬웠어요
어방축제를 보고 셋이서 조개 무한리필 한상에 제철 가리비를 추가했어요. 조개는 신선했고 전망도 좋았지만, 리필과 화덕의 더위 때문에 다시 갈 생각은 없어요.

만덕 우오신의 실 오징어회 배달, 양은 넉넉하고 값은 부담됐어요
집에서 오징어가 당겨서 가까운 산오징어 횟집에 배달을 시켰어요. 혼자 먹기에 넉넉했고 손질도 괜찮았는데, 한 끼에 5만 원이 넘은 것은 부담이었어요.

동래 독도 꽃새우, 비싸지만 먹는 만족은 컸어요
싱싱도매횟집에서 1차를 하고 꽃새우 전문점으로 옮겼어요. 눈앞에서 손질해 준 꽃새우 회는 맛과 식감이 좋았고, 값에 비해 양이 적은 점은 아쉬웠어요.

해운대 부타시니세의 시 세트, 고기는 좋았고 음악은 아쉬웠어요
해운대의 고깃집에서 뼈오겹, 목살, 껍데기가 나오는 시 세트를 먹었어요. 고기는 잡내 없이 맛있었고 직원분은 친절했어요. 매장에 흐르던 가요는 제 취향이 아니었어요.

덕천 신라농원의 양념갈비, 조카들이 더 맛있다고 했어요
병문안을 마치고 조카 둘을 포함한 가족과 덕천역 근처 갈비집에 갔어요. 조카들은 늘 가던 집보다 맛있다고 했고, 저도 가격과 맛이 모두 괜찮다고 느꼈어요.

동래 오뎅바 미소, 배부른 날 2차로 부담이 없어요
1차에서 배를 채운 뒤에 동래역 근처 오뎅바에서 오뎅과 물떡만 놓고 한잔했어요. 직원분이 친절하고 안주 부담이 적어서, 배부른 날의 2차로 자주 떠올리는 집이에요.

동래 싱싱도매횟집의 돌돔 소, 신선하고 값도 부담 없었어요
회를 부담 없는 값에 먹고 싶을 때 가는 동래역 앞 횟집이에요. 토요일 저녁에 65,000원짜리 돌돔 소에 소주 한 병을 곁들였고, 회는 이번에도 신선했어요.

동래 뎐벼락막창, 잡내 없이 담백하고 쫄깃했어요
퇴근한 친구와 동래역 근처 막창집에서 막창과 양념막창 세트에 볶음밥을 더했어요. 막창은 잡내가 없고 담백하면서 쫄깃했고, 연 지 오래되지 않은 가게라 실내도 깔끔했어요.

구포시장 용원가덕횟집의 모듬해물 소, 신선하고 개불이 고소했어요
병문안을 마치고 어머니와 구포시장에서 4만 원짜리 모듬해물 소를 먹었어요. 해산물이 신선했고 밑반찬도 정갈했어요. 소 크기에도 개불이 나와서 반가웠어요.

스타벅스 리저브의 병 콜라, 한 번 마셔 본 것으로 충분해요
병따개를 준다는 안내에 끌려 스타벅스 리저브 매장에서 4,700원짜리 병 콜라를 사 봤어요. 맛이 나쁘지는 않았는데 탄산이 약했고, 이 값에 다시 살 것 같지는 않아요.

서면 아마이까의 무늬오징어, 맛있어서 한 접시 더 시켰어요
유튜브에서 보고 가 보고 싶었던 서면의 이자카야예요. 무늬오징어 단품이 맛있어서 고노와다 이까소멘까지 시켰고, 더 먹고 싶었지만 값 때문에 멈췄어요.

광안리 우리포차 본점, 먹고 싶은 것만 모은 한 접시가 좋았어요
골목포차에서 나와 친구와 2차로 간 횟집이에요. 저는 호래기와 새우, 친구는 생참치를 골라 한 접시로 받았어요. 신선하고 맛있었고 직원분도 친절했어요.

광안리 골목포차의 LA갈비, 오랜만에 가도 맛있었어요
예전에 여러 번 갔던 광안동의 요리주점에 오랜만에 다시 갔어요. 직원분이 자리에서 손질해 주는 LA갈비는 이번에도 맛있었고 응대도 친절해서 또 갈 생각이에요.

정관 탄티, 전망은 좋았지만 커피와 주문 규칙은 아쉬웠어요
가족과 정관의 대형 베이커리 카페에 갔어요. 넓은 실내와 전망, 넉넉한 주차는 좋았는데, 1인 1음료 규칙과 맛없는 콜드브루, 너무 단 빵 때문에 다시 갈 생각은 없어요.

강릉 선풍의 모둠회, 강원도에서 만족한 횟집이에요
대관령에 사는 친구 부부와 회를 먹으러 강릉 교동까지 갔어요. 네이버 지도에서 찾은 횟집인데, 모둠회의 구성과 밑반찬이 마음에 들었어요. 다음에도 후보로 둘 거예요.

부산대 칼맛나는푸짐한횟집, 20년째 가는 이유는 칼질이에요
대학생 때부터 20년쯤 다닌 장전동의 횟집이에요. 칼맛 고급회 3인과 2인을 시키고 쿠폰으로 생우럭 매운탕을 받았어요. 회 상태가 좋고 값도 부담이 적어요.

App Store 심사 제출을 다시 실행해도 안전한 판정 규칙
서버는 심사 요청을 받았는데 응답만 잃어버리면, 자동화를 다시 실행했을 때 중복으로 거절돼요. DailySudoku의 iOS 제출 자동화에서 버전 상태와 제출 객체 상태를 따로 읽어 재실행을 판정하게 고친 과정을 기록해요.
UMP의 사전 안내와 ATT 요청 순서를 바로잡은 기록
DailySudoku는 앱이 직접 ATT를 요청하는데, Google UMP도 사전 안내 뒤에 ATT를 요청할 수 있어요. SDK 바이너리에서 ATT 호출 흔적을 찾고, 두 요청이 겹치지 않도록 호출 순서를 바꾼 과정이에요.
수출 규정 신고값을 두 파일과 ASC에서 맞추는 검사
암호화 수출 규정 신고값은 Info.plist와 제출 선언 파일 두 곳에 있고, App Store Connect에도 남아요. 세 값이 어긋났는데 성공으로 판정하는 경로와, 그것을 막으려다 재시도를 전부 차단한 회귀를 고친 과정을 기록해요.
병렬 테스트가 전역 알림으로 서로를 건드린 사례
로컬에서는 0.02초에 끝나던 광고 배너 테스트가 CI에서는 45분 제한에 걸렸어요. 러너의 부하를 의심했지만 원인은 병렬로 도는 다른 테스트가 보낸 전역 알림이었어요. 재현 실험으로 가설을 확인하고 NotificationCenter를 주입해 분리한 과정을 기록해요.
리뷰 요청 예약에서 취소된 Task가 끝까지 실행된 경로
승리한 뒤 2초 기다렸다가 스토어 리뷰를 요청하는 예약이, 화면을 벗어나 취소한 뒤에도 실행될 수 있었어요. Task.sleep이 정상 반환한 뒤의 취소는 오류로 돌아오지 않기 때문이에요. 취소 동작을 Swift 6.4에서 다시 확인하고 고친 과정을 기록해요.
Apple Pencil 필기를 스도쿠 숫자로 바꾸는 입력 처리
DailySudoku에서 펜으로 쓴 숫자를 셀에 넣으려면 획을 tap과 필기로 나누고, 여러 획을 묶고, 모델 입력으로 바꾸고, 믿을 수 있을 때만 적용해야 해요. 각 단계의 기준값과 아직 검증하지 못한 부분을 기록해요.
스도쿠 81칸을 VoiceOver와 TalkBack에 알리는 방법
DailySudoku 게임판은 화면에서는 뷰 하나지만 보조 기술에는 81개 칸을 따로 알려야 해요. iOS와 Android에서 칸의 위치·내용·선택 동작을 맞춘 방식과, 아직 실기기로 확인하지 못한 부분을 기록해요.
광고 노출 이벤트를 세 플랫폼에서 같은 뜻으로 세는 규약
iOS의 로딩 완료, Android의 impression 통지, Web의 DOM 부착을 모두 ad_impression으로 보내면 플랫폼마다 세는 기준이 달라져요. 광고가 거치는 단계를 여섯으로 나누고, 어떤 신호를 노출 한 건으로 셀지 정한 규약이에요.
일일 퍼즐 점수의 날짜와 리더보드 전송 손실 다루기
23시 50분에 시작해 0시 5분에 끝낸 판에서는 퍼즐 날짜, 전송 시각, 리더보드의 조회 구간이 서로 어긋나요. Game Center와 Play Games 문서로 세 값의 차이를 확인하고, 점수 전송을 어디까지 보장할지 고르는 기준을 정리해요.
일일 퍼즐 ID에 생성기 버전이 필요한 이유
DailySudoku의 일일 퍼즐은 날짜에서 seed를 만들어 보드를 생성해요. 생성 방식이 바뀌면 같은 날짜에서 다른 보드가 나올 수 있는데, 날짜만 담은 ID로는 그 차이를 적을 수 없어요. 현재 구조와, ID에 날짜 정책과 생성기 버전을 넣자는 제안을 기록해요.
위치 권한 없이 GeoIP 권역으로 광고 공급자 순서 정하기
지역마다 쓸 수 있는 광고 공급자가 다를 때 필요한 것은 좌표가 아니라 넓은 권역이에요. 동의를 먼저 확인하고, 서버가 IP로 추정한 권역 버킷만 받아 공급자 순서를 정하는 설계와 그 한계를 정리해요.
광고 제거 일회성 구매의 권한을 유지하고 되돌리는 방법
광고 제거 상품은 한 번 사면 끝나는 것처럼 보이지만, 재설치, 대기 중인 결제, 환불을 거치면 구매 직후의 결과만으로는 보유 여부를 알 수 없어요. StoreKit 2와 Play Billing에서 현재 권한을 다시 읽어 캐시를 맞추는 구현과 남은 공백을 기록해요.
검증 스크립트를 일부러 깨진 입력으로 검증하기
검사 스크립트가 종료 상태 0으로 끝났다고 해서 규칙을 검사했다는 뜻은 아니에요. 정상 샘플을 한 곳만 깨뜨린 사본을 넣어, 기대한 분류로 실패하는지 확인하는 방법과 Python 예제를 정리해요.
감시자를 누가 감시하나: 사라진 예약 작업 찾기
예약 작업이 지워지면 오류도 남지 않아요. 기대하는 역할과 scheduler에 실제로 있는 객체를 대조하고, 마지막 성공 시각으로 경보를 거는 방법을 Kubernetes, GitHub Actions, Prometheus 문서와 함께 정리해요.
Rust 공유 코어 7편: 테스트와 CI를 층별로 나누기
Rust 테스트가 통과해도 iOS 링크, Android 릴리스의 ABI, Web 배포 빌드의 Wasm 로딩은 따로 깨질 수 있어요. 도메인 검사는 Rust에 모으고, 클라이언트는 변환과 연결만 검사하고, CI는 산출물을 새로 만들어 확인하는 구성을 정리해요.
Rust 공유 코어 6편: Web에서 Wasm 패키지로 쓰기
모바일에서 쓰는 Rust 규칙을 Web에서도 쓰려면 WebAssembly로 컴파일해서 패키지로 내놓아요. Rust와 Web이 맡을 일의 구분, Next.js에서 초기화할 자리와 상태, 액션 단위의 호출 계약, 타입 변환을 확인하는 fixture를 정리해요.
Rust 공유 코어 5편: Android에 .so로 넣을 때 확인할 것
Kotlin 바인딩을 생성했다고 Android 통합이 끝난 것은 아니에요. ABI별 .so를 배치하는 방법, Gradle 빌드에 Rust 컴파일을 잇는 방법, 16 KB 페이지 조건과 release 배포물에서 확인할 항목을 Android 문서를 바탕으로 정리해요.
Rust 공유 코어 4편: iOS에 XCFramework로 전달하기
Rust 테스트가 통과해도 iOS 앱에서 링크가 된다는 보장은 없어요. 기기용과 시뮬레이터용 정적 라이브러리를 XCFramework로 묶고, Swift Package로 전달하고, 로컬과 CI가 같은 순서로 빌드하게 만드는 방법을 문서 기준으로 정리해요.
Xcode UI 테스트와 automationmodetool의 범위
무인 Mac에서 Xcode UI 테스트가 인증 창 앞에서 멈출 때, automationmodetool이 해결하는 것과 TCC 권한처럼 해결하지 못하는 것을 구분해요. 상태 조회 출력과 장비 준비 순서를 함께 정리해요.
Rust 공유 코어 3편: UniFFI 생성 코드는 adapter 뒤에
UniFFI는 Rust의 함수와 타입에서 Swift와 Kotlin 호출 코드를 만들어 줘요. 무엇을 공개하고 생성된 타입을 어디까지 쓸지는 앱이 정해야 해요. 생성 코드를 adapter 뒤에 두는 구조와 플랫폼별로 챙길 것, 생성 파일의 관리 방식을 정리해요.
macOS의 DevToolsSecurity와 무인 CI의 디버거 인증
Mac에서 디버거를 붙이면 암호를 묻는 창이 뜨고, 사람이 없는 CI에서는 그 창에서 작업이 멈춰요. DevToolsSecurity가 바꾸는 인증 규칙을 macOS 27.0.1에서 직접 읽어 확인하고, 상태 확인 명령과 CI 구성 방법을 정리해요.
한글 파일 이름의 자모가 풀어지는 이유와 NFC 정규화
macOS에서 만든 한글 파일 이름이 다른 환경에서 자모가 풀어져 보이거나 다른 이름으로 취급되는 것은 유니코드 정규화 형태가 달라서예요. NFD와 NFC의 코드 포인트를 직접 검산하고, convmv와 코드로 NFC에 맞추는 방법을 정리해요.
Rust 공유 코어 2편: 경계를 넘는 API를 크게 잡기
Rust 엔진을 Swift, Kotlin, TypeScript에서 부를 때에는 내부에 알맞은 타입과 바깥에서 다루기 쉬운 타입이 달라요. 셀 단위의 작은 함수보다 액션 단위의 큰 함수를 내놓고, DTO와 오류와 버전을 계약으로 관리하는 설계를 정리해요.
Rust 공유 코어 1편: 무엇을 공유하고 어디서 끊을지
iOS, Android, Web을 함께 만들면 같은 규칙을 세 번 구현하게 돼요. Rust로 공유할 범위를 결과가 같아야 하는 도메인 규칙으로 좁히고, 코어와 바인딩과 앱의 세 층으로 나누는 설계를 스도쿠를 예로 설명해요.
iOS에서 실행 중에 폰트를 등록할 때 정해야 하는 것
번들에 넣는 폰트는 Info.plist 선언으로 끝나지만, 내려받거나 패키지에 든 폰트는 실행 중에 등록하는 쪽이 더 맞을 수 있어요. CoreText로 파일을 등록할 때 PostScript name을 읽는 방법, 등록 상태를 한곳에서 관리하는 예제, 파일 수명에서 정할 것을 정리해요.
Swift Package Registry를 도입하기 전에 볼 것
Swift 의존성을 Git 주소가 아니라 registry의 ID로 받으면 받아 오는 경로가 달라져요. 요청 순서, 설정 파일, Git과 registry가 섞인 의존 그래프의 위험, mirror와의 차이, 인증과 서명을 정리하고, 팀이 도입을 판단할 때 볼 항목을 적어요.
WWDC26에서 iOS 개발자가 볼 다섯 가지 변화
Apple이 WWDC26에서 발표한 내용 가운데 iOS 개발자에게 닿는 것을 App Intents, 모델 실행, Xcode 27, 화면, 구독 운영으로 나눠 정리해요. 발표된 사실은 Apple의 공식 페이지에서 확인했고, 제 관점은 따로 적어요.
이 사이트는 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.