본문 바로가기

Swfit107

Metal을 이용하여 이중 for loop 연산 빠르게 처리하기(1) 이번에 카메라 피드로 받아오는 rgb pixel들을 실시간으로 연산해야 하는 작업을 처리해야 했는데, 어떻게 하면 빠르게 할 수 있을까 고민을 하다가 Metal을 이용하게 되었습니다. 이번 기회에 Metal을 이용해보면서 알게된 사항들을 정리해보았습니다.Metal은 GPU를 이용해서 그래픽 연산이 많은 종류의 앱, 대표적으로 게임 혹은 3D 이미지 처리 그리고 머신러닝에도 이용될 수 있는 프레임워크입니다. GPU 연산의 핵심은 병렬처리 입니다. 여러개의 thread가 동시에 일을 처리하는 것입니다. 일꾼을 여러 명 사용해서 작업을 처리하기 때문에 처리해야 할 양이 많은 연산을 할 때 더욱 빠르게 작업을 완료할 수 있게 되는 것입니다. For loop 연산 대체하기처음 사용해보는 프레임워크였지만, Ap.. 2025. 7. 9.
OMV 설치가 중간에 막힌다면 보세요 (+Raspbian 10번 넘게 재설치한 사람..) 최근 NAS 서버 제작에 욕심이 생겨서 라즈베리 파이를 이용해 직접 만들게 되었는데, 잘 몰라 고생했던 부분이 있어 공유하고자 합니다.많은 사람들이 주로 사용하는 Open media vault를 이용하기로 하였고, 이 프로그램은 raspbian 설치 후에 '간단하게 설치'해서 사용할 수 있습니다. (제가 참고했던 유튜브 및 블로그에서는 다들 간단하게 하시더라구요. 😂) '간단하게 설치'해서 바로 사용할 수 있는 것 같은데, 이 설치가 제 발목을 잡았었습니다😱. Raspbian 설치 때도 우여곡절이 있어서 OS를 지웠다 설치했다를 n회 반복해서 이미 지친 상태였는데, omv는 설치 중간에 자꾸만 진행이 멈췄습니다. omv 설치 막바지에 설치 시 이용되었던 프로그램들을 삭제하는 과정이 있는데, 그 중 '.. 2025. 6. 29.
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.
반응형