swift88 Metal을 이용하여 이중 for loop 연산 빠르게 처리하기(1) 이번에 카메라 피드로 받아오는 rgb pixel들을 실시간으로 연산해야 하는 작업을 처리해야 했는데, 어떻게 하면 빠르게 할 수 있을까 고민을 하다가 Metal을 이용하게 되었습니다. 이번 기회에 Metal을 이용해보면서 알게된 사항들을 정리해보았습니다.Metal은 GPU를 이용해서 그래픽 연산이 많은 종류의 앱, 대표적으로 게임 혹은 3D 이미지 처리 그리고 머신러닝에도 이용될 수 있는 프레임워크입니다. GPU 연산의 핵심은 병렬처리 입니다. 여러개의 thread가 동시에 일을 처리하는 것입니다. 일꾼을 여러 명 사용해서 작업을 처리하기 때문에 처리해야 할 양이 많은 연산을 할 때 더욱 빠르게 작업을 완료할 수 있게 되는 것입니다. For loop 연산 대체하기처음 사용해보는 프레임워크였지만, Ap.. 2025. 7. 9. Your account already has an Apple Development signing certificate for this machine, but its private key is not installed in your keychain. 문제 해결법 XCode를 문제 없이 잘 사용하고 있다가 갑자기 아래와 같은 문제가 생겼습니다. 딱히 certificate을 갱신하거나 새로 만든 적이 없었기 때문에 뜬금 없기는 했습니다. 어쨌든 해결은 해야하니 방법을 찾아보았고, 현재 정상적으로 사용할 수 있게 되었습니다. 어떤 식으로 해결했는 지 알아보도록 하겠습니다.Your account already has an Apple Development signing certificate for this machine, but its private key is not installed in your keychain. Xcode can create a new one after revoking your existing certificate Revoke Certificate.. 2025. 6. 4. Storyboard UILabel에 linebreak(줄바꿈) 적용하기 코드로 String에 줄바꿈을 주기 위해서는 보통 `\n`을 쓰면 됩니다.let titleStr = "I am\nthe title"let titleLbl = UILabel()titleLbl.text = "titleStr"하지만 Storyboard의 Attribute Inspector에서 줄바꿈을 적용하려면 `\n`으로는 적용이 되지 않습니다.대신에, 줄바꿈을 원하는 부분에서 `Alt + Enter`를 해주면 됩니다. 그러면 위 사진에 나온 것처럼 줄바꿈이 inspector 창에서 바로 적용되어 나오는 것을 볼 수 있습니다. 참고- https://stackoverflow.com/questions/44384991/weird-behavior-on-uilabel-with-n-on-storyboard 2025. 5. 26. Storyboard merge conflicts 해결하기 - Multiple elements have the IDs "..." storyboard를 사용하면 merge할 때 conflicts 해결이 힘들다는 이야기를 들었었는데,직접 겪게 되니 정말 쉽지 않다는 것을 느끼게 되었습니다.아직까지는 매번 새로운 conflicts들을 마주하고 있지만, 하나씩 해결하고 정리해 놓다보면 어느 순간에는 겪어보았던 것들 위주로 나오지 않을까 하는 기대를 가지고 있습니다. 이번에 마주한 친구는 동일한 ID를 가진 elements들이 있다는 내용이었습니다.The document "Main.storyboard" could not be opened.Multiple elements have the IDs "..." 제대로 conflicts를 해결한다고 집중해 가면서 잘 선택해서 잘 해결한 줄 알았더니, storyboard를 InterfaceBuil.. 2025. 4. 15. Selector란? Selector란?UIButton을 누르면 어떤 동작을 수행하게 할 것인지 action을 추가할 때 보면 `#selector`구문을 사용해서 사용될 method를 알려주게 됩니다. 이 selector는 method 이름을 알려주는 방식이고, class나 struct 내부에 정의된 method 이름을 지칭합니다.왜 selector를 이용해야 할까요? Swift와 Obj-c 간의 bridge 역할을 수행해 줍니다. 즉, Objective-C 기반의 코드를 Swift에서 사용하기 위한 방식들 중 하나입니다. selector에 들어갈 수 있는 method는 반드시 `@objc`를 앞에 붙여주어야 하는데, 이 attribute를 붙여주어야만 Objective-C runtime에 접근이 가능해지기 때문입니다.언제 .. 2025. 4. 3. 14. Longest Common Prefix - 접근 방법: 1. 주어진 strs array를 string count에 따라 오름차순 정렬.2. 정렬된 array의 요소들의 firstLetter를 한 번씩 확인. 모든 요소들의 first letter가 동일하면 result에 추가하고, 그렇지 않으면 return.3. strs array의 첫번째 요소가 가장 count가 작기 때문에, 이 string의 count가 0이 되면 더 이상 확인하지 않음.class Solution { func longestCommonPrefix(_ strs: [String]) -> String { var sortedStrs: [String] = strs.sorted { $0.count = Set() while true { .. 2025. 1. 28. 이전 1 2 3 4 ··· 15 다음 반응형