2022년이 끝나기 전까지 나에게 하나의 문제가 있었다.
벌써 올해가 끝나고 내년이 찾아오고 있는 데 올해 난 그동안 무슨 시간을 보낸 걸까?
한 해가 다 지나가고 그동안의 나의 행적을 돌아보는 시간. 일명: 현타
결국은 할 수 있는 건 하고 살았다는 것을 깨닫는다.
물론 이렇지 않는 사람이 있겠지만 나에겐 항상 그래왔고, 앞으로도 발생할 상황이다.
사실 광주소마고에 입학한 이후는 중학교 때처럼 공부는 시험기간이 다가올 때만 했었다. 공부도 기록없이 그냥 시험을 친 것 같다. (나 소마고 어케 들어온 거지)
그런 자신감으로,
1학년 때는 컴퓨터 관련 기본 지식을 배우느라 내가 이미 알고 있던 내용도 분명 존재했지만 제대로 공부를 하지 않았다.
그럴때마다,
아 이거 생각보다 별거 아니네ㅋㅋ 공부 안해도 되겠다.
지금 생각하면 이런 아주 무서운 생각을 했다.
이후 자료구조 시험에서 개같이 털린 이후엔 마음을 가다듬으며
이러다간 3년동안 배운게 하나도 없이 졸업하겠다.
라는 생각을 여럿하게 되었다.
1학년 때는 시간이 남아 주로 알고리즘 문제 풀거나 자격증 땄다. (정보처리 기능사, 정보기기운용기능사)
하지만 학교에서 문법을 배운 c로 주구장창 알고리즘 문제 풀다가 중간에
내가 이걸로 밥벌이를 할 수 있을까
일주일정도 허송세월 보내게 되었고
뭐라도 해보자는 마음으로 노마드 코더에 있는 무료강의를 보기 시작했다.
그렇게 나는 1학년 말에 웹 분야를 처음 시작했다.
처음으로 만든 웹 페이지를 배포해 친구들에게 보여준 적도 있다.
지금 보면 진짜 별거 없지만, 만드는 동안 재밌었던 것 같다.
https://kimgh06.github.io/MakingWeb/
React도 배우고 아이디어 페스티벌에서 프론트엔드를 담당했다.
그렇게 1학년이 지나갔다.
제야의 종이 치고 나서 다시 현타가 찾아오고
18살을 먹은 나는 이것저것 시도해보기 시작했다.
기록도 안 해놓고 기억에 남아있는 것만 꺼내다 보니 프로젝트만 소개하게 되었다.
월은 프로젝트를 시작한 월을 표시하므로 현재까지 진행되고 있는 프로젝트도 일부 있다는 점을 알려 드립니다.
어느 한 유튜브 영상에서 워들이라는 웹 게임을 소개했었다.
워들은 6번의 기회를 가지고 5글자인 단어를 맞히는 게임이다.
단어는 하루에 한 번씩 변경되며 모든 기회를 소진하거나 정답을 맞혔을 경우 하루가 지날 때까지 게임을 다시 할 수 없다.
나는 워들을 한 번 구현해보고 싶었다.
그래서 자바스크립트 이벤트를 하나 하나 뒤져가며 어떻게 하면 키보드를 꾹 눌렀을 때 여러 개가 입력되는 지 막고 영어사전에 있는 5글자 단어를 어떻게 뽑을 지, 그리고 어떻게 하면 자리가 바뀐 것을 힌트처럼 알려줄 수 있을 지 고민했다.
결국은 힌트가 중복을 내보내는 것을 수정하지 못한 채 완성을 했다.
https://wordlekimgh06.netlify.app
아쉽기도 하고 이대로 둘까하는 생각이 들었지만
다른 프로젝트를 진행할 때 시간 관리를 제대로 하지 못해 방치한 것으로 기억한다.
학교 관련 어플리케이션에는 반드시 하나 있는 것이 하나 있다.
오늘 무슨 밥이 나올 지 알려주는 식단표 제공기능이다.
내가 스스로 생각한 것은 아니었지만 한 선배가 식단표를 만들고 앱스토어에 배포를 했던 것이 기억에 남았다.
그래서 나는 식단표를 만들어 보기로 했다. 내가 삼성폰만 써서 앱을 못 써서 그런 건 아니다.
내가 만들고 있는 것에 보람을 느끼기 시작했다.
https://gsmgeupshik.netlify.app
자신감이 너무 넘치다 못해 이 분야는 내가 섭렵하고 모든 깨우쳤다고 착각했던 시기이다.
아무래도 팀 프로젝트의 경험이라고는 아이디어 페스티벌이 다인 나였으니까
뭐를 하면 내가 하던 웹에서 새로운 차원으로 넘어갈 수 있을까 생각해보니
우리 학교에서는 3D웹을 하는 애들이 없구나!
내가 배우고나서 애들에게 알려줘야지
라는 마음 가짐을 가지게 되었다.
원래 3d웹은 Three.js 라이브러리를 사용하지만 나는 React를 위해 제작된 라이브러리를 찾았는 데 그것이 바로 R3F 라는 라이브러리였다.
https://kimgh06.notion.site/React-3-Fiber-3d-bf16027321ba42e88d7c640ac1585751
자세한 내용은 여기서 찾아 볼 수 있다.
프로젝트의 결과는 아래에 있다.
https://anytestkimgh06.netlify.app
친한 친구들과 새로 전공 동아리를 개설했다.
기존에 있던 동아리에서 선배님들은 거의 동아리 실에 없어 제대로 도움을 받을 수 없어 계속 자습만 하고 있었고 주변에 있던 친구들도 목적없이 자고 있는 모습도 종종 보였다.
차라리 다른 동아리를 알아볼까 하던 찰나에 친한 친구들이 새로 Iot 동아리를 만든다는 소식을 듣고 재빠르게 달려들었다.
내가 직접 동아리를 운영해보는 것도 좋은 경험인 것 같았다.
신청서를 작성하고 동아리 개설하고 나서 적극적으로 동아리 홍보에 나섰다.
근본이 없는 동아리라 급하게 웹 페이지도 만들고 시제품도 만들어 동아리 홍보시간에 선보였지만 지원자는 손에 꼽을 만큼 적었다.
오히려 다행이었다.
새로 신설된 동아리가 어찌 많은 지원자를 판단하고 거기서 사람을 뽑겠는가?
그리고 이 인연이 지금까지 이어져 오고 있다.
동아리를 만든 시점에서 당장 유지보수할 건 없지만 동아리 프로젝트 진행하면서 간간이 우리 애들 도와주고 있다.
빠르게 메인 프로젝트를 제작하고 나서 내년에는 이 동아리가 계속 있게 하도록 보살피고 싶다.
아이디어 페스티벌을 진행하고 나서 팀원인 친구가 찾아와 자신이 학교 지도 서비스를 만들고 싶은 데 프론트엔드를 담당할 것이냐고 물었다.
난 이 제안에 솔깃했다.
자체적으로 아이디어도 나쁘지 않았고, 나도 학교에 지도가 필요하다고 생각했기 때문이다. 작년과 올해는 실의 위치와 이름이 바뀌었다.
하지만 학생들은 학교 전체를 제대로 돌아다니지 않아 어디가 어디 실인지 까먹고 다른 사람에게 여럿 묻는 일이 존재했기 때문이다.
그래서 프론트엔드를 담당하기로 결정했다.
여기에서 나는 스크롤 이벤트를 중점으로 다뤘다.
어떻게 하면 지도를 편리하게 조작하고 보기 편하게 만들지 생각했다.
또한 접근성이 높아지도록 도메인도 구입해 적용해보았다.
https://gmt-pmn.store
시간이 어느덧 흘러 여름인 6월이 되었다.
아는 친구가 해커톤을 나간다는 이야기를 듣게 되었다.
같이 갈 친구들이 여럿 모였지만, 결과적으로는 나 혼자 밖에 갈 수 없었다.
현장 체험학습을 신청하려면 보호자가 같이 있어야 했다.
나는 해커톤이 진행되는 대구에 고모가 계셔서 보호자를 부탁할 수 있어 갈 수 있었지만, 다른 친구들은 그러지 못했다.
가고 싶었지만 참석을 하지 못한 애들이 안타까웠다.
해커톤 시작일 전에 사전 워크숍에 참석하여 Azure를 어떻게 사용하는 지 배우고 깃헙 액션도 하는 방법을 배웠으나 금방 까먹었다.
다음 날 걱정이 많은 상태로 해커톤 행사 장소인 대구 엑스코에 도착하였고
채팅방에서 보던 사람들과도 만나고 팀은 나도 갈까 말까 정해지지 않은 상태에서 신청을 넣은 것이라 오기 전까지 우리 팀은 존재하지 않았다.
이후 행사장에서 대구 소마고에서 재학 중인 사람들, 경북대 사람들과 팀을 맺게 되었고
간단하게 팀 빌딩을 하고 주제를 정했다.
팀 주제는 거동이 불편한 노인분들을 위해 집까지 찾아가는 사회복지사 서비스를 준비했다.
모든 준비는 다 끝났으나 Azure에 배포를 하는 과정에서 문제가 생겨 본선에는 진출하지 못했다.
사람들과 목표를 잡고 행동하는 것이 재미있었다.
거의 노숙이나 다름 없었지만 숙식이 제공되어서 서울을 다녀오는 것에 비해 경비도 아낄 수 있었다.
그러나 쪽잠을 자며 만든게 본선에 진출조차 하지 못하는 것을 보고
나는 아직 부족한 점이 굉장히 많구나
라고 생각했다.
마침내 한 학기가 끝났다 만세
방학이 되기 전에 가고 싶은 컨퍼런스를 두 개를 정했다.
하나는 지금 소개할 IO Extendard 이고
다른 하나는 GopherCon Korea이다
7월 마지막 주에 IO Extendard에 참석하기 위해 서울 코엑스에 갔다.
당일 치기로 가서 행사장에 늦게 도착했다.
그러나 늦게 도착했는 데도 불구하고 많은 사람이 이미 줄을 서고 있었다.
안내 데스크에서 행사장 지도와 세션 목록이 적혀 있었고,
내가 듣고 싶은 세션으로 가서 듣기는 했으나 제대로 내용을 이해 하지 못한 경우가 많았다.
워낙 다양한 분야에서 오신 발표자분이 이야기를 하는 데 내 분야가 아닌 것도 있었고 새롭게 알아가는 정보도 존재했다.
그래서 중간에 질문도 몇 번 건네게 되었는 데 다들 친절히 답변해 주셔서 도움이 되었다.
쉬는 시간에는 자리를 이동도 겨우 할 정도로 라운지에는 사람이 인산인해를 이루어서 제대로 된 부스를 겪어보진 않았다.
네트워킹 시간은 고속버스 시간이 촉박해서 제대로 하지 못하고 바로 집에 가게 되었다.
IO Extendard를 마치고 일주일이 지났다.
나는 다시 서울로 올라가 이틀동안 고퍼콘에 참석하게 되었다.
중간중간 알고리즘 문제 풀 때 C 말고 Golang으로 푸는 게 익숙해졌고, Golang이 가진 잠재력이 얼마나 될까라는 궁금증에서 시작된 게 참석하게 된 동기가 되었다.
지난 주 보단 사람은 적지만 대신 오프라인/온라인으로 진행이 되어, 보다 많은 사람이 볼 수 있었다.
또한 오피스 아워라는 시간을 가져 발표자와 소규모로 세션을 진행할 수도 있었다.
다만 사전신청이라 나는 경험하지 못했지만 참여하면 좋은 경험이라고 생각할 것이다.
이렇게까지 깊게 나간다고 라고 생각한 세션도 있었던 반면에 가볍게 언어와 함께하는 성장기 등 한 가지 언어에 여러 분야의 전문가분들이 오셔서 발표를 하는 모습을 보니 언젠가는 나도 저렇게 발표할 날이 생기면 좋겠다고 생각했다.
스포티파이의 무료 플랜은 2주마다 무료 플랜 제공 국가에 접속되어 있어야 계정을 사용가능하다.
그러나 한국은 무료 플랜이 제공되지 않아 나는 2주에 한 번씩 VPN으로 국가를 바꿔서 계정에 로그인을 했었다.
근데 운동하기 전에 깜빡하고 로그인을 하지 못하면 다시 로그인하는 데에 4분이 소요된다.
또한 무료 플랜은 모바일에선 트랙이 모두 셔플되어서 제공된다.
사용하는 데 빡친 나는
그래서 그냥 내가 직접 만들까라는 생각을 해서 만들어진 것이 Freetify이다.
처음에는 간단하게 Spotify API를 가져와 앨범 목록을 표시하고 검색기능도 만들었다.
그러나 SDK를 가져오는 부분에서 오직 프리미엄만 사용가능 하다는 점에서 2차로 빡쳤다.
음원을 구하지 못하면 이 프로젝트는 목적에 맞지 않게 만들어 버린 것이라 버릴 수도 없고 계속 방법을 찾고 있었다.
스포티파이에서 데이터를 탈취하거나 다른 서비스 사이트에서 음원을 가져오는 생각을 했었다.
그래서 나는 다른 서비스 사이트에서 음원을 가져오는 생각을 하였고 성공하였다.....만
다음 날 바로 403 반환하는 모습을 보고 3차로 빡쳤다.
눈이 혈안이 된 나는 닥치며 깃허브에서 스포티파이 다운로더라는 검색어를 가지고 어떻게 하면 음원을 가지고 올 수 있을 지 생각했다.
어느 한 레포지토리에서 ytdl-core 라이브러리를 사용해 음원을 저장하는 로직을 보게 되었다.
어차피 음원은 유튜브에도 있으니까 가져오자는 괜찮은 생각을 하게 되었고, 실제로 실행했고, 잘 먹혔다.
다만 백엔드쪽에서 한글을 제대로 반환하지 않아 한국 음악을 들을 수 없는 현상이 생겼다. 4차 빡침
다행히 decodeURIComponent라는 함수가 있어 편하게 고칠 수 있었다.
이후 DB 연동해서 플레이리스트를 저장하도록 했다.
나중에는 가사도 추가해서 더욱 편하게 만들 예정이다!
중간에 디자인 혹평을 받았다.
알고 싶다면 직접 사용해보자.
설마 되겠어 하면서 넣은 지원서가 통과가 되어 연합해커톤에 참석했다.
부산에서 열린 연합해커톤은 최고였다.
노숙이 아닌 숙식이 제공되고 작지만 즐겁게 해커톤을 진행했었다.
소박하게(?) 젯슨 나노와 터치 스크린을 가지고 인공지능 챗봇을 이용한 키오스크 서비스를 기획했다.
관광지나 공항 같은 곳에 있으면 좋을 것 같아 선정한 아이디어다. 언어장벽이 없도록 작게 나마 stt와 tts를 넣게 되었다.
추가적으로는 수어를 넣으려고 했으나 시간이 많지 않아 구현하진 못했다.
모델은 이미 만들어서 가져갔으나 적용을 시키지 못 했었다.
또한 멘토분들도 현업에서 최고라 칭하는 분들이 모여주셨고, 이 덕분에 수월하게 문제애 대한 해결방법을 찾아 행복했었다. 학교에서 한 가지 문제로 2시간을 통째로 날리는 나로써는 정말 행복했다.
근데 젯슨 나노가 사용하는 브라우저에서 stt를 지원하지 못해 팀원의 라즈베리 파이의 브라우저를 사용했으나 결국에는 둘 다 쓰지 못하고 노트북을 연결해 브라우저를 사용하게 되었다. 팀원분들 미안해요 ㅠㅠ
근데 뜻밖의 결과가 나왔다.
시상식에서 우리 팀 이름이 불려진 것이었다.
장려상도 우수상도 아닌 기업상이었다.
우리 팀 이름이 나왔을 때 감격을 하지 않을 수 없게 되었다.
외부 행사에서 상은 처음 받아본다.
상금이 총 30만원이 나왔고 4명이 사이좋게 나눠가졌다.
75000원은 나중에 중고 애플 티비를 구매하는 데 사용했다.
전공동아리 사이드 프로젝트가 끝나고 한 달이 지날 무렵에
마침내 동아리가 목적에 맞게 움직이기 시작했다.
스마트 화분을 만들기 위해 재료는 어떤 걸로 하고, 통신 방법은 어떻게 할 것인지 정했다.
우선 학교에 있는 부품을 우선으로 사용하고 부족한 부품은 나중에 추가로 시키기로 했다.
통신 방법은 간단하게 웹 소켓을 활용하기로 했다.
이벤트가 발생할 때 마다 바로 처리하기 용이하고 라즈베리파이가 좋은 성능은 아니기 때문에 일정 주기마다 http 통신을 하는 것 보다는 웹 소켓을 쓰는 것이 더 가벼울 것이라고 판단했다.
기능은 부품이 도착하는 대로 제작하기로 했다.
전공 동아리 시간이 목요일밖에 없어 라즈베리파이를 사용하는 데 제약이 있었다.
이럴 때는 클라이언트 개발을 했다.
부품이 도착하는 때는 정확히 알 수 없었기 때문에 프로젝트의 기간이 더 길어지게 되었다.
회고록을 쓰는 지금까지 열심히 기능 구현을 하고 있다.
작년과 비슷한 시기에 아이디어 페스티벌을 시작했다.
멘토링을 위한 커뮤니티 사이트로 노선을 잡았다.
나는 마찬가지로 프론트엔드와 백엔드를 조금 맡았다.
작년과 다른 점이 있다면 시간이 일주일밖에 없어서
기능을 제대로 구현할 수 있을 지도 미지수였다.
그럼에도 불구하고 최고의 서비스를 만들기 위해 모두 최선을 다해서 개발과 회의를 중간 중간 쪽대본 짜듯이 계속했고.
자연스럽게 초기 기획에서 더 나은 방향으로 방향이 달라졌다.
기능 개발도 빠른 속도로 차곡차곡 순조롭게 진행되었다.
중간에 디자인을 몇 개 빼먹어서 여러 번 수정했다.
또한 작년보다 서류 제출해야 할 것이 늘어나서 22일 자정까지 마감하는 데 꽤나 애를 먹었다.
어찌저찌 이번 년도는 열심히 살아온 것 같다.
자의로 시작했든, 타의로 시작했든, 내가 원해서 시도한 것은 사실이다.
과정 속에서 어떻게든 성장을 이끌어 내는 것도 중요하다.
그러나 내 상황을 전혀 인지하지 못하면 성장이든 경험이든 아무 것도 남지 않게 된 것 같다.
솔직히 이 사진이 나를 대변한다고 생각한다.
아직 [글도 제대로 못 쓰고, 실력도 부족하고, 사회성도 부족하고, 말귀도 잘 못 알아 먹고, 건강도 많이 안 좋고, 두려움도 많고 등등.] 부족한 점이 많지만,
상황을 전혀 인지 하지 못하고 그저 머리만 벅벅 긁고 앉아만 있는 나다.
이런 상황을 웬만하면 피하고 싶다.
나는 아무도 내가 무엇을 배워야 하는 지 정확히 알지 못한다고 생각한다.
오직 나만 알 뿐이다.
세상에 나는 하나 밖에 없다.
그래서 아무도 나의 가치를 정확히 알지 못한다.
이를 증명하지 못하면 나는 그저 가치가 없는 사람으로 기억될 것이다.
2024년 새해는 취업 준비를 위해서 지금 보다 훨씬 열심히 공부해서 나의 가치를 증명시키며 살아야겠다.
긴 글 읽어주셔서 감사합니다.
안녕하세요! 글 잘 읽었습니다.
다름이 아니라
"🏫 소프트웨어 마이스터고를 2년 6개월 다니면서 느낀점" 에 남긴 댓글을 보았는데요.
블로그 알림이 따로 없어서 오랜만에 읽어보니 댓글을 남기셨더라고요!
https://www.linkedin.com/in/%EC%98%81%EC%9E%AC-%EC%9C%A0-142186210/
제 링크드인 입니다. 편하게 연락주세요!