UIKit 3

[UIKit] jpegData(compressionQuality: )에 대한 고찰과 트러블슈팅 ☄️

웹소소 사진소소 1차 QA에서 발견했던 버그가 있었다. (참고로 사진소소는 웹소소 사일로 중 하나로 난 피드 내 이미지 첨부 기능을 구현해야했다.... 흑흑 어려워😞)피드를 수정할 때마다 이미지를 수정하지 않았는데도 이미지의 화질이 계속 저하되는 상황이 발생했다.해당 버그를 수정하기 위해 UIKit에서의 이미지 압축 방식에 대해 처음부터 공부해보기로 결정했다! 우선, 버그부터 해결해보자서버에 보내야 하는 이미지의 최대 사이즈는 0.25MB였다.근데 원본 이미지 사이즈가 이미 0.25MB보다 작으면 압축 과정은 필요없이 서버에 전송하면 되는데 ..내가 이 로직을 생각 못했다 흑흑 if let originalData = image.jpegData(compressionQuality: 1.0) { le..

iOS/UIKit 2025.07.10

[RxSwift] throttle과 debounce의 차이점을 알아보자!

사이드 프로젝트 개발 중, 코드리뷰로 버튼 input 이벤트에 대해 " throttle 말고 debounce 를 사용한 이유를 알 수 있을까요 ?! "라는 리뷰를 받았었다.음 .. 그러게요? 나 왜 debounce를 사용했지? throttle과 기능적 차이점은 어떤 게 있을까?잊지 않기 위해 글로 남겨보고자 한다.  debounce관찰 가능한 항목을 다른 항목을 방출하지 않고 특정 시간대를 경과한 경우에만 방출합니다.only emit an item from an Observable if a particular timespan has passed without it emitting another item. 내가 적용한 코드를 예시로 살펴보자. ViewModel 에서 Input으로 좋아요 버튼 클릭 이벤트를..

iOS/RxSwift 2024.10.17

[UIKit] ImageView.contentMode에 대해 알아보자!

자꾸 까먹는 나를 위해 .. !ImageView의 contentMode에 있는 scaleAspectFit, scaleAspectFill, scaleToFill에 대해 정리해보고자 한다!scaleAspectFit- 이미지 비율을 유지하면서 뷰의 사이즈에 맞게 이미지를 늘리는 옵션.- 이미지가 뷰를 꽉 채우지 못해서 남는 부분은 투명 처리가 된다. scaleAspectFill- 이미지 비율을 유지하면서 뷰의 사이즈에 맞게 이미지를 꽉 채우는 옵션.- 이미지의 어떤 부분은 잘려서 보일 수도 있다. scaleToFill- 전체 이미지가 다 나올 수 있도록 필요하다면 비율을 깨뜨리면서 뷰의 사이즈에 맞게 이미지를 꽉 채우는 옵션.- 이미지는 다 나오나 이미지의 비율이 깨질 수 있다.  정리 비율 유지화면 꽉 채움..

iOS/UIKit 2024.05.29