💡 Today I Learned28 [스터디9일차] CollectionView 1. 기본적인 컬렉션뷰의 구조와 사용class ViewController: UIViewController { //콜렉션뷰 선언 var collectionView: UICollectionView! //데이터 배열 let data = ["Item 1", "Item 2", "Item 3", "Item 4", "Item 5"] override func viewDidLoad() { super.viewDidLoad() //1. 콜렉션뷰 레이아웃 설정 (기본적인 그리드 레이아웃) let layout = UICollectionViewFlowLayout() layout.itemSize = CGSize(width: 100, height: 100.. 2024. 11. 26. [스터디8일차] Diffable Data Source 1. Diffable Data Source란?TableView, CollectionView를 그리기 위한 데이터를 관리하고 UI를 업데이트 한다기존 방식과 달리 데이터의 변경 사항을 자동으로 계산하고 애니메이션을 적용해 UI업데이트를 수행한다핵심은 변경된 데이터만 효율적으로 업데이트 한다는 점이다 2. DataSource Protocol과의 차이TableView, CollectionView를 그리기 위해서는 DataSource가 필요하다기존에는 DataSource Protocol을 채택하고, 프로토콜에 구현되어 있는 메서드를 사용하는 방법을 사용했다 데이터 업데이트 방식에서의 차이기존의 DataSource Protocol는 reloadData()를 호출하여 데이터를 전체적으로 갱신한다이렇게 하면.. 2024. 11. 13. [스터디7일차] 객체지향 & 프로토콜 1. 객체지향 프로그래밍(OOP)1-1. 객체지향의 기본 개념객체(Object)와 메시지(Message)로 구성된다객체지향에서는 소프트웨어를 하나의 독립적이고 유기적인 객체의 집합으로 보고, 이 객체들이 서로 상호작용하여 문제를 해결해나가는 구조를 만들어 나간다객체는 외부에서 접근 가능한 인터페이스를 통해 상호작용하고, 외부에서는 객체 내부의 상태나 구현 방식을 알 필요 없이 오직 인터페이스를 통해서만 상호작용한다 1-2. 객체(Object)와 메시지(Message) 란?객체란 데이터와 이를 조작하는 동작(메서드)를 하나의 단위로 묶은 것이다메시지란 서로 독립적인 존재인 객체가 상호작용할 수 있게 하는 도구다(객체 ↔ 메시지 ↔ 객체) 1-3. 객체지향 설계의 5대 원칙(SOLID 원칙) 1).. 2024. 11. 12. [스터디6일차] 테스트 코드👩🏻🔧 💡 테스트 코드는 개발한 코드의 동작이 의도한 대로 수행되는지 검증한다 테스트 코드 작성 시 오류를 빠르게 발견해 유지보수가 쉬워지며 코드의 품질을 높혀 소프트웨어의 안정성을 높일 수 있다크게 단위 테스트(Unit Test)와 통합 테스트(Integration Test), UI 테스트로 나뉜다 1. 테스트 코드의 분류 1-1. 단위 테스트(Unit Test)소프트웨어의 가장 작은 단위를 테스트한다 (일반적으로 함수나 메서드 단위)단위 테스트의 주요 목적은 코드의 각 부분이 정확하게 작동하는지 확인하는 것이며, 주로 의존성 없는 코드(로직이나 계산)에 대해 독립적으로 검증하는데 사용된다 1-2. 통합 테스트(Integration Test)여러 컴포넌트나 시스템이 함께 작동할 때 발생할 수 있는 .. 2024. 10. 30. [스터디5일차] MVVM 패턴 MVVM이란?Model - View - ViewModel의 약자로 UI와 비즈니스 로직을 분리한다각각 특정한 역할을 담당하며 독립적으로 동작할 수 있게 만들어져 코드의 가독성이 높아지고 유지보수와 테스트를 쉽게 한다 1. Model데이터 구조를 표현하여 데이터를 처리한다. → MVC와 동일예를 들어, 사용자의 정보를 가져오거나 서버*에서 데이터를 받아온다 *파이어베이스같은 데이터베이스, 또는 네트워크(ex. 연락처앱의 PhoneBook 구조체) 2. ViewViewModel을 관찰하여 사용자에게 보여지는 UI 요소를 처리한다(데이터 바인딩)(ex. UIButton, UITableView, UIViewController..)데이터를 직접 접근 및 처리하지 않고 보여주기만 한다3. ViewMode.. 2024. 10. 25. [스터디4일차][RxSwift] RxCocoa 1. RxCocoa란?RxSwift와 함께 사용되는 라이브러리로 UI와 관련된 작업을 반응형으로 처리할 수 있게 한다 2. RxCocoa의 주요 기능2-1. UI 바인딩여러 UI요소들(UIButton, UILabel, UITextField...) 과 데이터 사이의 바인딩을 쉽게 처리한다Observable로 변환하여 상태 변화를 쉽게 감지하고 처리한다활용 예시let textField = UITextField()let label = UILabel()textField.rx.text.orEmpty .bind(to: label.rx.text) .disposed(by: disposeBag)*텍스트필드 값 업데이트 시 즉시 반영 let switchControl = UISwitch()let butto.. 2024. 10. 22. 이전 1 2 3 4 5 다음