요즘 데이터로 의사결정 해야 한다는 인식이 널리 퍼지면서 BI, 데이터 시각화 툴이 대세인데요, 이번 글에서는 Metabase라는 간단한 BI 툴로 손쉽게 데이터 시각화 하는 방법을 설명하려 합니다. 메타베이스를 활용하면 위 이미지 같은 통계 데이터 대시보드를 오직 클릭 몇번만으로 만들어 낼 수 있습니다. 며칠간 메타베이스를 살펴보면서 소개하고픈 장점이 몇 가지 있었는데요, 1. 강력하고 직관적인 기능으로 웬만한 요구사항은 모두 구현할 수 있습니다. 2. 오픈소스로 github에 공개 되어 있습니다. 3. UI가 깔끔합니다. 설치 방법 그럼 설치법부터 알아보겠습니다. 기본적으로 구현된 웹서버가 docker 위에 말려져 올라가 있기 때문에 설치 방법은 매우 간단합니다. docker pull metabase..
항상 백엔드를 간단하게 만들어 보고 싶다는 생각을 가지고 있었습니다. 최근 사이드 프로젝트를 시작하며 이번 기회에 프론트 구현을 위해 쓴 Next.js 위에서 파이어베이스를 활용해 한꺼번에 API를 구현해봤습니다. 원래는 간단하게 백엔드 작업을 할 때 Node.js로 작업한 후 heroku로 배포를 해왔는데, 이번에 하는 방법은 그보다 더 간소화된 방법입니다. 프론트와 별도로 repository를 생성하거나 별도로 배포 작업을 할 필요가 없습니다. 또, 파이어베이스를 활용해 인프라, DB 작업을 정말정말 간단하게 진행할 수 있습니다. 트래픽이 많지 않을 걸로 예상되거나 MVP를 빠르게 만들어 내야 하는 사이드 프로젝트의 경우에 유용한 방식입니다. (저는 실제로 이 방식으로 API 10개 정도 되는 MVP..
활동하는 커뮤니티 AUSG(AWSKRUG University Student Group)에서 제가 발표한 내용을 정리한 글입니다. (글을 적으며 조금 각색되었습니다.) 사진 배경을 보면 흐리게 로고가 들어가있는 걸 볼 수 있는데, 제가 지금껏 만들어 온 서비스들의 로고를 모아놓은 것입니다. 제가 했던 프로젝트들 중에서도 로고가 있는 프로젝트만 모아 봤습니다. 약 2년 정도의 시간 동안 만들어 온 프로젝트입니다. 사이드 프로젝트를 꿈꾸는, 하지만 막막해 하는 개발자 분들께 제가 사이드 프로젝트를 해 온 경험을 들려드리면 그 고민들에 조금이라도 힘을 보탤 수 있지 않을까 해서 정한 주제입니다. 앞으로는 사이드 프로젝트를 쓰기 쉽게 '사이드'라고 간단히 부르겠습니다. 제가 어쩌다가 사이드에 빠지게 되었는지, 그..
UICollectionView의 isSelected 프로퍼티 UICollectionvViewCell에는 isSelected라는 내장 프로퍼티가 있다. 이름에서 알 수 있듯, 해당 셀이 선택되었는지를 나타내는 프로퍼티다. isSelected는 UICollectionView delegate의 didSelectItemAt, didDeselectItemAt과 함께 불리기 때문에, 이런 식으로 셀이 선택되거나 선택이 해제되었을 때 setSelected와 같은 핸들러 메서드를 만들어 액션을 정의해 줄 수도 있다. override var isSelected: Bool { didSet { setSelected(isSelected) } } isSelected 프로퍼티는 직접 그 값을 변경하면 안 된다 위 isSelect..
소프트웨어 개발에서 객체 생성은 중요한 과정 중 하나입니다. 객체 생성을 효과적으로 처리하고, 코드의 유연성과 재사용성을 높이기 위해 다양한 디자인 패턴이 사용됩니다. 이번 글에서는 iOS 앱 개발에서 Factory 패턴에 대해 알아보고, 실제 사용 예시를 살펴보겠습니다. Factory Method 개요 Factory 패턴은 객체 생성을 위한 디자인 패턴 중 하나로, 다음과 같은 구성 요소로 이루어집니다: Creator: 객체를 생성하는 추상 클래스 또는 인터페이스입니다. 객체의 인스턴스를 반환하는 Factory Method를 정의합니다. ConcreteCreator: Creator를 상속받은 클래스로, 객체 생성을 담당하는 구체적인 Factory Method를 구현합니다. Product: 생성될 객체의..
아이폰 앱을 개발하다 온디바이스로 얼굴 인식 모델을 구동시켜야 하는 일이 생겼다. 찾은 오픈소스로 공개되어 있는 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로 웹사이트를 만들고 있는데, 카카오 공유하기 버튼에서 에러가 난다는 질문이었습니다. 문제 상황 확인해보니 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 앱 개발을 하고 있는데, 키워드 버블을 구현해달라고 한다. 대충 이렇게 생긴 .. 당연히 레퍼런스는 없었다. 어딘가 한 번쯤 보게 생겼는데, 했을 때쯤에는 웹에서는 많이 봤지만 앱에서는 한 번도 본 적이 없다는 것을 깨달은 후였다. 막막했다. 막막하게 한 3일 정도 라이브러리 서치와 어떻게 구현할 수 있을지, javascript로 구현해서 web뷰 이식을 하는 방법이 나을지 별의 별 궁리를 다 했다. 그러다가 기적처럼 라이브러리 딱 하나를 발견했다. https://www.highcharts.com/ Highcharts라는 다양한 차트 라이브러리였다. 이미 웹 프론트엔드, 안드로이드, iOS 환경 모두를 지원하고 있었다. 깃허브를 잠시 살펴 보니 마지막 업데이트를 한지 1달도 채 되지 않을 ..