전체 글

Choices nudge me onward, towards Dannaward
iOS/디자인패턴

[iOS 디자인패턴] Factory 패턴에 대해

소프트웨어 개발에서 객체 생성은 중요한 과정 중 하나입니다. 객체 생성을 효과적으로 처리하고, 코드의 유연성과 재사용성을 높이기 위해 다양한 디자인 패턴이 사용됩니다. 이번 글에서는 iOS 앱 개발에서 Factory 패턴에 대해 알아보고, 실제 사용 예시를 살펴보겠습니다. Factory Method 개요 Factory 패턴은 객체 생성을 위한 디자인 패턴 중 하나로, 다음과 같은 구성 요소로 이루어집니다: Creator: 객체를 생성하는 추상 클래스 또는 인터페이스입니다. 객체의 인스턴스를 반환하는 Factory Method를 정의합니다. ConcreteCreator: Creator를 상속받은 클래스로, 객체 생성을 담당하는 구체적인 Factory Method를 구현합니다. Product: 생성될 객체의..

iOS

.h5 파일을 Core ML로 변환해서 iOS 위에 올리기

아이폰 앱을 개발하다 온디바이스로 얼굴 인식 모델을 구동시켜야 하는 일이 생겼다. 찾은 오픈소스로 공개되어 있는 face recognition 모델은 deepface라는 모델이었다. 학습된 weights가 모두 공개되어 있어서 자유롭게 가져다 쓸 수 있었다. https://github.com/serengil/deepface?ref=hackernoon.com GitHub - serengil/deepface: A Lightweight Face Recognition and Facial Attribute Analysis (Age, Gender, Emotion and Race) Library A Lightweight Face Recognition and Facial Attribute Analysis (Age, G..

개발 잡기술

Wix에서 카카오 API 사용하기 (도메인 에러 해결)

어젯밤에 질문을 하나 받았습니다. Wix로 웹사이트를 만들고 있는데, 카카오 공유하기 버튼에서 에러가 난다는 질문이었습니다. 문제 상황 확인해보니 kakao deveopers 사이트에서 제공하는 데모에서는 공유 기능이 잘 되는데, Wix로 만든 웹사이트에 심으면 도메인이 등록되어 있지 않다는 에러 ErrorCode(4019)가 나는 상황이었습니다. https://developers.kakao.com/tool/demo/message/kakaolink?method=send&message_type=scrap Kakao Developers 카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다. developers.kakao.c..

iOS/UIKit

iOS 앱 키워드 버블 차트 개발기 (Swift로 버블 차트 구현하기)

외주로 iOS 앱 개발을 하고 있는데, 키워드 버블을 구현해달라고 한다. 대충 이렇게 생긴 .. 당연히 레퍼런스는 없었다. 어딘가 한 번쯤 보게 생겼는데, 했을 때쯤에는 웹에서는 많이 봤지만 앱에서는 한 번도 본 적이 없다는 것을 깨달은 후였다. 막막했다. 막막하게 한 3일 정도 라이브러리 서치와 어떻게 구현할 수 있을지, javascript로 구현해서 web뷰 이식을 하는 방법이 나을지 별의 별 궁리를 다 했다. 그러다가 기적처럼 라이브러리 딱 하나를 발견했다. https://www.highcharts.com/ Highcharts라는 다양한 차트 라이브러리였다. 이미 웹 프론트엔드, 안드로이드, iOS 환경 모두를 지원하고 있었다. 깃허브를 잠시 살펴 보니 마지막 업데이트를 한지 1달도 채 되지 않을 ..

iOS/디자인패턴

[iOS 디자인패턴] Singleton 패턴에 대해

싱글톤 패턴(Singleton Pattern)은 객체를 딱 한 번만 생성하고, 어디서든 해당 객체에 접근할 수 있는 디자인 패턴입니다. 이번 글에서는 싱글톤 패턴의 개념과 사용 방법, 그리고 싱글톤 패턴의 장단점에 대해 자세히 알아보겠습니다. 싱글톤 패턴이란? 싱글톤 패턴은 어떤 클래스가 최초로 인스턴스화될 때, 해당 클래스의 인스턴스가 하나만 생성되고 어디서든 동일한 인스턴스에 접근할 수 있도록 보장하는 디자인 패턴입니다. 즉, 클래스의 인스턴스가 오직 하나만 생성되고 그 인스턴스에 대한 전역적인 접근점을 제공합니다. 쉽게 말해, 언제 어디서 접근하든 같은 인스턴스에 접근할 수 있다는 의미입니다. 싱글톤 패턴의 구현 방법 싱글톤 패턴을 구현하는 방법은 다양하지만, 일반적으로 다음과 같은 구조를 가집니다..

iOS/디자인패턴

[iOS 디자인패턴] Observer 패턴과 Notification 설계

옵저버 패턴은 객체 간의 상호 작용을 구현하기 위한 디자인 패턴 중 하나입니다. iOS 개발에서는 주로 NotificationCenter와 KVO(Key-Value Observing)를 통해 옵저버 패턴을 활용합니다. 이번 글에서는 옵저버 패턴의 개념과 iOS에서의 활용 방법에 대해 자세히 알아보겠습니다. 옵저버 패턴이란? 옵저버 패턴은 객체의 상태 변화를 다른 객체에게 알리고, 해당 객체는 필요한 작업을 수행할 수 있도록 하는 디자인 패턴입니다. 객체 간의 결합도를 낮추고 확장성을 높이기 위해 사용됩니다. 주로 한 객체의 상태 변화에 따라 여러 객체가 동적으로 반응해야 하는 상황에서 유용하게 활용됩니다. 옵저버 패턴은 다음과 같은 주요 요소로 구성됩니다. Subject (주체): 상태 변화를 감지하여 ..

iOS/디자인패턴

[iOS 디자인패턴] Delegate 패턴과 Protocol에 대해

[참고: 이 글은 iOS 개발에 대한 내용이며, Swift 언어를 기반으로 작성되었습니다.] iOS 애플리케이션을 개발할 때, Delegate 패턴과 Protocol은 정말 자주 사용되는 매우 중요한 디자인 패턴입니다. iOS 개발을 하다 보면, 예를 들어 UICollectionView를 만들 때, 한 번쯤 collectionView.delegate = self와 같은 코드를 써보셨을 겁니다. 여기서 delegate가 뭘까요? 사전적 의미는 '위임/대리'이라는데, 대체 무엇을 위임하는 걸까요? 결론부터 말하자면, 실제 구현을 위임합니다. 설계할 때는 구현해야 하는 것들만 알려주고, 실제 구현은 사용하는 쪽에서 하게 만드는 패턴입니다. 이번 글에서는 Delegate 패턴과 Protocol에 대해 자세히 알..

iOS/Unity + iOS

[iOS+Unity] iOS와 유니티 사이에 데이터 주고 받기 (Swift로 구현된 iOS + Unity as a Library에서)

Swift로 UIKit을 사용해서 iOS 네이티브 앱을 개발하다 보면 3D 구현에 한계를 느끼게 된다. 반대로 Unity3D로만 게임이 아닌(non-game) 3D 앱을 개발하다 보면 (Bondee 같은 앱을 생각하면 상상이 쉽다.) 유니티의 뿌연 UI에 한계를 느끼게 된다. 결국 이를 극복하려면 각각의 장점만 취득할 수 있어야 하는데, 유니티는 이렇게 네이티브 iOS 앱 위에 라이브러리 형태로 유니티 뷰를 얹어서 사용할 수 있도록 Unity as a Library(UaaL)를 제공하고 있다. 이 글에서는 UaaL 자체에 대한 설명은 하지 않을 예정이다. 잘 설명된 아티클 몇 개만 첨부하고 바로 UaaL에서 iOS와 유니티 사이 데이터 통신을 어떻게 하면 편하게 구현할 수 있을지 얘기해보려 한다. htt..

개발 잡기술

[Typescript] OpenAI의 ChatGPT API로 나만의 챗봇 만들어보기 Part. 2

Part 1에서 간단한 API 연결이나 Docs를 훑어보는 시간을 가졌다면, Part 2에서는 실제 서비스에 적용하기 위해 꼭 필요한 구조화 작업들과 활용 예시를 설명하겠습니다. 필수 구조 잡기 사실 구조는 개발자의 성향, 그리고 상황에 따라 판단되어야 하고 그에 맞게 달라져야 합니다. 여기서는 필수적으로 해줘야 하는 작업만 살펴보겠습니다. API Key 숨기기 local에서 혼자서만 개발하는 환경이라면 상관 없지만, GitHub에 올릴 예정이라면, 그리고 Public Repository라면 꼭 해줘야 하는 작업입니다. Part 1에서 우리는 configuration 안에 apiKey를 문자열 그대로 넣어줬었는데요, 이렇게 되면 깃헙에 올라갔을 때 우리 apiKey가 노출이 되게 됩니다. 폭탄 과금을 맞..

개발 잡기술

[Typescript] OpenAI의 ChatGPT API로 나만의 챗봇 만들어보기 Part. 1

온 세상이 chatGPT로 시끌벅적 하네요. 하루종일 코드 들여다 보면서 사는 사람으로서 또 안 보고 넘어갈 수 없죠. chatGPT API 사용법을 살펴보겠습니다. ChatGPT와 API 챗지피티 써보셨나요? 혹시 ChatGPT 써보셨나요? 검색엔진의 종말이 도래하고 있다는 말이 나올 정도로 사람의 질문과 그 의도를 잘 파악해 그럴 듯한 대답을 내놓습니다. ai.com을 치고 들어가 로그인 하면 누구나 체험해 볼 수 있습니다. 사진에서 볼 수 있듯이 ChatGPT에 대해 설명해달라고 입력하면 그에 대한 대답을 해줍니다. 말 그대로 대화가 가능한 언어 모델입니다. 이런 것도 가능합니다. 같은 말을 충청도 할머니가 아이들에게 구연동화를 하듯 다시 써달라고 하면 말투가 바뀌는 모습을 확인할 수 있습니다. 심..

Danna 다나
toward, dannaward