뭐 했다고 벌써 22년의 마지막 날인지 모르겠다 ...
22년은 21년에 비해 꽤 많은 일들이 있었고 하나하나 회고해보려한다.
회고
소프트웨어 마에스트로 탈락
22년 초는 시원하게 소마를 탈락하면서 시작하게 된다.
소마의 경우 코테를 보는데, 당시 백준(solved.ac) 플레티넘 5를 달성한 지 얼마 안 되어서 코테는 당연히 붙을 줄 알았다. 하지만 결과는? 2차 코테에서 탈락 ...
소마 코테는 알고리즘 문제뿐만 아니라 WEB, SQL 관련 문제도 나오는데 SQL은 어느 정도 대비를 하였으나 WEB은 전혀 대비하지 않았다. 진짜 간절했다면 전부 완벽히 준비했을 텐데 간절함과 내 성실성에 문제가 있었다.
코딩테스트의 경우 단순히 백준에서 문제만 풀기보다는, 모의 코테를 직접 만들어서 해보는 경험이 중요할 것 같다.
당시 왜 떨어졌는지에 관해 쓴 글이 있는데 그건 여기서 볼 수 있다.
클린 코드 챌린지
이때의 나는 어떻게 하면 깔끔한 코드를 작성할 수 있는지를 많이 고민하고 있었다. (지금도 마찬가지) 깔끔한 코드를 작성하려고 노력해도 ... 이게 맞는 건지 의문이 많이 생겼고 많은 방황을 했다. 내가 코드를 잘 짜고 있는 건지, 코드 분리를 위해 함수를 만들어야 하는데 그렇다고 함수가 너무 많아지면 오히려 코드가 더 증가하고 복잡해지는 건 아닌지 스스로 고민을 많이 하던 찰나, 노마드 코더의 클린코드 챌린지에 도전하게 되었다.
클린코드 챌린지를 진행하며 변수, 함수 등 이름은 주석이 없더라도 알아보기 쉽게 짓는 것(이름이 다소 길어지더라도), 함수, 클래스의 경우 분리할 수 있는 건 최대한 분리하라는 것 등 많은 점을 배웠다.
아직 내 것으로 만들지 못한 부분도 있고 클린 코드를 끝까지 읽는 챌린지가 아니어서 추가적인 공부가 필요하긴 하다.
매쉬업 탈락
소프트웨어 마에스트로에 탈락하고 지원한 매쉬업동아리
라기에 조금 많이 만만하게 보고 지원했다가 큰코다쳤다. (경쟁률이 어마무시했다.) 지원서를 하루만에 작성해서 대충 제출했는데 ... 지금 생각하면 붙는게 말이 안된다. 지원서도 지원서지만 당시 프로젝트 경험도 거의 없는 수준이었다. 심지어 귀찮다는 이유로 포폴도 만들지 않았다.
자세한 내용은 여기서 볼 수 있다.
기다리고 기다리던 Suwiki 배포!
21년 중순부터 너무나도 하고 싶었던 프로젝트를 8월에 드디어 배포하게 되었다. 프로젝트를 진행하며 정~말 많은 일이 있었다. PM, 기획, 안드로이드 개발, 디자인을 전부 맡아서 했었는데 이 경험은 나중에 다른 프로젝트를 할 때 큰 도움이 되었다. 솔직히 하면서 스트레스도 꽤 많이 받았는데 그보다 더 많은 경험이 쌓였다.
소프트 스킬과 개발 스킬 전부 많은 성장을 이뤘다. ㅎㅎ
자세한 회고는 여기
첫 IT 연합 동아리 CMC (메이커스 챌린지)
매쉬업에 탈락하고 정신 차리고 제대로 지원한 CMC
지원서도 공들여 쓰고 포폴까지 만들어서 제출했다.
결과는? 다행히 서류 합격!
대망의 면접 ... CMC 면접 후기를 보니 기술 질문보다는 인성 질문이 많다는 글이 많아 기술 질문 대비를 전혀 하지 않았다. 하지만 ... 면접을 봐보니 기술 질문이 엄청나게 많았다.
당연히 대답 못한 질문이 엄청 많았고, 심지어는 엉뚱한 대답을 해서 면접관의 고개가 90도가량 돌아갔었다. (이때 엄청 당황했다.) 잘 모르면 모르겠다고 대답했어야 했는데 어설프게 답변했다가 괜히 마이너스 요인이 된 것 같다.
어려운 질문이면 또 모를까 ... 간단한 질문 역시 대답하지 못했다. 내가 숨 쉬듯이 쓰는 기술에 대한 답변도 못 했다. 내가 모르고 쓰는 게 정말 많구나. 어떠한 기술을 이해하지 않고 사용한다면 그 기술의 100%를 끌어낼 수 없으며 추후 버그를 유발할 수 있다는 것을 느꼈다.
당시 면접 후 쓴 글은 여기서 확인 가능
당연히 떨어질 줄 알았지만... 얼레리? 합격!!!
CMC를 무사히 마치고 쓴 회고는 여기에 있다.
새로운 프로젝트 - PLUB
CMC 이후 새롭게 들어간 프로젝트! 현재 진행 중이다.
캠퍼스픽에서 공고를 발견해 지원하게 되었고 팀원들 전부 역량이 매우 뛰어난 사람들이다. 특히 같은 안드로이드 파트 중에 실력이 굉장하신 분이 있는데 많은 것을 배우는 중이다. (클린 아키텍쳐, PR, 의존성 분리 등) 슬랙에서 많은 질문을 하는데 항상 친절하게 답변해주셔서 감사할 따름이다 ... ㅎㅎ (나중에 밥이라도 사야지 ...)
개인적으로 아이디어가 정말 좋다고 느꼈고 빨리 앱을 완성하고 싶은 마음이다.
카카오 블라인드 테스트 코테 탈락
가볍게 경험 삼아 지원했던 코딩 테스트! 코테 준비는 일주일에 8시간 3주가량했다. 실제 코테를 볼 때 많이 당황했다. 분명 거의 다 풀었는데 자꾸 테스트 케이스를 통과하지 못했고 멘탈이 많이 나갔다. 나중에 다른 사람의 풀이를 찾아봤는데 ... 전체적인 로직은 맞았다는 점에서 더더욱 아쉬웠다. 조금만 더 디테일이 좋았다면 통과할 수 있었을텐데 ... 또한 한창 코테 준비를 열심히 하던 시기에 지원했다면 붙었을 것 같다는 느낌도 들었다. 코딩 테스트 재활 기간은 3주는 너무 짧고 최소 3개월 이전부터 해야겠다고 느꼈다.
CPU - CTOY 1기, 2기
CPU는 교내 IT 동아리 이름이고 CTOY는 CPU - Toy Project의 약자이다.
내가 직접 기획한 프로그램이고 개발을 시작하지 얼마 안 된 사람들이 토이 프로젝트를 하며 성장하기를 원해서 만든 프로그램이다.
1학기, 2학기 1년 동안 멘토링을 진행했으며 예상했던것 보다 많은 시간을 투자해야 했다. 하지만 오지랖이 넓어 누군가에게 도움을 주는 걸 좋아하기에 멘토링을 하면서 많은 뿌듯함을 느꼈다. (안드로이드 제자도 만들었다 ... ㅎㅎ) 물론, 잘 따라오지 않는 멘티들도 있었다. 이를 해결하기 위해 멘토링 활동을 하기 전, 친해지는 시간을 가졌어야 했나 ... ? 멘티들에게 동기 부여를 더 적극적으로 했어야했나 ... ? 동기 부여는 어떻게 해야 하는 거지 ... ? 등 새로운 고민거리가 생겼다. 내년에 시간이 된다면 3기를 할 예정인데 그때 한번 해결해봐야겠다.
진행한 여러가지 스터디
CMC - Kotlin in Action
삼색 볼펜 공부법을 적용한 스터디 ... 책을 끝까지 보진 못하고 중간에 스터디가 해체되었지만, 스터디원 대부분이 직장인이라 개인적으로 얻어간 점이 많다.CPU - HTTP 스터디
교내 동아리에서 진행한 HTTP BASIC 스터디! 인프런 강의를 보고 진행했다. 스터디원들이 전부 열심히 해줬고 얻어간 게 정말 많다. 배울 점이 많은 친구도 많이 사귀었다 ㅎㅎFLAG - 코테 준비 스터디
교내 동아리 FLAG에서 한 코테 준비 스터디, 최소한의 감을 유지하기 위해 진행한 스터디이다. 나에게는 비교적 쉬운 난이도로 진행했으나, 스터디원들의 풀이 사고를 들으며 많은 것을 배웠다.
해냄 - 유지보수 프로젝트 합격
캠퍼스픽에서 해냄 프로젝트의 개발자를 구인하는 글이 올라왔다. 기존 개발자들이 취업해서 유지보수할 개발자를 새로 구인하고 있었다. 프로젝트 배포 후 끝나는 것이 아닌 새롭게 개발자를 구한다는 점에서 큰 메리트를 느꼈다. (기획자와 디자이너가 프로덕트에 대한 애정이 느껴졌다.) 따라서 지원하게 되었고 앱을 직접 사용해보며 느낀 불편한 점과 끝까지 남아서 유지보수하고 싶다는 마음을 어필했다. 결과는? 합격 ㅎㅎ 내년부터 유지보수에 들어갈 것 같다.
멘탈 단련의 필요성
12월 중순쯤 멘탈이 완전히 나가버리는 사건이 있었다.
5일 정도는 아무것도 손에 잡히지 않아 마냥 침대에 누워만 있었고 그 이후에도 정신을 못 차렸다. (지금도 조금 힘들다)
학교 수업 프로젝트, 대외 프로젝트, 스터디 등 할 일이 정말 많았지만 아무것도 못 했고 술 약속만 엄청 잡았다. 이러면 안 되겠다는 생각이 들어서 최대한 집 밖을 벗어났고 친구들과 만나서 작업을 하며 해야 할 일들을 처리했다.
다른 사람들을 만나며 멘탈을 잡는 것도 중요하지만 ... 그것보다 더 중요한 것은 힘든 일이 있어도 혼자 극복할 수 있게 마음을 단단하게 만드는 법 같다. 물론 그 방법을 모르긴 하지만 ... 나이를 더 먹으면 해결되려나? 어렵다 ㅜㅜ
안드로이드 공부법 전환
안드로이드 개념 공부가 부족하다는 생각이 들었고 영어로 된 공식 문서를 번역하면 도움이 될 거로 생각했다. 하지만 오산이었다. 번역 실력이 그닥 좋지 않았고 그냥 문서 정리를 하는 느낌이었다. 번역함으로써 나에게 돌아오는 이득은 거의 없었다. (사실상 시간 낭비)
그래서 안드로이드 개념 스터디를 진행하려 한다. 누군가에게 설명할 수 있다면 해당 개념을 완전히 이해했다고 생각해서 스터디 진행 방식은 면접 방식으로 진행하려 한다. 내년부터 시작인데 ... 파이팅 해봐야겠다.
기술적인 성장
MVVM 패턴
MVVM 패턴을 3개의 프로젝트에 적용해보며 이해도가 많이 올랐다. 아직 부족한 부분이 많겠지만 ... 그래도 처음보다는 많이 성장했다 느낀다.Clean Architecture + Multi Module
클린 아키텍처를 적용해보았다.
처음 개념 공부를 할 때는 이게 도대체 무슨 소리인지 전혀 이해를 못 했는데 이제 조금씩 이해가 간다. (아직 엄청 부족하다.)하드 코딩 X
하드 코딩하는 습관을 버렸다. 재활용이 가능한 Util의 경우 따로 Class를 만들고 커스텀뷰, Styles를 정의하는 습관이 생겼다.의존성 주입
의존성 주입 라이브러리 Hilt 사용법을 익혔고 그 외에 의존성을 분리하기 위해 고민하며 코드를 작성하기 시작했다.동기, 비동기 처리 및 개념 + 코루틴
코루틴을 사용하여 동기 및 비동기 처리하는 능력이 조금 올랐다. (아직 많이 부족)블락킹, 논블락킹 개념
블락킹, 논블락킹에 대한 개념이 드디어 이해 갔다. (하지만 맞게 이해했는지는 ... 아직 모르겠다. 추후 잘하는 개발자에게 물어봐야 할 듯싶다.)