
https://github.com/kudoleh/iOS-Clean-Architecture-MVVMimage.pngDomain Layer = Entities + Use Cases + Repositories InterfacesData Repositories Lay

Input & Output 패턴이란 ?출처: https://velog.io/@godo/Input-Output-%ED%8C%A8%ED%84%B4-with-Rx-CombineInput & Output 패턴은 MVVM 아키텍처에서 데이터 흐름을 명확히 정의하고, V
ScrollView → ContentView(UIView) → UI 요소 구조로 구현 중 오토레이아웃 충돌로 인해서 이슈 발생Scroll이 Horizontal로 고정되는 이슈ContentView의 오토레이아웃 제약조건에 충돌이 생긴 것을 확인 후 해결Scroll이 안되

MVCMVVM, MVVM - CMVVM - C → MVVM + CoordinatorVIPERClean ArchitectureTCA유지보수성 향상새로운 기능이나 기존 기능 수정 시 빠르고 안전하게 할 수 있어야 한다관심사 분리 및 책임 분담자신만의 역할을 정확히 수행하고
기존 UIButton 구성 방식에서는 버튼 객체를 생성한 후 setTitle, setImage 등의 메서드를 통해 버튼의 모양을 구성해야 했습니다1. 이 방식은 코드가 길어지고 직관적이지 않았으며, 다양한 상태에 따른 스타일링이 복잡했습니다.일관된 스타일링: 다양한 버
RxSwift 는 Observable 과 Observer 의 상호작용을 중심으로 작동합니다RxSwift , RxCocoa 의 역할RxSwift : 비동기 작업, 데이터 스트림 생성 및 처리RxCocoa : UIKit 컴포넌드와의 데이터 바인딩 및 UI 이벤트 처리💡

내부의 Circle에서는 외부의 Circle에 대해서 몰라야 합니다.의존성은 외부 → 내부 의 흐름으로 진행되어야 합니다.외부는 쉽게 변경이 될 수 있는 저수준의 컴포넌트내부로 갈수록 쉽게 변경 되지 않는 고수준의 컴포넌트Ex) MVVM 패턴 기준Presentaion(

FIFO (First in First out) 구조선입선출되는 구조 ( ex.계산대에 줄을 서는대로 계산 )예외 처리에 대해 고려하지 않은 Queue.위의 예시 코드에서 추가되어야 할 사항dequeue 할 때 시간 복잡도에 대한 고려가 필요함Generic 타입을 사용해
값 타임 -> 메모리에 할당된 값을 복사하여 독립된 인스턴스 생성상속 불가, 데이터 저장 및 간단한 로직 수행 시 사용Stack영역 - 프로그램이 자동으로 사용하는 임시 메모리 영역LIFO 구조함수 호출 시 함수의 지역변수, 매개변수, 반환 값 등이 저장되고 함수가 종

직역해보자면 “고유 컨텐츠 크기”intrinsicContentSize | Apple Developer Documentation공식문서에 따르면 이렇게 설명이 되어있습니다.“View 자체의 속성만을 고려하여 수신 View의 자연스러운 크기를 지정합니다.”여기서 말하는 크
Standard Appearance스크롤이 움직일 때의 보여지는 appearanceScroll Edge Appearance스크롤의 끝 지점에 도달했을 때 보여지는 appearancealpha와 opacity 둘 다 투명도를 건드립니다→ 코드 적용시 어떤 차이가 있을까요
기존의 문자열을 표현하는 방식var name = “김치왕만두 한접시”이런 식으로 작성이 됨.그런데 문자열에 “ “(경계 문자), (이스케이프 문자)를 사용 할 수가 없습니다…사용하고 싶다면var name = “김치 \\” 왕 만두” → “ 작성 예시→ 김치 “ 왕 만두
Entry Point란?→ 프로그램이 시작하는 지점을 의미그래서 왜 필요한데요?→ CPU는 Entry Point를 통해 프로그램을 실행 시키기 때문에 반드시 존재해야함없으면 어떻게 되는데요?→ iOS 시뮬레이터를 돌려보면 검은 화면만 나오고 정상 실행이 되지 않음실수든
애플이 제공해주는 Human Interface Guidelines는 말 그대로 Apple 플랫폼에서 제공해주는 가이드라인입니다 https://developer.apple.com/design/human-interface-guidelines/accessibility A
처음 프로젝트를 만들면com.example.example (예시)이런 식으로 적는 곳이 있을겁니다.그게 바로 Bundle Identifier 입니다보통 웹사이트 주소를 거꾸로 쓰는게 관습이라고 하네요Bundle Identifier는 앱의 고유 식별자 (사람으로 치면
함수선언의 기본 형태반환 값이 없는 함수// Void는 "없다"의 타입 별칭(Type allias)반환 타입 생략하는 형태매개변수가 없는 함수매개변수, 반환 값이 없는 함수
정수 type이다Int는 +, - 부호를 포함한 정수를 뜻한다\-부호를 포함하지 안흔 양의 정수는 UInt로 표현한다Int와 UInt 타입의 최댓값과 최솟값은 각각 max, min 프로퍼티로 알아 볼 수 있다Int와 UInt는 각각 저장할 수 있는 데이터 크기에 따라
클래스는 같은 종류의 집단에 속하는 속성과 행위를 정의한 것객체지향 프로그램의 기본 사용자 정의 데이터 타입이라고도 할 수 있다클래스는 다른 클래스 또는 외부 요소와 독립적으로 디자인되어야한다클래스의 인스턴스(실제로 메모리에 할당되어 동작하는 모양을 갖춘것)이다객체는
스위프트를 발표했을 때 스위프트 언어의 특징Safe, Modern, Powerful오픈소스 전환 이후의 특징Safe, Fast, Expressive엄격한 문법을 적용해 실수를 미연에 방지하고자 노력합니다.Optional을 비롯하여 guard 구문, 오류처리, 강력한 타