일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- rxswift
- AI
- CI/CD
- LLM
- 자료구조
- ReactiveX
- 동시성프로그래밍
- mvvm
- gitlab
- 백준
- CICD
- RxCocoa
- swift
- 알고리즘
- 오토레이아웃
- RxSwift요약
- OperationQueue
- Union-Find
- ai expo
- cleanarchitecture
- Content Hugging priority
- apple intelligence
- swift알고리즘
- 동작과정
- IOS
- gitlabci/cd
- 클린아키텍처
- Autolayout
- Content Compression Resistance priority
- 애플인텔리전스
- Today
- Total
목록IOS (13)
JosephCha의 개발일지

CI/CD란?CI/CD는 반복적인 코드 변경을 지속적으로 구축, 테스트, 배포 및 모니터링하는 지속적인 소프트웨어 개발 방법.이 반복 프로세스는 버그가 있거나 실패한 이전 버전을 기반으로 새로운 코드를 개발할 가능성을 줄이는 데 도움이 됨. GitLab CI/CD는 개발 주기 초기에 버그를 포착할 수 있으며, 프로덕션에 배포된 코드가 기존 코드 표준을 준수하는지 확인하는 데 도움을 줄 수 있음. 참고사항- GitLab Runner: GitLab CI/CD와 함께 작동하여 파이프라인에서 작업을 실행하는 응용 프로그램- Docker: 애플리케이션과 그 종속성을 하나의 표준화된 단위로 패키징하여 컨테이너라는 가벼운 가상화 환경에서 실행할 수 있게 해주는 오픈소스 플랫폼. 이 컨테이너 기술을 활용하면 애플리케이..

설명목적은 관심사의 분리 각각의 레이어마다 관심사가 분리된 채 본인의 역할에 집중하도록 설계함에 따라,유지보수 시, 변경이 필요한 레이어만 확인하면 되므로 코드의 가독성과 유지보수성이 높음독립적으로 다른 레이어와 분리된 채 테스트 가능독립적이기에 하나의 레이어가 다른 여러 레이어들에서 재사용될 수 있어 재사용성이 높음레이어는 1. 비즈니스 규칙을 위한 계층과 2. 인터페이스를 위한 다른 계층이 존재클린아키텍처는 다음과 같은 시스템을 생성함프레임워크에 독립적: 클린아키텍쳐는 소프트웨어 라이브러리에 의존하지 않음테스트에 용이함: UI, DB, 웹서버, 외부요인없어도 테스트 가능UI가 독립적인 시스템: 다른부분 수정없이 UI변경이 가능데이터베이스가 독립적인 시스템: 데이터베이스를 변경하기 쉬움외부기능으로부터 ..

프로세서 하드웨어적인 측면에서 컴퓨터 내에서 프로그램을 수행하는 하드웨어 유닛 중앙처리장치(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: 두 데이터를 묶는 것으로, 한 쪽이 변화가 있으면 다른 쪽도 자동 갱신으로 이루어 지는 것종류KVODelegationClosure(콜백)NotificationCenter반응형 프로그래밍 (RxSwift, Combine)Property Observer (didSet, willSet)역할Model데이터를 담아두기 위한 구조체, 네트워크 로직, JSON 파싱 코드 등 비즈니스 로직에서 사용되는 근본 데이터를 담고 있는 계층View, ViewModel에 대한 의존성이 없기 때문에, 데이터가 어떻게 보여질 것인지에 대해서는 고려하지 않음View화면 UI를 어떻게 구성할 지에 대한 계층 (SwiftUI에선 View, UIKit에서는 ViewController)사용자로 부터 UI이벤트가 일어..
SOLID 원칙이란 객체 설계에 필요한 5가지 원칙으로써 유지보수가 쉽고, 유연하고, 확장이 쉬운 소프트웨어를 만들기 위한 수단, 높은 응집력과 낮은 결합도의 코드를 만들 수 있음 SRP (Single Responsibility Principle) : 단일 책임 원칙 하나의 클래스는 하나의 책임을 가져야 함 클래스의 수정이유는 단 하나여야 함 하나의 책임이 여러개의 클래스에 나뉘어 있어서도 안됨 하나의 클래스 안에 협력관계(Collaboration)가 여러개가 있는것은 괜찮음 장점 SRP 원칙을 잘 따르면 한 책임의 변경으로부터 다른 책임의 변경으로의 연쇄작용에서 자유로울 수 있게 됨 책임을 적절히 분배함으로써 코드의 가독성 향상, 유지보수 용이 Before class Handler { func hand..

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 제공 애니메이션, 문서, 드로잉 및 인쇄, 텍스트 관리 및 디스플레이, 검색, 앱 확장, 리소스 관리 및 현재 장치에 대한 정보 얻기를 지원 접근성 지원을 사용자 정의, 다른 언어, 국가 또는 문..