[회고] 네이버 부스트캠프 웹・모바일 8기 멤버십 1주 차 회고 & 기술적 고민
·
경험 회고/네이버 부스트캠프 웹・모바일 8기
서론 네이버 부스트캠프 웹・모바일 8기 멤버십의 1주 차가 끝났습니다. 챌린지보다는 스케줄이 여유로워서 꽤나 괜찮은 일주일이었습니다. 이번 주는 1주차여서 그런지 아직까지는 크게 힘들지는 않았습니다. 하지만 앞으로도 이렇게 여유롭게 진행될지는 모르겠습니다. 더 어려운 과제가 주어지고 더 바쁜 스케줄이 기다리고 있을지도 모르니, 더욱 노력해서 잘 따라가야겠습니다. 네이버 부스트캠프 웹・모바일 8기 멤버십 회고부터는 기술적 고민을 함께 적으려고 합니다. 예를 들어, 확장성의 고민, 타입 고민처럼 Swift, UIKit, 설계 등의 고민일 거 같네요. 챌린지 때는 단순한 일기였다면 멤버십부터는 개발자로서의 성장을 위해 회고하려고 합니다. 다만 문단을 명확히 구분하진 않을 거예요. 일상적인 회고도 성장에 도움이..
[iOS] Alert 개선 과정 단계별로 살펴보기
·
iOS/개념 & 개발
서론UIAlertController는 보일러 플레이트가 생기기 쉽습니다.UIAlertController 생성UIAlertAction 생성present위 세 가지 로직이 반복적으로 사용되기 때문입니다. 메서드로 분리할지라도 UIAlertAction 생성에 중복 코드가 생기고, 그게 아니라면 메서드 파라미터가 많아집니다. 이번에는 Wrapper를 사용해 선언형 구조로 Alert를 깔끔하게 정리해 보겠습니다. 많이 고민하며 진행했지만 잘못된 부분이 있을 수 있습니다. 댓글로 피드백 꼭 부탁드립니다. 전체 코드는 아래 링크에서 확인 가능합니다. https://github.com/jeongju9216/SwiftPractice/tree/main/ExampleAlertWrapper/ExampleAlertWrapper..
[Swift] Equatable의 Synthesized Conformance 분석
·
Swift/개념 & 응용
서론 구조체와 클래스의 프로토콜 자동 준수 메커니즘 (w. ChatGPT)에서 Synthesized Conformance를 가볍게 다뤘습니다. 이번 포스팅에서는 SIL, CPP 코드를 분석해 Equatable의 Synthesized Conformance가 진행되는 과정을 알아보겠습니다. Equatable Equatable은 == static 메서드를 준수해야 하는 프로토콜로 == 연산자의 좌변과 우변을 비교해서 같은지 확인해 주는 역할입니다. 그리고 Synthesized Conformance를 지원하는 프로토콜 중 하나죠. Equatable은 아래 상황에서 Synthesized Conformance를 지원합니다. 구조체가 Equatable을 준수하는 저장 프로퍼티만 가지고 있는 경우 열거형의 모든 케이스..
[Swift] 구조체와 클래스의 프로토콜 자동 준수 메커니즘 (w. ChatGPT)
·
Swift/개념 & 응용
서론 최근 Equatable, Hashable, Comparable을 복습하면서 궁금한 점이 있었습니다. 왜 구조체는 채택만 해도 자동으로 준수가 되는데 클래스는 직접 요구 메서드를 구현해야 하는 걸까?입니다. Value 타입과 Reference 타입의 차이와 연관이 있다는 건 추측할 수 있었지만, 명확한 이유를 찾긴 어려웠습니다. 그래서 이번에는 ChatGPT와 함께 문제를 해결해 보았습니다. 스텝 바이 스텝으로 대답이 정확해지는 과정이 재밌어서 이렇게 포스팅으로 남겨봅니다. 1. 일단 질문하기 일단 큰 고민 없이 물어봤습니다. 그럴듯한 대답이 나왔습니다만, "값 타입이 프로토콜을 채택만 해도 되는 이유"에 대한 답은 아니었습니다. 2. 클래스와 비교하여 질문 다음은 클래스와 비교해서 질문했습니다. 이..
[iOS] Jeongfisher 4. Extension Wrapper와 파라미터 고민
·
iOS 프로젝트/Jeongfisher
GitHub - jeongju9216/Jeongfisher: 유정주의 이미지 캐시 라이브러리 유정주의 이미지 캐시 라이브러리. Contribute to jeongju9216/Jeongfisher development by creating an account on GitHub. github.com Extension Wrapper Extension Wrapper는 최근에 포스팅을 했었죠? (Generic, Protocol을 이용한 Extension Wrapping) Jeongfisher에서 적용을 해서 공유하고 싶은 마음에 포스팅을 작성했었습니다 ㅎㅎ 이번 포스팅에서는 Jeongfisher에 Extension Wrapper를 적용하면서 어떤 고민을 했는지 작성해보겠습니다. 참고로 이번 포스팅에서 구현 방법은..
[iOS] Jeongfisher 3. JFImageDownloader, 중복 Request 처리
·
iOS 프로젝트/Jeongfisher
GitHub - jeongju9216/Jeongfisher: 유정주의 이미지 캐시 라이브러리 유정주의 이미지 캐시 라이브러리. Contribute to jeongju9216/Jeongfisher development by creating an account on GitHub. github.com JFImageDownloader JFImageDownloader는 URL을 이용해 이미지를 다운로드하는 클래스입니다. 메모리 캐시와 디스크 캐시에 데이터가 없을 때 JFImageDownloader를 이용해 네트워킹을 하는 거죠. 이미지 다운로더를 만들면서 힘들었던 것은 중복 Reqeust 처리입니다. 동일한 URL로 여러 번 Reqeust를 하면 비효율적이겠죠? 그래서 URL을 딕셔너리에 저장해 두고 중복 Req..
[iOS] Jeongfisher 2. 메모리 캐시, 디스크 캐시
·
iOS 프로젝트/Jeongfisher
GitHub - jeongju9216/Jeongfisher: 유정주의 이미지 캐시 라이브러리 유정주의 이미지 캐시 라이브러리. Contribute to jeongju9216/Jeongfisher development by creating an account on GitHub. github.com 서론 Jeongfisher는 메모리 캐시와 디스크 캐시를 사용합니다. 이번 포스팅에서는 두 개의 캐시를 구현하면서 고민한 내용을 적어보려고 해요. 특히 메모리 캐시를 구현할 때 기초적인 내용을 깊게 고민할 수 있었습니다. 메모리 캐시 구현 이유 메모리 캐시는 NSCache를 사용하는 대신 직접 구현했습니다. 메모리 캐시 구현 과정을 직접 고민하고 싶었기 때문입니다. NSCache를 사용하면 물론 편하겠지만... ..
[iOS] Jeongfisher 1. 라이브러리 첫 도전, 다운샘플링 적용 결과
·
iOS 프로젝트/Jeongfisher
GitHub - jeongju9216/Jeongfisher: 유정주의 이미지 캐시 라이브러리 유정주의 이미지 캐시 라이브러리. Contribute to jeongju9216/Jeongfisher development by creating an account on GitHub. github.com 라이브러리 첫 도전 Jeongfisher는 저의 라이브러리 첫 번째 라이브러리입니다. 유명 라이브러리인 Kingfisher는 다들 아시죠? 이미지 캐싱, 다운로드, 편집 등 기능이 매우 많고 유용한 라이브러리입니다. 하지만 대부분의 앱에서는 이미지를 보여주고 캐싱하는 기능만 사용하는데요. 이점을 생각해서 Jeongfisher를 만들어보았습니다. 또한, 킹피셔는 하위 호환성을 고려해서 completionHandle..
[밀키트] 떡볶퀸 x 사과떡볶이 Limited Edition 리뷰
·
🐱 정주는 쉬는 중 :]/맛집
기본 정보 제품 이름 떡볶퀸 x 사과떡볶이 Limited Edition (개당 8,300원) https://www.youtube.com/watch?v=HrDgHIZGbtc 제품 주문 & 포장 저는 7월 28일에 두 개를 주문했습니다. 배송이 한 번 지연되면서 어제(8월 19일) 배송 받았어요. 거의 한 달이 걸려 배송 받았네요. 아이스팩과 떡볶이가 들어 있습니다. 여름이라 아이스팩은 다 녹았지만, 제품에 문제는 없었습니다. 제품 포장지 앞면에는 떡볶퀸 이름이 크게 적혀 있고 뒷면에는 떡볶퀸이 전하는 메시지가 들어있습니다. LImited Edition 답네요 ㅎㅎ 밀키트 구성 & 조리 방법 밀키트는 양념, 육수, 사리가 개별 포장되어 있어요. 사리에는 떡, 어묵, 치즈어묵, 소시지가 들어있습니다. 각 재료..
[Swift] Optional.swift 살펴보기
·
Swift/개념 & 응용
Optional.swift를 살펴보게 된 계기 옵셔널은 Swift의 장점 중 하나입니다. 백준 문제를 풀다가 문득 nil 병합 연산자(??)에 대해 궁금해졌습니다. 일반적인 연산자는 즉시 연산이 완료되는데, ?? 연산자는 앞의 수행 결과가 nil인 경우 실행이 되는 부분이 흥미로웠어요. 어떻게 구현되었길래 지연 실행이 되는거지? 라는 생각이 들었습니다. 많은 블로그에서 이미 다룬 주제지만, 실제 구현 코드가 궁금해서 Optional.swift를 살펴봤는데요. 보기 전에는 너무 어려워서 못 읽을 줄 알았지만 막상 보니 읽을만 한거에요..? 그래서 한 번 쫙 읽고 포스팅으로 정리까지 하게 되었습니다 ㅋㅋ 전부 다루는건 아니기 때문에 Optional.swift와 함께 보시면 좋습니다. 기본 구조 @frozen..
유정주
정주는 개발 중 :]