내 삶의 불편함을 해결한 앱 토큰 메모를 만든 이야기

이미지
더 보기 편한 링크는  이곳  을 눌러주세요. 살면서 아주 작은 불편함들이 있습니다. 개선하기도 애매하고 그렇다고 적응하기에도 애매한 불편함입니다. iOS 개발자가 되고나서 가장 처음 만들었던 앱을 2년 반이나 지난 후에야 다시 돌아보며 개선했습니다. 한 달에 하나씩은 내가 만들었던 앱을 되돌아 보거나, 아니면 더 개선해 나가지 않으면 개발자로 계속 성장하기 어려울 것 같아서 시작하게 된 프로젝트 먼슬리 리이오입니다. 제가 만들었던 앱이 어떤 불편함 때문에 만들어졌는지 그리고 어떤 편함을 가져왔는지 앞으로 얼마나 더 편함을 가져다 줄 수 있을지 정리해보려고 합니다. 토큰메모의 시작 생활을 하다보면, 많은 정보들을 기록하게 됩니다. 그리고 기록한 정보들은 대부분 다시 검색되어서 끄집어 내어집니다. 스스로의 삶을 돌아봤을 때, 항상 카카오톡 내가 나에게 쓴 메모장을 쓰거나, 아이폰의 기본 메모앱을 사용했습니다. 처음에는 별 문제 없다가도 기록이 흘러가 버리거나 쌓이면, 찾기가 너무 어려워지는 문제가 발생했습니다. 그래서 처음 개선을 한 것이 일반 메모장과 같은 메모장 이지만, 누르면 바로 클립보드에 복사가 되는 메모장을 만들었습니다. 그리고 거기서 끝이났습니다 2년 반 이후 무엇이 바뀌었는가? 여전히 스스로를 위해서 만든 앱을 사용하고는 있었습니다. 하지만 더 편할 방법을 고민했고, 내가 써보지 않은 기술을 공부하는 도구로 사용하기 위해서 2가지를 했습니다 UIKit을 다 버리고 SwiftUI로 만들어 버리는 것 안 써본 기술을 써보는 것 Custom keyboard extension 그리고 이전에 문제를 더 편하게 해결할 수 있는 방법을 고민했고 새로운 토큰 메모를 만들어 냈습니다. 새로운 메모를 만들고, 메모를 클릭하면 복사가 되는 것은 여전히 가능합니다. 하지만, 새로운 토큰 메모는 키보드를 추가해서 내가 만든 메모까지 들어가서 누르지 않아도 값을 불러올 수 있습니다. 개선은 아주 작게 시작하기 나의 불편...

심리적 안정감이 주는 힘

이미지
더 보기 편한 링크는 이곳 을 눌러주세요. 어딘가에 속해서 발전을 해 나가면서 무언가를 이루고 성취감을 맛 보는 것은 직업이 줄 수 있는 큰 즐거움이자 그 직업을 유지하고싶은 마음이 들게하는 요소중 하나입니다. 만약 그렇지 못하다면, 그룹안에서 어떤 불안감을 가지고 있는지 돌아보고 개선할 수 있는 방법을 찾아보는 것은 어떤가요? 사이콜로지컬 세이프티란? 번역하면 심리적 안전입니다. 이 글에서 말하는 심리적 안전은 내가 어딘가의 그룹에 속해있는 상태에서 누릴 수 있는 안전한 느낌을 말합니다. 회의중에 질문을 하거나 업무중에 실수를 해도 내가 조롱을 당하거나 굴욕을 당하지 않을 것 이라는 믿음입니다. 이러한 느낌은 나 자신이 그룹에서의 구성원으로 가치있음을 확인하고, 불이익이나 부당한 대우를 받지 않을 것이라는 인식을 하게 해줍니다. Amy Edmondson이 이 용어( Psychological Safety)를 만들어냈고 검색해 보시면 영상을 확인할 수 있습니다. 왜 챙겨야 할까요? 사이콜로지컬 세이프티의 유, 무를 비교해서 생각해보면 간단합니다. 내가 속한 그룹에서 무언가를 제안하고 실제 실행이 되었을 때, 좋은 결과가 있었을 때에는 문제가 없겠지만 나쁜 결과가 있을 때 누군가 책임을 지고 그게 내가될 수 있다면, 새로운 도전이나 아이디어를 제안하는 것이 매우 힘들 것 입니다. 그렇기 때문에 빠르게 발전하고 이루는 것을 목표로 하는 조직이 되려면 구성원들이 이러한 불안감을 느끼지 않도록 고민하는 것이 필요합니다 어떤 것 들이 있을까요? 크게 4단계로 이루어져 있습니다. 가장 하위의 안전이 만족되었을 때 그 보다 위의 안전이 보장됩니다. 맨 아래에 소속의 안전을 시작으로 그 위에 배움의 안전, 기여의 안전, 도전의 안전순으로 쌓여나갑니다. 아랫 단계의 안전이 보장되지 않는다면 그 윗단계의 안전은 보장되기 쉽지 않습니다. 각 단계의 안전이 어떤 것들을 의미하는지 그리고 언제 깨질 수 있는지 알아보겠습니다. 소속의 안전 가장 기본적인 안전함의 ...

“실패해도 괜찮아” 라고 말하지 않기로 했습니다

이미지
더 보기 편한  링크 는 이 곳을 눌러주세요 개발의 끝에 마주한 평가 개발을 하는 것을 옆에서 지켜볼 때면, 가장 많이 받는 요구 중에 하나가 바로 “이 정도면 충분한지” 입니다. “리이오 이정도로 코드를 짜면 괜찮을까요?”, “이정도면 완성이라고 볼 수 있는 건가요?” 그리고 저 역시도 이러한 질문에는 항상 비슷한 대답을 할 수 밖에 없었습니다. “이 부분은 고민을 정말 많이 한 흔적이 보여서 좋아요.”, “여기는 좀 더 고민하면 좋아지겠는데요?” 그리고 그들은 저의 대답에서 둘 중의 하나의 경험을 합니다. 바로 “합격” 아니면 “불합격” 입니다. 평가가 아닌 실험 사실 합격과 불합격은 시험이나 평가 뒤에 따라오는 행위입니다. 배우는 사람은 스스로를 평가할 필요는 있지만, 남에게 평가받아야만 배움이 남는 것은 아닙니다. 그래서 이제부터는 다르게 질문하고 다른 질문을 요구하려고합니다. “이 정도 코드를 짜면서 무엇을 배웠어요?” “다음에 또 이걸 한다면 다르게 해 볼 수 있는 부분은 어떤게 있어 보여요?” “본인이 느끼기에 최선을 다했나요?” 사실 위의 질문들은 회고의 질문들과도 맞닿아 있습니다. 마찬가지로 회고에서도 한 프로젝트의 평가를 하지 않도록 가이드 해야겠다는 생각을 했습니다. 새로운 방향성 결국 배움의 과정에서 평가를 하지 않고 개선을 생각하게 함으로 그들은 그들의 배움에 실험을 계획할 수 있고, 그 실험에서 자신이 무엇을 배웠는지를 인지하고 무엇을 배우지 못했는지도 인지할 수 있습니다. 이 모든 일은 “실패해도 괜찮아.”, “지금 마음껏 실패해.”라는 말이 실패해도 괜찮은 분위기와 문화를 만들 수 있을 것 이라는 믿음이 부서지면서 생긴 의문에서 출발한 탐구였습니다. 왜 실패 해도 괜찮다고 했는데, 기를 쓰고 성공하려는 걸까? 실패해도 괜찮다고 느끼게 하려면 어떤 것들을 제공해야할까? 애시당초 실패해도 괜찮은게 맞기는 한건가? 이러한 질문들의 결과는 “실패는 해도 괜찮아는 동작하지 않는다” 이고, 그래서 배...

바미와 바미로그의 성장일기

이미지
더 보기 편한  링크 는 이 곳을 눌러주세요 올리비아와 함께 바미를 키우기 시작하면서 도움을 줄 도구가 필요했습니다. 그래서 만든 것이 바미로그 였습니다. 가장 처음 마주친 어려움은 아이의 행동을 메모장에 기록해 놓는 것이 너무나 힘들어서 더 간편하게 기록할 수 있도록 도움을 받았습니다. 하지만 수유, 직수, 수면, 기저귀 기록 말고도 받아야 할 도움들은 계속 발견 되었습니다. 그래서 그 때마다 계속해서 도구를 만들고 발전시켜나가고 있습니다. 어떤 도움이 왜 필요했는지와 어떻게 해결했는지를 기록합니다. 그리고 세상에 많은 부모들은 이 문제를 어떻게 해결했는지에 대해서도 궁금해졌습니다. :) [2023.1.13 - 1.0.3] 바미는 이제 춥지않은 목욕을 할 수 있습니다 먼제 바미는 조리원을 나와서 집에서 목욕을 하기 시작했어야 합니다. 산후도우미분의 능숙한 목욕은 시계를 볼 필요도 없었습니다. 하지만 초보 부모는 달랐습니다. 아기는, 특히 신생아는 체온 조절 능력이 떨어지기 때문에 목욕을 할 때 크게 2가지를 조힘해야했습니다. 목욕할 때 주변의 온도 목욕의 시간 (10분 이내) 이 두가지가 잘 못되면 아이가 감기에 걸릴 수 있다는 사실이 너무나 무서웠습니다. 온도를 맞추는 것은 어렵지 않았습니다. 욕실에 뜨거문 물을 틀어서 온도를 올리고, 온도계를 가져다 놓으면 되기 때문이죠. 하지만 시간은 그렇지 못했습니다. 처음에 하는 목욕은 너무나 어려웠습니다. 씻겨주고 싶은 곳은 많았고 서툴렀기 때문에 10분이라는 시간은 금방 갔습니다. 이미 가지고 있는 타이머는 맞춰놓은 10분이 지나면 알람과 함께 초기화 되어버렸습니다. 그래서 목욕이 끝났을 때 얼마나 오버했는지 계산해봐야 했습니다. 그 다음은 스톱워치로 하면 얼마나 지났는지 알 수 있지만 볼 때 마다 얼마나 남았나를 머릿속으로 계산하는 건 아이의 건강을 건 사투? 속에서 쉽지 않았습니다. 그러다가 결국 밥솥 타이머가 필요하다는 것을 알았습니다. 밥이 완성되기 까지 남은 시간을 보여주고 밥...

앱을 만들어 버렸습니다

이미지
더 보기 편한  링크 는 이 곳을 눌러주세요 앱을 만들어 버렸습니다 앱 개발을 시작할 때 보면, 세상을 바꿀만한 앱, 엄청난 돈을 가져다 줄 앱, 누구나 좋아할 만한 앱을 만들 준비를 하는 것을 어렵지 않게 볼 수 있습니다. 하지만 실제로 우리가만든 앱을 사용하는 사용자들은 우리가 고민하는 것들에 대해서 기대하고 있지는 않는다고 생각합니다. 문제가 무엇인가? 언제나 앱을 만들기 전에 드는 생각입니다. 이번에 만든 앱은 제 삶이 너무 힘들어서 만들었습니다. 육아를 하는데 있어서 초보 아버지는 언제 그리고 얼마나 밥을 먹었는지, 기저귀를 언제 갈았는지, 모유수유를 얼마나 했었는지 준비가 되어있어야 합니다. 애기 언제 마지막으로 분유 먹었지? 아끼 기저귀 갈 때 뭐 있었어? 나 모유수유는 얼마나 했어? 위 질문에 어…나도 몰라 라고 답하는 순간 독박육아라는 압박감이 생겼습니다. 그래서 아이의 상태를 체크하고 모니터링 하기 위해서 메모앱에 기록을 했었습니다. 너무나 게으른 저에게, 그리고 피곤한 저에게 좀 더 쉽게 기록이나 할 수 있었으면 좋겠다 라는 생각이 들었고 굉장히 운이 좋겠도 저는 아주 간단한 앱은 스스로 만들 수 있는 능력이 있었습니다. 그래서 쉽게 기록하고, 기록한 것을 보기가 힘든 문제를 해결하고자 앱을 만들었습니다. 어떤 기능이 필요한가? 분유, 모유 먹은 양과 시간 신생아는 잠자는 시간은 아직 필요없지만 곧 필요해보임 기저귀 갈아주는 타이밍과 내가 본 것 수유를 얼마나 했는지 그리고 위의 것들을 볼 수 있는 방법 이 다섯가지 기능이 필요했습니다. 나만을 위한 로그인 다크모드 이쁜 UI 앱을 상징할 캐릭터 와 같은 사치스러운 것은 없습니다. 그저 내일도 나는 메모앱에 기록을 해야하는데, 그것을 도와줄 도구가 필요했습니다 앱을 개발하는데 걸린 시간 2시간 안쪽에 개발하고 출시했습니다. 왜냐하면 기능이 너무 적었기 때문이죠. 버튼 2,3개를 가진 페이지 4개와 저장한 데이터를 불러와 줄 페이지 1...

2022년 iOS 커리큘럼에 대한 회고

이미지
더 보기 편한  링크 는 이 곳을 눌러주세요 멘토라는 직업을 가지고 가장 먼저 고민을 하게 된 주제입니다. 특정 커리큘럼을 만들 수는 없다는 것을 인정하면서 동시에 그래도 더 나은 커리큘럼은 존재하지 않을까라는 생각으로 계속 발전시키고 있습니다. 이전에 버전 1.0.0을 만들었다가 현재는 한 번 갈아엎어서 버전 2.0.0를 만들고 있습니다. 스스로 왜 이런 것들을 만들고 있는지 그리고 어떤 기준으로 개선시키고 있는지 정리해보았습니다. 마법의 체크리스트 2022년의 처음에는 로드맵을 공부했습니다. 개인적으로도 어떻게 공부해나가야 할지 감이 오지 않았습니다. 그리고 한 평생의 공부 방법은 책의 목차를 보고 해 나가는게 전부였는데, iOS 개발에는 그런게 없어서 당황스러웠습니다. 다른 분들이 만드신 iOS road map이 낡아서 주변 분들의 도움을 받아서 업데이트를 했었습니다. 이 때까지만 해도 이렇게 공부하면 iOS마스터 할 수 있겠다! 라며 신나했었습니다. 위에서 부터 하나하나 해 나가면 나도 장인의 길을 걸어갈 수 있을 것 이라는 꿈이 무너지는데는 오랜 시간이 걸리지 않았습니다. 여정의 지도 V.1.0.0 로드맵을 체크리스트 삼아 공부하려던 꿈은 좌절되었습니다. 그리고 왜 동작하지 않는지를 고민했습니다. 그러면서 들었던 생각이 항상 스터디를 하고 공부를 할 때 처음에는 재미있다가 마지막에 힘들었던 생각이 났습니다. 재미있는 부분까지만 일단 공부하고, 무엇인가를 만들어 볼 수는 없을까? 그러면 재미있게 개발을 할 수 있을텐데. 그러면서도 내가 그 다음에 무엇을 해야하는지 알 수 있는 방법에는 어떤게 있을게 하다가 로드맵 보다는 좀 더 자유롭게 이동이 가능하면서도 종속성을 표시할 수 있는 방법을 그림으로 표현했습니다. 우선순위와 순서를 보여주었지만 결국 로드맵과 다르지 않은 느낌이라서 개선이 필요하다고 생각했습니다. 그래서 1.0.0 버전이라고 부를 만한 여정의 지도를 만들었습니다. 종속성도 보여주면서, 각 학습을 단계별로 잘라서...

아이의 일상을 기록하는 바미 로그

이미지
  대소변을 기록할 수 있습니다. 기록을 확인할 수 있습니다. 수면시간을 기록할 수 있습니다. 식사량을 기록할 수 있습니다.      여러가지 기능이 있습니다.