iOS 25

PNG vs JPEG vs HEIC

안녕하세요, 하노입니다 :D 얼마 전 image를 서버에 업로드하는 기능을 구현 중,원본 이미지 크기가 약 5MB임에도 불구하고 서버에서 image 10MB 용량 제한에 걸려 에러가 나는 상황이 있었습니다!확인해 보니 image를 처리해 주는 모듈에서 UIImage Type을 Data Type으로 변환 시pngData()를 사용하고 있더라구요. 여기서 엄청난 용량 뻥튀기(?)가 된다는 사실을 알고,jpegData(compressionQuality:) 를 사용하여 에러를 처리하였는데요, 이번 기회로 UIImage Type에서 Data Type으로 변환할 때image 파일 형식을 비교하면서 어떤 차이점이 있는지 알아보려고 합니다!  그럼 시작하겠습니다!   1. Method우선 각 메서드별로 어떻게 동작하는..

iOS/Swift 2024.09.18

[Swift] STOMP 톺아보기

안녕하세요, 하노입니다 :D 오늘은 Websocket에서 사용할 수 있는 Protocol 중 하나인 STOMP (Simple Text Oriented messaging protocol) 에 대해서 간단하게 알아보려고 합니다! 사실 회사에서 STOMP 기술을 채택하면서 저도 처음 알게 된 기술인데요, 문서와 함께 간단하게 톺아보는 시간을 가져보려고 합니다! (Stomp 문서 링크: https://stomp.github.io) 그럼 시작하겠습니다!! 1. STOMP 란? What is it? STOMP is the Simple (or Streaming) Text Orientated Messaging Protocol. 네. STOMP는 단순한 텍스트 지향 메세징 프로토콜입니다. 참 쉽죠? 실제로 사용하는데 클..

iOS 2024.04.22

메모리 누수(Memory Leak) 점검 • 해결 방법 및 회고

안녕하세요, 하노입니다 :D 오늘은 제가 겪었던 메모리 누수에 대한 점검 및 해결 방법과 짤막한 회고를 해보려고 합니다! 특정 화면에 대하여 리팩토링을 하던 중 약 1.5~6MB의 메모리가 계속 쌓이는 것을 확인하였습니다. 이에 대해 제가 어떤 방법으로 해결하려 했는지, 방법과 회고에 대해서 다뤄보겠습니다! 1. 메모리 누수(Memory Leak) 이란? 프로그램(앱)에서 사용한 메모리를 정상적인 방법으로 해제하지 못한 경우, 해당 메모리가 계속해서 남아있는 현상. 2. 메모리 누수의 주요 원인. 메모리 누수의 주요 원인은 메모리 영역과 큰 관련이 있습니다. 메모리 영역 중 Heap 영역에 해당되는 객체들에 한하여 메모리 누수 현상이 발생하는데요, 이 메모리 영역을 생각하면서 원인을 크게 2가지로 나누어..

iOS 2023.07.29

새싹(SeSAC) iOS 앱개발자 데뷔 과정 2기 합격 및 수료 후기

안녕하세요, 하노입니다! 오늘은 제가 취업하기 전 들었던 마지막 부트캠프인 SeSAC 합격 및 수료 후기를 남기려고 합니다. 이제 3기를 모집한다고 해서 2기였던 제가 조금이나마 도움이 될 수 있을까 해서 올리기도 하고, 또 수강했던 기억을 되짚어보면서 나름대로 회고할 수 있는 기회인 것 같아 글을 작성합니다! 0. 새싹 신청 전 저의 상태 새싹을 신청하기 전 저는 Swift 문법은 나름 잘 안다고 생각했지만, iOS 앱 개발에 대해선 무지했었습니다. 심지어 회사도 다니고 있었고 야근도 있었던지라 퇴근하고 공부하기엔 나름 체력적으로 힘들었어요 ㅠ 그래서 정말 큰맘 먹고 될대로 돼라!!라고 생각하면서 퇴사 후 새싹을 지원했었습니다. 새싹을 지원했을 때 저의 상태를 살펴보자면, 펌웨어 개발로 회사에서 근무하..

iOS/캠프 2023.05.01

UIKit과 SwiftUI 사용 (WWDC 2022)

안녕하세요 하노입니다 :) 이제 슬슬 SwiftUI을 도입하려는 회사가 많아짐에 따라 더 이상 SwiftUI 공부를 미룰 수 없겠더라구요...ㅎㅎ 그래서 SwiftUI에 대해 알아보던 중 WWDC 자료는 필수로 봐야겠다는 생각이 들어서 정리할 겸 글을 쓰려고 합니다! 그럼 시작하겠습니다! 1. UIHostingController UIHostingController란 UIViewController와 구조적으로 같다고 보시면 됩니다. 다만, UIViewController는 UIView 객체를 사용하지만, UIHostingController는 SwiftUI View를 사용합니다. 그래서 WWDC에선 건강 관리 앱을 예로 들면서 설명해 주는데요, HeartRateView가 SwiftUI로 짠 View일 때 이렇..

iOS/WWDC 2023.03.20

[RxSwift] Observable 뿌시기

안녕하세요 하노입니다 :) 갑자기 오늘 날씨가 추워졌네요! 오늘 영하 2도까지 내려가던데 다들 건강 챙기세요~!!! 요새 RxSwift를 공부하면서, RxSwift 로고를 맥북에 붙이고 다니면 이쁘겠는데???? 생각해서 스티커를 100장이나 뽑아버렸습니다....ㅎㅎ 오늘은 RxSwift 3요소 중 Observable에 대해서 알아보려 합니다! 그럼 시작하겠습니다!! 1. Observable이란? 여러 이벤트들을 생성하고 방출(Emit)할 수 있는 대상. (Observable = Observable Sequence = Sequence 모두 같은 단어이다.) Observable에서 가장 중요한 것은 이벤트를 비동기적으로 생성, 방출할 수 있습니다. 2. Observable의 생명 주기 Observable은 ..

iOS/Swift 2022.11.04

[RxSwift] RxSwift 개념 뿌시기

안녕하세요 하노입니다 :) 요새 완연한 가을의 날씨를 잘 즐기고 계신가요?? 저는 요새 집에서 안나간지 좀 됐습니다...ㅎㅎ 여러분들이라도 저 대신 가을을 즐겨주세요,,, 여튼 오늘은 RxSwift의 개념에 대해서 알아보겠습니다. 1. RxSwift란? RxSwift is a library for composing asynchronous and event-based code by using observable sequences and functional style operators, allowing for parameterized execution via schedulers. RxSwift는 관찰 가능한 시퀀스와 기능적 스타일 연산자를 사용하여 비동기식 및 이벤트 기반 코드를 구성하기 위한 라이브러리로,..

iOS/Swift 2022.11.02

[iOS + Firebase] Analytics, Crashlytics, Messaging 사용하기

안녕하세요 하노입니다 :) 얼마 전 앱을 출시하고 Firebase를 이용해서 실제로 사용자들이 얼마나 앱을 사용하는지 확인해보려고 합니다! 물론 App Store Connect에서 확인할 수 도 있지만, 실시간으로 집계가 되지 않기 때문에, Firebase를 이용하여 실시간으로 확인해보겠습니다! 1. 사전 준비 실제 iOS 기기 - 시뮬레이터에서는 기본적으로 푸시 알림 테스트가 불가능하기 때문에 실제 iOS 기기가 필요합니다. 애플 개발자 계정 - 애플 공식 개발자 계정이 있어야 합니다. ( 연 129,000원 결제를 해야 합니다! ) 2. Firebase 등록하기 처음 Firebase에 등록하기 위해선 해당 앱의 Bundle identifier를 알아야 합니다. Bundle identifier는 Pro..

iOS 2022.10.11

[iOS] 첫 앱 출시에 대한 회고

안녕하세요 하노입니다 :) 오늘은 첫 앱 출시 과정에 대한 회고를 작성해보려고 합니다. (Zedd님 회고 멋있어 보이길래 따라해봤습니다 ㅎ) 1. 앱 소개 제가 이번에 출시한 앱은 반려동물의 일상을 기록하는 다이어리입니다. https://efficient-spaghetti-60d.notion.site/27a6c68c76944d7593b7998d5456b9e0 반기다: 반려동물 기록 다이어리 앱 소개 efficient-spaghetti-60d.notion.site 다이어리이면서 알람 기능이 들어가 있어서 나름 편리한??? 기능이라고 자부합니다. 그 외 다른 카테고리들 별로 작성할 수 있게 만들었습니다. 2. 데이터 설계 전체적인 데이터 설계는 Realm을 사용했습니다. Realm을 구성할 때 중요하게 생각..

iOS 2022.10.04

[UIKit] ActionSheet에 Date Picker 넣기

안녕하세요 하노입니다 :) 오늘은 ActionSheet에 Date Picker 넣는 법을 알아보겠습니다. 1. ActionSheet를 띄워줄 버튼을 생성하고 ViewController와 연결해줍니다. 저는 간단하게 가운데에 넣어서 만들고 오토 레이아웃으로 정 가운데 배치하겠습니다. 2. 버튼을 클릭하면 Alert을 ActionSheet로 생성합니다. let alert = UIAlertController(title: "날짜 고르기", message: "날짜를 골라주세요", preferredStyle: .actionSheet) let ok = UIAlertAction(title: "선택 완료", style: .cancel, handler: nil) alert.addAction(ok) present(alert..

iOS/UIKit 2022.10.03