전체 글 51

[iOS]2025.06.09 모의면접

대답의 기승전결을 만들자.정의 - 특성 - iOS 접목 - 다뤄본 경험 1. stack 과 queue의 차이점stack은 후입선출 구조를 가진 자료구조입니다. 나중에 온 데이터가 위에 쌓이는 방식이며 iOS에서는 내비게이션 스택처럼 다음화면이 순차적으로 쌓이는 형태를 띕니다. 화면 전환 시 push, pop과 같은 메서드를 통해 쌓여있는 데이터를 후입선출 방식으로 다룰 수 있습니다.queue는 선입선출 구조를 가진 자료구조입니다. 먼저 들어온 데이터를 먼저 처리하는 방식이며 iOS에서는 DispatchQueue와 같이 순서대로 처리하는 형태를 띕니다. 2. optionaloptional은 값이 있을 수도 없을 수도 있는 경우를 나타내는 타입입니다. 옵셔널 처리를 통해 개발자가 해당 값을 사용할 때 유의..

카테고리 없음 2025.06.09

[iOS]2025.06.04 Stack을 왜 쓸까?

함수 호출 시 지역 변수, 매개 변수, 리턴 주소 등이 왜 스택에 저장될까? 1. 함수 호출의 구조적 특성과 후입선출이 잘 맞기 때문func a() { b()}func b() { c()}func c() { print("Hello")}호출 순서는 a->b->c 이지만, 복귀 순서는 c->b->a마지막에 호출된 함수가 가장 먼저 종료되는 구조 -> 스택의 후입선출과 일치 2. 지역 변수와 매개변수는 호출될 때마다 새로 생성되고, 호출이 끝나면 사라지기 때문3. 리턴 주소를 저장해서 함수가 끝난 뒤 어디로 돌아갈지를 알려주기 위해func multiply(x: Int, y: Int) -> Int { let result = x * y return result}func main() { ..

iOS 2025.06.04

[iOS]2025.05.27 트러블 슈팅(스와이프, RxGesture)

문제 상황발생일시 : 2025.05.26발생환경 : Playground, Swift 5, macOS 사용기능 : 스와이프로 navigationController pop하기문제 내용 : UIGestureRecognizerDelegate를 통해 구현하였으나 스와이프가 안됨(가끔 럭키 스와이프가 될때가 있음) 원인 분석SceneDelegate에서 window의 rootViewController가 navigationController가 아니었음.(그냥 splashView였음)이후 splashView에서 MainViewController로 넘어가는 방식도 modal present였음.그러나 핵심 원인은 스와이프 방식이었음. 해결과정SceneDelegate의 window rootViewController를 navi..

iOS 2025.05.27

[iOS]2025.05.23 RxDataSources

CollectionView 에서 RxDataSources를 쓰려면 우선 CellModel : Cell에 들어갈 데이터 구조SectionModel : RxDataSources가 요구하는 구조, 섹션의 데이터 구조ViewModel : 비즈니스 로직CollectionViewCell : Cell UIViewController : CollectionVeiw UI 가 필요하다 CellModel에서는 Cell에 들어가는 데이터 구조를 먼저 정의해준다.import Foundationstruct Beach { let name: String let imageName: String let temperature: String let weatherStatus: String} SectionModel에서는 R..

iOS 2025.05.23

2025.05.19 트러블 슈팅(RxSwift 개인과제)

문제 상황발생일시 : 2025.05.17발생환경 : Playground, Swift 5, macOS 사용기능 : MVVM 구현 실패문제 내용 : 설계 시 MVVM을 구현하려고 하여 ViewController와 ViewModel을 설계하였으나, ViewModel이 필요없어도 구현되어버림. 원인 분석MainViewController에서 DetailViewController에 필요한 데이터 바인딩 메서드를 사용하고 있었음.MainViewModel에서 DetailViewModel에 필요한 이벤트 방출 메서드를 사용하고 있었음. 해결과정책임 분리를 위해서 MainViewController의 didSelectItemAt 에서 화면전환 및 이벤트 방출DetailViewController 및 ViewModel로 데이터..

TIL 2025.05.19

[iOS]2025.05.12 RxSwift

ReactiveX : 비동기 프로그래밍과 옵저버 패턴을 사용하기 쉽도록 돕는 라이브러리.데이터의 변화에 반응하는 프로그래밍을 하게 되어 반응형 프로그래밍이라고도 함. Observable관측 가능한 대상, 이벤트와 데이터를 방출하는 클래스ObserverObservable을 구독(subscribe)하고 관찰하는 관찰자 ex) 나는 Observable에서 정수값이 방출되어 나오면, 그 값에 2를 곱해서 사용할래.import UIKitimport RxSwiftclass ViewController: UIViewController { // 구독을 끝낸 뒤 구독을 해제하기 위한 disposeBag. let disposeBag = DisposeBag() override func viewD..

TIL 2025.05.12

[iOS]2024.04.24 포켓몬 전화번호부 과제 리뷰

view를 따로 만들어서 인스턴스로 관리 가능. class ListViewController: UIViewcontroller { let listView = ListView() // 커스텀 뷰를 인스턴스로 생성 override func loadView() { view = listView }}override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) navigationController?.isNavigationBarHidden = true }필요한 부분에서만 내비게이션 바 사용하고, 필요없을 때는 지워주면 됨. 클로저 캡처, 캡처리스트 weak self

카테고리 없음 2025.04.24