본문 바로가기

💡 Today I Learned/스터디 자료정리12

[스터디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.
[스터디2일차][RxSwift] 연산자 1.  결합 연산자(Combine)여러 Observable을 결합하여 하나의 Observable로 만듦  1-1.  merge여러 Observable을 병합하여 하나의 Observable로 결합각 Observable은 독립적으로 동작하며 값이 발생하는 즉시 병합되어 방출된다(순번X)활용 예시let observable1 = Observable.of(1, 2, 3)let observable2 = Observable.of(4, 5, 6)Observable.merge(observable1, observable2) .subscribe(onNext: { value in print(value) }) //방출되는 순서에 따라 1, 2, 3, 4, 5, 6 또는 다른 순서일 수 있다   1-.. 2024. 10. 11.
[스터디1일차][RxSwift] Observable & Subject 1.  Observable비동기적으로 데이터를 방출하는 데이터 소스이며 여러 이벤트를 통해 데이터를 전달함구독자(Observer)는 Observable을 관찰(구독 Subscribe)하고 있다가 전달되는 이벤트를 처리한다  1-1.  전달되는 주요 이벤트onNext새로운 데이터를 방출할 때마다 호출됨onError에러 방출 후 더이상 데이터를 방출하지 않음onCompleted오류가 발생하지 않았다면 마지막 onNext를 호출한다. 더이상 이벤트가 발생하지 않는다 → onError, onCompleted는 Observable 라이프사이클 가장 마지막에 전달된다.     Observable이 종료되면 모든 리소스가 정리되기 때문에 다른 이벤트가 전달되지 못하며, error, complete 발생 시 dispo.. 2024. 10. 7.