일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
- OperationQueue
- Union-Find
- IOS
- mvvm
- 버블정렬
- endpoint
- uikit
- 이진탐색
- 동시성프로그래밍
- 동작과정
- RxSwift요약
- 백준
- rxswift
- swift
- Content Compression Resistance priority
- swift알고리즘
- GCD
- 자료구조
- 객체지향프로그래밍
- RxCocoa
- Autolayout
- 알고리즘
- Content Hugging priority
- 선택정렬
- RX
- ReactiveX
- 병합정렬
- coordinator
- 삽입정렬
- 오토레이아웃
- Today
- Total
목록전체 글 (25)
JosephCha의 개발일지
프로세서 하드웨어적인 측면에서 컴퓨터 내에서 프로그램을 수행하는 하드웨어 유닛 중앙처리장치(Centeral Processing Unit-CPU)가 대표적 한 컴퓨터가 여러 개의 프로세서를 갖는다면 멀티 프로세서 코어 코어는 프로세서의 주요 연산회로 여러 개의 코어를 가진 프로세서를 멀티 코어라고 함 멀티 코어는 단일 CPU에 여러 개의 코어 또는 처리 장치를 가지고 있음 프로그램과 프로세스 프로그램은 일반적으로 보조기억장치에 저장된 실행코드 즉, 생명이 없는 상태 프로세스는 프로그램을 구동하여 프로그램 자체와 프로그램의 상태가 메모리상에서 실행되는 작업 단위 동시에 여러 개의 프로세스(or 스레드)를 운용하는 시분할 방식을 멀티태스킹 스레드 하나의 프로세스 내에서 실행되는 작업흐름의 단위 보통 한 프로세..
목차 기본개념 Observable Subject Filtering Operator Transforming Operator Combinging Operator TimeBased Operator Error Handling RxCocoa 기본개념 RxSwift 탄생 배경 우리가 작성하는 코드의 대부분은 다양한 이벤트 처리와 관련됨. 예를들면, 사용자가 UI컴포넌트를 조작할때 응답할 IBAction handler, 키보드 위치 변경을 감지하기 위해 notification을 관찰해야함, urlsession이 데이터로 응답할 때 실행할 클로저, KVO를 사용해서 변수의 변경사항을 감지해야함. 이러한 각각 다른 이벤트 처리는 모두 코드를 복잡하게 만듬. 또한 일반적으로 대부분의 클래스들은 비동기적으로 작업을 수행하고..
ViewController에서의 화면전환 문제점은? 1. ViewController에서 화면 전환은 아래 코드처럼 간단히 구현할 수 있음 self.navigationController?.present(anotherViewController, animated: true) 2. 하지만 앱이 화면이 많아지고 복잡해짐에 따라, 동일한 화면으로 화면 전환하고 싶은 곳이 많아지거나 기존 같은 화면이 아닌 다른 화면으로 전환하고 싶게 된다면, 해당 코드들을 다 찾으면서 수정하는 번거로운 일이 발생함. 3. 이러한 화면 전환 코드는 작성된 ViewController가 담당하게 되고, 하드코딩되어 있어 관리하기 힘들어짐 (안그래도 많은 일을 담당하는데..) 4. View Controller간의 의존성도 생기게 됨 Coo..
Data Binding: 두 데이터를 묶는 것으로, 한 쪽이 변화가 있으면 다른 쪽도 자동 갱신으로 이루어 지는 것 종류 KVO Delegation Clouser(콜백) NotificationCenter 반응형 프로그래밍 (RxSwift, Combine) Property Observer (didSet, willSet) 역할 Model 데이터를 담아두기 위한 구조체, 네트워크 로직, JSON 파싱 코드 등 비즈니스 로직에서 사용되는 근본 데이터를 담고 있는 계층 View, ViewModel에 대한 의존성이 없기 때문에, 데이터가 어떻게 보여질 것인지에 대해서는 고려하지 않음 View 화면 UI를 어떻게 구성할 지에 대한 계층 (SwiftUI에선 View, UIKit에서는 ViewController) 사용자..
SOLID 원칙이란 객체 설계에 필요한 5가지 원칙으로써 유지보수가 쉽고, 유연하고, 확장이 쉬운 소프트웨어를 만들기 위한 수단, 높은 응집력과 낮은 결합도의 코드를 만들 수 있음 SRP (Single Responsibility Principle) : 단일 책임 원칙 하나의 클래스는 하나의 책임을 가져야 함 클래스의 수정이유는 단 하나여야 함 하나의 책임이 여러개의 클래스에 나뉘어 있어서도 안됨 하나의 클래스 안에 협력관계(Collaboration)가 여러개가 있는것은 괜찮음 장점 SRP 원칙을 잘 따르면 한 책임의 변경으로부터 다른 책임의 변경으로의 연쇄작용에서 자유로울 수 있게 됨 책임을 적절히 분배함으로써 코드의 가독성 향상, 유지보수 용이 Before class Handler { func hand..
네트워크 Endpoint Endpoint : 서버와 클라이언트 간의 통신을 위한 API 요청이 가능한 주소를 나타내는 특정 URL 또는 URI BaseURL API Endpoint의 기본 URL. 모든 요청은 baseURL을 기반으로 한다. ex) "https://api.example.com/users" 에서 baseURL은 "https://api.example.com/” path baseURL 이후에 따라오는 경로를 지정 ex) "https://api.example.com/users/1” 에서 path는 /users/1 Header HTTP 본문(body) 및 Request/Response에 대한 정보를 포함함 HTTP 헤더는 클라이언트와 서버가 요청 또는 응답으로 부가적인 정보를 전송할 수 있도록 해..
iOS 앱은 사용자 정의 코드, 시스템 프레임워크 간의 상호작용으로 동작 사용자(개발자) 정의 코드(Custom Code): 원하는 기능과 UI 구현 가능 시스템 프레임워크: 편집 불가 iOS 기반의 앱이 실행되는 데 필요한 기초 환경을 제공 앱을 실행하는 것은 복잡한 일련의 단계를 포함하며, 대부분은 시스템이 자동으로 처리함. Launch sequence동안, UIKit은 AppDelegate의 메소드를 호출하여 user interaction을 위해 앱을 준비하고 앱의 요구사항과 관련된 모든 작업을 수행할 수 있음. Application Life cycle을 알아보기 전에 앱 구조와 main run loop에 대해서 먼저 알아보자. 앱 구조와 main run loop 참고: Structure of AP..
UIKit 기본개념 iOS, iPadOS, tvOS 앱을 위한 그래픽 이벤트 기반 UI(사용자 인터페이스)를 구축하고 관리해주는 프레임 워크 iOS, iPadOS, tvOS앱의 핵심 인프라를 구성하는 데 사용할 수 있는 구성 요소를 포함하여 앱을 구축하기 위한 다양한 기능을 제공함 UI를 구현하기 위한 Window및 View Architecture을 제공 앱에 멀티 터치 및 기타 유형의 입력을 제공하기 위한 이벤트 처리 인프라 제공 사용자, 시스템 및 앱 간의 상호 작용을 관리하기 위한 Main run loop 제공 애니메이션, 문서, 드로잉 및 인쇄, 텍스트 관리 및 디스플레이, 검색, 앱 확장, 리소스 관리 및 현재 장치에 대한 정보 얻기를 지원 접근성 지원을 사용자 정의, 다른 언어, 국가 또는 문..
클래스 객체마다 같은 종류의 프로퍼티와 메소드를 정의한 사용자 정의 데이터형 틀 객체의 상태를 나타내는 프로퍼티와 객체의 행동을 나타내는 메소드로 구성됨 비슷한 구조를 갖지만 상태가 서로 다른 많은 객체들을 만들 수 있음 객체 클래스의 인스턴스(실제로 메모리상에 할당된 것) 자신만의 프로퍼티의 값을 가지며 클래스에서 정의한 메소드들을 수행할 수 있음 객체지향 프로그래밍(OOP) 객체들의 상호작용으로 서술하는 프로그래밍 기법 프로그램을 그저 데이터와 처리방법으로 나누는 것이 아닌, 프로그램을 다수의 '객체'로 만들어놓고, 객체들끼리 서로 상호작용을 통해서 하나의 프로그램을 만들어지는 방식 객체지향 프로그래밍의 4가지 특성 추상화 객체의 공통적인 프로퍼티와 메소드를 추출하여 정의하는 것 객체지향적 관점에서는..
백준 문제 링크: https://www.acmicpc.net/problem/1543 1543번: 문서 검색 세준이는 영어로만 이루어진 어떤 문서를 검색하는 함수를 만들려고 한다. 이 함수는 어떤 단어가 총 몇 번 등장하는지 세려고 한다. 그러나, 세준이의 함수는 중복되어 세는 것은 빼고 세야 한 www.acmicpc.net 입력 첫째 줄에 문서가 주어진다. 문서의 길이는 최대 2500이다. 둘째 줄에 검색하고 싶은 단어가 주어진다. 이 길이는 최대 50이다. 문서와 단어는 알파벳 소문자와 공백으로 이루어져 있다. 출력 첫째 줄에 중복되지 않게 최대 몇 번 등장하는지 출력한다. 예제 입력 1 복사 ababababa aba 예제 출력 1 복사 2 예제 입력 2 복사 a a a a a a a 예제 출력 2 복..