Swift: @retroactive 란?

Retroactive 란? 해당 경고는 Swift에서 retroactive conformance(기존 타입에 프로토콜을 채택시키는 것)를 사용할 때 나타나는 것으로, 나중에 AudioKit 라이브러리 자체에서 NodeParameter에 Hashable을 추가하게 되면 중복 충돌이 발생할 수 있음을 경고합니다. Extension declares a conformance of imported type ‘AVAudioUnitReverbPreset’ to imported protocol ‘CaseIterable’; this will not behave correctly if the owners of 더보기…

[펌/번역] Apple의 Liquid Glass 디자인 베타에 대한 피드백

소개 이번 WWDC25에서 새로운 컨셉의 Liquid Glass 디자인이 발표되었지만, 저는 아무래도 나이가 들어서인지 새로운 디자인이 잘 눈에 들어오지 않고 좋은 디자인이 아닌것 같다고 느꼈습니다. 여러 곳의 반응을 보니, 이렇게 생각하는건 저뿐만은 아니었던것 같습니다. 이번 새로운 디자인 컨셉에 대한 비판글이 여럿 있었고, 그 중 공유해도 좋을 것 같은 글을 가져왔습니다. 저는 더보기…

Swift: some, any 키워드

Swift의 some과 any 키워드 안녕하세요! 오늘은 Swift의 some과 any 키워드에 대해 실무에서 겪을 수 있는 상황들을 포함해 자세히 알아보겠습니다. 이 두 키워드는 프로토콜을 다룰 때 매우 중요한 역할을 하며, 각각 다른 상황에서 사용됩니다.   키워드 도입 역사 먼저 각 키워드가 언제 도입되었는지 살펴보겠습니다: some 키워드: Swift 5.1에서 도입 any 키워드: 더보기…

Claude와 MCP (Figma MCP, 유튜브 요약 정리 MCP) 연동 가이드

소개 Claude와 Figma의 연동 방법을 소개해드리겠습니다. MCP(Model Context Protocol)를 통해 Claude가 Figma 파일에 직접 접근하여 디자인 분석, 코드 생성 등 다양한 작업을 수행할 수 있습니다.   MCP(Model Context Protocol)란? MCP는 AI 모델이 외부 시스템과 안전하게 연결할 수 있도록 해주는 개방형 프로토콜입니다. 이를 통해 Claude는 다양한 도구와 서비스에 접근하여 더욱 강력하고 더보기…

macOS 개발: 내 앱으로 파일 열기 시도 시 실행 불가 문제(“확인되지 않은 개발자가 배포함”) 해결 과정

macOS 앱 노터라이즈(Notarize) 및 실행 불가 문제 해결 과정 1. 문제 개요 macOS에서 포스트잇 플레인 텍스트 앱인 StickyPlainPad을 테스트하는 중, 특정 테스트 파일 “다음으로 열기…”를 통해 실행했을 때 다음과 같은 문제가 발생하였습니다. 앱이 열리지 않음 보안 경고 메시지: “Mac에 손상을 입힐 수 있음” 또는 “확인되지 않은 개발자가 배포함” 이 문제는 더보기…

Swift UIKit: 테이블 뷰에서 UITextView의 컨텐츠에 따라 높이 자동조정

참고 Swift(스위프트): Static cell 모드인 테이블 뷰(UITableView)에서 특정 섹션 감추기 + 특정 행의 크기만 조절   구조 및 제약(Constraints)       1) 텍스트 뷰(UITextView)를 선택한 뒤 Indicator > Scroll View > Scrolling Enabled 해제 또는 코드에서 직접 설정합니다. textView.isScrollEnabled = false   2) 해당 인덱스패스 (IndexPath)의 heightForRowAt을 UITableView.automaticDimension으로 설정 더보기…

Swift UIKit: .translatesAutoresizingMaskIntoConstraints 란 무엇인가?

translatesAutoresizingMaskIntoConstraints UIKit에서 아직도 무슨 의미인지 잘 모르겠는 (View).translatesAutoresizingMaskIntoConstraints에 대해 알아보겠습니다.   한국어 직역 translatesAutoresizingMaskIntoConstraints를 한국어로 직역하면 다음과 같습니다: “Autoresizing 마스크를 제약 조건으로 변환한다” 구체적으로 단어별로 나누어보면: translates: 변환한다, 번역한다 AutoresizingMask: 자동 크기 조절 마스크 (UIKit의 레이아웃 시스템에서 뷰의 크기와 위치를 자동 조절하는 속성) into Constraints: 제약 조건으로 따라서 전체 의미는: 더보기…

Xcode에서 Navigator & Inspector를 숨기거나 보이게 하는 방법, 동시에 토글하는 방법

Xcode에서 Navigator & Inspector를 숨기거나 보이게 하는 방법, 동시에 토글하는 방법 소개 Xcode를 사용하다 보면 좁은 모니터 환경에서 Navigator (왼쪽 패널)와 Inspector (오른쪽 패널)를 상황에 따라 동시에 숨기거나 나타내고 싶을 때가 많습니다. 하지만 기본 단축키만으로는 이 둘을 동시에 제어할 수 있는 방법은 제공되지 않습니다.   이 글에서는 각각의 단축키와, 이를 해결하기 더보기…

Git/GitHub: .gitignore 적용 안될때 / 어멘드(amend)하는 방법 / 오픈소스 라이브러리에 PR(풀 리퀘스트)하는 방법

.gitignore 적용 안될때  .gitignore가 제대로 적용되지 않는 경우, 주로 이미 Git에 추적되고 있는 파일이거나 .gitignore 파일이 잘못 설정된 경우입니다. 이를 해결하기 위한 단계별 점검 및 해결 방법은 아래와 같습니다.   이미 추적되고 있는 파일인지 확인 .gitignore는 Git이 추적하지 않는 파일에만 적용됩니다. 이미 추적 중인 파일은 .gitignore에 추가해도 무시되지 않습니다.   더보기…