묻고 답해요
160만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결개발을 위한 프로그래밍적 사고 기르기
[세션 4] 내 학습 방법을 돌아보며 공유해보아요
이번 세션은 어떻게 학습하셨나요?강의를 들으면서 어떤 생각의 변화나 깨달음이 있었나요?그 변화나 깨달음을, 지금 나의 학습이나 작업에 어떻게 적용해볼 수 있을까요?💬 부담 갖지 말고 편하게 써주세요!혼자만의 정리도 좋고, 다른 사람들과 공유해도 좋아요.여러분의 방식이 다른 사람에게도 큰 도움이 될 수 있어요 :)
-
미해결개발을 위한 프로그래밍적 사고 기르기
[세션 3] 내 학습 방법을 돌아보며 공유해보아요
이번 세션은 어떻게 학습하셨나요?강의를 들으면서 어떤 생각의 변화나 깨달음이 있었나요?그 변화나 깨달음을, 지금 나의 학습이나 작업에 어떻게 적용해볼 수 있을까요?💬 부담 갖지 말고 편하게 써주세요!혼자만의 정리도 좋고, 다른 사람들과 공유해도 좋아요.여러분의 방식이 다른 사람에게도 큰 도움이 될 수 있어요 :)
-
미해결개발을 위한 프로그래밍적 사고 기르기
[세션 2] 내 학습 방법을 돌아보며 공유해보아요
이번 세션은 어떻게 학습하셨나요?강의를 들으면서 어떤 생각의 변화나 깨달음이 있었나요?그 변화나 깨달음을, 지금 나의 학습이나 작업에 어떻게 적용해볼 수 있을까요? 💬 부담 갖지 말고 편하게 써주세요!혼자만의 정리도 좋고, 다른 사람들과 공유해도 좋아요.여러분의 방식이 다른 사람에게도 큰 도움이 될 수 있어요 :)
-
미해결개발을 위한 프로그래밍적 사고 기르기
[세션 1] 내 학습 방법을 돌아보며 공유해보아요
이번 세션은 어떻게 학습하셨나요?강의를 들으면서 어떤 생각의 변화나 깨달음이 있었나요?그 변화나 깨달음을, 지금 나의 학습이나 작업에 어떻게 적용해볼 수 있을까요? 💬 부담 갖지 말고 편하게 써주세요!혼자만의 정리도 좋고, 다른 사람들과 공유해도 좋아요.여러분의 방식이 다른 사람에게도 큰 도움이 될 수 있어요 :)
-
해결됨앱 개발 기초부터 실전까지 하나로 끝내는 Swift & iOS 마스터 클래스
런타임 오류 - 조언 부탁드립니다.
안녕하세요. 강사님또다시 어려움이 생겨서 질문 드립니다.섹션19 의 Step #11 - CoreData를 수강하면서 질문 올립니다.시뮬레이터 iPhone 15 Pro로 진행했고요.컴파일 오류는 없는데 런타임 오류가 나서요.바쁘시겠지만 한번 봐 주시면 감사하겠습니다.
-
해결됨앨런 Swift Concurrency for Swift 6 (Part-1)
Task 클로저에서 weak self 미사용에 대해 질문드립니다!
양질의 강의 만들어주셔서 업무에 많이 도움이 될 것 같아 먼저 감사의 말씀 드립니다:)'Task(작업)과 self 사용 관련 및 캡처리스트의 weak self 사용 (5강)'에서 질문 드립니다. Task 클로저 내에서 weak self를 생략하더라도 메모리 누수 관점에서 문제가 없는 것은 이해가 되었습니다!다만, GCD를 Task로 전환하는 관점에서 생각해봤는데요 'self가 해제된 시점'에서 'weak self 사용'한 'GCD 클로저'에서는 내부 동작이 실행되지 않을 것 같은데요'self가 해제된 시점'에서 'weak self 미사용'한 'Task 클로저'에서는 내부 동작의 실행이 보장될 것 같은데 제가 이해한게 맞을지 궁금합니다!길지 않은 비동기 작업이더라도 미세하게 동작 차이가 발생할 수 있는 부분이 아닐까 싶어 질문 드렸습니다!
-
해결됨앨런 Swift Concurrency for Swift 6 (Part-2)
안녕하세요. 액터 홉핑 관련 질문드립니다.
📌자주하는 질문 모음링크: https://pointed-earwig-996.notion.site/Swift-Concurrency-for-Swift-6-Part-2-1acbbab5ec9280a0944edcab00e027dd?pvs=4 자주하는 질문을 먼저 확인 부탁드리며, 질문은 최대한 구체적으로하셔야 빠르게 답변드릴 수 있습니다. [질문 예시](1) 몇강, 몇초의 내용이 잘 이해가 안갑니다. (제가 적어놓은 강의 번호 "10강, 7분 강의 내용 중에... " )(2) 강의자료 몇 페이지의 내용이 잘 이해가 안갑니다.(3) 정확하게 어떤 포인트에 대한 내용이 이해가 안갑니다. 다시 설명해주실 수 있나요 안녕하세요. 실행자(executor)와 액터 홉핑(actor hopping)과 관련해 질문이 있어요. 액터에 실행자 개념까지 나오니 너무 헷갈리네요. 액터 홉핑이 일어나게 되면, 액터에 내장되어 있는 실행자(executor)가 전환되고, 이는 곧 액터에서 실행되는 스레드의 묶음이 바뀌는 것이니, (실행 컨텍스트는 물론) 스레드 컨텍스트 스위칭이 일어날 수 있다라고 보는 게 맞을까요? 메인 액터-일반 액터 간 홉핑은 메인 스레드와 협력형 스레드 풀 간의 전환이니, 실행 컨텍스트와 스레드 컨텍스트 전환이 무조건 일어나는 게 맞을까요? 일반 액터-일반 액터 간 홉핑은 모두 Swift 동시성이 기본으로 제공해주는 직렬 실행자(serial executor)에서 실행되고, 이 직렬 실행자는 협력형 스레드 풀에서 실행되는 것이니, 실행 컨텍스트 전환은 일어날 수 있어도 스레드 컨텍스트 스위칭은 일어날 수도 있고, 일어나지 않을수도 있다고 보는 게 맞을까요?(플레이그라운드에서 Thread.current로 찍어 실험을 해봤을 땐, 모두 동일한 스레드에서 실행되는 걸로 보입니다)
-
해결됨Part1: 진짜 왕초보 iOS 배우기(SwiftUI, SwiftData, 2024)
JSON_Decodable.playground에서 print문이 안찍히는 문제
JSON_Decodable.playground 에서 print 문이 안찍혀요
-
미해결앨런 Swift Concurrency for Swift 6 (Part-1)
업데이트 예정 강의 공개 일정이 궁금합니다.
안녕하세요.part1 강의에서 업데이트 예정 항목이 몇가지 있는데요. 해당 영상은 언제쯤 공개 되는지 궁금합니다. (업데이트) TaskGroup 실행함수 파라미터 추가 관련 업데이트 예정(업데이트 예정) 취소 핸들러 관련 내용 업데이트 예정 (API 업데이트)
-
미해결[애플 공식 교재] 스위프트 퍼즐 2
배열 섬생성기
water를 입력하면 오류가 생깁니다
-
미해결앨런 Swift Concurrency for Swift 6 (Part-1)
29강 async let 작업 취소 부분 질문
📌 자주하는 질문 모음링크: https://pointed-earwig-996.notion.site/Swift-Concurrency-for-Swift-6-Part-1-22eecb0b83154ac28c7c66446f6e54e1?pvs=4 자주하는 질문을 먼저 확인 부탁드리며, 질문은 최대한 구체적으로하셔야 빠르게 답변드릴 수 있습니다. [질문 예시](1) 몇강, 몇초의 내용이 잘 이해가 안갑니다. (제가 적어놓은 강의 번호 "10강, 7분 강의 내용 중에... " )(2) 강의자료 몇페이지의 내용이 잘 이해가 안갑니다.(3) 정확하게 어떤 포인트에 대한 내용이 이해가 안갑니다. 다시 설명해주실 수 있나요?29강 17:10 ~ 18:00 사이 내용에 질문이 있습니다.CASE2에서 배열이나 튜플로 구현하는 경우 취소 전파가 늦게 된다고 적혀있고 설명도 그렇게 해 주시는데, CASE1에 비해 취소 전파가 늦게 될 수 있다고 이해가 되는데요.CASE2는 CASE1에 비해 try await을 연달아서 사용하지 않아도 된다는 점만 다르고, 나열하는 순서대로 실행되는 동작 자체는 동일한것 같은데 두 case가 실제로 차이가 있는건가요? 두 case가 완전히 동일하게 동작하는 것 같은데 차이가 있는 것처럼 설명하시는것 같아서 제가 잘못 이해한 것인지 궁금합니다.
-
해결됨앨런 Swift Concurrency for Swift 6 (Part-2)
재개될 때 스레드 변경시 왜 컨텍스트 스위칭이 발생하지 않는 건가요?
📌 자주하는 질문 모음링크: https://pointed-earwig-996.notion.site/Swift-Concurrency-for-Swift-6-Part-2-1acbbab5ec9280a0944edcab00e027dd?pvs=4안녕하세요. 몇 가지 궁금한점이 있어서 질문남겨요.part.1의 7강, 책 26페이지에서 멈췄다가 다시 실행될때 다른 쓰레드에서도 실행될 수 있다고 되어있는데요.우선 제가 이해한 것은기존의 프로세스(앱)하나당 여러개로 나뉘어서 쓰던 쓰레드가 CPU-프로세스-쓰레드 각 하나씩으로 연결로 바뀌었다.하나의 쓰레드에서 멈췄다 재개했다를 반복하며 재개 전까지 다른 일을 처리할 수 있게 됐다.그래서 프로세스 내부에서 일어나던 컨텍스트 스위칭이 없어졌다.제가 헷갈리는 부분은 아래와 같아요.현재강의 3:15에 보면 한 쓰레드에서 멈췄다 재개했다 하며 중간에 다른 일도 처리하고 하는걸로 보여요. 그래서 컨텍스트 스위칭이 일어나지 않는다고 이해했어요. 그런데 다른쓰레드에서 재개되면 쓰레드가 바뀌는데 왜 컨텍스트 스위칭이 일어나지 않는 건가요?CPU당 하나씩 쓰레드를 가지게 되면 최대 동시 실행할 수 있는 앱은 CPU코어수 만큼으로 제한되나요?
-
미해결앱 개발 기초부터 실전까지 하나로 끝내는 Swift & iOS 마스터 클래스
Playground 실행중 오류
안녕하세요. 강사님너무나 강의를 잘 듣고 있습니다.알찬 강의 감사드립니다.요즘에 강의 중에 playground에서 실습하는 내용이 있어서 playground에서 실습을 하면 이상한게 떠서 문의 드립니다.그리고 아울러 import 구문에 UIKit을 import하면 오류가 나고 Foundation으로 하면 오류가 나지 않네요..왜 그런건지도 알고 싶습니다. Xcode를 재실행도 해보고, 맥도 재실행 해봐도 마찬가지입니다.읽어주셔서 감사합니다.
-
해결됨SwiftUI의 Property Wrapper(@State, @Binding...)
혹시 RxSwift 강의 계획도 있으신지 궁금합니다.
안녕하세요?혹시 RxSwift 강의도 향후 계획에 있으신지 궁금합니다.
-
미해결앨런 Swift Concurrency for Swift 6 (Part-1)
Task를 함수 내부에서 사용했을 때 값의 변화를 예상하는 법
📌 자주하는 질문 모음링크: https://pointed-earwig-996.notion.site/Swift-Concurrency-for-Swift-6-Part-1-22eecb0b83154ac28c7c66446f6e54e1?pvs=4 자주하는 질문을 먼저 확인 부탁드리며, 질문은 최대한 구체적으로하셔야 빠르게 답변드릴 수 있습니다. [질문 예시](1) 몇강, 몇초의 내용이 잘 이해가 안갑니다. (제가 적어놓은 강의 번호 "10강, 7분 강의 내용 중에... " )(2) 강의자료 몇페이지의 내용이 잘 이해가 안갑니다.(3) 정확하게 어떤 포인트에 대한 내용이 이해가 안갑니다. 다시 설명해주실 수 있나요? 안녕하세요 엘런님, 강의를 들으면서 swift concurrency를 적극 활용해보고 있는 중입니다.코드를 작성하고 나서 테스트 코드를 작성하면서 의문이 생기게 되었는데요,class viewmodel { @Published private(set) var count = 0 enum Event { case buttonTapped } // viewcontroller에서 호출하는 함수 func dispatch(_ event: Event) { Task { switch event { case .buttonTapped: count += await fetch() } } } // 네트워크를 통해 받아오는 값이라고 가정. private func fetch() async -> Int { return 100 } } struct viewmodelTests { var sut: viewmodel! init() { sut = viewmodel() } @Test func testButtonTapped0() async throws { sut.dispatch(.buttonTapped) try await Task.sleep(for: .seconds(1)) #expect(sut.count == 100) } @Test func testButtonTapped1() async throws { sut.dispatch(.buttonTapped) await Task.megaYield() #expect(sut.count == 100) } @Test func testButtonTapped2() async throws { sut.dispatch(.buttonTapped) try await Task.yield() #expect(sut.count == 100) } @Test func testButtonTapped3() async throws { try await withMainSerialExecutor { sut.dispatch(.buttonTapped) try await Task.yield() #expect(sut.count == 100) } } @Test func testButtonTapped4() async throws { try await withMainSerialExecutor { sut.dispatch(.buttonTapped) try await Task.megaYield() #expect(sut.count == 100) } } }다음과 같은 viewmodel을 테스트하는 코드를 작성했을 때,0번째 테스트의 경우는 현재 testButtonTapped0가 실행되는 Task를 suspend했지만, dispatch 함수 내부의 Task는 suspend되지 않고 그대로 진행되기 때문에 정상적으로 작동을 할 것으로 예상을 했습니다.https://github.com/pointfreeco/swift-concurrency-extras1번째의 경우는 위 라이브러리를 사용해서 하나의 Task를 여러번 yield시켜주도록 해서 동작하도록 해서 거의 높은 확률로 작동을 했습니다.그런데 testButtonTapped2의 경우 yield를 해주더라도 남아있는 스레드가 존재해서 바로 다시 일을 진행을 해서 틀릴 때가 있는 걸까요???또한 5번째는 거의 항상 맞는 것이 보장되는데 3번째는 보장이 되지 않는 이유도 궁금합니다. 궁극적으로 궁금한 점은 현재 위 코드의 viewmodel의 dispatch함수를 테스트하기 위해서 어떠한 방법을 사용해야 항상 성공을 보장할 수 있을 지 궁금합니다. 또한 Task.yield()를 했을 때 어떤 Task를 yield하는지 정확하게 이해가 가지 않습니다.. 긴 글 읽어주셔서 감사합니다!
-
미해결앱 개발 기초부터 실전까지 하나로 끝내는 Swift & iOS 마스터 클래스
Custom Activity Item 질문
안녕하세요 강사님.강의 잘 듣고 있습니다. 정말 도움이 많이 됩니다.저 처럼 늦은 나이에 시작하는 사람한테는 큰 힘이 됩니다.질문내용은 File Manage #11 - Custom Activity Item 강의를 수강하고, 실습을 하던중에 잘 되지않는 사항이 있어 질문 드립니다.이미지의 공유버튼을 누르면 작은 아이콘이 이미지파일명과 같이 뜨는데, 저는 작은 아이콘이 뜨지를 않습니다뭔가를 잘못한거 같은데요.. 바쁘시더라도 한번 봐주셔서 답변 부탁드립니다. 감사합니다.
-
미해결앨런 iOS 앱 개발 (15개의 앱을 만들면서 근본원리부터 배우는 UIKit) - MVVM까지
playground에서 상단 실행?아이콘 회전 관련하여...
안녕하세요.. ios에서 네크워킹 169강의 강의영상의 코드를 playground에서 따라작성해서 테스트 했습니다. 궁금한 것이 있어서 질문드립니다. 우선 따라하기 결과는 정상적으로 json 데이터를 영화 openapi 로 잘 받아오는 결과는 확인했습니다. 그런데, playground 상단부분에 프로그램을 실행시키면, 실행중이라는 의미로 원모양의 아이콘이 돌아가는 것 같은데.. 이 아이콘이 계속 돌아가고 있어서 무엇인가 잘못된 것이 아닌지 궁금합니다. 아니면 제가 이 아이콘의 의미를 잘못해석한 것이 되는건가요? 강사님 영상에서는 이 아이콘이 보이지 않는데..제가 이 강의를 시작으로 xcode라는 툴을 처음으로 접해보고 있는 상태라서 모르는 것이 너무 많은 상태입니다.
-
미해결앨런 iOS 앱 개발 (15개의 앱을 만들면서 근본원리부터 배우는 UIKit) - MVVM까지
활용앱53강에서 질문있습니다.
안녕하세요.. 활용앱53강을 보고있습니다.보통 xcode에서 프로젝트를 생성하면 일반적으로 ViewController 파일이 하나 존재하고, 그 파일이 일종의 앱실행을 담당하는 것으로 알고 있습니다. 그런데 53강에 프로젝트 화면을 보면, ViewController 파일은 없고, LoginViewController가 기존 다름 프로젝트의 ViewController 역할을 하는 것 같습니다.그래서 이 것을 어떻게 했는지 궁금합니다. 단순히 ViewController 를 이름 변경해서 LoginViewController로 하는 것은 아닌 것 같아서요..혹시 스토리보드 화면의 ViewController 화면을 선택한 후에 우측의 Identifier Inspector 화면에서 클래스 명칭을 추가로 입력한 ViewConroller 클래스로 변경하면 되는 건가요?
-
미해결앨런 iOS 앱 개발 (15개의 앱을 만들면서 근본원리부터 배우는 UIKit) - MVVM까지
Project 명칭 변경방법이 궁금합니다.
안녕하세요..프로젝트를 설정할 때 명칭을 신경안쓰고, 그냥 타이핑해서 생성한 후에 최종까지 앱을 만든 후에 보니 프로젝트 명이 BMI 면 ㅠㅡㅑ 로 되어 있는 경우가 발생했습니다. 이경우 프로젝트 명을 간단히 영문으로 BMI로 변경할 수 있는 방법이 있을까요? 오른쪽에 있는 FileInspector 있는 Name을 변경했는데, 실행할 때 게속 오류가 나서, 현재는 해당 프로젝트를 다시 만들고 있는데, 쉽게 해결할 수 있는 방법이 없을까요?
-
미해결앨런 iOS 앱 개발 (15개의 앱을 만들면서 근본원리부터 배우는 UIKit) - MVVM까지
override 에 대해서 궁금한 것이 있습니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요.. 최근 iOS 앱 개발 강의를 따라 하고 있는 중입니다. 그런데, 갑자기 의문이 생겼습니다. ViewController의 코드에서 override func viewDidLoad(){ super.viewDidLoad() //} 로 함수 내부에서 super.viewDidLoad()를 호출해 주는데, 세그웨이 를 위해서 override하는 함수 prepare에서는 왜 super.prepare()라는 함수를 호출해 주지 않는 것인가요? 함수를 override 할 때 super의 함수를 override 하는 것은 UI 표시 관련된 함수만 호출하는 건가요? 일종의 동작관련한 것들은 override 함수에서 super의 함수를 호출할 필요가 없나요?