본문 바로가기

분류 전체보기

(391)
🔨 데이터 타입 변환 및 통합하기 ✅ 여러 데이터 타입을 하나의 데이터 타입으로 통합하기 통합하는 이유는 추후체 컬렉션뷰를 사용함에 있어서 데이터 관리 용이성 확보 및, 컬렉션뷰의 품질 향상 목적// 📍 detail 정보 { "response": { "header": { "resultCode": "0000", "resultMsg": "OK" }, "body": { "items": { "item": [ { "contentid": "126128", "contenttypeid": "12", "heritage1": "0", "heritage2": "0", "heritage3..
✅ UICollectionViewCell을 공용으로 사용하려면? (데이터 타입도 다를때) ✅ 현재 셀을 보면 공용으로 사용되는 것을 확인할 수 있음 따라서 먼저 각 셀의 UI를 공용으로 사용할 수 있도록 하나의 클래스를 생성함 /// 상세페이지 내에 각 셀에 공용으로 사용될 UIfinal class TitleValueView: UIView { // MARK: - UI Component private let titleLabel: UILabel = UILabel() private let valueLabel: BasePaddingLabel = BasePaddingLabel() init(title: String = "", value: String = "") { super.init(frame: .zero) setupUI() ..
🤷 컬렉션뷰에 페이징 기능 추가 (스크롤하면 새 데이터 불러와 컬렉션뷰로 보여주기) ✅ 최종 구현 영상컬렉션뷰를 스크롤해서 마지막 셀에 도달하면 그 다음 데이터를 불러와 보여주도록 함 ✅ 목표컬렉션뷰에서 마지막 셀 근처까지 스크롤했을 때만 다음 페이지를 요청하고 싶다.예: 마지막 셀에서 1~2개 남았을 때 미리 로딩.extension CategoryViewController: UICollectionViewDelegate { func collectionView(_ collectionView: UICollectionView, willDisplay cell: UICollectionViewCell, forItemAt indexPath: IndexPath) { let itemCount = categoriesViewModel.eateryFromCategory.count ..
🔨 화면 UI을 동시에 나오게 해서 사용자 친화적으로 해보기 ❌ 각 UI 가 동시에 나오지 않음 -> 보기 불편함... 🎯 문제 요약섹션 헤더 -> 즉시 표시죔 -> 하드코딩되어 있기 때문 음식점 리스트 -> 비동기 API 호출 후 표시 -> fetchEateries() 가 완료되어야 표시됨다른 데이터 (예: 카테고리) -> 또 다른 ViewModel에서 별도 로딩 -> 동시에 로딩 중이지만, 완료 타이밍이 다름 ✅ 사용자 경험 개선 목표 모든 필요한 데이터가 준비된 후 한 번에 UI를 표시하고 싶음 → "플래시 화면 없이 완전한 콘텐츠"중간에 뜨는 일부 UI 요소 제거 → UI의 일관성과 신뢰감 유지 🛠 해결 전략 제안✅ @Published var isLoading: Bool = true 사용 EateryViewModel, CategoryViewMode..
🔍 파이썬 + FastAPI 로 ToDo API 프로젝트 해보기 ✅ 파이썬 및 vs code 설치 일단 파이썬, vs code 설치 및 설정 부분은 유튜브, 블로그 참조 파이썬 확장팩 설치 부분 가상환경 설정하기 https://najiwon.tistory.com/77 [MacOS] 개발환경 구성 - m1에 Python 설치 & VSCode Python 가상환경 설정[설치 환경]Mac OS M1Visual Studio Code 1.74.2 01. 필요한 파이썬 버전 확인docker & airflow 서비스 올리기 6개의 컨테이너 중 scheduler, worker 컨테이너에서 파이썬 버전 확인 airflow 컨테이너들은 파이썬najiwon.tistory.com https://jucode.tistory.com/25 Mac에서 Python 가상환경 설정하기(VSco..
🤔 MVVM 패턴에서 2개 이상의 값의 변화를 감지해야하는 경우에는?(CombineLatest) https://developer.apple.com/documentation/combine/just/combinelatest(_:) combineLatest(_:) | Apple Developer DocumentationSubscribes to an additional publisher and publishes a tuple upon receiving output from either publisher.developer.apple.com ✅ combineLatest(_:)란?combineLatest는 두 개 이상의 Publisher가 내보내는 최신 값을 묶어서 하나로 전달해주는 Combine의 연산자야. 🧠 개념 먼저 이해해보기let publisherA = Just("🍎")let publisherB =..
🤔 고차함수를 통해 외부에서 받아온 데이터에 문구를 추가하는 방법 ✅ 현재 화면에서 보이는 카테고리 부분에 추가 문구를 담는 방법 API를 통해 카테고리를 정보를 받아옴 📋 카테고리 목록:- 한식- 서양식- 일식- 중식- 이색음식점- 카페/전통찻집- 클럽 위의 문구에 App Store에서 처럼 이모지를 추가하여 UI 구현하려고 함 ✅ 해결 방법 원본 카테고리에 추가로 이모지를 합친 새로운 배열 생성 📍 "이모지"와 "카테고리" 담을 데이터 모델 생성/// 이모지를 폼할할 새 모델struct CategoryEmogi: Hashable { let id = UUID() let name: String let icon: String var displayName: String { return "\(icon) \(name)" }..
🤔 MVVM 패턴에서 앱 실행 시 자동으로 데이터 가져오는 함수를 꼭 viewDidLoad()에서 호출해야 하나? ✅ 현재 구조 분석Task { await eateriesViewModel.fetchEateries()} fetchEateries()를 호출하지 않으면 @Published var eateries는 아무 데이터도 없고, Combine 구독도 반응하지 않음 → UI 업데이트도 안 됨따라서 데이터 fetch는 반드시 필요한 동작이고, UIKit에서는 보통 viewDidLoad() 또는 viewWillAppear()에서 호출하는 게 일반적입니다. ✅ "꼭 viewDidLoad에서만 해야 하나요?"에 대한 답꼭 viewDidLoad()에서 할 필요는 없습니다.하지만 UIKit에서 앱이 시작될 때 ViewController가 메모리에 올라오고 초기화되는 시점은 viewDidLoad()입니다.따라서 “처음 한 번..