📝 API Key 은닉화 방법 선택
🗓️ 2026-02-27(금)
의견
1. xcconfig를 통해 Key 보관하기
: .xcconfig 파일을 생성하여 Key 저장 후, info.plist에 추가하여 사용하는 방법
: git에 올릴 때는 gitignore로 .xcconfig 파일 제외
2. swift 파일에 상수화하여 직접 보관하기
: swift 파일 내부에 static 전역 변수로 Key를 선언하여 사용하는 방법
: git에 올릴 때 지워서 올려야함
3. 서버에서 API Key 내려받기
: 외부 서버와의 통신을 통해 API Key를 받는 방법
결과
프로젝트 내부에 api.json 파일을 추가하여 파싱하여 변수에 저장하여 사용,
api.json 파일은 gitignore 하는 방식 채택
→ 2번 방식을 잘못 이해하여 이와 같은 방식을 채택하게 되었음...
선정 이유
- 1번: info.plist의 경우 리소스이므로 빌드시 기계어로 변경되지 않고 원본이 빌드결과물에 포함
→ 단순히 패키지 내용을 살펴봄으로써 Key 노출이 가능
- 3번: 외부 서버는 활용 계획이 없었으므로 배제
배포를 위한 앱이 아니므로 현 상황에서는 채택 방식으로도 git에서의 Key 노출 방지는 가능
Risk
채택한 방식은 사실상 1번 방식과 동일하다는 것을 프로젝트 종료 후 깨닫게 됨
→ 앱을 배포한다고 가정했을 경우 앱을 뜯으면 api.json이라는 파일이 발견되기가 더 쉽기 때문에 Key가 노출될 가능성 ↑
⇒ 동일한 방법을 사용한다면 .xcconfig를 사용하는 1번 방식을 채택하는 것이 나음
(.xcconfig → info.plist로의 변형 과정을 한번이라도 더 거치기 때문)
앱 단에서의 노출을 막고 싶다면 외부 서버에서 내려받는 것이 가장 안전할 것으로 생각됨
'내일배움캠프 > Kickboard - Animality' 카테고리의 다른 글
| [트러블 슈팅] UICollectionView 상단에 여백 주기 (0) | 2026.03.11 |
|---|---|
| [트러블 슈팅] UICollectionView Cell deque시 NSAttributedString 생성 불가 현상 (0) | 2026.03.11 |
| [트러블 슈팅] UIButton의 isHighlighted 미해제 (0) | 2026.03.10 |
| [의사결정 기록] 아키텍처 패턴 선정하기 (0) | 2026.03.10 |
| [프로젝트 소개] 공유 킥보드 앱 만들기 - Animality (0) | 2026.03.09 |