전체 글 674

[iOS] Jeongfisher 1. 라이브러리 첫 도전, 다운샘플링 적용 결과

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 살펴보기

Optional.swift를 살펴보게 된 계기 옵셔널은 Swift의 장점 중 하나입니다. 백준 문제를 풀다가 문득 nil 병합 연산자(??)에 대해 궁금해졌습니다. 일반적인 연산자는 즉시 연산이 완료되는데, ?? 연산자는 앞의 수행 결과가 nil인 경우 실행이 되는 부분이 흥미로웠어요. 어떻게 구현되었길래 지연 실행이 되는거지? 라는 생각이 들었습니다. 많은 블로그에서 이미 다룬 주제지만, 실제 구현 코드가 궁금해서 Optional.swift를 살펴봤는데요. 보기 전에는 너무 어려워서 못 읽을 줄 알았지만 막상 보니 읽을만 한거에요..? 그래서 한 번 쫙 읽고 포스팅으로 정리까지 하게 되었습니다 ㅋㅋ 전부 다루는건 아니기 때문에 Optional.swift와 함께 보시면 좋습니다. 기본 구조 @frozen..

[Swift] Generic, Protocol을 이용한 Extension Wrapping

Extension Wrapping Extension Wrapping은 유명 라이브러리에서 자주 보이는 구조입니다. (참고로 Extension Wrapping은 정식 명칭이 아니라 제가 임의로 정한 이름입니다.) 대표적으로 Kingfisher, RxSwift가 있습니다. imageView.kf.setImage(with: url) Kingfisher 메서드를 사용할 때 UIImageView가 아니라 kf를 이용해 메서드를 호출하죠? 바로 그게 Extension Wrapping입니다. Extension으로 구현한 Kingfisher 메서드를 UIView에서 직접 호출하지 않고, KingfisherWrapper로 호출하는 것입니다. Extension Wrapping 장점 Extension Wrapping은 안정..

[천안시 맛집] 호시 리뷰 / 탄탄멘 맛집 / 라멘 맛집 / 연어덮밥 맛집

기본 정보 가게 이름 호시 위치 충남 천안시 서북구 나사렛대길 18-1 1층 호시 메뉴 & 가격 비탄멘(비빔탄탄멘) 10,000원 돈코츠라멘 10,000원 탄탄멘 10,000원 사케동 16,000원 메뉴판 & 가게 내부 먼저 메뉴판입니다. 라멘과 사케동이 유명한 집이에요. 매번 포장만 하다가 처음으로 가게 방문을 해봤는데요. 이번 방문에서는 비탄멘(비빔탄탄멘)을 먹었습니다. 그래서 사진도 비탄멘 밖에 없어요 ㅎ... 양해 부탁드립니다. 라멘 느낌이 풀풀 나는 앞접시와 숟가락이에요. 젓가락은 특이하게 나무 젓가락을 쓰시네요. 위생 때문일까요? 싸구려 젓가락이 아니라 고급 나무 젓가락이라 나름 좋았답니다. 가게 내부는 아담해요. 자리는 좀 협소한데요. 4인 테이블 1개, 2인 테이블 5개정도 됩니다. 단체 ..

[Swift] Failable Initializer (실패 가능한 초기화)

Failable Initializer Failable 초기화는 실패가 가능한 초기화입니다. 클래스, 구조체, 열거형에서 실패 가능한 초기화를 정의할 수 있습니다. Failable 초기화 예시 실패가 가능한 초기화는 특정 조건에서만 객체가 생성되어야 할 때 유용합니다. class Time { var hour: Int var minute: Int } 예를 들어, Time 클래스는 hour와 minute 변수가 있습니다. hour의 범위는 1~12여야 하고, minute은 0~59여야 합니다. 이외의 숫자가 들어오면 객체가 생성되지 않도록 하고 싶을 때 Failable 초기화를 사용할 수 있습니다. class Time { var hour: Int var minute: Int init?(hour: Int, mi..

[Swift] memberwise 초기화, convenience 초기화

서론 Swift에서 구조체와 클래스는 많은 차이가 있고, 초기화도 그중 하나입니다. 구조체는 멤버와이즈(memberwise) 초기화를, 클래스는 편의(convenience) 초기화를 가지고 있죠. 초기화에 대해 할 말은 굉장히 많지만, 이번 포스팅에서는 멤버와이즈(memberwise) 초기화와 convenience 초기화에 집중해서 알아보겠습니다. 초기화(Initializer) 초기화란 구조체, 열거형, 클래스의 인스턴스를 생성하는 것입니다. 초기화의 역할은 모든 프로퍼티를 기본값으로 초기화하는 것입니다. 만약 초기화가 끝나는 시점에 모든 프로퍼티가 기본값을 가지고 있지 않다면 초기화가 실패됩니다. (여기서 언급한 초기화의 역할은 아래에서도 꾸준히 언급되므로 알아두시면 좋겠습니다.) Default Ini..

[강남구 맛집] 우동명가 기리야마 본진 우동 리뷰 / 우동 맛집 / 자루우동 맛집 / 뎀푸라 맛집

기본 정보 가게 이름 우동명가기리야마본진우동 위치 서울 강남구 강남대로84길 23 한라클래식 지하1층 메뉴 & 가격 뎀푸라.자루우동 콤보 16,000원 (네이버플레이스 기준) 서론 오랜만에 서울에 가서 방문한 우동 집입니다. 원래는 포스팅할 계획이 없었어서 사진이 정말 없는데요 ㅎㅎ; 정말 맛있었던 집이라 적은 사진으로도 포스팅을 남기고 싶어서 이렇게 글을 씁니다. 최근 방문도 아니고 6월인가 7월 방문이기도 해요 ㅎㅎ; 참고로 점심시간에는 웨이팅이 다소 길었습니다. 하지만 좌석 수가 많아서 회전율이 높아서 기다린 시간은 그리 길지 않았답니다. 뎀푸라.자루우동 콤보 저는 뎀푸라.자루우동 콤보를 주문했습니다. 자루우동은 저렇게 면과 소스가 따로 나오는데요. 소스를 마가 담긴 그릇에 부어서 면을 찍어먹는 음..

[회고] 네이버 부스트캠프 웹・모바일 8기 챌린지 4주 차 회고 (+ 멤버십 합격)

서론 (문제가 되는 내용은 댓글로 알려주시면 즉시 수정, 삭제하겠습니다.) 벌써 네이버 부스트캠프 웹・모바일 8기 챌린지가 끝났습니다. 4주라는 시간은 길지만, 체감 시간은 정말 짧았네요. 할 거 없이 살던 일주일과 부스트캠프에서 몰입했던 한 달의 체감시간이 같은 거 같아요 ㅎㅎ 이번 포스팅에서는 4주차 회고를 진행하고, 멤버십 결과가 나오면 결과와 함께 네이버 부스트캠프 웹・모바일 8기 챌린지 수료 후기를 작성하겠습니다. (멤버십이 8월 28일부터 시작이니 아마 21일 전후로 나오지 않을까 싶네요 ㅎ) +) 멤버십에 합격했습니다. 아쉽게도 멤버십에 가지 못하는 동료분이 계셔서 마음이 편치는 않습니다. 현업에서 만날 날을 기다리면서 멤버십도 열심히 해보겠습니다. 고민의 깊이 4주차 과제에서는 고민의 깊이..

[Xcode] XCTest 성능 측정 (Command Line 환경)

서론 최근 XCTest를 이용해 성능 측정을 해보았습니다. 직접 해보기 전에는 그저 결과를 보여주는 용도구나~ 생각했었는데 직접 사용해보니 훨씬 더 자세한 내용을 제공해주었습니다. 이번 포스팅에서는 XCTest를 이용해 성능 측정하는 방법을 간단하게 알아보겠습니다. Command Line에서 XCTest 사용 먼저 Command Line에서 XCTest를 사용하는 법을 알아보겠습니다. Xcdoe 14.3 기준입니다. 1. 프로젝트 파일을 열어줍니다. 2. 하단의 + 버튼을 누릅니다. 3. Unit Testing Bundle을 선택합니다. 4. Product Name을 입력하여 생성합니다. 참고로 Product Name은 프로젝트 이름Tests 가 일반적입니다. 5. 생성 완료 (git 표시는 무시해주세요..

iOS/Xcode 2023.08.02
반응형