지난 번에는 1편 회고 내용을 작성했는데요, 커뮤니티 활동도 많고 참여한 컨퍼런스 내용도 작성해 경험을 공유하고자 내용이 길어져서 2편으로 나누었습니다.
이번 2편에서는 주로 디프만, 사이프 활동과 인프콘, 이직, 여행 등등 내용을 작성하여 마무리를 하고자 합니다.
1편처럼 월별로 나누어 마지막 2024년은 어땠고, 2025년에는 어떻게 보낼 것이며 Try를 해볼까 끄적일 것입니다.
지난 6월 회고로 디프만 15기를 참여하게 되었고 "왈왈"이라는 프로덕트를 본격적으로 개발하게 되었습니다. 백엔드 팀원들과의 소통으로 Java, Spring 기술 스택 선정과 그 외 앞으로 있을 기능 개발에 대한 역할 분담을 진행했습니다.
처음으로 저는 애플 로그인 개발을 진행해보았는데요, 이때부터 공식 문서와 레퍼런스를 열심히 들여다보는 습관을 들인 거 같아요.
외부 클라이언트를 다루기 위해 RestClient, WebClient, OpenFeign 등등 여러 기술이 있었는데, Spring Boot 3, Spring Framework 6 버전을 사용하고 있기에 내장된 기술로 RestClient를 선정하여 Apple API를 연동해 사용자 정보를 Response 받는 과정을 진행했습니다. 애플의 공식 문서가 생각보다 친절하지는 않아서 레퍼런스들을 더 참고하여 무사히 1차적으로 로그인/회원가입 로직을 개발할 수 있었어요.
(애플 로그인 내용은 다음에 블로그에 적어야겠네요 후후)
이후 15기 세션으로 사용자 테스트 UT 세션이 이뤄졌는데, "왈왈" 프로덕트에서 주 핵심 기능인 미션에 대해서 사용성 테스트 해볼 기회가 있었어요.
중간 과정까지 완료한 디자인 시안에 대해서 많은 피드백을 받을 수 있었는데, 미션에 대한 허들이나 미션 공유하기, 피드 기능에 내용이 단조롭거나 제한적이라는 피드백들을 받을 수 있었어요. 그 외에도 불필요한 디자인, 기능 등등에 대해 쳐낼 수 있는 것에 대한 확신을 받았습니다.
만약에 UT 세션을 하지 않았다면 팀원들끼리 사용성에 대한 설문조사를 별도로 진행했었거나 내부 팀원들에게 일일이 의견을 받아야 하는 번거로움이 있었겠죠.
그러한 번거로움을 해소하고자 UT에 열심히 임하는 것이 중요하였고, 저는 개인적으로 디프만에서 프로덕트를 발전시키기 위해 핵심 세션이라 생각합니다.
비록 14기에서 경험하였던 UT 세션이였어도 어떤 컨셉의 프로덕트를 하는 지, 타겟이 되는 사용자에 따라 변수가 많기에 수월하기는 커녕 14기 경험을 배제하고 진행을 했어야 하지 않았나라는 후회가 들기도 했습니다. 그랬으면 받았던 피드백이 보다 양질의 피드백이 되지 않았나 생각됩니다.
8월에는 인프콘에 참여하게 되었어요.
사실 인프콘에 당첨은 되지 않았지만, 지인의 도움으로 티켓을 받게 되어 참여하게 됐습니다!.!🙏
우선은 제 시간표입니다.
제가 참여하고 있는 디프만 15기도 인프콘 커뮤니티 부스로 참여해 중간중간 강연을 듣지 않았지만, 들었던 강연 중 인상적이였던 강연에 대해 느낀 점을 말씀드리자면
토스페이먼츠 소속 재민님의 강연으로, 지속 가능한 설계에 대해 이야기를 다루는 데 강연 초반부터 "설계를 잘하는 방법"은 무엇인가?
바로 설계를 하지 않는 것이라고 합니다.
저도 이런 표정이였고요, 아마 대부분 다른 분들도 이런 표정이였습니다 ㅋㅋㅋ
회고 글에서 세세하기 이야기하기엔 다소 길어지니 요약을 해보면 저는 소프트웨어 엔지니어인만큼 유연하고 부드러운 개발을 진행해야 합니다.
처음부터 거창한 설계를 해도 결국 기획이 틀어지거나 요구사항이 변경되면 뼈대 개발이 완료된 건물을 쉽게 옮길 수 없는 그런 현상이 발생되요. 그래서 설계를 하되 다소 유연하게 대응이 가능한 구조로 소프트웨어 개발을 하며 배보다 배꼽이 커지는 개발은 지양하는 것이 좋다는 이야기였습니다.
저도 최근 여러 사이드 프로젝트, 아티클, 유튜브 영상을 보면서 빅테크 머기업들의 아키텍처처럼 짜야지~ 저게 요즘 트렌드래~ 하면서 개발은 할 수 있습니다.
그런데 이전 1편에서도 이야기했듯이 프로덕트를 만드는 구성원 중 한명입니다. 화려한 것에 눈이 멀어 정작 본인이 개발하고 있는 프로덕트에 적용을 하지 못하면 말짱도루묵이란 것을 이번 강연에서 다시금 리마인드하였고, 설계에 대한 고민을 면밀히 하게 되었습니다.
다음 가림님의 강연으로, 개발보다는 기술 서적을 집필에 대한 이야기가 궁금해서 강연을 신청했습니다.
왜 집필을 하게 되었는지 집필한 동기부터 주니어 개발자가 왜 기술 공유를 해야하고 실패하는 것에 저자세로 나갈 필요가 없는 이야기에 대해 저는 인상적으로 들었습니다.
저도 강연을 듣고 아직 다루고 있는 기술에 대한 확신이 없었어요. 그래서 이것을 어떻게 해소할까 많은 불안감에 휘싸이며 타 개발자의 아티클을 보고 스스로 위안을 삼지 않았을까.. 느꼈었습니다.
이를 해소하고자 저도 글을 작성하기 시작하였고 시간이 흘러 글쓰기 습관을 들이기 위해 글또 10기를 신청하여 현재 꾸준히 글을 작성하고 있습니다.
(앞으로도 많관부! 🙇)
토비님의 클린 스프링을 듣고 아까 맨처음 강연하셨던 재민님의 강연과 상충되는 느낌을 받았어요.
"어?" 설계를 잘하는 방법은 설계를 하지 않는 것인데, 시작부터 클린 코드에 의거하여 개발을 하는 것인가? 그럼 뭔가 이상한데?
시작 몇분정도 듣다가 들었던 생각이지만, 지속 가능한 설계에 관점으로 다시 생각해보자면 유연한 개발이 가능해야 한다. 라는 멘트가 있었습니다.
그럼 재사용이 용이한 유지보수성이 높은 코드가 되어야 하고, 리팩토링하는 데에 허들이 없는 코드가 클린 코드입니다.
중간부터는 토비님도 일부 기능을 완벽하게 만드는 것에 대해 완고하지는 않았고, 리팩토링 관점에서 클린 스프링 접근을 하였습니다.
프로덕트를 지속 가능하게 성장하려면 이후 개발될 요구사항에 유연하게 적용이 필요하다고 생각합니다. 이를 해소해주는 방법 중 하나가 토비님은 테스트 코드라 말씀하였고,
위 그래프는 몇몇 분들은 보셨을 수도 있지만, 테스트 코드가 있느냐 없느냐에 따라 장기적인 개발 생산성이 결정되지 않을까합니다.
그래서 앞으로 스프링을 개발하면서 테스트 코드를 빠르고 효과적인 개발하는 능력을 키워야 하지 않을까 느꼈습니다.
(클린 스프링 강의 기원 5개월째...)
8월에는 인프콘을 통해 인사이트를 얻기보다는 지금 개발자로서 커리어를 쌓는데에 잘하고 있는가? 내가 하고 있는 개발이 옳은 건가?에 대해 다시금 고민을 해보게 된 계기가 되었어요 🤔
9월에는 디프만 졸업이랄까...
작년 11월, 14기부터 해왔던 15기까지 기나긴 활동이 끝나서 시원 + 약간의 아쉬운 감정이 들었습니다.
디프만 14기는 이전에 작성했던 후기가 있어서 각설하고 15기까지 마무리하며 회고를 해보겠습니다.
디프만 이전에 저는 프로덕트 개발보다는 기술에 눈이 먼 개발자였던 거 같아요.
기획부터 출시까지 14기, 15기 총 두 번의 프로덕트를 개발하면서 왜? 그리고 어떻게? 라는 질문을 던지며 문제를 해결하는 개발자가 되어가는 거 같아요.
14기 때 PR을 올리면서 팀원들의 많은 리뷰를 받으며 소프트 스킬부터 익히게 되었고 점점 문제 요구사항에 적합한 기술을 도입할까 말까 고민을 하는 제 자신을 발견할 수 있었어요.
10분만에서는 요구사항 중 "미션 타이머 진행 중 이탈 시 어떻게 해결할 수 있을까?"에 대한 이야기를 하였을때 어려웠지만 핏에 맞는 해결법을 찾고 적용하는 과정이 유익한 경험이였어요.
그리고 기술적 경험뿐만 아니라 팀원들을 만나 뜻깊은 결과물을 만들어내며 아직도 소중한 인연을 이어가고 있어요. 7월에는 계곡도 다녀오고 최근엔 보드게임도 하고 연말모임도 가지며 25년에도 꾸준히 이어가고 싶습니다:)
15기는 프로덕트 관점에서 많은 접근을 시도했어요.
정말 사용자가 우리 앱을 사용했을 때 허들이 얼만큼 존재할까, 미션에 대한 인증을 촬영하는 것만 하는 것이 정말 맞을까? 라는 등 UX 관점에서 팀원들과 이야기를 했을 때 힘들기도 했지만 재밌었어요. 다들 그만큼 열정적이였달까?
그리고 의도치 않게(?) 팀장을 맡게 되면서 팀원들의 일정을 조율하고 동기부여를 어떻게 얻게 할 수 있을까라는 고민도 해보았는데, 개인적으로 저의 역할, 팀장으로서는 "실패"를 했다고 생각해요.
활동 이후 팀원들이 더 앱의 사이즈를 키우는 것에 대한 킥 포인트를 찾지 못하였고, 점점 디벨롭을 하는 것에 대한 부담감을 스스로 느껴 무너졌다고 생각합니다. 다시 역할을 할 수 있게 된다면 실패를 해도 좋다는 마인드로 수치 기반의 접근을 해볼 거 같아요. 대실패여도 좋으니 경험 자체는 값질 수 있도록...
그렇게 저에게 많은 터닝포인트를 주었던 디프만 활동이 9월에 마무리되었습니다:)
(이래놓고 또 언젠가 할 수도 있음)
디프만 15기를 끝내고 사이드 프로젝트에서의 경험은 물론 값지지만, 기술 분야에 대한 배경 지식을 확장한다면 요구사항에 대해 다양한 시각으로 접근할 수 있을 거 같았아요. 저와 10분만을 같이 했던 팀원들이 2기 활동을 하였고 활동 기록을 보면서 현직자간의 네트워킹과 기술 공유가 자유롭다고 생각되어 SIPE 3기에 지원을 하였습니다.
그렇게 면접 전형부터 착착 합격까지 하여 본격적인 SIPE 3기의 정식 회원이 되었습니다:)
그리고 OT부터 앞으로 진행할 세션들을 소개받고 새로운 사람들과 만나 SIPE에서 진행하는 미션에 참여하게 되었어요.
1차 미션으로 극락코딩님께서 발제하신 "어렵게 배워서, 쉽게 사용하는 Spring Webflux + Coroutine(코루틴)" 미션에 참여하게 되었는데요, 코루틴을 다루기 위해서는 우선 Thread, CompletableFuture, ExecutorService, ThreadLocal 등등 기본적으로 스레드를 다루는 개념부터 공부를 해야했어요.
그래야 스레드에 대한 컨텍스트 스위칭 비용을 절감할 수 있도록 동시성 처리에 관해 이해를 할 수 있었습니다.
이후 코루틴의 개념부터 동작 원리, 사용법부터 사용되는 함수의 일시 중단되는 과정으로, 실행되는 스레드 컨텍스트를 어떻게 다룰 지 실습하고 이론을 공부해 매주마다 미션 내용을 기록하였습니다.
1차 미션 Repo: https://github.com/sipe-team/3_1_spring_webflux_coroutines
11월에는 회고보다 회상에 좀 더 가까운 느낌이 드네요..!
10월에는 학습한 내용에 대해 이야기하고 회고를 하였다면, 11월에는 다소 좀 가벼운 이야기인데
SIPE에서 진행되는 사이프챗으로 라이트닝 토크와 패널 토크를 통해 구성원들의 이야기를 가볍게 듣고 네트워킹하는 자리를 갖게 되었어요.
토크를 하면 누군가는 공감대가 형성이 되지 않아 다소 지루한 감이 있을텐데 각양각색의 개발자들이 자신의 스토리를 재밌게 풀었더라고요. 저는 되게 무던한 생활을 보내서 그런지 다른 분들의 이야기가 굉장히 흥미롭게 다가갔었습니다.
이후에는 사이데이션 활동을 하게 되었습니다.
사이데이션은 미션을 하는 팀원들과 모여 재밌게 추억을 쌓는 세션이에요
이번에 진짜 신박하면서 유익했던 경험인게 방탈출인데 야외에서 하는 방탈출이였습니다.
유능한 사건파일이라는 추리 게임을 하며 안국역 근처에서 창덕궁, 북촌한옥마을을 거닐게 되는데, 팀원들과 같이 문제를 풀고 창덕궁과 북촌한옥마을을 평소에 가는 일이 없었는데 그동안 묵혀왔던 스트레스를 뻥 뚫은 경치가... 예술이였습니다..!
중간중간 지치는 감이 없지 않아 있었지만, 가는 길에 십원빵 하나 사먹으면서 ㅋㅋㅋㅋㅋ
마지막 장소 쌈지길에 사건의 범인.. 바로 당신이야! 하면서 완주했던 것이 기억나네요
이후 뒷풀이까지 복소사로 마무리하면서 재밌었던 하루를 보냈습니다:)
개발자라는 직업이 모니터에 얼굴 박고 개발을 해야하는 정적인 직업이다보니 이렇게 네트워킹하고 놀러다니는 것에 재미를 느낀 Chill한 한달이였습니다 😎
마지막 12월, 싱가포르에 다녀왔습니다.
지금 다니고 있는 3번째 회사에 이직 확정이 났고, 입사 전 재정비 기간 중 해외여행을 다녀왔습니다:)
일본으로 첫 해외여행을 다녀오고 이번엔 2번째 해외여행으로 싱가포르에 다녀오면서 확실히 이질적인 느낌이 들었습니다. 입국하자마자 겨울옷 벗어 캐리어에 던졌던 게 기억나네요 ㅋㅋㅋ
첫 날에는 가든스 바이 더 베이에서 2만보 정도 걸었는데 좀 빡빡한 일정이였지만, 슈퍼트리쇼, 클라우드 포레스트, 새로운 느좋 프사도 새로 건져 뿌듯했고 재밌었습니다 👍 (미친 물가빼고...)
다음 날 유니버설 스튜디오에서는 오전 10시반 오픈런하였는데 진짜 뛰었습니다. 트랜스포머부터 달렸고 Cylon, Human이라는 롤러코스터부터 쥬라기 공원 등등 놀이공원 있는 거는 거의 다 탔는데 특히 Cylon이라는 롤러코스터는 발판이 없어서 진짜 겁을 엄청 먹었는데 오히려 재밌어... 이걸 보고 계신 분, 싱가포르에 가신다면 꼭 가세요.
그 후 사테 거리에서 꼬치 음식도 먹고 당연히 사자상 앞에서 입벌리고 사진도 찍었고요... 동물원도 다녀오고 정말 4박 5일동안 빡빡하지만 알찬 여행을 다녀왔습니다:)
왜 여행 이야기를 하였냐면, 23년 12월 때쯤 제가 1일 1커밋을 시작했었습니다. 365일 연속 커밋을 달성을 하였는데,
지난 제주도 여행을 가서도 코딩을 하였고, 주말에 쉬어도 맥북을 들고 다니며 커밋을 찍었습니다. 가짜 커밋을 찍는 것보다는 어떠한 토픽에 대해 공부를 하거나 사이드 프로젝트를 하며 지친 저에게 보상을 주는 느낌이 들었어요.
앞으로 개발자라는 직업을 이어가기 위해 공부는 꾸준히 해야하는 것은 맞다만, 차도 기름이 있어야 굴러가듯 기름을 넣는 시간도 필요하다고 전달하고 싶었습니다. 진짜 기름진 음식 많이 먹긴함.
2024년 회고를 이렇게 마무리 하게 되었는데 23년 회고에 비해 정말 많은 일이 있었네요.
23년 회고할 때에는 개발자가 개발만 잘하면 되지라는 생각을 가지고 있었는데 "어림도 없지", 많은 경험과 고민을 해보게 되었던 한 해였습니다.
참여하였던 IT 동아리 디프만에서 좋은 팀원들을 만나 정말 재밌는 프로젝트를 하였고 그때 만났던 인연들이 지금까지 이어오며 재밌었던 한 해를 보냈습니다⭐️
그리고 곧 2월 1일, 마무리되는 3기 사이프에서도 미션을 통해 새로운 기술을 접해보고 여러 도전을 할 수 있었던 기회를 가졌던 거 같아요. 그리고 딱딱하게 미션,,, 미션,,만 한게 아니라 다양한 네트워킹 세션을 통해 많은 사람들을 만나 행복했네요 😆
24년도를 보내고 25년도에는 어떤 것들을 시도해볼까? 도전해볼까?에 대해 고민을 해봤습니다.
1일 1커밋은 그만. 차라리 글 쓸래 ✍️
저번 회고에 작성했듯이 1일 1커밋을 목표로 세웠고 이뤘습니다. (진짜 쉽지 않았음)
24년도 봇 안돌리고 꾸준히 올렸는데요, 그러나 이제는 그만하려 합니다....
왜 그만하는 지 궁금하실텐데, 사실 1일 1커밋이 끝나고 나면 이뻐진 잔디를 보면 정말 뿌듯합니다. 그런데 커밋을 찍는 강박 관념에 사로 잡혔던 순간들이 생각보다 많았고 오히려 글을 쓰는 버릇을 두는 게 낫다고 생각했어요. 글을 작성하면서 그 동안 개발했던 순간들을 어떻게 이야기할 수 있는 지, 다시 리마인드 하여 내 것으로 만드는 것이 더 의미있다고 판단했습니다.
결론은 25년도에는 커밋보다는 글쓰는 것에 초점을 두고 향후 개인 블로그 개발하여 글을 작성하고, 어떻게 더 작성할 수 있을 지 테크니컬 라이팅에 대해 파고 들어갈 생각입니다.
독서 📚
개발 서적, 소설, 에세이 등등 뭐든 일단 독서를 해보자가 목표입니다.
개발 서적같은 경우 Kotlin in Action, 코틀린 코루틴, DDD 관련 책을 위주로 독서를 할 생각이며, 그 외 책은 개발에 너무 몰두하여 리프레시 하는 것에 중요성을 놓칠까봐 읽고자 해요.
2024년에는 몰두한 나머지, 중간에 번아웃이 오곤 했어요. 그래서 다른 주제에 흥미를 가져보고자 해요
경제 공부 💸
당장 코인을 한다, 주식을 한다라는 개념에서 공부를 하겠다는 것은 아닙니다.
다만 경제 공부를 하지 않으면 앞으로 시장을 이해할 수 없다는 느낌이 들었어요
24년도에는 워낙에 코딩만 했었던 지라 당장 경제 시장의 흐름을 읽을 수가 없었고, 향후 미래에 대한 불안감이 오히려 커졌습니다.. 결국 개발자도 잘 먹고 잘 살자고 하는 직업인데 잘 먹고 잘 사는 법을 모르면 안되겠다는 생각에 올해는 꼭 해야겠다고 느꼈습니다 😅
해외 여행 Again
개인적으로 싱가포르에 다녀오면서 해외여행 뽕차오른다는 느낌을 받았습니다 ㅋㅋㅋㅋ
새로운 문화를 접하면서 아직 좁은 세상에 살고 있다는 느낌이 들었고 더 나이들기 전에 경험해봐야 할 것이 많다고 느꼈어요. 올해 정말 기회가 된다면 제가 꼭 가고싶은 여행지 미국, 스위스, 캐나다에 가보고 싶고, 그 외 해외 여행지라도 가서 새 경험을 해보고 싶습니다:)
마지막으로 2025년 TRY할 항목들을 나열하였는데 올해도 바쁘겠다는 느낌이 저만 드는 걸까요...😂
지금까지 긴 회고글을 읽어주셔서 감사하고 2025년도에도 다들 화이팅이에요:)