4학년 1학기로 들어가기 전 겨울방학이 끝나간다.
이번에 복학을 하면 4-1로 남은 1년을 버텨야 한다. 이제 더이상 휴학은 없다.
더 휴학하면 이제 화석이 아니라 화석연료가 되어버려..
아무튼 이번 겨울방학이 끝나기 전에 겨울방학동안 한 것들을 살펴보며 새학기의 내가 가질 태도를 다시한번 되짚어보는 시간을 가지려고 한다.
사실 자격증이 무조건 필요하다고는 생각하지 않는다. 대부분 자격증이 없이도 열심히 공부했다면 취업 잘 하시는 분들을 많이 보았기 때문에 개발자 취준에 있어서는 필수라고는 생각하지 않았다.
하지만 그렇다고 해서 자격증이 필요없는 것인가?
라는 질문에 대해서는 아니라고 생각한다.
개발자로서 마땅히 가져야 할 지식을 자격증 공부하면서 조금이나마 얻어갈 수 있고, 이중전공으로 소프트웨어 전공을 골랐어도 비전공자같은 포지션인 나에게는 조금이나마 살펴보기라도 했다는 인식을 이력서에서 줄 수 있을 것 같았다.
이번에 지원한 자격증은 리눅스 마스터 2급
, 정보처리기사
, 네트워크관리사
세 가지가 있다.
리눅스 마스터는 일찍이 땄고, 정보처리기사는 내일 필기를 본다. 네트워크 관리사는 3월에 예정되어 있다.
리눅스마스터는 갑자기 운영체제에 꽂혀 리눅스를 조금 다뤄보고 싶다는 생각을 해서 지원하게 되었고, 정보처리기사는 소프트웨어 개발 전반적으로 기초지식을 늘린다는 생각으로 지원했다. 네트워크 관리사는 정보처리기사를 공부하던 중 IP 서브넷 마스크를 계산만 할 줄 알지, 이게 뭔지 제대로 인지조차 못하는 느낌을 받아 네트워크에 대해 너무 모르는 것 같다는 생각을 해서 이번 기회에 공부해보면 좋겠다 싶어 지원하게 되었다.
아무튼 매일 루틴으로 자격증 공부를 조금씩 넣어서 공부했다.
부스트캠프를 하면서 프로젝트에 집중하느라 알고리즘을 너무 오래 놓고 있었다. 감도 되찾고 꾸준히 공부하자는 생각으로 매일마다 알고리즘을 풀었다.
주변에 알고리즘 잘하는 형이 있어 뭘 해야 할지 물어봤더니 한번 실랜디를 풀어보면서 익숙해지는 것도 좋은 방법이라 해서 매일마다 실랜디 하나를 풀었다.
주로 실버 1~골드 5의 문제들을 돌리면서 이럴 때는 어떤 알고리즘을 써서 풀어야 할지의 감을 조금씩 길러나갔고, 내가 어떻게 풀었는지 사고의 고정을 조금씩 기록했다.
그리고 내가 현재 어느정도의 실력인지, 또 어느 부분에서 더 성장해야 할지 제대로 감이 오지 않아 코딩테스트를 한번 봤으면 좋겠다는 생각을 했었는데, 마침 소프트웨어 마에스트로가 지원기간이라 한번 지원해서 코딩테스트를 봤다.
결과는 5개 문제중에 3솔밖에 하지 못했다.(심지어 1문제는 SQL임)
1, 2번까지는 어찌어찌 풀다가 3번에서는 이 방식을 써봐야겠다는 생각조차 제대로 안 들었던 것 같다. 알고리즘 문제를 깡구현하고 있는 느낌이랄까...
아직도 코테는 많이 발전해야 할 부분인 것 같다. 이런저런 책도 빌리고 아는 형이 추천해준 글들도 한번 보면서 다시 실력을 길러나가야 할 것 같다.
똥골드
다른걸 공부하면서도 프로젝트를 따로 하지 않으면 금방 감을 잃어버릴거라 생각했다.
그러다가 옛날 멋사 디스코드 채널에서 리액트 네이티브 개발자를 구한다길래 오랜만에 리액트 네이티브나 한번 해볼까 하고 지원했더니 덜컥 돼버려서 얼떨결에 하고 있다.
처음에 코드를 받아봤을 때는 솔직히 절망적이었다. 프로젝트 구성은 이상하게 되어있으며, 환경변수 파일이 깃에 올라가있질 않나, 제대로 기능 완성조차 되지 않고 그냥 문제를 해결하고자 임시방편으로 이것저것 덧대놓은 프랑켄슈타인같은 레거시 코드가 날 반겼다.
처음에 고쳐달라는 버그를 이것저것 고치다가, 이건 그냥 스파게티 코드가 아닌 이탈리아 정통 스파게티도 못따라올 스파게티 코드라는걸 알아챈 뒤로는 갑자기 열정이 죽어버렸다. 내가 이걸 해서 결과적으로 나에게 성장이 될까?
라는 회의감이 많이 들었던 것 같다. 굴러가는 코드를 더 잘 굴러가게 하도록 만들고 싶었는데, 굴러가지 않는 코드를 억지로 굴러가게만 만들고 있는 느낌이었다.
그래서 중간에 2024년 내가 멋사 회장을 하면서 성장할 가능성이 보이는 친구를 초대해서 함께 고쳐가는게 어떻겠냐고 제안했다. 안좋은 코드라고는 해도 나름 코드를 읽는 눈도 길러야 한다고 생각하기 때문에 이번 기회를 통해서 그 친구는 조금 더 성장할 수 있는 기회가 아닐까? 생각헀다. 현재는 그 친구와 함께 개발을 하고 있으면서 모르는게 있으면 어떻게 접근해나가야 할지 방향을 제시하는 정도로 도와주고 있다.
그 친구가 주로 맡는다고 해서 그대로 짬처리하지는 않았다. 틈틈히 나도 코드를 읽어보면서 '왜 이렇게 코드를 짰을까?'
생각하면서 이 스파게티 코드를 어떻게 한 줄로 펼 수 있을까를 많이 생각했다. 결국 이 코드를 유지하는 것은 최악의 선택이다
라는 결론을 내렸다. 이 코드로 계속 하기는 그 친구에게도, 나중에 해당 애플리케이션을 유지보수할 사람에게도 예의가 아닐 것 같다 생각해서 대대적으로 뜯어고치기 시작했다.
토스에서 나온 frontend-fundamental 을 읽으면서 어떤 부분을 정리해나갈지 생각하고 리팩토링을 하기 시작했다. 그런데 막상 하다보니 이 코드를 통해 내가 성장할 수 있나?
라는 생각이 바뀌게 되었다.
이전 개발자의 생각을 읽어보고 이를 다시 더 좋게 개선하는 작업을 거치면서 어떻게 추상화하고 정리할지, 또 프로젝트 구성을 어떻게 갈아엎을지 생각해보았다. 이런 로직이 왜 성능에 좋지 않은지 나름의 분석을 달아 문서화하면서 리팩토링하는 과정에서 이전의 코드와 내 코드를 비교하고 어느 부분이 더 개선되었는지 뚜렷하게 비교할 수 있는 감각을 길러나가고 있다는 느낌을 받았다.
리팩토링을 통해 어떤 코드도 나에게 도움이 되는 방식으로 발전시킬 수 있겠구나
하는 생각으로 바뀌게 되었다.
앞으로 계속 리팩토링을 거치며 어떻게 좋은 코드를 작성할 수 있을까?
에 대한 나름의 답을 찾아가는 과정이 되었으면 좋겠다. 물론 문서화도 꾸준히..
프로젝트는 이것만 하려고 했지만, 지인의 제안으로 Nextjs
를 사용하는 프로젝트에서도 참여하게 되었다. 사실 Nextjs
를 많이 다루지는 않았고, 프로젝트 초기 과정에서 넘겨준 거라 그냥 리액트로 다시 만들었어도 상관은 없었지만 이번 기회를 통해 보다 Nextjs
프로젝트를 통해 서버 함수와 서버 컴포넌트 등을 사용해보면서 클라이언트사이드 와 서버사이드의 차이를 경험을 통해 이해했으면 하는 마음에 그대로 가게 됐다.
어쩌다보니 프론트의 굴리트가 된 나..
이 프로젝트는 특별하게 supabase
를 사용해서 서버를 구축했기 때문에 내가 서버도 어느정도 만져보고, erd 설계에도 조금 더 적극적으로 참여하면서 백엔드에 대한 지식도 길러나갈 수 있어 만족스러웠다.
가장 만족스러웠던 점은 현재 일하고 있는 지인이 자기 프로젝트를 넘겨주면서 내 코드를 중간중간 코드리뷰를 해줬는데 내가 애매하게 생각했던 부분을 정확하게 짚고 알려주는 부분들이 많아서 코드를 조금 더 발전시킬 수 있는 방향을 찾은 것 같아 기분이 좋다. 또 새로운 ai 도메인을 개발하면서 이벤트 스트림 형태로 오는 http 응답을 처리하기도 하는 새로운 경험 등 많은 것들이 새롭고 즐거웠다.
하지만 반대로 여러 스택의 프로젝트를 전전하다 보니 리액트 하나만으로도 파고들어 공부할 것들이 많은데 너무 얕고 넓게 공부하는게 아닐까?
하는 고민도 계속 들어 어떻게 할지 고민중이기도 하다. 프로젝트 2개를 동시에 돌리면서 공부까지 하기에는 시간도 애매하기 때문에 계속해서 고민이 되는 것 같다.
아마 이번에 개강하면서 종합설계(캡스톤 디자인)까지 하면 죽어나가지 않을까...
내가 지식이 부족했던 부분을 책으로나마 채우기 위해 이번에는 책을 좀 많이 읽으려고 했다.
3개 책을 돌아가면서 매일마다 조금씩 공부했고, 프로젝트 하기 전까지 강도 있게 한 편이라 나름 방학때 1회독은 할 수 있었다.
하지만 처음 읽을 때 흡수되는건 거의 없기 때문에 앞으로 시간이 날 때 종종 몇번 더 읽어볼 계획이다.
개인적으로 세 책 다 너무 유익한 책이라 추천한다.
한 2주 전부터는 이 책을 가지고 스터디를 열어 진행하고 있다. 내가 몰랐던 부분을 조금씩 공부하면서 지식의 폭이 넓어지는 기분이 좋다. 스터디는 학기 중에도 꾸준히 할 생각이다.
솔직히 적어놓고 보니까 이것저것 한 것 같아 보이지만, 개인적으로는 그렇게 만족스럽지 않았다. 왜 그렇게 생각하는걸까 고민해보니 아무래도 취업에 관한 고민들이 많아서이지 않을까 싶다.
요즘에 부스트캠프 슬랙 채널을 보면 종종 인터뷰나 합격 후기들이 많이 올라온다. 그럴 때마다 시간이 날 때 정독하고 있다.
보면서 가장 크게 느끼는 감정은
1. 내가 저런 실력이 될까?
2. 나는 런닝머신을 타고 있는데, 다른 사람들은 실제 트랙을 달리는 느낌
이었던 것 같다.
후기에서 인터뷰에서 나왔던 질문들을 보면서 내가 저런 질문을 받았을 때 제대로 답할 수 있을까
생각했을 때 아닐 것 같다는 생각이 들었다. 정말 한마디도 못할 것 같은 질문도 부스트캠프 취업지원 프로그램 중 모의 인터뷰에 나왔을 뿐더러, 알고 있고 이해는 하고 있지만 정작 이해한 지식을 다시 내 말로 풀어서 말할 수 있는 능력이 될까
에 대한 회의감이 들었다. 이러한 회의감은 마치 나와 취업을 준비하는 분들과의 거리를 더 멀어지게 했다.
앞으로 취업까지 남은 시간은 1년 남짓인데, 이미 졸업했어야 할 나이에 졸업을 하지도 못하고 있으면서 실력까지 많이 차이가 나는 것 같다는 생각은 자꾸 부정적인 방향으로 나에게 다가왔다.
나보다 어린 나이여도 이미 졸업하고 현직에 있는 사람도 있는데 나는 계속 한 자리에 머물러 있다는 생각도 들었다. 혼자서 프로젝트를 한다고 한들 실제로 현업에서 일하는 것만큼 성장이 빠른 것도 없기 때문에 나는 런닝머신에서 뛰어 제자리에 있지만 다른 사람들은 이미 물리적으로 앞으로 나아가고 있다는 생각이 들었다. 그러면서도 취업 시장이 점점 나빠진다, 개발자 취업은 더 나빠진다는 기사들을 계속 보고 있노라면 빨리 취업을 해야 할 것만 같은데 졸업도 하지 못해 마음대로 할 수조차 없는 상황이 불안하고 스트레스를 많이 줬던 것 같다.
이번에도 현장실습같은 프로그램을 지원하려고 했으나 졸업이 걸린 전공 필수 과목이 있어 자소서를 써놓고도 신청을 못한 상황이 있었기 때문에 이러한 불안감이 더 가중됐지 않나 싶다.
사실 이런 문제를 당장 해결할 수 있는 방법은 없다. 결국 나는 학교를 가야 하는 상황이고 1학기를 마쳐야 뭐라도 할 수 있기 때문에 일단은 거기에 집중하는 수밖에는 없다.
일단 내가 있는 위치에서 최선을 다하는게 최선 아닐까..
아무튼 4학년 1학기도 파이팅...
생각해보니 기술 블로그 이전했습니다
https://alsgud8311.github.io/
놀러오세요^_^
시간 날 때 종종 벨로그에 옮겨놓을 예정..
advanced AI models for image to video conversion, Image To Video creating natural and realistic motion effects that bring your static images to life.