스파르타 코딩 클럽 - iOS 스타터 6기/본 캠프

48. 스파르타 코딩 클럽 - xcconfig 파일을 사용하여 Github로 부터 API 키 감추기

seongpil Heo 2025. 5. 14. 18:02

  xcconfig 파일을 통해 Github ignore 설정하기

[ 1. xcconfig 파일 생성 ]

 

[ New File from Templete... 클릭 ] → [Other 부분에 Configuration Settings File 클릭 ]

 

[ 2. API 키 작성하기 ]

만든 xcconfig 파일에 사용하는 API 키를 작성한다.

 

[ 3. PROJECT에 등록 ]

 

[ 4. Info.plist 에서 API 키 추가 ]

 

[ 5. 사용 예시 ]

func fetchBooksFromKakaoAPI() {
    guard let filePath = Bundle.main.path(forResource: "Info", ofType: "plist") else {
          return
        }
        let plist = NSDictionary(contentsOfFile: filePath)
        guard let apiKey = plist?.object(forKey: "KakaoApiKey") as? String else {
          return
        }

    let query = "\(searchBar.text ?? "")"
    let encodedQuery = query.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)!
    let urlString = "https://dapi.kakao.com/v3/search/book?query=\(encodedQuery)"

    guard let url = URL(string: urlString) else { return }

    let headers: HTTPHeaders = [
        "Authorization": "KakaoAK \(apiKey)"
    ]

 

[ 6. gitignore에 xcconfig 파일 추가하기 ]

gitignore 파일 맨 아랫부분에 *.xcconfig 추가


  ❌ API 키를 코드에 작성해서 github에 올리지 않는 이유

🔐 1. API 키는 민감한 정보다

  • API 키는 특정 서비스(예: Firebase, Google Maps, OpenAI 등)를 사용할 수 있는 인증 수단입니다.
  • API 키가 외부에 노출되면, 누구나 당신의 계정을 사용해 서비스에 접근할 수 있습니다.
    • 예: Firebase의 경우 데이터베이스를 무단으로 읽거나 쓸 수 있음
    • 예: 유료 API라면, 누군가 당신의 키를 사용해 요금이 청구될 수 있음

🚫 2. 공개 저장소에 올리면 전 세계에 공개된다

  • GitHub의 저장소가 공개(public)일 경우, 올린 순간 전 세계 누구나 그 파일을 볼 수 있습니다.
  • GitHub는 검색 기능이 뛰어나서 API_KEY=처럼 노출된 키들을 크롤링하는 봇이나 악의적인 사용자도 많습니다.

🛡️ 3. .gitignore로 처리하면 Git이 추적하지 않는다

  • .gitignore에 API 키가 들어있는 파일을 추가하면 Git은 그 파일을 추적하지 않고, GitHub에도 올라가지 않습니다.