전체 글 247

[iOS] 외부 라이브러리 수정 후 프로젝트에 적용하는 방법

📝 라이브러리를 수정한 이유 프로젝트를 하면서 외부 라이브러리를 수정해서 내 프로젝트에서 사용하는 경우가 있습니다. iOS UIKit 프로젝트로 예시를 들며 설명하겠습니다. 저는 SPM 이 아닌 CocoaPods를 사용하였습니다. 보통 iOS에서는 부가 기능을 만들고 싶을 때 extension 을 사용하는 게 적절한 방법인데요 하지만 저장 속성을 추가하는 경우가 있습니다! extension에서는 저장 속성이 포함되면 안됩니다. ⭐️ 따라서 완전히 가져온 라이브러리를 Custom 하는 것인데요. 제가 최근에 사용한 라이브러리는 DropDown 라이브러리를 사용했습니다. ( 자세하게 구현한 내용은 따로 업로드 하겠습니다 ! ) 최근에 저의 앱 Alert을 actionSheet를 사용하다가, 커스텀으로 저희 ..

iOS 2023.10.12

[iOS] SDK does not contain 'libarclite' at the path

종종 외부 라이브러리를 내 앱 안에 사용하고 싶을 때 cocoaPods나 SPM으로 관리해 주는 경우인데요, 잘 다운을 받았을때도 가끔 Path 이슈나 iOS 최소버전 이슈로 안되는경우가 있습니다. 그 에러 중 하나가 아래와 같이 나와있는데, Showing All Issues SDK does not contain 'libarclite' at the path '/Users/Name/Desktop/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/arc/libarclite_iphonesimulator.a'; try increasing the minimum deployment target 즉 최소 배포버전이 너무 낮다는 문제 였고..

iOS 2023.10.06

[iOS] 데이터 페이징 (Pagination) in UIKit ColletionView

📱 UIKit CollectionView를 활용한 페이징(Pagination) UIKit의 CollectionView를 사용하여 페이징(Pagination)을 구현하는 방법을 소개합니다. 화면 스크롤을 통해 추가 데이터를 동적으로 로드하고 화면에 표시하는 방법을 간단한 그림과 함께 알아보겠습니다. Q. Pagination 왜 할까? 데이터가 100,000개 가 있다고 가정합니다. 항상 특정 뷰를 볼 때 전체 데이터를 불러오는 것은 굉장히 비효율적이라고 할 수 있습니다. 일단 앱에서 데이터를 다 가져온다면 🔥속도 측면에서 굉장히 느려질 수 있고 그 결과는 🔥유저 경험에서 마이너스가 될 수 있습니다. 따라서 적절히 페이징을 하여 사용자가 필요할 때만 적절한 데이터를 불러오는 게 유저 경험과 앱에서 플러스가 ..

iOS 2023.09.24

[프로그래머스] 카펫 파이썬

https://school.programmers.co.kr/learn/courses/30/lessons/42842 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 보기 더보기 내 코드 def solution(brown, yellow): d = [] n = brown + yellow # n : 전체 블럭의 수 for i in range(1, int(n**(1/2)) + 1): # 약수 모음 if (n % i == 0): d.append(i) if ( (i**2) != n) : d.append(n // i) d.sort() for i in range(le..

프로그래머스 2023.09.20

[iOS] Xcode 15 Kingfisher 에서의 ImageResource 이슈 해결

이미지 캐싱, 이미지 로딩을 해야할때 Kingfisher 라이브러리를 사용하는데요, Xcode 15 버전으로 업데이트 하고 디버깅을 돌리니까 ImageResource 에서 아래와 같은 이슈가 발생 했습니다. Incorrect argument labels in call (have 'downloadURL:cacheKey:', expected 'name:bundle:') Replace 'downloadURL: url, cacheKey' with 'name: url, bundle' 이유는 ImageResource를 사용하고 있는데 이제 GeneratordAssetSymbols.ImageResource와 충돌하기 때문에 저희의 앱이 Xcode 15에서 컴파일되지 못했기 때문입니다! ⭐️ 해결법 ⭐️ // 에러 발..

iOS 2023.09.19

[프로그래머스] 택배 배달과 수거하기 파이썬

https://school.programmers.co.kr/learn/courses/30/lessons/150369 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 더보기 내 코드 def solution(cap, n, deliveries, pickups): answer = 0 while deliveries and deliveries[-1] == 0: deliveries.pop() while pickups and pickups[-1] == 0: pickups.pop() while deliveries or pickups: a, b = cap, ..

프로그래머스 2023.07.28

[Swift] 변수와 상수, 타입(Type), 타입 어노테이션, 타입 추론

■ 변수 (variables) : 변할 수 있는 데이터를 담을 수 있는 공간 (mutable) 선언방식 : var 변수이름: 타입 = 값 var greeting: String = "Hello, playground" greeting = "Hi Swift" // 값이 변할 수 있음 print(greeting) // Hi Swift Swift의 변수 이름은 camelCase사용 합니다. ■ 상수 (constant) : 변할 수 없는 데이터를 담을 수 있는 공간 (immutable) 선언방식 : let 변수이름: 타입 = 값 let myConst: Int = 5 // myConst = 7 // 주석 해제시 컴파일 에러⭐️ print(myConst) // 5 단 상수와 변수를 선언과 동시에 초기화할 경우 아래와 ..

Swift 2023.07.05

[프로그래머스] 3진법 뒤집기 파이썬

https://school.programmers.co.kr/learn/courses/30/lessons/68935 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 내 코드 def solution(n): answer = '' result = 0 while n > 0: answer = str(n % 3) + answer n //= 3 for i in range(len(answer)): result += (int(answer[i]) * 3**i) return result Review 문제를 다 풀고 나서 남들이 푼 코드를 보다가 저번에 n 진법 관련 문제를 풀던..

프로그래머스 2023.06.24

[프로그래머스] 더 맵게 파이썬 heapq

https://school.programmers.co.kr/learn/courses/30/lessons/42626 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 내 코드 import heapq def solution(scoville, K): heapq.heapify(scoville) cnt = 0 while scoville[0] = 2: min_1 = heapq.heappop(scoville) min_2 = heapq.heappop(scoville) heapq.heappush(scoville, min_1 + (mi..

프로그래머스 2023.06.23