Skip to content

Boost‐SwiftUI‐2024.12.10(화).md

유정주 JeongJu Yu edited this page Dec 14, 2024 · 2 revisions

원본 텍스트 파일

Boost‐SwiftUI‐2024.12.10(화).txt


스터디 시간 및 참여자

  • 2024.12.10 화 오후 9:01 ・ 106분 36초
  • 권승용 김대황 김인환 유정주 윤동주 이준복 이창준 홍승현
  • 클로버노트를 이용해 회의 내용을 기록하고, Claude를 이용해 요약, 편집했습니다.

iOS 개발 스터디 노트

메모리 관리와 리테인 사이클

  • 리테인 사이클 테스트

    • 테스트 과정에서 객체 간 상호 참조로 인해 예상치 못한 동작 발생.
    • 리테인 사이클의 확인은 명령어 기반으로 수행되나, 정확도 부족 문제 지적.
    • 대규모 테스트(예: 300번 반복)를 통해 문제를 재현 및 분석.
  • 메모리 관리 도구

    • VM Map 사용 경험 공유.
    • 메모리 프로파일링 도구 활용 사례와 학습 난이도.
    • 캐시 삭제가 오히려 메모리 부하를 초래할 수 있다는 점 논의.

UI 렌더링과 성능 최적화

  • UI Graphics Renderer

    • 렌더러 사용 이유: 자동화된 성능 최적화.
    • EDIO(Experience-Driven Input Output)와 같은 새로운 개념 탐구.
  • 다운샘플링 적용 사례

    • 다운샘플링을 통해 메모리 사용량 감소.
    • 웹 관련 메모리 최적화 필요성 제기.

디자인 및 로컬라이제이션

  • 이미지 및 파일 사이즈 관리

    • 유튜브 API를 통해 이미지 가져올 때 크기 최적화 논의.
    • 디자인에서 지정된 크기와 실제 API 응답 크기 차이.
  • 로컬라이제이션 작업

    • Xcode에서 자동화된 로컬라이제이션 워크플로우 설명.
    • 번역되지 않은 키 처리 및 파일 관리 방안 공유.
    • 일본어 등 다국어 출시 사례.

데이터 처리와 AI 적용

  • 정규 표현식을 활용한 데이터 분석

    • 유튜브 플레이리스트 데이터를 정규식으로 분석하여 타임라인 추출.
    • 사용자 입력 데이터 변동으로 인한 검색 실패 문제와 보완 작업.
  • AI 활용 방안

    • LangChain을 통한 음원 분석.
    • 음원 데이터를 시그니처로 변환 후 검색 기능 구현.
    • 법적 이슈를 피하기 위한 저장 방식 및 데이터 관리 방안.

구조 설계와 코드 패턴

  • 케이스 패서블 활용

    • if case let과 같은 문법의 대안으로 케이스 패서블 활용.
    • 프로퍼티 접근을 단순화하여 가독성 향상.
  • 다이내믹 멤버 룩업

    • KeyPathDynamicMemberLookup을 결합한 사례.
    • 객체 속성 접근을 간소화하여 생산성 향상.
  • 스로틀러블 설계

    • Throttle 동작을 객체 단위로 관리하는 프로토콜 설계.
    • 동일 객체 내에서 ID 기반의 스로틀링 적용으로 코드 간소화.

기타 논의 사항

  • 레거시 코드 관리

    • 오래된 Objective-C 및 웹뷰 중심 코드의 유지보수 문제.
    • SwiftUI로의 전환 필요성과 기대 효과.
  • 디자인 시스템 통합

    • 디자인 시스템 도입 과정에서 발생한 오류 사례.
    • 시스템과 실제 구현 간 불일치 문제 해결 방안.
  • 기능 단위 테스트

    • 테스트 케이스를 뒤로 미룬 상황 공유.
    • 단순 앱 구조로 인해 기능 단위로 테스트를 진행 중.

결론

이 스터디는 iOS 개발자들이 실무에서 직면하는 다양한 문제와 해결 방안을 공유하는 자리였습니다. 특히 메모리 관리, UI 최적화, 코드 패턴 설계 등은 iOS 개발자라면 반드시 이해하고 넘어가야 할 핵심 주제임을 다시금 확인할 수 있었습니다.

Clone this wiki locally