| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
| 29 | 30 | 31 |
- Clean Code
- collectionview
- Observable
- tableView
- SWIFT
- Human interface guide
- 스위프트
- Refactoring
- UICollectionView
- 애니메이션
- swift documentation
- Xcode
- ios
- 리팩토링
- rxswift
- map
- scrollview
- 클린 코드
- RxCocoa
- uiscrollview
- 리펙토링
- Protocol
- HIG
- ribs
- swiftUI
- combine
- uitableview
- MVVM
- clean architecture
- UITextView
- Today
- Total
목록SWIFT (978)
김종권의 iOS 앱 개발 알아가기
에이전틱 루프 (The Agentic Loop)Claude Code는 스스로 계획을 세우고 실행하는 에이전트 방식으로 작동하며 아래 3단계 과정이 반복컨텍스트 탐색: 문제 해결에 필요한 파일 시스템을 조사하고 코드를 읽음액션 실행: 코드 수정, 파일 생성, 터미널 명령(Shell) 실행 등을 직접 수행결과 검증: 변경 사항이 의도대로 반영되었는지 테스트를 돌려보고 결과를 분석기본 개념들CLAUDE.md: 모든 세션에서 유지되는 프로젝트 컨텍스트로 코딩 컨벤션이나 규칙을 명시Skills: 재사용 가능한 지식 및 워크플로우로 필요할 때 호출하거나 자동 로드Subagents: 독립된 루프를 실행하는 격리된 작업자로 무거운 작업을 수행하고 결과만 보고MCP: Slack, DB 등 외부 서비스와 연결하여 데이터를..
oh my claude code의 컨셉"설계/실행/QA/검증"을 적절한 모델로 알아서 잘 하게끔 AI한테 쉽게 명령어하는 것Multi-agent orchestration for Claude Code. Zero learning curve.여러가지의 agent들을 지휘하며, 하나의 곡을 완성한다는 의미로 orchestration이라고 함oh my claude code의 역할oh my claude code 없이 내가 새롭게 구현하려는 기능이 있을때, claude code에게 "기능을 구현해줘" 한 후 "테스트 해줘"라고 두 번 말해야 함oh my claude code를 사용한다면, ralph모드를 사용하여 새로운 기능을 구현해주고 동시에 테스트까지 해주고, 복잡한 로직은 opus, 쉬운 작업은 haiku를 알..
스킬이란?클로드코드를 사용할 때 skills 하위 폴더 안에 skill이름을 넣고 md파일을 작성하면 `하나의 기능`으로 사용할 수 있는 것폴더 위치는 스콥에따라 3가지로 분류개인~/.claude/skills//SKILL.md모든 프로젝트프로젝트.claude/skills//SKILL.md이 프로젝트만플러그인/skills//SKILL.md플러그인이 활성화된 위치.claude/commands/ 안에 정의된 것들보다도 skill이 더욱 우선순위가 높음클로드코드 쓰임 예시skill-name: gen-test-cases: 특정 컴포넌트나 함수에 대한 단위 테스트(Unit Test) 코드 자동 생성.write-read-me: 폴더 구조와 코드를 읽고 README.md 초안 작성.실행 원리저렇게 skill을 명시해놓..
변경된 앱 아이콘 컨셉예전에는 맥북, 아이폰, 애플워치 마다 같은 성격의 설정 앱이라도 이미지가 미세하게 달랐었음하지만 이제는 매우 심플하게 처리맥북, 아이폰: 네모난 배경애플워치: 동그란 배경이렇게 처리하게된 배경에는 `foreground layer`, `background layer`, `.icon`과 관련된 개념이 생겨나서 부터 확립Icon Composer (layer와 .icon)애플에서는 앱 아이콘을 정의할때 layer(*층)라는 것을 두어서 이것을 사용하여 앱 아이콘을 표현함층을 두어서 입체적으로 표현하려는것이 목적층(layer)들을 합쳐놓은(Composer)것을 Icon Composer라고 지칭이 개념에 의해, 이제 여러가지의 앱 아이콘 제작이 없이, 단순히 각 layer를 표현하는 이미지만..
탭했을 때 키보드 내리기다른 제스처도 동시에 동작하게끔 하기 위해 보통 아래처럼 simultaneousGesture를 사용하여 tapGesture 이벤트를 얻어서 isFocused = false로 처리struct ContentView: View { @State private var text: String = "" @FocusState private var isFocused: Bool var body: some View { ScrollView { VStack(spacing: 16) { TextField("텍스트를 입력하세요", text: $text) .textFieldStyle(.roundedBor..
전체빌드 개념단어 그대로 캐싱 없이, a부터 z까지 모든 파일을 빌드하는 것 cf) 빌드란?소스 코드들을 실행 가능한 형태로 메모리에 올리는 것증분빌드 개념증분 빌드(Incremental Build)는 “변화가 영향을 미치는 범위만 찾아서 필요한 파일만 재컴파일”하는 방식Xcode는 이를 위해 “의존성 그래프(Dependency Graph)”와 “인터페이스 파일(.swiftinterface / .dia)”을 사용증분빌드 원리빌드 시스템은 파일마다 해시(hash) 또는 timestamp를 기록해 두고 있다가 사용FileA.swift → 해시값 0xA2B3 FileB.swift → 해시값 0xC883Swift는 모든 .swift 파일 내부의 타입, 프로토콜, extension 등을 분석해 파일 간의 의존성 ..
xcactivitylogXcode가 빌드/테스트/아카이브할 때 생성되는 빌드 로그의 원본 파일(= Xcode UI에서 보는 Build Log 화면(⌘ + 9)의 실제 데이터 파일)바이너리 파일은 아래 경로에 위치~/Library/Developer/Xcode/DerivedData//Logs/Build/얻어내는 법Xcode > Build > 오른쪽마우스 > Show in Finder 클릭Show in Finder 클릭 시 Logs/Launch에 들어가게됨여기서 Logs/Launch가 아닌, Logs/Build 경로에 가야하므로 Logs경로로 이동한 다음 Build 폴더로 이동마침내 UUID.xcactivitylog 파일 획득이 가능들어있는 정보들전체 빌드 타임라인각 빌드 단계별 duration컴파일러가 어떤..
.trace 파일Instruments를 통해 나오는 .trace 파일은 자주쓰는 xctrace export 옵션--listtrace 파일 내부에 어떤 데이터들이 들어있는지 전체 목록을 보여줌 (schema 이름들을 확인이 가능)xctrace export --input test1.trace --list예)time-samplesignpostprocessthread-statesystem-callsmemorycall-tree --tocTrace Table of Contents(Toc)를 XML로 바로 출력xctrace export --input test1.trace --toc 이걸 보면 전체 구조를 한눈에 확인 가능 --xpath특정 부분만 필터링하기 위한 고급 옵션ex) signpost 데이터만 추출: --x..
