티스토리 뷰

데일리 스크럼

어제 한 일

  • 올라온 PR확인
  • 이슈 사항 정리 및 PR 리뷰 적용
    • 가독성을 위해 라인이 길어지는 경우 자동 줄바꿈에 의존하는 것보다 임의로 줄바꿈을 해주자
    • 앱 전체에서 쓰이는게 아닌 일부에서 쓰이는 구조체는 해당 폴더링 내부의 viewModel에서 관리해주자
  • 날씨 정보 받아오기 - 더미데이터
  • 위치 정보 받아오기 + 위치 레이블 작성
  • RunHome화면에서 뷰모델, 컴바인 적용 및 LocationManager 컴바인 적용

오늘 할 일

  • 올라온 PR부터 확인
  • 특수한 행정구역을 가지는 경우 처리
  • 맵킷에 현재 위치 표시
  • 지도 랜더링 변경 - 스유 스타일의 랜더링으로는 변경 불가(스유만 이쁜거 내줌)
  • 지도 사용자 상호작용 적용 - 정적, 위치 따라가기, 방향에 맞춰 회전
  • Running View 뷰모델 적용
  • 날씨 API 연결해서 데이터 받아보기
  • Running View 이슈 사항 정리

트러블 슈팅

대한민국 행정구역 처리 방법

앱에서 위치 정보를 활용할 때, 행정구역을 처리하는 방식이 필요했다. 특별시, 광역시 단위와 그 아래의 시, 군, 구, 동, 읍, 면 단위를 어떻게 처리할 지 정리할 필요가 있었다.

기존의 행정구역 처리

let state = placemark.administrativeArea ?? "" // 도, 광역시
let city = placemark.locality ?? "" // 시, 군, 구
let district = placemark.subLocality ?? "" // 동, 읍, 면

행정구역을 해당 코드로 처리하게 될 경우 서울특별시는 "서울특별시 서울특별시 XX동"으로 나오게 된다. 처음 기획단계에서 원하던 부분은 "A시(도) B시(구,군) C동(읍,면)" 이었기에 수정이 필요했다.

수정 방법

  1. CLPlacemark.description에서 "대한민국"이 포함된 부분을 필터링
  2. 주소를 공백을 기준으로 나눔
  3. 각 단어가 특정 접미사(Suffix)를 포함하는지 확인해서 행정구역을 분류한다.
private func placemarksToString(_ placemark: CLPlacemark) -> String {
    var state: String = ""     // 도, 광역시
    var city: String = ""      // 시, 군, 구
    var district: String = ""  // 동, 읍, 면

    let description: String = String(
        placemark
            .description
            .split(separator: ",")
            .filter { $0.contains("대한민국") }
            .first ?? ""
    )

    let components = description.split(separator: " ").map { String($0) }

    for component in components {
        if component.hasSuffix("특별시") || component.hasSuffix("광역시") || component.hasSuffix("도") {
            state = component
        } else if component.hasSuffix("시") || component.hasSuffix("군") || component.hasSuffix("구") {
            city = component
        } else if component.hasSuffix("동") || component.hasSuffix("읍") || component.hasSuffix("면") {
            district = component
        }
    }

    return district.isEmpty ? "\(state) \(city)에서" : "\(state) \(city) \(district)에서"
}

CLPlacemark의 데이터를 이용해 대한민국의 행정구역을 자동으로 분류하는 방식을 구현했다.

수정된 사항을 통해 위치 정보를 받을 때, 특별시,광역시,도 단위에서 부터 동,읍,면 으로 세부 분류가 가능하다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2026/01   »
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
글 보관함