탄트서기슬
당신이 ChatGPT로 데이터분석을 할 때에 '꼭' 알아야 할 한가지
아무래도 ChatGPT 활용에 대한 글은 여전히 흥하는 것 같습니다.
성원에 힘입어(?) 많은 분들께 ChatGPT ADA를 전도하기 위해 그에 대한 글을 써봤습니다.
'이런 것도 틀리다니 믿을 수가 없네'라고 덮어두는 것이 아니라, '틀린 계산도 스스로 검증하고 수정할 수 있게 만드는' 활용법을 익히는 것이 중요한 것 같습니다.
아래 링크 클릭클릭-!
탄트서기슬
당신이 ChatGPT로 데이터분석을 할 때에 '꼭' 알아야 할 한가지
아무래도 ChatGPT 활용에 대한 글은 여전히 흥하는 것 같습니다.
성원에 힘입어(?) 많은 분들께 ChatGPT ADA를 전도하기 위해 그에 대한 글을 써봤습니다.
'이런 것도 틀리다니 믿을 수가 없네'라고 덮어두는 것이 아니라, '틀린 계산도 스스로 검증하고 수정할 수 있게 만드는' 활용법을 익히는 것이 중요한 것 같습니다.
아래 링크 클릭클릭-!
야옹이형
배우고 갑니다
Jungrok An
(방금 또 우리 앞집 도언님에게 한마디 듣고 한번 용기내어 글을 써봅니다)
루트릭스는 최근에 매우 좋은 소식들이 많습니다!!
우선 21년 9월 유니콘하우스 때부터 수많은 조경계의 설계, 시공, 생산, 중계, 건설, 시행사 분들을 만나뵈며 2년간 맨땅에 헤딩을 하고 수많은 가설 검증을 해왔습니다!
추억팔이용 영상링크...😊
처음엔
기술로 데이터 수집을 잘하면 알아서 나무 거래가 될거야!
>> 고객의 페인 제대로 인지 못해서 실패. 가장 스타트업에서 하면 안되는 내 프로덕트를 고객에게 끼워 맞추려는 어린 생각이었구요.
수목 데이터 수집했고, 그럼 누구에게 팔아야할까?? 고민하다가
B2B 건설사 타겟을 해보자!
>> 건설사는 기본적으로 거래하는데 6개월 이상 걸리고, 조경산업은 나무 가격의 기준이 없기 때문에 신뢰가 없으면 오히려 우리가 싸게 드려도 불신이 있어 거래 불발.
건설사는 기존에 거래하던 중개업자들과의 관성이 있어 큰 페인이 있지 않다는 것을 알게되고, 다양한 스케일의 수요자들과 또 가설검증을 했습니다.
아파트 조경, 호텔 리조트 조경, 공원 조경, 대형카페 조경, 팬션 조경, 개인 세컨하우스 정원까지 다 두들겨 보다가, 작년 12월에 첫번째 인바운드 개인고객이 들어왔습니다.
그래서 거기서 개인 고객의 페인이 꽤 크다!
라는 것을 알게되었습니다(1년동안 모든 수요자 형태들을 다 두들겨 보니 겨우 알게됨)
그리하여 B2C 고객 타겟의 정원 디자인 시공 서비스까지 오게 되었죠!
이것을 시작할 때 저희는
개인 고객과의 레퍼선스를 많이 만들면 기업 고객도 따라 올 것이다!
라는 가설이 있었습니다!
그러나 그러기 위해서는 개인 고객과의 레퍼런스를 많이 만들어야 했고,
그러기 위해서 저희는 수백, 수천만원대의 프로젝트들을 진행해야 했는데, 산업 특성상 반년정도가 걸렸습니다.
그래서
평창동에 개인 테라스 정원
합정에 스몰웨딩 공간 정원
가회동 한옥 마당 정원
잠실 리센츠 아파트 내부 화단
한남더힐 테라스 정원
외 몇개의 자연공간을 만들었습니다!
그러고
나서 가설을 검증하기 위해서 가장 최근!!
7-9월 사이에 이런 레퍼런스들로 메타 마케팅을 돌려보니!
150만원을 2달동안 돌리고
리드 수집 117개
컨설팅 전환 19개
실제 프로젝트로 전환 10개
그리고 평균 1천만원 객단가인 것을 고려하면,
1억 매출로 전환이 되었습니다
ROAS 가 약 6666%!
개인 니즈가 확실히 있다! >> 검증! 과 함께
개인 타겟으로 돌린 메타 광고를 보고, 시행사의 형태로 B2B 고객까지 유입이 알아서 되었습니다. 다 들으면 알만한 대형 스타트업과 공기업에서도(투자 다 진행되면 공유드릴게요!) 이러한 서비스가 필요했다라고 연락을 주셔서,
개인 고객과의 레퍼선스를 많이 만들면 기업 고객도 따라 올 것이다! >> 검증!
그리고 사실 가장 큰 것은 이러한 조경산업의 혁신에 대한 노력을 보고,
대기업 투자 제안까지 들어 온 것.
그래서 요즘 열심히 투자 유치 준비를 하고 있습니다!
드디어 저희도 2년간 피땀눈물 흘려가며 겪은 시행착오의 작은 결과물을 곧 볼 수 있을 것 같네요~🥲🌿
우리 루트릭스 공동창업자 유겸이와 소중한 팀원들 모두 항상 고맙고 사랑합니다🥰
(물론 계좌 돈 들어올 때까지는 정신 바짝차리고 디콰에 과정 공유 드릴게요!)
루트릭스
나무 유통 플랫폼 및 정원 디자인, 시공 서비스
전예찬
요즘같은 불경기, 어려운 상황에 직면한 리더의 행동요령
팀원들에게 낙담을 공유하지 말 것
객관적인 현실을 공유하여 팀원들로 하여금 문제를 대면하게 하고, 팀원들이 문제를 해결해나가는 주체가 되게 해야 함
문제를 풀어가는 과정에서 희망을 잃지 않음
실수했음을 빠르게 인정하고, 같은 실수가 반복되지 않게 만들기
팀원이 실수를 발견했을 경우, 감사의 말 전하기
서로의 실수를 인정할 수 있는 문화 만들기
피드백을 수용할 준비를 할 것
구성원들의 무언의 피드백을 캐치할 것
갑자기 밝은 팀원이 말이 없어짐
구성원들에게 양질의 피드백을 제공할 것
I Message 활용
구성원들과 끊임없이 대화할 것
스몰토크를 피해선 안됨
내 모순을 먼저 이야기 한 후, 그것에 대해 어떻게 생각하는지 물어보기
내가 이런 부분에 문제가 있는 것 같은데 어떻게 생각해?
(각 팀의 리더분들 화이팅입니다..!)
Peter Kim
[웨비나] AWS와 함께하는 쉽고, 안정적으로 서비스 운영하는 노하우
아직도 새벽에 배포하시나요?
장애가 두려우신가요?
AWS와 데이터 기반 제품 최적화 솔루션 핵클이 공동 개최하는 웨비나에서 해결방법을 확인해보세요!
- 웨비나 신청하기 : https://bit.ly/3tgvEkj
- 날짜: 10월 25일 (수) 오후 3시
- AWS Go-To-Webinar Live
[1부] 운영 리소스 줄이기 위한 Serverless 서비스 쉽게 이해하기
이제 serverless infra에서 개발에만 집중하세요!
Lambda와 Fargate로 서버리스 환경 구축하는 방법을 알아봅니다.
-연사: 안성진 Solutions Architect, AWS
[2부] 잘 나가는 개발자들은 다 쓰고 있는 개발 프로세스 최적화 방법론
배포 자신감은 상승하고, 모니터링 및 운영 리소스는 혁신적으로 줄여주는 똑똑한 SaaS 활용법을 소개 합니다.
-연사: 권오빈 Co-Founder & Tech Lead, Hackle
손평화
피트니스 시장의 뜨거운 감자를 해결하기 위해 다섯명의 팀원들이 모였습니다.
트레이너들의 PT 회원관리 솔루션, FINUT이 우리의 첫번째 아이템입니다:)
헬스장과 PT STUDIO를 찾아가 돗자리 펴고 UX 개선과 기능 개발에 집중하다보니 2년이라는 시간이 흘렀네요.
“Venture or Nothing”을 외치며 팀원들과 피트니스 문화를 바꿔나가는 과정을 기록해보고자 합니다.
첫번째 주제는 Heavy-User 확보하기 입니다 🌳
당연하지만 가장 어려운, 핵심기능을 꾸준히 잘 사용하는 유저를 만들기.
저희는 유료화를 준비하는 과정에서,
유료 고객으로 전환될 가능성이 매우 매우 큰 유저를 확보하는데 총력을 기울이고 있습니다.
어떤 길이 빠르고 정확한 길인지 모르기 때문에, 우리 팀원들은 단순하면서도 누구보다 잘할 수 있는 방법을 택했습니다.
"밀접한 관계를 유지할 수 있는 고객들을 먼저 찾아 나서보자"
정확히는 따릉이 타고 헬스장들을 직접 방문하여 우리 서비스를 알려보았습니다.
흡사 타이타닉의 신문 팔이 소년처럼, 팜플렛을 가득 들고 삼성동, 대치동의 헬스장들에 뿌리고 다녔죠.
약 50개의 센터들을 돌아다니면서 확실한 인사이트를 얻을 수 있었는데요!
방문해도 선생님들이 수업중이라 우리를 알리기에 시간이 없는 경우가 많다.
( 그냥 자료만 전달하고 나오는 정도.. )
센터 대표님은 부재중이신 경우도 꽤 있어, 직접 만나뵙는 것이 어려운 경우도 많았다.
그래,,,그렇게 다짜고짜 찾아가니 받는 입장에서도 당황스럽겠지,,,
다음엔 전화로 먼저 미팅 약속을 잡고 가보자!!
그렇게 맨땅에 헤딩 두번째 플랜이 세워졌습니다.
헤비 유저로 전환될 가능성이 높은 고객 리스트업 후 전화 영업
첫 사용을 위한 고객 설득, 재사용을 위한 온보딩 프로세스 구축
ICP (Ideal Customer Profile)을 다시 한번 생각해보았습니다.
간단하게 말하자면, 높은 퀄리티의 PT 수업과 회원관리 서비스를 제공하기 위해 노력하는 트레이너
어디에 많이 모여있을까??
➡️ 일반 헬스장이 아닌 PT STUDIO, 특히 경쟁이 치열한 서울/경기권에 있는!!
그렇게 200개의 센터 리스트업과 스크립트를 작성하고 콜센터 모드 풀가동 📞
요즘 같은 시기에 영업 목적의 전화, 당연히 대부분 미지근한 반응을 보일거란 걱정이 많았지만,,,
⭐️ 이것이 초심자의 행운이던가 13개의 센터와 1차 미팅을 갖기로 했습니다 ⭐️
우리 한번 만나고 이야기 나눠보면 무조건 빠지게 만들 수 있다!!!
서비스 소개, 온보딩 프로세스, CRM 전략들을 잘 다듬어서 활성유저로 전환을 시켰는데요!
타겟고객을 잘 정의해서 만나보니, 우리의 서비스에도 공감하는 고객들이 많았어요.
@hansol noh 한솔님이 TM부터 자료 제작, 미팅까지 모든 프로세스를 섬세하게 구축하고 실행해주셨고,
‘아하모먼트’를 앞당길 수 있는 온보딩 과정까지 거치고 나니 확실하게 활성유저로 전환되었습니다.
이후 고객들과 밀접하고 의미있는 관계를 지속하고 있는 시점에서 얻은 가장 큰 교훈이 있어요.
고객 스스로가 브랜드 홍보대사를 자처한다 🙌
마케팅을 진행하지 않아도 고객이 SNS 홍보, 지인추천을 통해 지속적인 유입이 일어나는게 신기합니다.
좋은 고객 한명을 잘 유치시키는게 얼마나 중요한 일인지 확실히 체감하고 있습니다.
이번 영업 프로세스를 한번 돌려보고, 다시 팀원들과 논의중입니다 🤔
높은 제품력과 고객 관리로 확실하게 락인효과를 유지할 것.
더 효율적이고 확실한 방법으로 마케팅, 영업 프로세스를 디벨롭할 것
피넛이 2가지 사항을 어떻게 풀어가는지는 앞으로 지켜봐주세요!
조금은 투박하지만 우리 팀만의 색으로 피트니스 문화를 바꿔나가고 있습니다.
재밌는 피넛 성장 스토리 그리고 피트니스 트렌드와 인사이트 한 트럭 가져다드리겠습니다:)
읽어주셔서 감사합니다!
FINUT
운동 데이터 기반 트레이너의 PT회원 관리 솔루션 (SaaS)
이지수
최근 내 의식이 곧잘 모여든 주제. 각오했던 삶이 생각보다 만만치 않았음을 알게 되어서였을까. 높은 업무 강도는 아무렇지 않게 되었지만 그것이 기약없이 이어질 때에는 자의에 의해서든 타의에 의해서든 끝은 찾아오기 마련임을 배웠다. 지속불가능성을 몸소 체험했기 때문일까. 생각은 자연스레 미래로도 모여든다.
우리팀은 OKR 방법론을 활용해 업무를 관리한다. OKR은 구글에서 처음 고안한 업무 성과관리 프레임워크로, 회사가 도달하고자 하는 목표를 Objective와 각 objective의 하위에는 Key Result라는 측정 가능한 지표로 나눠 설정한 뒤 성과를 추적하고 관리한다. 단순하게 보면 주어진 기한 내에 달성 가능한 목표를 설정하고, 성공 여부를 점검하는 것인데 이게 여간 쉬운 작업이 아니다.
흥미로운 점은 OKR을 도입한지 1년이 다 되어가면서도 우리팀은 아직까지 OKR을 ‘잘’하지 못한다고 믿는다. OKR을 올바르게 잘 실행하고 있는지에 관한 여부는 ‘충분히 챌린지한 목표를 기한 내에 달성하고 있는지’로 판단하는데 큰 원인 중 한 가지는 늘 올바른 지표설정이다.
OKR에서 가장 주의할 점 한 가지는 KR을 결과지표를 설정해야 한다는 점이다. 많은 사람들이 결과지표가 아닌 행동지표를 KR로 설정하는 우를 범한다. 예컨대 커뮤니티로 비유하자면 “한달간 30개의 플랫폼과 타 대형 커뮤니티에 유입을 위한 홍보글을 작성하겠다“와 “일평균 1만 명 유입 및 1개월 총 50만 명 유입을 만들겠다“라는 두 가지 목표지표가 있을 때 두 지표 중 두번째 지표를 목표로 설정해야 한다. 첫번째는 내 행동에 초점이 맞춰져 있는 행동지표이기 때문에 정말로 이루고자 하는 결과에 초점이 맞춰져 있지 않다. 반면 두번째는 정말로 이루고자 하는 목표에 결부된 지표이기 때문에 이를 달성하기 위해 어떤 실행을 할 것인지는 열려있고, 이에 따라 훨씬 더 효율적이고 창의적으로 접근할 수 있는 여지가 높아진다.
결과지표와 행동지표라는 개념을 곱씹어 본다. 그간 나는 어떻게 살아왔는가. 삶에서 일이 중요한 부분을 차지하고 있는 내게 있어서 번아웃이 찾아왔다는 것은 그간 내가 올바르게, 지속가능한 방식으로 일하지 않았다는 반증이기도 했다. 결과지표를 북극성 삼아 무작정 스프린트하는 것은 목적을 달성하고자 하는 환경에서는 효과적일 수 있다. 주어진 시간 내 목표의 달성 여부가 중요하기 때문이다. 하지만 삶에서도 그럴까?
삶은 순간의 연속이라는 생각을 한다. 어떤 목표를 설정하든 어떤 목표를 달성하거나 실패하든 찰나에 불과하다. 늘 다음이 찾아온다. 그래서 어느 순간에 기대어 살아갈 경우 반드시 끝이 찾아온다. 끝이 있은 후에는 일시적인 성취와 좌절, 그리고 공허와 방황이 뒤따르기 마련이다. 그래서 무언가의 달성여부가 아닌 연속적으로 행할 수 있는 활동에서 의미를 추구해야 하지 않을까.
정지우 작가는 “인생은 언제나 기분과의 싸움”이라고 말했다. 쉼없이 흘러가는 시간 속에서 무언가를 할 때마다 실질적인 결과물과 함께 나 자신의 감정이 내게 되돌아온다. 행복일 때도 있고, 좌절일 때도 있고, 아쉬움 혹은 분노일 때도 있다. 중요한 것은 내가 임하는 활동을 어떻게 보느냐에 따라 돌아오는 감정이 대강 결정된다는 점인 것 같다. 어떤 순간에 행복이란 감정을 실어 스스로에게 보낼 것인가. 행복을 실어 태울 수 있는 순간이 많을수록 삶은 풍족해질 것이다. 그래서 거창한 것이 아닌 사소한 것에 만족할 수 있는 게 중요하다는 생각을 한다. 결과지표가 아닌 행동지표를 북극성으로 삼아야 한다.
언제나 확신에 가득찬 삶이라고 자부했는데 괜스레 고민이 많아진다.
역시 자만하는 순간 곧 인생은 철퇴를 내리는 법. 어떻게 살고 싶은 걸까.
서브스택 블로그를 메인으로 글을 쓰고 있습니다. 많이 놀러와주세요! (링크)
박형준
** 장권호 님의 메이커로그(링크)를 읽고 오시면 좋습니다 :)
저는 약 3개월 전, 노코드 툴 버블(Bubble.io)를 이용해, 동호회 축구/풋살팀 관리를 돕는 프로덕트인 어시스트를 배포하였습니다.
어시스트는 버블이라는 툴을 공부하기 위한 목적으로 제작(리뉴얼)했던 프로덕트고, 사이드 플젝으로 기획 했던터라 서비스 운영에는 큰 관심이 없었습니다. 당연히 별도의 마케팅이나 홍보 작업도 하지 않았고, 배포만 한 채로 방치 해 두었죠.
추석 연휴가 끝나고, 외주 프로젝트를 진행하던 중 디자인 에셋을 복사하기 위해 어시스트 관리자 페이지에 들어갔는데, 50명 남짓의 가입한 유저가 있는 것을 발견했습니다.
왜…? 어떻게…? 라는 생각과 함께, 조금 더 다듬으면 실제 축구/풋살 동호회의 문제를 해결하는 프로덕트로 진화(?) 할 수 있겠다는 욕심이 들더라구요.
그래서 함께 PM 부트캠프를 듣고, 최근 서핑메이트로 가깝게 지내는 장권호 님께 어시스트 프로덕트를 이터레이션 해 보자고 제안했습니다.
짧은 기간 내에 죽은(?) 프로덕트를 어디까지 디벨롭 할 수 있는지, 혹시 매출까지 내 볼 수 있을지 말이죠. 감사하게도 흔쾌히 함께 하기로 해 주셨습니다.
그렇게 어제(2023년 10월 24일)부터 “죽은 어시스트 살리기” 프로젝트 1일차 활동을 시작했습니다.
OKR 세팅하기
사실 OKR은 30분 만에 정할 수 있었는데요, 내용은 다음과 같았습니다.
Objective : 3개월 내에, 시드 투자 제안 받기
Key Result : 월 1,000만원 이상의 매출
Key Result : 경기 일정 등록 500건/주
Key Result : 100건 이상의 메이커 로그 업로드
만들어 가는 과정을 한 땀 한 땀 기록하는, 문자 그대로 메이커 로그를 날 것 그대로 적어보기로 했습니다. 어떤 액션을, 어떤 이유로, 어떻게 진행했는지 Lesson & Learn 하고, 더 좋은 개선 방향을 계속해서 상기하고 잡아나갈 수 있도록요.
Project Overview
초기에 어떤 이유로 프로덕트를 기획했고, 어떤 구조로 제품이 만들어져 있는지 공유하는 시간을 가졌습니다.
Sprint Planning & Daily Scrum
OKR과 프로덕트의 현황에 대한 이해를 통해, 이번 주 스프린트의 목표를 심플하게 정할 수 있었습니다.
“유저들이 왜 가입했는지, 왜 이탈했는지 파악하자.”
협업을 위한 기본적인 틀(노션 워크스페이스와 DB, 템플릿) 만들기
일사천리로 모든 일이 진행되었고, 일잘러 장권호님과 함께 할 수 있어서 너무 행복한 하루였습니다. 그렇게 장밋빛 미래가 펼쳐질 것 같았지만...
오늘은 어제 보낸 콜드메일의 답변을 확인하고, 그에 따른 후속 액션을 해 보려고 생각 했었는데요, 예상치 못한 문제가 생겼습니다. 바로 업무 방향과 방법, 목적과 목표에 대한 생각이 권호님과 제가 너무 다르단 것을 발견했기 때문이었죠.
우선 프로젝트를 대하는 목적(궁극적으로 가고자 하는 방향)이 달랐다고 느꼈습니다. 제가 처음 제안했던 Objective는 "3개월 안에 Seed 투자를 제안 받는다." 였는데요, 액션 아이템에 대한 의견을 주고 받다 보니, 저는 “투자 제안을 하고 싶을 만큼” 프로덕트를 개선 하는 것에, 권호님은 Objective 문구대로 “투자 제안을 받는” 것에 포커스 되어 있다는 느낌을 받았습니다.
저는 Objective를 상상가능하게 표현하고자 수사적인 의미로 “투자를 제안 받는다”라고 표현했었습니다. 하지만 이런 의도를 충분히 소통하지 않은 탓에, 듣는 사람의 입장에선 “실제로 투자를 받고 싶은” 것으로 이해하게 만들었죠. 소통과 Align에 미스가 있었습니다.
이를 계기로 관련한 여러 주제를 이야기 하면서 프로젝트를 바라보는 서로의 관점을 가깝게 만드는게 필요하다고 느끼게 되었습니다. 그래서 각자의 미션과 비전, 업무 스타일, 나아가 이 프로젝트로 얻고 싶은건 무엇인지에 대해 3시간 가량 이야기를 나누게 되었죠.
그 결과 Objective는 “3개월 안에, 투자 제안을 받을 만큼 좋은 제품 만들기”로 변경하고, 정말 좋은 프로덕트를 만들어서 고객의 만족과 결제, 투자자와 같은 ‘업계 사람들’의 관심 또한 자연스럽게 따라올 수 있게 만들자는 것에 Align 하였습니다.
개인적으로 어제 일사천리로 진행한 OKR 미팅 보다 훨씬 만족스러운 시간이었습니다. 다르게 이해한 부분을 찾고 개선할 수 있었고, 서로의 생각과 그 뿌리에 대해 잘 알 수 있게 되었기 때문이죠. 무엇보다도 프로젝트와 프로덕트를 바라보는 시야를 더 가깝게 만들 수 있었다는 것이 정말 만족스러웠습니다.
저는 비즈니스를 스포츠에 비유하는 것을 좋아합니다. 특히 축구에 비유 하는 것을 좋아합니다.
축구에서는 다수의 퍼포머가 모인 팀 보다는 잘 Align 된 팀이 위대한 성과를 내는 경우가 많습니다. 해리 케인이라는 거물급 선수가 나갔지만 오히려 리그 1위를 달리는 토트넘, 한 물 갔다는 평가를 듣는 베테랑을 중심으로 신예들이 똘똘 뭉쳐 챔피언스리그를 우승한 21-22시즌 레알마드리드 같은 팀이 그 사례죠.
저는 비즈니스도 똑같다고 생각합니다. 짧다면 짧고, 길다면 긴 약 7년의 직장 생활동안, 좋은 성과를 낼 때는 항상 잘 Align된 동료들이 있었습니다. 인간관계, 사업 목표, 미션과 비전, 가치관 등 어떤 분야가 되었건 잘 동기부여 되어 있고 서로를 잘 이해하는 팀이 갖춰지면 좋은 퍼포먼스가 따라왔었죠. 덕분에 성과란 99%의 Align과 1%의 역량이 만들어 내는 것이라 믿게 되었습니다.
권호님은 제가 봐온 PM 중 가장 역량이 뛰어난 분 이기에, 저희가 잘 Align 된다면 뜬구름 잡는 것 같은 OKR도 당연히 달성할 수 있다고 믿습니다. 그래서 오늘 3시간 남짓한 대화로 서로의 생각을 소통하며 맞춰 나갈 수 있어서 정말 기뻤습니다.
업무 방식과 관련해 대화를 하다보니, 산출물이 정해져 있는 대규모 컨퍼런스 기획 업무를 하셨던 권호님과, 결과가 불확실한 신사업/스타트업 비즈니스를 기획하던 저의 업무 방식이 많이 다르단 것을 느끼게 되었습니다.
저는 방향(목적)을 정했으면 동기부여가 되는 큰 수치의 목표를 잡고, 이를 달성하기 위한 말도 안되는 방법을 제약 없이 생각하고 아이디에이션 하는 것에 익숙했습니다. 반면에 권호님은 실현가능한 산출물을 정하고, 그 산출물을 내기 위해 논리적으로 어떤 일을 해야 하는지 구성하는 것에 익숙했죠.
솔직히 이 차이에 대해서는 오늘 100% 합의하지는 못했습니다. 두 방식 모두가 일을 잘 되게 만드는 방식이 맞기 때문이죠. 다만 원대한 목표를 세우고, 수단과 방법을 가리지 말고 이를 달성하기 위해 노력하자는 OKR 적인 방향은 유지하기로 했습니다.
Align 미팅
각자의 미션과 비전, 이 프로젝트에 참여하는 동기와 얻고 싶은 결과에 대해 소통했습니다.
이터레이션 프로젝트와, 어시스트라는 프로덕트의 미션과 비전에 대해 공유했습니다.
Sprint 목표 설정
Align 미팅 후에 이번 스프린트의 목적과 목표를 재설정하는 시간을 가졌습니다. 서로를 이해하게 된 덕분에 당장 지금 뭘 해야 하는지, 어떻게 하는게 좋을지 더 명확해 졌습니다.
목적 : 아무 홍보없이도 가입한 유저가 왜 가입하고 사용(미사용)했는지 찾아보자
목표 : 가입한 모든 유저(57명)와 인터뷰 해 보자
고객 인터뷰 요청 (2)
어제 콜드메일 응답 체크 : 전환율 0%
일단 응답을 받기 위해 다이렉트로 전화를 걸었습니다.
총 7분 중 3분과 통화에 성공 (전환율 42.85%)
통화 한 3분 중 2분이 인터뷰에 동의 (전환율 66.67%)
→ 메일보다는 전화가 훨씬 효과적이라는 발견!
→ 부재 중인 유저분들께도 지속적으로 컨택 해 보기로 했습니다.
서로 원하는 바를 직접적으로 소통하면서, 서로에 대해 잘 이해할 수 있는 시간을 가져서 좋았음. 어제보다 훨씬 서로를 잘 이해하게 되었고, 이런 대화가 오늘이 끝이 아니며 더 맞춰갈 부분이 많다는 것도 이해하게 됨
고객에게 직접 연락하자. 예상을 뛰어넘는 결과가 나온다.
글을 자주 쓰는 것…. 정말 힘들다.
혹시나 저희 프로덕트에 관심 있으시다면,
어시스트
동호회 축구/풋살 팀 관리 서비스
정채원
KEEP
유저의 1초를 생각하는 것
UT를 앞두고 작업을 하면서 유저의 입장에서 더 많이 생각하게 되었다. 유저에게 요구하는 행동이 많지 않은지, 하나의 과정이 너무 번거롭지는 않은지, 버튼을 눌렀을 때 유저가 예상한 화면이 나오는지 등 유저의 흐름을 따라가면서 수정되는 디자인이 많았다. 시간 내에 완성하는 것도 중요하지만, UT 기회를 제대로 활용하기 위해 진짜 유저에게 닿는다는 생각으로, 더 많은 유저가 편리하게 이용할 수 있는 플로우에 집중했다.
Problem
완벽보다 완료
UI의 완성도만큼 중요한 건 데드라인 내에 작업을 마무리하는 것. 팀원들과 설정한 일정들이 각자의 사정으로 조금씩 밀리게 되었다. 최종 UT날이 코앞으로 다가오면서 어느 정도 UI가 마무리 지어져야 하는 상황이라, 팀원들에게 일정을 다시 리마인드하고 마지막 일정을 조율했다. 개인 일정상 속도가 더딘 팀원의 파트를 도와서 작업하면서 정해진 일정에 지장없이 마무리하기 위해 고군분투 중이다!
Try
프로토타입 첫 도전
UT를 위해서 프로토타입이 반영되어 있어야 한다. 피그마에서는 처음 사용해보는 기능이라 직접 적용하면서 빠르게 습득해야 하는 상황이다. 그래서 프로토타입 반영 전 멘토님들이 추천해주신 오토플로우 플러그인으로 플로우를 잡아보았다. 내일 팀원들에게 내가 잡아놓은 플로우를 공유하고, 피드백을 거친 후 프로토타입을 진행해 보려고 한다. 마지막까지 긴장감을 늦추지 말고 마무리를 잘 해야겠다. 화이팅!
김무종
지난주 토요일 직장인 창업 부트캠프 {창} 7기 프로그램에서 연사로 참여했습니다.
스파르타는 100명이 넘는 수료생들 중 왜 저를 연사 초청했을까요? 아마 저희 팀 저스트세이잇이 {창}을 수료한 팀들 중 가장 특이한 조합(?)이어서가 아닐까 싶어요.
그도 그럴것이 대표를 제외한 co-founder들이 모두 해외 유학생 출신이며 커리어도 화려했었거든요.
co-founder 이승현님은 스위스 GIHE를 졸업하고 영국 NETFLIX 마케팅 인턴 경험이 있었고, 이상범님은 UCLA에서 컴퓨터공학을 전공하고 NASA 인턴십, Microsoft 본사 Azure 개발자로 일하며 미국에서 {창} 프로그램에 참여했었습니다.
팀에서 안쓰러움(?)을 맡고 있던 제가 업계에 임팩트를 만들고 저 자신을 입증해내기 위해서는 메타인지가 필요했습니다. 앞으로도 대표의 학력과 경력에 대해 의구심을 가질 것이고 이를 해결할 수 있는 방법은 딱 한 가지였죠.
'나보다 훨씬 뛰어난 사람을 모셔올 수 있는 사람이 되어야 한다!'
그래서 적극적으로 창업을 하는 이유, 해결하고자 하는 문제, 성실함, 수용성, 가치관, 이루고 싶은 꿈 등을 어필했고 저보다 훨씬 훌륭한 사람들을 모아 팀을 만들 수 있었습니다.
상범님은 아쉽게도 투자 계약 기간 중 승진을 하게 되어 결국 미국에 남기로 했습니다. 지금도 꾸준히 연락하며 개발에 대해 어드바이저로 함께 해주고 있으며, 새롭게 민경님과 연세님이 팀에 합류해주셨어요.
민경님은 홍익대에서 교육학을 전공했고 Product Manager로 합류해 주셨어요. 옹알의 고객으로 참여하셨다가 저스트세이잇이 해결하고자 하는 문제, 팀원들이 일하는 방식에 매력을 느껴 도와주시다가 정식 팀원으로 합류하게 되셨어요.
연세님은 뉴욕주립대에서 경영학을 전공하고 메이저리그 세인트루이스 구단에서 통역관으로 활동한 경험을 가지고 민경님처럼 고객으로 오셨다가 엄청난 열정을 느끼시고 팀에 합류하셨죠.
저희 팀 투자사인 스파르타 이범규 대표님은 "사람 모으는 일은 참 기가 막히시네요..."라고 말씀해 주시곤 하는데요.
{창}을 수료하고 열심히 일하고 있던 어느날, 상범님에게 물어봤습니다. "상범아 너는 {창}에 있는 많은 사람들에게 팀 합류를 제안받았는데 왜 나를 선택하게 됐어?"
"형은 눈빛이 다르더라, 이 문제를 포기하지 않고 진심으로 풀고 싶은 사람이구나 싶었어. 그래서 많이 도와주고 싶더라고"
실패하는 일을 주저하지 않고 빠르게 실행해서 검증하려다 보니 이런 모습이 안쓰러움과 결합되어 도와주고 싶다는 생각이 들게 하는 것이 저의 매력인 것 같네요... 😭
물론 도움 받은 것에 대한 진심을 담은 감사와 리스펙트를 적극적으로 표현하고 어떤 방식으로든 은혜를 갚고자 하는 마음이 이를 지속가능하게 만드는 것이 아닐까 싶습니다!
팀 저스트세이잇 팀빌딩 아직 끝나지 않았습니다! 함께 멋진 팀을 만들어 스타트업씬에서 임팩트를 만들고 싶은 개발자 분을 모십니다! 편하게 대화 나눠보고 싶으시다면 커피챗 요청주세요!
💡옹알의 기술스택(예정)
프론트엔드 : Typescript, React
백엔드 : Node.js
DB : MySQL, MongoDB
코드 관리 : GitHub
김회연
KEEP
UX 플로우 정리
여러 사용자의 입장에서 서비스의 사용성을 고려하여 플로우를 기획하였다
완성도를 높이고자 함
완성이 됐다고 생각했던 작업들이 플로우를 고민하면서 세밀하게 뜯어보니 부족한 부분이 많았고 계속해서 디벨롭 작업을 진행하였다
Problem
너무 다양한 상황을 고려하다 보니 논점이 흐려짐
사용자의 입장에서 생각하여 작업을 진행하는 게 맞지만 너무 예외적인 상황까지 고려 하다 보니 기준을 정하는 데 오래 걸리고 작업까지 딜레이가 된 것 같다 (실제 앱을 출시할 때는 어느 상황까지 고려해야 할지 명확한 기준을 잡아야 할 텐데 그게 어려운 것 같다)
시간 조율 실패
중요도에 따른 시간 배분을 했어야 했는데 정하지 않고 작업을 진행 하다 보니 중요도가 높은 작업이 후순위로 미뤄진 것 같다
과한 욕심
지금 프로젝트에 너무 많은 아이디어를 담으려다 보니 의미는 좋지만 사용자에 편의성에 맞지 않은 디자인이 나오기도 했다
Try
우선순위 잊지 말기
매번 중요도 있는 작업이 무엇인지 우선순위를 정하고 그에 맞는 시간 배분을 해야 한다
포기할 줄도 알아야 한다
아무리 의미가 좋더라도 사용자에게 불편하다면 과감하게 빼는 것을 선택해야 한다
이윤규
영어 하면 ‘뤼이드’
수학 하면 ‘메스프레소’
자격증 하면 ..?
자격증 하면 떠오르는 스타트업이 없었어요.
‘없는 시장인가?’
‘안하는 이유가 있을거야’라는 생각을 가지고 있었어요.
자격증 시장의 기업들을 분석해 보았어요.
에듀윌 : 21년의 업력. 1,500억원의 매출.
Q. 국가 기술 자격증만 국내에 500개가 있는데, 왜 에듀윌은 21년 업력동안 40개의 종목밖에 운영하지 않을까?
뤼이드 : 기술력을 인정받으며 비전 펀드 2,000억 투자 유치, 미국 플립
Q. 왜 토익에서 벗어나지 못할까?
Q. 공인중개사 서비스는 왜 런칭 후 바로 철회했을까?
이러한 의문점들은 한 곳으로 모여 저희의 가설이 탄생했어요.
맞추다의 가설 - ‘자격증 시장은 마켓 사이즈가 작은 종목들 하나하나가 모여야 큰 시장이 형성된다. 하지만 작은 종목 하나하나를 확장하고 관리하는데 들어가는 리소스 대비 회수가 어렵다. (ROI가 낮다)’
유저의 Life time이 무한대로 늘어날 수 없는 비즈니스(합격 후 이탈)는 ROI 측정이 분명하게 되어야 하고, ROI가 좋지 못하다면 사업을 지속할 수 없어요.
저희는 대부분의 자격증 학원, 출판사가 모든 종목들을 지원하지 못하는 이유가 작은 종목들의 ROI가 좋지 못하고, 이러한 한계들로 인해 자격증 시장에 에듀윌 이후에 더 큰 기업이 나오고 있지 않다고 생각해요.
그래서 맞추다는 기존의 자격증 학원, 출판사가 비용을 많이 들이는 부분을 분석하고, 이를 혁신적으로 줄여서, 비용 투자 대비 회수가 확실한 비즈니스를 지속하여 모든 자격증을 커버하고 큰 시장을 형성하여 ‘자격증’ 하면 떠오르는 대표 기업이 되려해요.
자격증 출판사는 가장 많은 비용을 1) 콘텐츠 개발, 2) 콘텐츠 유지 개선 및 관리에 쓰고 있었어요.
이렇기에 종목 하나를 확장할 때에도, 도메인에 적합한 전문가 섭외부터 시작하여, 콘텐츠 개발, 검수 및 유지 개선 등 굉장한 리소스가 들죠. 자격증은 모수가 작은 종목 들이 모여야 큰 시장을 형성하기 때문에, 한 종목 확장을 위해 이렇게 리소스를 사용하는 것 자체가 좋은 ROI를 기대할 수 없었습니다.
그래서 맞추다는 첫 번째로 ‘콘텐츠 개발을 직접하지 않고 사업 확장을 해야 한다’고 생각했습니다.
이미 시장에는 많은 출판사와 학원이 있어 저희가 직접 콘텐츠 개발자를 섭외하고 개발하는데 비용을 쓸 필요가 없었습니다. 그래서 맞추다는 기존 시장의 플레이어인 출판사와 협업 할 수 있는 BM을 구상하게 되었습니다.
맞추다는 출판사의 콘텐츠를 활용해 빠르게 시장 전개를 하고, 출판사는 RS 구조를 통해 새로운 수익 채널을 만들어 낼 수 있죠
맞추다가 첫 번째 종목인 ‘전기기사’를 런칭 할 때, 학습 콘텐츠를 직접 타이핑하며 DB화 하는데 약 150시간이 걸렸습니다. 이 부분이 공격적인 확장에 큰 걸림돌이 될 것이라 생각해, 학습 콘텐츠 (hwp, pdf) 파일을 읽어 맞추다의 DB로 만드는 자동화 기술을 개발하여 확장 속도를 극도로 높였습니다.
마지막으로 학습 콘텐츠를 한 곳에서 운영 관리할 수 있는 자체 CMS를 개발했습니다.
런칭 이후에도 문제 검수 및 관리에도 많은 리소스가 들어갑니다. 맞추다는 자체 CMS 를 개발하여 현재 약 30개의 종목을 파트타임 콘텐츠 매니저 한 분이 관리하고 계십니다.
이러한 노력들을 통해 맞추다는 올 초 1월 1종목에서 현재 30종목까지 확장했고, 올해 50종목까지 확장을 목표로 하고있습니다. (에듀윌은 40종목을 서비스하는데 21년이 걸렸습니다.)
국내 국가 기술 자격증은 500개가 넘고 민간 자격증은 매년 증가하며 현재 약 5만여개가 등록되어 있습니다. 맞추다는 자격증 시장에서 빠른 확장 속도로 시장을 점유하고 이후, 필기-실기-취업 지원 순으로 사업 영역을 확장하며 ‘자격증은 맞추다’라는 인식을 만들어 낼 것입니다. 앞으로의 행보를 응원해주세요!
맞추다
개인맞춤 문제집 생성을 통해 합격기간을 단축시키는 에듀테크 서비스
연주환
LLM을 코드 안으로 넣으려는 시도들 (feat. OpenAI Function call API)
10X AI Club 톡방에 올린 내용을 공유합니다!
OpenAI Function Call이 6월13일에 출시된 이후 LLM 개발의 게임체인저가 아닐까 생각했습니다. (6월 13일을 외우고 있는 이유는 모델이름에 0613이 들어가기 때문..)
Function call을 통해서 비정형 데이터를 정형 데이터(JSON)로 변환하고 이를 코드에서 바로 사용할 수 있도록 하는 것이죠.
같은 흐름으로 LLM을 Pythonic 한 파이썬 코드의 일부로 만드려고 하는 시도들이 많았는데, 점점 이렇게 Low Level로 LLM이 프로덕트 안쪽으로 통합되지 않을까 상상해봅니다.
관련해서 재밌게 팔로잉하고 있는 라이브러리 공유드립니다!
https://jxnl.github.io/instructor/
https://github.com/PrefectHQ/marvin
개인적으로 instructor 라이브러리의 개발자 Jason은 제가 트위터에서 좋아하는 분인데 Pydantic을 사용해서 LLM을 코드 안으로 넣으려는 시도를 많이 하시더라고요.
이정민
[Tip] MZ 세대가 열광하는 인테리어, 10초 만에 하기 🏠
출처: 우리집, 스모어톡 인테리어 변경 예시 결과물
🥲 휴 2주 만에 살아 돌아왔습니다... 이사 정말 힘드네요... (몸살도 났어요)
최근 들어서 가장 오래 글을 안 쓴 기간이었던 것 같습니다.
'왜 바빴는가' 라고 질문을 주신다면,
2주간 스모어톡은 이미지 어시스턴트, 플라멜 출시를 앞두고 최소한 대한민국에 파급력을 줄 수 있는 방식을 고민해 무언가를 준비하고 있었습니다. (여전히 잘 모르겠지만 일단 Go, 정말 커밍쑨...)
또한 도전! K-스타트업 2023 왕중왕전 준비(링크), Open Ko-llm Leaderboard 5위 등극(링크, 10/25 일자 1위) 등 오랜만에 저도 ML 엔지니어가 아닌 CSO(전략 담당) 로서 AI 최신 동향에 대해 다시 확인하는 시간을 가졌던 것 같습니다.
그리고 (제일 중요한) 마침 제가 직전 자취방 계약 만료로 이사를 했어야 했는데요.
와... 이사 정말 힘들더라고요...
그런데 또 막상 텅 빈 집을 보고 계약 후 여기를 무엇으로 채워야 할까를 고민하게 되었습니다.
출처: 오늘의집 커뮤니티
사실 저와 같이 2·30 대로 대표되는 MZ세대 사이에서 '집 꾸미기'에 대한 관심이 높은 상황입니다. 광명 이케아에 찾아 갔을 때에도 정말 많은 청년들이 조립 가구를 둘러보고 있더라고요.
이유는 간단합니다.
어차피 월급으로는 집 마련하기 힘드니 인테리어라도 고급으로 해서 집을 꾸미자라는 것인데요.
대부분의 MZ세대(저 포함)는 자가가 아닌 전·월세를 들어 살고 있습니다. 그리고 '오늘의집' 의 주요 이용자는 25~34세, 현대리바트의 페이지뷰의 약 40%가 MZ세대인 것이 앞의 가설을 뒷받침하고 있다고 보여집니다.
그런데 인테리어는 공간 디자인의 특성에 따른 문제가 존재합니다.
각기 다른 공간에 맞추어야 합니다.
소유한(=제한된) 인테리어 자산을 기반으로 디자인 해야 합니다.
빠르게(!) 끝내야 합니다.
또한 당연하게도 디자인이기 때문에 시각적인 미학 또한 소비자의 구매를 이끌어내는 주요 요소이지만, 그만큼 많은 시안을 준비하기에는 여러 물리적인 어려움이 존재합니다.
인테리어 수요자 입장에서도 오프라인으로 직접 업체를 방문하여 견적을 내고, 2~3주를 소요해 시안을 제공받는 것은 당연히 불편했습니다. (중요! 물론 이 솔루션의 구매자는 인테리어 업체입니다)
금방 시안을 만든다면, 고객을 설득하는 데 큰 효과가 있지 않을까요?
그래서 국내외에 해당 솔루션을 열심히 개발하는 기업이 존재합니다.
외국에서는,
InteriorAI (by x.com @levelsio, 유명 인디 개발자)
한국에서는,
가 있습니다. (혹시 추가해야 할 기업은 알려주시면 수정하겠습니다)
오늘은 그 중 REimagine Home 에 대해 살펴보고, 기능에 대해 실제 코드로 구현해보겠습니다.
(빨리 직접 코드로 만들어보고 싶은 분께서는 아래로 스크롤 해주세요)
출처: REimagineHome 홈페이지 메인
사진을 업로드 합니다.
잘못된 구도로 촬영할 시 일부 회전할 수 있도록 한 번 더 확인합니다.
간편하게 생성할 지 혹은 세부적인 조건을 조정하여 정확하게 생성할 지 선택하게 합니다.
대기 하는 시간 동안 전후 화면을 비교시켜주고, 하단에 어떤 입력 값을 넣는 지 보여줌으로써 사용자의 관심을 유도합니다. 좋은 방식인 것 같더라고요.
다음과 같이 두 가지 조건이 있습니다.
하나는 가구의 재배치를 의미하는 Furnishing, 다른 하나는 실내 구조의 일부를 변경하는 Architectural 입니다.
첫 번째, Furnishing 에서는 현재 이미지가 나타내는 장소가 구체적으로 어디인지(거실인지 부엌인지)에 대한 설명을 넣고, 인테리어 테마를 설정합니다. 다음으로 선호하는 색상 톤과 구체적인 지시 사항을 AI에게 안내합니다. (실제 인테리어 디자이너가 고객을 응대하는 과정과 유사하죠?)
두 번째, Architectural 에서는 현재 이미지의 천장, 벽, 바닥 중 변경을 원하는 것을 선택하여 자동으로 마스킹을 만들고, 선호하는 색상 톤과 구체적인 지시 사항을 AI에게 안내합니다.
저의 경우 두 번째 옵션인 Architectural 에서 벽과 네이비 블루를 선택하여 생성한 결과는 다음과 같습니다.
생성을 다하니, 사이트에서는 이제 수고했으니 워터마크를 지우려면 돈을 내지 않겠나...? 라고 말을 합니다.
(저는 제가 만들기 때문에 돈을 안냅...)
과정이 꽤나 간단하지만, UX를 최적화 시켰다는 점이 주목할 만한 것 같습니다.
특히, 구역 별로 오토 마스킹을 해야 한다는 기술적인 설정을 둔 것도 재밌는 포인트라고 생각되었습니다.
실제 인테리어라는 것이 맨 처음 이사할 때를 제외하고는 일부만 변경하기 때문에 이러한 포인트에서 시장 조사가 잘 되었다고 판단했습니다.
이전에 안내해드린 서비스 내 Furnishing 을 구현해볼 예정이며 간단히 설명을 드리겠습니다.
해당 방법은 Embodied AI Foundation 에서 공개한 MiDaS (이미지 내 깊이 측정 모델) 과 Stable Diffusion 의 ControlNet (사전에 주어진 입력값을 통해 생성할 이미지의 형태를 고정) 기능을 활용합니다.
실내 사진 이미지를 준비합니다.
아무거나 인테리어 디자인을 원하는 실내를 찍은 이미지 한 장을 준비합니다.
구글 코랩 (GPU) 을 엽니다.
MiDaS 과 Stable Diffusion 을 사용하기 위해선 GPU 가 필요합니다.
코랩은 클라우드 기반 Jupyter Notebook 환경입니다. 무료로도 사용 가능합니다. (다만 유료로 사용 가능한 V100 이상 부터 사용이 원활합니다)
다음 코드를 입력해주세요.
라이브러리 세팅을 합니다.
라이브러리 설치
# Install libraries
!pip install -q git+https://github.com/huggingface/diffusers.git -U
!pip install controlnet_aux==0.0.7 # for conditioning models and detectors
!pip install -q transformers accelerate -U
# For xformers with correct torch version due to colab update (for memory efficiency)
!pip install -q torch==2.0.0+cu118 torchvision==0.15.1+cu118 torchaudio==2.0.1+cu118 torchtext==0.15.1 torchdata==0.6.0 --extra-index-url https://download.pytorch.org/whl/cu118 -U
!pip install -q xformers==0.0.19 triton==2.0.0 -U라이브러리 추가
# Set the Generator and the MiDaS Detector
import torch
import numpy as np
from PIL import Image
from controlnet_aux import MidasDetector
from diffusers import AutoencoderKL, DDIMScheduler, StableDiffusionXLAdapterPipeline, T2IAdapter, DiffusionPipeline
from diffusers.utils import load_image, make_image_gridAI 모델을 GPU 에 설정합니다.
여기에서 중요한 부분은 본 코드에서는 이미지 내 디테일한 표현을 강화하는 LoRA 가중치를 추가해주었기 때문에, 사용자 입력값인 prompt 앞에 'detail_' 을 추가해주어야 합니다.
# load adapter
adapter = T2IAdapter.from_pretrained(
"TencentARC/t2i-adapter-depth-midas-sdxl-1.0", torch_dtype=torch.float16, variant="fp16"
).to("cuda")
# load scheduler
model_id = "stabilityai/stable-diffusion-xl-base-1.0" # Base model
ddim = DDIMScheduler(
num_train_timesteps=1000,
beta_start=0.00085,
beta_end=0.012,
beta_schedule="scaled_linear",
clip_sample=False,
set_alpha_to_one=False,
steps_offset=1,
)
# load vae
vae = AutoencoderKL.from_pretrained(
"madebyollin/sdxl-vae-fp16-fix", torch_dtype=torch.float16
)
# load base for sdxl
pipe = StableDiffusionXLAdapterPipeline.from_pretrained(
model_id,
vae=vae,
adapter=adapter,
scheduler=ddim,
torch_dtype=torch.float16,
variant="fp16",
use_safetensors=True
).to("cuda")
# save memory and improve inference speed
pipe.enable_xformers_memory_efficient_attention()
# set lora for detailed image
pipe.load_lora_weights("jyoung105/detail-tweaker-XL-lora", weight_name="add-detail-xl.safetensors", adapter_name="detail")
#pipe.set_adapters("detail")
# load MidaS detector
midas_detector = MidasDetector.from_pretrained("lllyasviel/Annotators").to("cuda")
# load refiner for sdxl
refiner_id = "stabilityai/stable-diffusion-xl-refiner-1.0"
refiner = DiffusionPipeline.from_pretrained(
refiner_id, vae=vae, torch_dtype=torch.float16, variant="fp16", use_safetensors=True)
refiner.to("cuda")
# save memory and improve inference speed
refiner.enable_xformers_memory_efficient_attention()원래 이미지에서 MiDaS를 통해 Depth 이미지를 추출합니다.
image = load_image(url) #IMPORTANT! url is from your image
midas_image = midas_detector(image, detect_resolution=512, image_resolution=1024)
midas_image = np.array(midas_image)[:, :, ::-1]
midas_image = Image.fromarray(np.uint8(midas_image))프롬프트 등 원하는 스타일의 이미지를 텍스트 형태로 입력합니다.
prompt = "detail_photo of a room with sofa, 4k, f1.5, highly detailed, high defintion"
negative_prompt = "wrong, anime, cartoon, graphic, text, painting, crayon, graphite, abstract, glitch, deformed, mutated, ugly, disfigured"
seed = 1234567890
generator = torch.Generator(device="cuda").manual_seed(seed)
latents = pipe(prompt=prompt,
negative_prompt=negative_prompt,
image=midas_image,
num_inference_steps=40,
adapter_conditioning_scale=0.9,
adapter_conditioning_factor=1.1,
guidance_scale=8,
generator=generator,
output_type="latent",
cross_attention_kwargs={"scale": 1.5}
).images
images = refiner(
prompt=prompt,
negative_prompt=negative_prompt,
guidance_scale=7.5,
image=latents,
generator=generator,).images
image = images[0]
image.save("/content/interior.png")의 과정을 거치면 나오는 이미지들은 다음과 같습니다,
짜잔 🌟
다행히 이번에는 개발하는 데 그렇게 오랜 시간이 걸리지는 않더라고요.
다만 아쉬운 점은 다음과 같습니다.
아래 이미지에서 확인할 수 있듯이, 무엇이 무엇인지를 정확히 확인하지는 못한다. 이 때 필요한 것이 semantic segmentation (구역에 대한 의미를 부여하며 영역 분할).
정확한 촬영 장면 반영을 위해서는 추가 ControlNet 이 필요할 수도 있다.
기업에서 사용하길 원하신다면, 본인만의 자산으로 사용 가능해야 하는데 생성 이미지는 무작위적으로 나온다. 이 때 필요한 것이 LoRA (파인튜닝) 또는 IP Adapter (해당 기술 관련 글)
*참고로 단순히 파인 튜닝을 한다고 결과물이 잘 나오는 것은 아닙니다. 상용화 수준을 원하신다면 기술력이 필요합니다.
같이 고민해보고 싶은 분들 또는 서비스하고 싶은데 AI 모델 관련 협업이 필요하시면 연락주세요!
오랜만에 이사를 하면서 관련해 실제 현장에서 AI를 사용해볼 수 있는 지점을 모색해 볼 수 있었습니다. 실제 현장에 이미지 생성 모델을 확산시키고자 하는 비전은 계속되며 다음 번에도 재밌는 아이디어로 찾아뵙겠습니다 :)
이정민 (스모어톡, tonylee@smoretalk.io)
플라멜 Flamel v0.1
프롬프트 엔지니어링이 필요 없는 가장 쉬운 검색형 이미지 생성 서비스
김주영
올해 2분기 즈음 고강타일이 정말 위태로웠던 순간이 있었습니다.
어떠한 우연이였는지는 모르겠으나 그 시기를 이겨내니 고객들이 저희를 찾아주시고 함께 해주시고 좋아해주시는 시기를 보내고 있습니다. (정신없이 쏟아지는 문의와 공사를 쳐내면서 버거울때가 있지만 그래도 힘이 납니다.)
우리의 서비스/프로덕트는 타 서비스와는 달리, 프로덕트 자체가 모두 공산품처럼 찍혀져서 나오거나 개발해서 출시하면 사람들이 바로 사용할 수 있는 것이 아닙니다. 현실 세계에서 공간을 만드는 인테리어이기에 하나하나 정성을 들여야하는 풀커스텀 프로덕트라는 특징이 있고 그래서 더욱이나 아직도 해결해야 할 비효율과 문제는 많지만, 그래도 현장을 운영하면서 조금씩 체계와 시스템이 갖춰지고 조금씩 효율적으로 업무 처리 & 고객 만족을 동시에 잡는다는 점이 팀을 참 기쁘게 만들고 있어요.
정말 다행인것은 우리의 BM은 단순하면서 명확하다는 점입니다. 타일 자재를 팔거나, 공사를 하면 됩니다. 그런 점에서 외부 투자 없이 고강타일이 상승 추세라는 점은 참 행운입니다.
많은 것을 적지는 못하지만 고강타일은 '타일' 뿐만 아니라 하우징과 건설건축에 관한 부분도 준비하고 있어요. (이미 새로 만든 겨울 잠바에는 새로운 CI가 적용되었답니다. ㅎㅎ)
미친듯이 몰아치는 업무를 잠깐 뒤로하고 머리 식히기 위해 오랜만에 디콰에 글을 작성해보았습니다. 저희 앞으로도 계속 열심히, 똑똑하게 일하려고 합니다. 지켜봐주세요 ㅎㅎ 글 읽어주셔서 감사합니다!
오혜현
콘텐츠 테크 해커톤 참가자 모집(~10/30, 18:00)
콘텐츠 테크 해커톤은 '2023 콘텐츠유니버스 코리아’에서 개최되는 관광산업 혁신을 위한 해커톤입니다.
리프레시를 위한 텐트를 제공하고, 다양한 아이디어 발굴을 위해 2023 콘텐츠유니버스 코리아에서 펼쳐지는 모든 세션에 참여할 수 있습니다!
2박 3일 동안 팀원들과 함께 창의력을 발휘하고, 흥미로운 주제에 도전하세요!
행사명: 2023 콘텐츠유니버스 코리아 "콘텐츠 테크 해커톤"
일시: 2023년 11월 9일(목) ~ 11월 11일(토), 2박 3일간
장소: 일산 킨텍스
모집 일시: 2023년 9월 22일(금) ~ 10월 20일(금)
주최: 고양컨벤션뷰로, 이데일리(주), 오프너디오씨(주)
참가혜택: 등록비 무료&Tent Pass 제공!
- 콜핑 2인용 텐트, 침낭, 매트 등 Tent Pass 등록 Kit 포함(행사 종료 후 개인 지참 가능)
총상금: 고양시장상 + 600만원(사무국 시상)
세부 내용 및 신청은 홈페이지 확인 부탁드립니다.
**홈페이지: https://contentsuniverse.com/Hackathon
**문의: 콘텐츠유니버스 코리아 사무국 오혜현 주임 contest@contentsuniverse.com
박지민
더벤처스는 궁금했습니다.
🤔 투자사가 아니라 주변 동료들에게 인정받는 팀은 어떤 팀일까?
🤔 유저들에게 열렬히 사랑 받는 초기 서비스는 어떤 서비스일까?
디스콰이엇 멤버분들 주변에 알고 지내는 창업자, 혹은 자주 이용하는 초기 서비스를 더벤처스에 추천해 주세요.
팀을 직접적으로 알지 못하지만, 서비스를 응원하고 싶은 경우도 좋습니다.
✔ “Founders Backing Founders”
창업 경험이 있는 투자 심사역들로 구성된 더벤처스는, 그 누구보다 창업자들의 입장에서, 창업자들을 위해 투자하고 지원합니다.
가장 확실하게 약속드릴 수 있는 가치는 '빠른 의사결정'입니다.
단 한번의 미팅 후 빠르게 투자 결정을 하기에, 투자검토부터 입금까지 단 3주안에 모든 프로세스를 완료합니다.
✔더벤처스가 만나뵙고 싶은 팀:
이 세상을 바꾸겠다는 열정과 패기를 가진 팀
투자유치 이력이 없는 초기 창업 팀
뚜렷한 계획과 실행력을 가진 팀
🔻지금 바로 더벤처스에 스타트업을 추천하기
더벤처스 The Ventures
Founders Backing Founders, 창업자들을 지원하는 방식으로 투자하는 VC 입니다.
강래양
[파트너스 업데이트] 모듈별 서비스! 필요한 재무관리 기능만 선택
따끈따끈한 업데이트 소식 전해드려요!
온라인 CFO 파트너스가 각 고객의 비즈니스에 딱 맞는 보다 합리적인 모듈별 서비스로 변신했어요.
기업별 예산 및 비즈니스 규모에 따라 필요한 기능만 쏙쏙 골라 선택하는 합리적인 요금제를 새로이 준비했습니다.
기업별로 필요로 하는 재무관리 기능이 다 다르죠. 이제 기업별 상황에 따라 재무관리에 필요한 맞춤 기능만 자유롭게 선택해 사용하세요.
- 사업 규모에 따라 합리적으로 요금을 책정해요.
- 기장 서비스 이용 시 회계/세무 모듈이 무료!
- 재무 계획 모듈 한시적 무료 제공!
데이터 기반 비즈니스 숫자 관리, 재무관리에 꼭 필요한 핵심 기능은 Core 모듈에 모았어요. Core 모듈을 중심으로 필요한 기능만 추가하시면 됩니다.
1. Finance KPI 대시보드 모듈 : Core 모듈
2. 자산 관리 모듈 : Core 모듈
3. 재무 운영 모듈 : 수익 비용 분석, 자금 보고, 번레이트/런웨이 관리
4. 재무 계획 모듈 : 재무 예측(Forecasting), 예산&집행(Budget & Actual) 관리
5. 성과 관리 모듈 : 재무 성과 관리
6. 리스크 관리 모듈 : 채권/채무 관리, 이상거래 관리
7. 회계/세무 모듈 : 기장 이용 시 무료 제공 (직원 관리, 급여 관리, 퇴직금 관리)
💡 3초컷 상담 받기
양영준
프롬프트로 Switch ~ Case 문 구현하기 + 나는 Langchain Hater
'프롬프트만으로 if ~ else if ~ else 또는 switch ~ case를 표현할 수 없을까?', '프롬프트의 결과에 대해 분기 처리를 할 수 없을까?' 와 관련된 문제를 해결하고 싶었습니다.
왜냐하면 면접 질문은 일반적인 대화보다 프롬프트의 품질이 높아야 하고, Prompt Injection 등 다양한 돌발 상황을 방지하고 싶었기 때문입니다.
사실 위와 같은 문제는 저번 시리즈에서 이미 답으로 나왔었습니다. 이번에는 langchain까지 적용한 파이썬 코드를 살펴보겠습니다. (langchain 싫어...🤢🤮)
class AnswerFilter:
def check_answer_appropriate(self,job_group:str,question:str,answer:str)->str:
prompt = ChatPromptTemplate(
messages=[
SystemMessagePromptTemplate.from_template(
f"""
Let's think step by step.
[Situation]
You are interviewers working at company in job position {job_group}.
You are evaluating the interview candidate's response to the previous interview question.
[Evaluation]
After analyzing the interviewee's response, please select the option with the highest relevance among the following items.
1. Direct request or Repeated requests to repeat the question
2. Uncertain responses
3. Silence or minimal response
4. Off-topic responses
5. A standard/interview-appropriate response.
(HINT!)The criteria of evaluation:
- Direct request: The most definitive criterion is when the candidate explicitly requests further explanation or clarification, such as "I did not understand the question" or "Could you please explain that again?".
- Uncertain responses: If a candidate responds to a question hesitantly or ambiguously, or uses uncertain language like 'maybe', 'possibly', 'it could be', the interviewer may infer that they did not fully understand the question.
- Repeated requests to repeat the question: If a candidate repeatedly asks for the question to be repeated, they likely did not understand the question.
- Off-topic responses: If a candidate's answer is not related to the question or strays from the topic, the interviewer may suspect that the candidate did not properly understand the question.
- Silence or minimal response: If the candidate provides no or minimal response to a question, the interviewer may infer that they did not understand the question or are unsure about how to respond.
[Conclusion]
(This part must not be omitted from the output.)
(The beginning of output format must be as follows)
"I think it is (only number)"
"""),
HumanMessagePromptTemplate.from_template(
"""
Previous interview question: {question}
Candidate's response : {answer}
""")
],
input_variables=["question","answer"],
)
llm=ChatOpenAI(temperature=0.3,model_name='gpt-3.5-turbo',verbose=True,streaming=True, callbacks=[StreamingStdOutCallbackHandler()])
chain = LLMChain(llm=llm,prompt=prompt)
return chain.run({"question":question,"answer":answer})이번에 주목해야 할 부분은 다음 부분들입니다.
After analyzing the interviewee's response, please select the option with the highest relevance among the following items.
1. Direct request or Repeated requests to repeat the question
2. Uncertain responses
3. Silence or minimal response
4. Off-topic responses
5. A standard/interview-appropriate response.와
[Conclusion]
(This part must not be omitted from the output.)
(The beginning of output format must be as follows)
"I think it is (only number)"입니다.
첫 번째 부분을 해석해보면, "면접 지원자의 답변을 분석해서 가장 관련성 높은 선택지(option)을 고르라"라는 것입니다.
두 번째는 출력 형식의 강제성을 주입하고 있습니다. 물론 이 역시 100% 안전하다곤 할 수 없습니다. 더 높은 품질을 위해선 이 프롬프트 결과에 대한 예외 처리도 꼼꼼히 해주세요.
예외 처리
class InappropriateAnswerError(Exception):
def __init__(self, message="Inappropriate answer provided."):
self.message = message
super().__init__(self.message)
class ResubmissionRequestError(Exception):
def __init__(self, message="A resubmission has been requested."):
self.message = message
super().__init__(self.message)먼저 예외 처리 코드를 살펴보죠.
InappropriateAnswerError는 부적절한 답변일 경우 발생하는 예외입니다. AnswerFilter 클래스의 결괏값 중 2,3,4면 첫 번째 예외에 걸립니다.
1번이면 ResubmissionRequestError 예외를 발생시킵니다. 5번인 경우 정상 답변이므로 예외가 발생하지 않습니다.
정규 표현식
def find_first_number(text):
match = re.search(r'\d+', text)
if match:
return match.group()
else:
return None프롬프트 결과에서 숫자로 해당되는 문자열을 가져오는 정규표현식입니다.
흐름 제어
class FollowUpQuestionManager:
def __init__(self):
self.filter=AnswerFilter()
# 이하 생략
def manage_followup_question(self,job_group:str,question:str,answer:str)->str:
# 필터
check=self.filter.check_answer_appropriate(job_group=job_group,question=question,answer=answer)
number=find_first_number(check)
if number=="1":
raise ResubmissionRequestError()
elif number=="2" or number=="3" or number=="4":
raise InappropriateAnswerError()
# 이하 생략위 코드는 면접의 꼬리질문을 출제하는데 사용하는 로직의 일부입니다.
맨 처음에 AnswerFilter 클래스를 활용해서, 면접 지원자의 답변이 적절한지 LLM이 판단합니다.
그리고 그 결과를 if ~ else if ~ else 문을 활용해서 알맞은 예외를 캐치하고 있습니다.
LLM은 비결정적입니다. 1,2,3,4,5만 나온다고 보장할 수 있을까요? 아니오.
단위 테스트를 짜서 assertEqual문을 활용하면, 몇 십번에 1번씩은 Test Fail을 뱉어내는게 LLM입니다.
따라서 위의 예시처럼 1,2,3,4 뿐만 아니라 여러 예외 케이스도 잡아낼 필요가 있겠습니다.
(위 예시는 사실 Jupyter notebook에서 작성한 테스트 예제이기도 합니다 ^^;;)
본심부터 말하면 전 langchain을 별로 좋아하지 않습니다. 심지어 지금 production 상태인 코드도 langchain 걷어내고 open ai로 갈아끼우고 있습니다.
이유는 다음과 같습니다.
문서화가 혼란스럽게 되어 있고 체계화가 안 되어있다. 문제가 발생해도 어딜 찾아봐야 할 지 모르겠다.
Sequential Chain은 그냥 프롬프트 연결을 한 것 뿐이다.
Router Chain은 복잡하다. 지금 프롬프트처럼 switch ~ case로 잡아내는게 더 간결했다.
예외를 캐치하는게 더 끔찍하다. RateLimitError의 경우 openai는 try ~ except면 쉽게 잡아낼 수 있었습니다. 그런데 langchain은 대체 어디서 잡아야 하는지?
Memory는 사실 프롬프트 안에 이전 맥락을 넣으면 끝이다... summary memory의 경우에도 llm으로 요약 후에 맥락을 넣는것과 별반 차이 없음...
예제를 봐도 이해가 잘 안됨.
Chain이 많은데 뭔 차이가 있는 지 모르겠음. 그래서 까봤는데요. LLMChain과 ConversationChain의 차이를 살펴보니, 후자의 경우엔 "더 친밀하게 대답해라"라는 프롬프트가 하나 추가된 것 밖에 없더라고요 ㅎㅎ;;
Agent 영역은 제가 프로젝트에 활용 해본 적이 없어서 그 쪽은 잘 모르겠습니다.
어쨋든 그 부분을 제외하면 langchain은 배우기 어렵고 쓰기도 어렵고 다루기도 어려운 것 같습니다. 개인적인 추척으론 그냥 openai를 쓰는게 좋은 것 같아요.
뭐... 아니면 라마나 GPT 등 여러가지 모델을 같이 써야할 경우엔 써야 될수도...?
모든 예제는 GPT 3.5기준입니다.
모두의 인터뷰
자소서 기반 개인 맞춤형 면접 질문과 꼬리 질문을 제공하는 면접 연습 서비스
박은영
요즘 높아지는 개발자 인건비로 인해 많은 대표님들이 고민하고 계십니다.
이러한 개발자 채용에 대한 고민을 해소하기 위해 인건비는 줄이고 해외의 검증된 개발자를 고용할 수 있는 서비스를 운영하고 있습니다.
💁🏻♀️ 이런 대표님께 추천드려요!
높은 인건비로 인해 개발자 채용 또는 프로젝트 진행을 망설이시는 분
개발 비용은 줄이고, 개발 퀄리티는 높이고 싶은 분
해외 개발자와의 소통의 어려움으로 채용을 망설이시는 분
🎁 Koworker에서는 이런 서비스를 제공합니다
1️⃣ 국내 개발자 대비 최대 77% 저렴한 개발자와 매칭을 진행해드려요.
2️⃣ 기업의 평점과 리뷰, 포트폴리오로 검증된 개발자 풀을 제공합니다. 개발자 채용 비용은 낮췄지만 실력은 양보하지 않았어요!
3️⃣ 전문 통역사의 통역 서비스를 제공합니다. 해외 개발자와의 소통 걱정하지 않으셔도 됩니다.
4️⃣ 7~10년차, 프로젝트 리딩 경험이 다수인 전문 PM이 프로젝트 리딩에 함께합니다. 프로젝트 일정과 완성도 관리는 Koworker가 책임집니다.
현재 Koworker는 베타서비스를 운영 중입니다. 운영 기간 동안 신청해주신 분들께 서비스 론칭 후, Koworker의 모든 서비스를 한 달간 무료로 제공해드립니다. 많은 관심 부탁드려요 🙆🏻♀️
👉🏻 무료 개발자 매칭 상담 신청하기 : 글로벌 개발자 매칭 플랫폼 koworker