오늘은 면접에서 GCD, DispatchQueue에 대한 질문이 들어왔지만 명확하게 답을 하지 못한 아쉬움에 나름 알고 있었다고 생각했던 GCD, DispatchQueue에 대한 정리를 자세하게 정리하고 나도 다시 공부하는 시간을 가져보려고 한다. 지금까지 그냥 내가 생각했던 내용은 GCD, DispatchQueue는 그냥 비슷한.. 동기, 비동기 처리를 지정해 사용할 수 있는 정도로 이해하고 넘어갔다. 지금까지는 개념만 이해하고 넘어가 구현 해보는 것에 집중했다면 이제 하나하나 정말 자세하게 알아보려고 한다. 현직자 분들과 얘기를 나눌수록 아 정말 내가 겉핥기식으로 공부하고 있었구나.. 하나를 가지고 생각하기 시작하면 끝도 없고 이 내용들을 알고 있어야 내가 구현하고자 하는 방식에 최적의 선택을 할 수..
이전에 RxSwift에 대한 개념을 한번 정리했으니 이제 중요한 개념을 자세하게 한번 알아보자 RxSwift의 핵심 개념 중 하나는 바로 Observable이다. Observable은 데이터를 비동기적으로 처리할 수 있는 데이터 스트림을 나타내며, 시간의 흐름에 따라 데이터를 방출한다. 이 데이터를 관찰하는 객체는 Observer라고 한다. Observable을 관찰하는 객채는 Observer! 기억하기Observable의 생명주기는 세가지 이벤트로 나눠 진다. 바로바로onNext : 새로운 데이터가 발행될 때 호출되고 여러번 호출 될 수 있다.onError : 에러가 발생하면 호출되고 이 이벤트가 호출되면 스트림이 종료된다!onCompleted : 데이터 스트림이 정상적으로 완료되었을 때 호출되고 이 ..
Swift 5.5부터 도입된 async/await는 기존의 비동기 처리방식인 DispatchQueue나 completionHandler를 사용해 처리했지만 더욱 직관적이고 관리하기 쉽게 만들어 주는 기능이다. 기존의 비동기 처리 방식과 비교해 코드의 가독성과 유지보수성을 크게 향상시킬 수 있다는 장점을 가지고 있다.https://developer.apple.com/videos/play/wwdc2021/10132/ Meet async/await in Swift - WWDC21 - Videos - Apple DeveloperSwift now supports asynchronous functions — a pattern commonly known as async/await. Discover how the ne..
이전까지 PHAsset을 활용해 사진을 가져오고 가져온 사진을 Core Image를 활용해 필터를 적용하는 방식까지 알아봤다오늘은 이미지 편집 과정 중 크롭에 대해서 알아보려고 한다.먼저 EditCropViewModel을 만들어 VM에서 해야할 역할을 만들어 주었다. 이 VM은 이미지의 크롭을 관리하는 주요 속성과 메서드를 가지게 된다.@Published var cropRect: CGRect = .zero@Published var cropApplied: Bool = false@Published var isCropBoxVisible: Bool = true@Published var croppedImage: UIImage?var image: UIImage먼저 속성을 정의해야한다. cropRect는 크롭박스의 ..
오늘은 PHAsset에 이어 Core Image에 대해서 다뤄보려고 한다. 가져온 이미지를 바탕으로 효과를 넣어 사용할 수 있는 Core Image에는 정말 다양한 내용이 있다. 먼저 Core Image는 애플에서 제공하는 아주 강력한 이미지 처리 및 분석 프레임 워크이다. 다양한 이미지의 필터, 변형, 분석 기능을 제공한다. 이 프레임 워크는 GPU 가속을 활용해서 이미지에 효과를 적용할 수 있도록 하고 모든 iOS 버전에서 사용이 가능하다 🙂 여기서 이미지를 처리한다는 개념은 필터를 적용하는건데 input 이미지를 픽셀단위로 검토하고 이미지에 특정한 효과를 적용해서 output 이미지를 만들어내는 것 이다. Core Image 구성요소먼저 주요 구성 요소를 살펴보면CIImageCIImage는 이미지..
요즘 코어 이미지 활용해서 사진 라이브러리 동기화 한 후 편집하는 프로젝트를 진행하면서 가장 많이 공부 했던 PHAsset에 대해서 기록으로 남겨두려고 한다 🙂PHAsset란 무엇인가PHAsset는 iOS 장치 내 Photos 앱에서 관리하는 이미지, 비디오, 라이브 포토 등 데이터를 나타낸다고 생각하면 된다.사진, 비디오 뿐만 아니라 생성날짜, 위치, 미디어 등 여러가지 해당하는 데이터의 세부정보까지 가져올 수 있다. PHAsset 가져오기먼저 PHAsset를 사용하기 전에 이용자에게 사진 라이브러리에 접근할 수 있는 권한을 요청해야한다. 이 권한이 부여되어야 에셋에서 사진 정보를 가져올 수 있게 된다. infoplist에 사진 권한 추가는 여기서 따로 다루지는 않을 예정 그냥 권한 요청에 대한 내용..
오늘은 SwiftUI 에서 자주 만나게 되는 onChange에 대해서 알아보는 시간을 가져보자https://developer.apple.com/documentation/swiftui/view/onchange(of:perform:)먼저 onChange는 뷰의 특정 값이 변경될 때 동작을 수행할 수 있게 해주는 도구라고 보는 편이 이해하기 쉽다 🙂 onChange를 통해 상태 변화에 반응하고 다른 효과를 실행하거나 상태를 업데이트하는 등 다양한 방면에 사용된다. 예를 들어 사용자의 입력이 변화할때 UI를 업데이트하거나 특정 동작을 수행하는데 사용할 수 있다..onChange(of: value, perform: { newValue in // 'value'가 변경되었을 때 실행할 코드})기본적인 사용 문..
오늘은 Combine을 사용하면서 assign과 sink의 차이가 흥미로워 기록으로 남겨두려고 한다. 먼저 Combine을 사용하면서 이전에 구현했던 방식이 이렇게 구현된다는게 너무 재밌다.. 뭔가 되게 살아있는 무언가를 키우는 느낌이랄까 이런 재미가 있다가 새로운걸 알게 되면 또 이런 재미가 있고.. 아무튼 두가지의 데이터 처리 방법에 대해서 알아보고 어떤 차이가 있는지 살펴보자! assignhttps://developer.apple.com/documentation/combine/publishers/comparison/assign(to:)/먼저 assign에 대해서 살펴보면 이 메서드를 통해 Publisher의 출력값을 직접 객체의 프로퍼티에 간단하고 직관적이게 할당할 수 있는 기능을 가지고 있다. 퍼..
내 블로그 - 관리자 홈 전환 |
Q
Q
|
---|---|
새 글 쓰기 |
W
W
|
글 수정 (권한 있는 경우) |
E
E
|
---|---|
댓글 영역으로 이동 |
C
C
|
이 페이지의 URL 복사 |
S
S
|
---|---|
맨 위로 이동 |
T
T
|
티스토리 홈 이동 |
H
H
|
단축키 안내 |
Shift + /
⇧ + /
|
* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.