묻고 답해요
160만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결TCA(The Composable Architecture) 실전 가이드
router 관련 문의 드립니다.
만약 탭이 a, b, c가 있다면 coordinator를 탭에 각각 만드나요?그리고 a, b, c 탭에서 공통적으로 사용하는 뷰가 있고 그 뷰에서 1, 2, 3이라는 뷰를 부를수 있다면 이것들도 모두 a, b, c 의 coordinator에 각각 명시를 해줘야 하는 것인지요?
-
해결됨iOS Clean Architecture & MVVM: RxSwift 완전 정복
유즈케이스 프로토콜과 구현체의 분리 이유
덤벨로퍼님 안녕하세요! 덕분에 좋은 강의 잘 듣고 있습니다!!유즈케이스의 경우 프로토콜과 구현체를 분리해서 구현하셨고, 보통 다른 사람들도 분리해서 구현하더라구요.만약 기능 단위로 유즈케이스를 구현하게 된다면 굳이 프로토콜과 구현체를 분리안해도 될 것 같은데, 둘을 분리하여 얻을 수 있는 이점이 궁금합니다!의존성 관리 측면에서 이점이 있다고 생각은 되는데 잘 와닿지가 않아서요ㅠㅠ답변해주시면 감사하겠습니다 :)
-
해결됨Part1: 진짜 왕초보 iOS 배우기(SwiftUI, SwiftData, 2024)
콘솔창에 값이 안찍히고 있습니다.
안녕하세요. 선생님좋은 강의 너무 잘 듣고 있습니다.wordRelay 실습 중인데, 하단 콘솔에 Executable 이나 Preview 영역에 값이 안찍히고 있어서요.입력하신단어는: aaaa 요런 값들을 확인할 수가 없네요. 에러도 안보이고요, 혹시 어떻게 해야 다시 뜨게 만들 수 있을까요?ㅜㅜ여기저기 뒤져봤는데 방법을 못찾았습니다.
-
미해결앱 개발 기초부터 실전까지 하나로 끝내는 Swift & iOS 마스터 클래스
클로저 문법최적화 확인부탁드립니다!
계산기 $9 - 문법 최적화수강중에 contains를 직접 해보라 하셔서 다른 방법으로 진행했기에 확인 부탁드립니다. // func contains(where predicate: (Self.Element) throws -> Bool) rethrows -> Bool var testarr = [1, 2, 3, 1, 2, 3]var result3 = testarr.contains(where: { (num: Int) -> Bool in // 클로저 기본형 return num > 4 // arr안에 4가 초과되는 숫자가 있는지 확인})print(result3) result3 = testarr.contains(where: { (num) in // 컴파일러가 파라미터타입과 리턴타입을 유추 할 수 있기에 생략 가능 return num > 4})print(result3) result3 = testarr.contains { $0 > 4 } // 클로저가 유일한 파라미터이고, 클로저 코드가 return밖에 없어서 ()와 return과 argument를 생략 가능print(result3)
-
해결됨앨런 iOS 앱 개발 (15개의 앱을 만들면서 근본원리부터 배우는 UIKit) - MVVM까지
현재 시점에서 달라졌다고 생각되는 부분이 있으신가요?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요.현재 시점에서의 iOS 취업 시장 환경이 바뀌었다고 생각되는 부분이 있으실까요?
-
미해결앨런 iOS 앱 개발 (15개의 앱을 만들면서 근본원리부터 배우는 UIKit) - MVVM까지
스토리 보드 옆 코드 창
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 혹시 스토리보드 옆에 코드 창을 같이 볼 수 있는 방법이 무엇인지 알 수 있을까요?! 해당 ui와 해당 viewcontroller에서 연결된 코드가 무엇인지 강사님처럼 바로 옆에서 확인하고 싶은데ㅜ 저는 스토리 보드만 떠서요! 질문드립니다 ㅜㅜ
-
해결됨앨런 Swift Concurrency for Swift 6 (Part-1)
Part 2에 대해서
안녕하세요! 좋은 강의 너무 잘 듣고 있습니다.2025년 1월 안으로 part 2 강의 제작을 마무리 하는게 목표라고 하셨던 것 같은데, 예상 일정대로 part 2도 업로드 될까요?actor와 sendable에 대해서 얼른 공부하고 싶어 기다리고 있습니다 ㅎㅎ답변 부탁드립니다!
-
미해결앨런 iOS 앱 개발 (15개의 앱을 만들면서 근본원리부터 배우는 UIKit) - MVVM까지
강의 내용
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.혹시 강의 내용에서 오토레이아웃에 관해서도 자세히 다뤄주시나요?특히 코드로 하는 부분이요!
-
해결됨SwiftUI의 Property Wrapper(@State, @Binding...)
@Environment 질문 있습니다.
Environment 값 가져올때 역슬래시 하고 점으로 접금 하고 있는데 역슬래시는 어떤 의미를 갖고 있나요?
-
미해결iOS 개발 찍먹하기 - SwiftUI
동영상 플레이 에러
안녕하세요? '개발할 때 도움이 되는 맥앱 추천' 강의부터 'Sign in to confirm you're not a bot' 메세지와 함께 플레이가 안됩니다. 확인 부탁드립니다.
-
미해결앨런 iOS 앱 개발 (15개의 앱을 만들면서 근본원리부터 배우는 UIKit) - MVVM까지
강의 수강기간 연장 부탁드려도 될까요
작년 말부터 프론트엔드 개발자로 재직중이었는데깜빡하고 있다가 수강기간이 2달정도 남아서 부랴부랴 듣고 있는데요..iOS 개발자 전직에 관심이 계속 잇어서 급하게 들으면 정리가 안될거 같아서요..!수강기간 연장 부탁드려도 될까요..!!
-
해결됨토스(前) 엔지니어가 알려주는 iOS 입문 - Swift언어부터 샘플앱까지
2.1 프로그래밍 소개 14:06 let ints 질문
안녕하세요 오늘도 수업 잘 듣고 갑니다.질문이 있습니다.2.1 프로그래밍 개념소개, 14:06 29번줄 부분에 Array 데이터 타입 선언할 때 let ints = [1,2,3,4] 라고 작성하셨는데, int 랑 ints의 차이가 뭐죠? 왜 여기서는 ints를 사용해야하는 건가요? 14:08 부분에 강사님께서 "보면 ints 라는 Array 데이터 타입으로..." 라고 언급하셔서 조금 더 헷갈리는 부분이 있습니다.
-
해결됨Part1: 진짜 왕초보 iOS 배우기(SwiftUI, SwiftData, 2024)
todo 앱에서 미리 적어놨던 요소들은 왜 안나오나요?
안녕하세요! 강의 너무 잘 듣고 있습니다.todo앱 프로젝트 후반부 swiftdata 적용 실습때시뮬레이터를 돌려보는데 분명 코드에서는 todoList변수에 Todo 객체 3개를 넣어놓았는데 실행할때는 리스트에 안뜨더라구요. 왜 기존에 넣어놨던 todo들은 리스트에 안뜨는건지 너무 궁금합니다!
-
해결됨토스(前) 엔지니어가 알려주는 iOS 입문 - Swift언어부터 샘플앱까지
Main 을 못찾겠어요
안녕하세요, 오늘 처음 수강하게 된 수강생입니다.5:00 즈음에 main의 아이폰 인터페이스를 열고 따라하고 싶은데 제 xcode는 최신버전이라 그런지 main이 없더라구요. 그래서 더 이상 진행하는데 어려움을 겪고 있습니다. 사진 첨부하겠습니다.
-
해결됨Part1: 진짜 왕초보 iOS 배우기(SwiftUI, SwiftData, 2024)
Swift 6 업데이트 이후 Todo 예제 실행 오류
Todo.swift에서 'Cannot expand accessors on variable declared with 'let'; this is an error in the Swift 6 language mode' 오류가 발생합니다!
-
미해결앨런 iOS Concurrency(동시성) - 디스패치큐와 오퍼레이션큐의 이해
2) 오퍼레이션큐(OperationQueue) 강의 질문입니다
2) 오퍼레이션큐(OperationQueue) 강의 15분37초 쯤 보면 필터 작업이 다 끝난다음에 append큐를 통해서 배열에 전달을 한다고 말씀하셨어요. 근데 여기 필터하려는 이미지가 5장이잖아요, 5장 모두 필터링 다 끝나고 나면 배열에 들어가는건가요 아니면 ,filterQueue는 기본적으로 동시적으로 동작하면서 각 필터 작업이 끝나는 대로 배열에 넣는건가요? filterQueue.waitUntilAllOperationsAreFinished() 코드 보면 동기(sync)적으로 동작하게 하니까 전자가 맞는거 같아보여요
-
해결됨앨런 iOS 앱 개발 (15개의 앱을 만들면서 근본원리부터 배우는 UIKit) - MVVM까지
강의 수강 기간 연장 가능할까요?
안녕하세요, 앨런님앨런님 강의 들으면서 iOS 공부를 시작하게 된 수강생입니다!지금은 프로젝트와 면접 준비를 열심히 준비하고 있는데요, 하다보니 기본기가 부족하다는 느낌을 받았습니다.그래서 강의를 다시 들으면서 탄탄하게 기본기를 잡으려고 합니다...수강 기간 연장이 가능할까요,,,,?🥲
-
해결됨iOS Clean Architecture & MVVM: RxSwift 완전 정복
즐겨찾기 탭에서 페이지네이션 422 서버 에러
안녕하세요, 페이지네이션 부분 오류가 있는 것 같아 질문 드립니다! UserListViewController에서 'bindView()' 메서드에서 페이지네이션을 구현하고 있습니다.강의 내용과 같이 구현하면, 즐겨찾기 유저를 여러 명 추가 후 다시 앱을 실행했을 때, Core Data에 저장된 즐겨찾기 유저 목록은 그대로 표시됩니다. 즐겨찾기 목록 테이블뷰를 맨 밑으로 스크롤 하면 422 서버에러가 발생합니다.테이블뷰의 맨 밑으로 스크롤 하면 바인딩 되어 있던 tableView의 prefetchRows(또는, willDisplayCell)의 코드가 실행되게 되고 fetchMore의 값이 변경되어 fetchUser()가 실행되어 output의 값이 변경되는데, 이때 텍스트필드 값은 비어있기 때문에 데이터를 받아오는 과정에서 422 에러가 발생하는 것이라 예상됩니다. 아래 코드와 같이 row를 받아 올 때, self?.tabButtonView.selectedType.value == .api를 추가하여 selectedType이 api 타입일 때만 fetchMore의 값이 변경되도록 수정하면 422 에러가 발생하지 않습니다.제가 생각한 오류의 원인과 해결 과정이 올바른지 질문드립니다! tableView.rx.willDisplayCell.bind {[weak self] (cell, indexPath) in guard let row = self?.tableView.numberOfRows(inSection: 0), self?.tabButtonView.selectedType.value == .api else {return} if indexPath.item >= row - 1 { self?.fetchMore.accept(()) } }.disposed(by: disposeBag) }
-
해결됨iOS Clean Architecture & MVVM: RxSwift 완전 정복
NetworkManager의 tokenHeader 관련 질문 드립니다!
안녕하세요, 덤벨로퍼님! 좋은 강의 감사드립니다!덕분에 좋은 코드 많이 보고 배울 수 있었습니다. 복습 중에 API 헤더 관련해서 궁금한 점이 있어 질문드려요. 강의에서는 API에서 필요로 하는 헤더를 NetworkManager 클래스에서 정의하고 사용하고 있습니다. 규모가 있는 앱에서는 API가 많고 서로 다른 헤더를 필요로 할 거라고 예상이 되는데 NetworkManagerProtocol의 'fetchData()' 메서드에서 파라미터로 헤더를 같이 받아오는 것이 효율적인지 궁금합니다. userNetwork의 'fetchUser()' 메서드 내에서 url과 header를 같이 생성하고 networkManager의 메서드 파라미터로 넘겨주는 방법이 괜찮은 방법일까요?
-
해결됨iOS Clean Architecture & MVVM: RxSwift 완전 정복
[클린 아키텍쳐] 로컬 Json 파싱
안녕하세요! 클린 아키텍쳐 관련 질문있습니다.API 통신이 아니라 로컬에 저장된 json 파일에서 앱 실행시 한번 FileManager로 파싱하고자 하는데, 클린 아키텍쳐 구조로 진행하려면 어떤 구조로 될까요? Domain > Entity 영역에 City 모델을 만든 상태입니다.기능은 크게 2가지로 load하고 search하는 기능이 있습니다. load 한 이후에는 변수를 통해 search하면 되서 search는 뷰 모델에 정의하는게 맞는지, load의 경우 UseCaseProtocol 로 해야하는지 어떤 방식이 적합한지 여쭤봅니다. 추가로 API 통신하는 경우에도 로딩한 후 모델로 가공해서 보여주는 기능만 있는데, 그럴 경우에는 어떻게 진행하는걸 추천하시나요? API 로 선택한 항목에 대한 정보를 로딩하고 데이터 가공해서 UI에 보여주는 경우입니다.. 감사합니다.