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

CI/CD란?CI/CD는 반복적인 코드 변경을 지속적으로 구축, 테스트, 배포 및 모니터링하는 지속적인 소프트웨어 개발 방법.이 반복 프로세스는 버그가 있거나 실패한 이전 버전을 기반으로 새로운 코드를 개발할 가능성을 줄이는 데 도움이 됨. GitLab CI/CD는 개발 주기 초기에 버그를 포착할 수 있으며, 프로덕션에 배포된 코드가 기존 코드 표준을 준수하는지 확인하는 데 도움을 줄 수 있음. 참고사항- GitLab Runner: GitLab CI/CD와 함께 작동하여 파이프라인에서 작업을 실행하는 응용 프로그램- Docker: 애플리케이션과 그 종속성을 하나의 표준화된 단위로 패키징하여 컨테이너라는 가벼운 가상화 환경에서 실행할 수 있게 해주는 오픈소스 플랫폼. 이 컨테이너 기술을 활용하면 애플리케이..
App IntentsApp Intents는 본인앱 사용자들에게 코어한 Action 및 컨텐츠의 기능들(Siri, Spotlight, Shortcuts, Widget 등)을 구성하기 위한 공통 토대라 생각하면 됨하나의 기능(ex. Shortcuts)을 지원하기 위해 App Intents를 구현한 적이 있다면, 다른 기능들(Siri, Spotlight 등)에 유용하게 쓰일 수 있음. 왜냐하면 모두 App Intents를 기초로 하고 있음. 예를 들어, App Intents를 사용해 앱을 Siri와 Apple Intelligence에 통합하고, 그 코드를 재사용하여 WidgetKit과 함께 컨트롤 및 인터랙티브 위젯을 생성할 수 있음App Intents 프로토콜을 채택함으로써, 앱과 사용자 간의 의사소통 핸들..

설명목적은 관심사의 분리 각각의 레이어마다 관심사가 분리된 채 본인의 역할에 집중하도록 설계함에 따라,유지보수 시, 변경이 필요한 레이어만 확인하면 되므로 코드의 가독성과 유지보수성이 높음독립적으로 다른 레이어와 분리된 채 테스트 가능독립적이기에 하나의 레이어가 다른 여러 레이어들에서 재사용될 수 있어 재사용성이 높음레이어는 1. 비즈니스 규칙을 위한 계층과 2. 인터페이스를 위한 다른 계층이 존재클린아키텍처는 다음과 같은 시스템을 생성함프레임워크에 독립적: 클린아키텍쳐는 소프트웨어 라이브러리에 의존하지 않음테스트에 용이함: UI, DB, 웹서버, 외부요인없어도 테스트 가능UI가 독립적인 시스템: 다른부분 수정없이 UI변경이 가능데이터베이스가 독립적인 시스템: 데이터베이스를 변경하기 쉬움외부기능으로부터 ..
주요 참관 내용LG AI 연구원엑사원이라는 거대언어모델(LLM)을 통해 LG 계열사들의 기술 자동화를 실행중이다. 그 예로 현재 LG화학에서 신약 개발에 엑사원이 활용되고 있으며, 연설자가 sLLM을 통해 신약에 특화된 학습을 통해 현재 연구가 진행중임을 밝혔다. sLLM(small Large Language Model)은 LLM(대규모 언어 모델)의 기능을 유지하면서도 상대적으로 작은 규모로 운영될 수 있도록 설계된 언어 모델이다. sLLM은 특정 작업이나 애플리케이션에 맞추어 더 빠르고 쉽게 맞춤화될 수 있다. 이는 다양한 산업과 환경에서의 응용을 가능하게 하며, 개별 사용자의 필요에 더욱 잘 맞출 수 있다.신한카드금융서비스다 보니, 로컬 기반의 LLM을 사용중임을 밝혔다. AI 솔루션 본부에서 사내..

프로세서 하드웨어적인 측면에서 컴퓨터 내에서 프로그램을 수행하는 하드웨어 유닛 중앙처리장치(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..
네트워크 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 헤더는 클라이언트와 서버가 요청 또는 응답으로 부가적인 정보를 전송할 수 있도록 해..