한때 개발자라는 직업의 붐. 꽤 높은 초봉과 비전공자까지 끌여들이는 인력 부족으로 개발자의 인기는 날로 증가했다. 하지만 2023년 내가 4학년으로 취업을 준비하는 지금. 해놓은거 하나 없는데 한창 치솟던 수요가 꺾여간다는 소문과 ChatGPT의 등장, 코드짜는건 누구나 하는 일이라는 소프트웨어공학의 모 교수님 말씀. 막상 개발자가 아닌 아키텍쳐나 다른 직군으로 취업하는 지인들을 보며 내가 개발자로 취업을 할 수 있을까? 내가 하고 싶은게 무엇인지 개발자가 어떻게 나아가야할지 어떤 개발자가 되고 어떤 공부를 해야할까에 대한 고민이 많다.
지금까지의 나를 돌아보고 앞으로 내가 나아가야할 방향을 정하고 한해를 시작하고자 이 주제를 소모임 첫글로 정했다.
컴퓨터공학과에 온 이유
나는 컴퓨터공학과 학생이다. 고등학교때부터 내 꿈은 컴퓨터공학과였다.
진로에 대한 고민을 3년 넘게 했는데 당시의 나는 내가 하면서 재미를 느낄 수 있는 일을 하고 싶었다. 대학은 스스로 못정하더라도 과는 스스로 정하고 싶었다. 그러나 나는 이과지만 물리,화학을 싫어했고 딴 생각하는걸 좋아했다.
당시엔(2014년) 컴퓨터공학이 인기가 없었지만 아무리 생각해도 어차피 내가 사는 세대안에서 사람들은 휴대폰, 컴퓨터를 가장 가까이 곁에 두고 생활할 것 같았고 머릿속에 떠오르는 여러 아이디어들, 앱, 머신러닝, 등 다양한 서비스를 구상할뿐만 아니라 직접 만들 능력이 있으면 좋지않을까? 라는 재미로 시작했던 것 같다.
(이 글을 읽는 분들이 컴퓨터공학과를 선택한 이유도 궁금해요.)
고등학교때 다양한 활동을 했다. IT 이슈에 대해 소개하고 생각을 정리하는 스터디, 내가 공부한 IT, 컴퓨터공학적 내용을 설명해주는 스터디를 했다. 물론 지금 4학년 전공자의 입장에서 보면 하찮긴 하지만 그래도 진로를 꿈꾼다는 사실이 마냥 즐거웠다. 대학가면 꼭 만들고 싶은 프로그램들을 생각하며 대학을 준비했다.
하지만 그 꿈을 실현하기에 당시 내 능력은 너무 부족했고 대학의 벽은 높았다. 외고를 나왔지만 내신은 5~6점대에 수능 성적까지 형편없었고, 수시 정시 모두 떨어진 나는 결국 당시의 꿈을 미루고 재수를 선택했다. 재수학원은 자유롭게 꿈꾸는 공간이 아닌 그저 수능을 준비하는 공간이었기에 너무 재미없었고 그런 현실에 집중하다보니 컴퓨터공학과를 향한 내 의지도 알게 모르게 꺾였다.
그렇게 재수를 해서 온 홍익대학교에 와놓고선 사실 개발, 컴퓨터공학과 관련된 공부를 하지 않았다. 마냥 놀기 바빴다. 자율전공 소모임에서 춤도 추고 게임에 빠져 시간을 보냈지만 사실 공부할 의지가 시작부터 없던것은 아니었다. 나름의 기대를 품고 들어간 첫 전공(?) 수업인 컴퓨터공학개론 수업에 들어가자마자 의지가 꺾였다.
사실 나는 축구를 엄청 좋아해서 고등학교때 가장 만들고 싶던 서비스는 축구 관련 인공지능 데이터 분석툴을 만드는 것이었다. 선수 한명 객체를 인식하고 각 선수가 상황에 따라 패스를 선호하는지 슛을 선호하는지, 드리블이라면 어느발, 어느방향으로 드리블하는지를 영상을 통해 분석하고 데이터화해서 얻을 수 있다면 하나하나 사람이 영상 분석을 하는것이 아니니 효율적이고 다양한 전술, 정보를 원하는팀에선 수요가 있지 않을까?라는 생각이었다.
하지만 1학년 첫 컴퓨터공학개론 수업에 들어간 교수님께서 작년에 나온 (당시 기준 2017년) 아래 프로그램을 소개해주었고 당시의 나는 큰 충격을 받았다. 아! 이미 존재하는구나.. 물론 내가 1년 일찍 입학했다고 해당 프로그램을 만들 능력은 없었겠지만 당시엔 재수하며 보낸 시간이 아깝다는 생각과 반대로 어차피 내가 열심히 공부해봤자 군대에 다녀오는동안 또 다른 기술이 나오고 내가 미리 새로운 아이템을 생각해봤자 결국 나의 공백기에 누가 생각해 이미 구현하겠지?라는 생각에 열심히 공부하기를 멈췄다. 마냥 삐뚫어졌다. 생각하기를 멈췄고 블록체인이니 인공지능이니 모든 것들을 무시하며 적당히 성적받고 군대에 입대했다.
코로나시대 개발자 붐
2020년 코로나가 세상에 등장하고 일상이 비대면으로 전환되면서 역으로 개발자에 대한 수요는 급증했다. 물론 그때의 나는 군 복무 중이었기에 해당 수요를 직접 느끼지는 못했지만 당시 취업을 했던 사람들의 이야기를 들어보면 지금과는 사뭇 다른, 요즘 취준생이 본다면 비교적 편한 ... 아무튼 수요가 많았다고 한다.
개발자의 몸값이 올라가고 말도 안되는 초봉, 비전공자의 유입. 컴퓨터공학과라고 말하면 어디가서 "취업걱정은 안하겠네~ "라는 소리만 들었다. 내가 오래전부터 선택한 전공, 내 비전이 맞았다는 점에선 뿌듯했지만 이상하게 불안했다.
사실 20년말, 조기전역을 하고 21년 8월 복학하기전까지 약 8개월의 시간이 있었다. 뭘 공부해야겠지 모르겠었다. 입대전엔 컴공이 아닌 자율전공활동에 집중해 컴퓨터공학과엔 아는 사람이 많이 없었고 아는 몇은 다 군대에 있었다. 비대면에 복학생도 아닌 군 휴학생이라 어느 커뮤니티에 들어가서 뭘해야할지도 모르겠고 혼란스러웠다. C랑 C++에서 포인터쪽이 중요하다는데 둘 다 제대로 기억도 안나서 무작정 C++복습을 시작했다. 전공책을 읽으면서 그냥 예제 따라하고 visual studio 프로젝트 만들어서 따라쳤다. 근데도 이상하게 불안했다. 8개월이란 시간을 C++만 공부하기엔 아까웠고 방향은 모르겠어서 무작정 에타에 글을 써봤는데 F인 나에겐 참 따가운 답변이 돌아왔다.
관심분야요..? 저때는 프론트가 뭔지 백이 뭔지도 모르겠고 개발공부와 알고리즘 공부가 별개라는 생각도 안했었다. 학원도 알아봤는데 가격이 상상 그 이상이었던 것 같다. 2-2 , 3-1에 배울 과목인 자료구조랑 알고리즘쪽으로 추천해달라고 했고 백준 알고리즘 강의를 구매했지만 막상 뭐 열심히 듣지도 ,,, 그냥 그저 그렇게 휴학을 무의미하게 보냈다.
성적? 능력!
21년 2-2 복학을 하고는 그래도 열심히 살았다. 비대면으로 수업을 듣다보니 녹강도 듣고 알바를 시작했음에도 시간이 남아서 그냥 알바끝나거나 저녁엔 스터디카페에 가서 공부를 했다. 특별히 다른 공부를 한건 아니고 그냥 학교 공부를 했다. 그 많은 시간동안 학교공부만 했냐하기엔 시간이 남아보이지만 리눅스나 푸티, visual studio같은 툴도 두려웠고 어려웠다. 디렉토리요..? 벡터요..?하던 나였기에 시간이 남는다는 생각은 해본적이 없다. 어쨌든 열심히하다보니 학점완화, 복학버프에 힘입어 첫 4점대를 맞았다.
이후엔 하이아크에 들어가서 1년간 알고리즘 공부를 열심히했다. 단순 이론 공부가 아닌 cpp로 코드를 짜고 제출하면 티어가 오르는게 수학문제 푸는 것 같아서 나름 재밌었다. 그러면서 1학기, 2학기 모두 학점도 만족스러웠다.
사실 열정은 자신 있었다. 교수님의 수업을 듣고 외우고 복습하는건 자신 있었으나 오히려 코드로 무언가를 개발하는게 가장 두렵고 어려웠다. 접해보지 못했다는 두려움이 제일 컸고 삐뚫어진 1학년때의 나와 달라진게 없었던 것 같다.
윤DB를 들을때 과제가 나오는데 스프링을 이용해 RestAPI를 만들어오라는 과제를 받았는데 뭔가 싶었다. Rest API는 뭐고 Maven, Jsoup? 모르는말 투성이었다. 그 당시 가장 답답했던거는 내가 뭘 모르는지도 모른다는거였다. 내가 뭘 몰라서 못하는지를 알면 구글링이든 친구한테 물어보든 교수님한테 물어보든 하겠는데 뭘 모르는지를 몰라서 질문을 할때도 '나 못하겠어 어렵다' 이런 무책임한 질문들밖에 떠오르지 않았다. 한달이란 과제 기한 중 2주는 뭘 모르는지를 찾는데 쓰고 1주는 모르는 내용을 공부했다. 다행히 그렇게 고난이도 과제는 아니어서 나머지 1주를 구현하며 보내며 과제를 마무리 했던 것 같다.
지금 생각하면 지난 1년이 참 아쉽다. 복학버프니 뭐니 열정에 힘입어 뭐든 할 때였는데 개발 공부라는 분야에 대한 생각이 인지가 없었다. 구체적으로 뭐라도 알아보고 시도했다면 조금 다르지 않았을까. 그러지 않았으니 정말 열정만 넘치고 아무것도 몰랐던 것 같다. 개발공부에 대한을 하나 둘 알아가도 뭐부터 어떻게 시작해야할지 모르겠었다.
종강을 하고 이대로는 방학을 다시 무의미하게 보낼 것 같았다. 몇 군데 개발 연합 학회, 동아리에 지원하고 스터디를 구해봤으나 생각보다 잘 구해지지 않았다. 자기소개서를 쓸 땐 내세울게 없었고 나는 너무 부족했다. 나름 학점이 괜찮다고 생각했고 알고리즘 문제를 열심히 푸는! 백준 티어도 괜찮다고 생각했는데 나는 그저 빈깡통이었다.
결국 성적도 중요하지만 내가 개발자로서의 능력이 없으면 나는 취업 시장에서, 내 진로에서 아무 의미 없는 사람이 될 거라는 생각이 들었다.
다행히 운좋게 졸업프로젝트 팀원들을 만나, 같이 방학간에 스프링 스터디를 성공적으로 마쳤고 지금 졸프는.. 좀 혼나긴했지만 뭐 그럭저럭 가고 있다.
나아가야할 방향
개발공부를 본격적으로 시작하면서 백엔드로 진로를 정하고 4학년이라 늦은만큼 빠르게 스프링공화국에서 부랴부랴 스프링 공부를 시작하고 있는 요즘 두 가지 말을 들으면 많은 생각이 든다.
1. 코딩은 누구나 하는거야!
소프트웨어공학 수업을 들으면 모 교수님은 '소프트웨어공학 책에 코딩 Implementation과 관련된 내용은 딱 두 줄밖에 안 나온다.'라는 말씀을 하신다. 또 이어서 이런 표를 배운다.
이 중에서 Implementation이 코딩과 관련된 부분인데 실제 소프트웨어를 구축할때 코딩이 차지하는 비중은 상당히 작고 누구나 하는 일이라고 말씀하신다. 코드를 짜는 일보단 설계, 디자인을 더 강조하듯 "코딩은 누구나 하는거야!"라고 말씀하신다.
(물론 나는 그 누구나도 아닌 것 같지만.)
2. ChatGPT가 코드 다짜주잖아!
자바 공부하고 스프링공부하고 알고리즘 문제풀다가 지칠때 만난 CNS 취업한 친구가 한 저 말을 들었들때 진짜 진 빠지고 힘빠졌다. 나는 뭘 위해 이렇게 공부하나.. 저 녀석 때문에 취업문 좁아지는거 아닌가.. 하고 이렇게 종종 현타 올때가 있다.
일단, 다행히 아직 멍청하다.
뭐 아무튼 ㅋㅋ 코드도 짜달라는대로 잘짜준다. KNN 알고리즘을 짜달라거나 크롤링 코드를 짜달라해도 잘 짜주고 입력을 차근차근 하면 백준 문제도 몇가지 풀어주는것 같다.
자, 이런 상황에서 개발경험 매우 적은 왕감자 4학년인 나는 어떻게 뭐를 해야할까?
설계를 중심으로?
코드 짜는게 제일 밑단의 일이라면 오히려 ChatGPT의 등장은 잘 됐다. 귀찮은 일을 덜어주는 것이니. 하지만 짜는건 안하더라도 결국 코드를 읽고 활용할 능력은 있어야하지 않을까. 어차피 코드를 직접 짜지 않아도 내가 할 프로젝트의 구조를 짜고 기능을 정의하는 것은 내가 해야할 일이다.
인프런 강의를 들으며 비즈니스 요구사항을 보면 아래의 정답을 보기전에 먼저 다이어그램을 그려보곤 한다.
이건 누가 대신해줄 수 없다. 결국은 보다 큰 그림을 그릴 줄 알아야한다. 아키텍쳐를 볼 줄 알고 그릴 줄 아는 능력이 필요하고 그러기 위해선 아는게 많아야한다는 생각이 들었다. 코드 한줄한줄에 집중하는것만큼 큰 그림을 볼 줄 알아야하는 것 같다.
기록하는 습관을 들여보자. ( 기술관련 글일수록 명확하게 )
사실 글쓰는걸 좋아하긴한다. 나름 네이버 블로그에 일기도 쓰고 내가 구조정연하게 써놓은 글을 다시 읽어보면 뭔가 뿌듯하다. 무튼, 그건 둘째치고 기록하는 습관은 중요한 것 같다.
소공 수업을 듣고 졸프를 시작하며 의사표현을 확실하고 명확하게 할 줄 알아야한다는 생각이 든다. 그러나 막상 머릿속에 있는 생각을 잘 말하는 것은 어렵다. 내가 배운 내용을 글로 정리하는것도 생각보다 쉽지 않다. 느낌은 아는데 표현하기는 애매한! 그런 부분들이 생각보다 많다.
글을 쓰면, 특히 남에게 보여질 글을 쓰다보면 내가 하는 말이 읽었을때 이해가 될까?하는 생각이 드는데 그럴수록 표현을 명확하게 하려고 하는 것 같다. 미사여구를 줄이고 최대한 내 의사를 명확하게 전달하려 글을 쓰다보면 표현도 명확해질뿐더러 내가 어떤 생각을 하고 있었는지 나도 몰랐던 내 생각을 알게 되는 것 같다.
또, 개발자로 살아가면 글 써야할일이 많다. 프로젝트를 진행하면 사람들이 생각보다 '문서화'에 투자를 많이 하는데 유명 프레임워크의 공식 문서를 봐도 그렇다. 자신이 만든 서비스를 사용자가 최대한 이해하기 쉽게 글을 써야할 것이다.
그렇기에 기록하고 글쓰는 습관을 들이는 것은 중요하다.
일단 뭐라도 해보자.
지난 겨울에 이어 이번 학기 시작하면서 가장 많이 느낀 것은 비슷한 분야에서 먼저 일하고 있는 선배, 동기들간의 커뮤니티가 있었으면 좋겠다는 생각을 했다. 4학년이라 졸프에 공부할 것도 많은데 이번학기는 조금 무리해서 일정을 잡았다. 개발 동아리, gdsc, 미뤄뒀던 취미등 하고 싶은게 많아서 주말이니 뭐니 바쁘게 살고 있긴한데 그럭저럭 버텨지니까 일단은.
다양한 사람들을 만나면서 여러 경험을 하고 새로운 꿈을 꾸고 싶다.
일단 아는게 많아야한다.
위와 같은 맥락이긴 한데, 오늘 (목요일) GDSC DevTalk 세미나를 듣는데 참 대단한 사람들이 많았다. 유튜브로 이전 세미나 영상을 몇개 보긴했는데 확실히 직접 들어보니 느껴지는게 많았다. 내가 모르는 기술들, 이름만 들어봤던 기술들도 많았고 사실 4학년이라는게 부끄러울정도로 모르는 얘기들도 많았다. 아는게 없으니 뭘 질문해야할지 모르겠었다. 그렇기에 질문을 하는 분들이 대단하게 느껴졌다. 아는게 있으니 이해를 바탕으로 생각을 하지 않을까?
결국, 아는게 많아야한다. 모든 기술을 마스터하고 쓸 줄 알아야한다는 얘기는 아니다. 다만, 새로운 기술을 듣거나 내가 잘 몰랐던 이야기를 들었을때 개발자로서 이해하고 반문할 수 있을정도의 지식을 가지고 있어야한다는 생각이 들었다.
또한, 아는게 많으면 생각의 범위가 커지는 것 같다. 진짜 나는 뚱딴지 같은 상상을 많이하는데 결국 내가 다 생각할 수 있는 범위 내에서의 상상이다. 하지만 새로운걸 알게되면 또 그를 바탕으로 새로운 상상을 많이하게 되고 그게 하나하나의 아이디어가 되는 것 같다. 작년 블록체인을 들었을때도 그랬다. 내가 모르던 패러다임을 알게 되니까 생각의 폭이 넓어지는게 느껴졌다.
초등학교때 들은 나사관련 썰인데 어디 책이었나,, 아무튼 상상할 수 없는 일에 관한 이야기인데 상상력이 좋다는 건 사실 아는게 많은 것 아닐까? 하는 생각이 들었던 썰이다.
나사의 대답과 학생의 상상의 차이는 상상력의 차이가 아니라 그들이 베이스로 하는 지식의 차이 아니었을까? 우리가 하는 상상도 결국 기존에 인지하던 지식을 베이스로 하는 것이다. 그렇기에 더 많이 공부하고 경험을 늘려야겠다.
그래서 결론은?
사실 주제도 그렇고 위에서 주저리주저리 거리면서 개발자의 방향성에 대한 대단한 결론을 내릴줄 알았는데 마땅한 결론을 내리진 못한 것 같다. 꽤 오래전부터 고민하던 생각들인데 명확한 답을 모르겠다. 대단한 결론을 기대한 분들한텐 죄송하다. 그냥 내 얘기만 적은 것 같은데 그나마 명확하게 드는 생각은 그저 하루하루를 열심히 살아보자라는 것과 비슷한 꿈을 꾸고 비슷한 진로를 가진 다양한 사람들을 만나며 배우고 생각을 나눠보자는 것이다. 그러다보면 다음 단계가 보이지 않을까, 그게 내가 이 소모임에 참가한 이유다. 백지에 그리듯 알게된 새로운 기술들을 정리할 수도 있고 느낀점을 정리할수도 있고 어쩌면 잡다한 생각끝에 도달한 뚱딴지같은 아이디어를 적을수도 있지만 꾸준히 기록하고 다른 사람들이 쓴글을 읽으며 아는걸 늘려봐야겠다.
'글을 써봐요 > 인사이트' 카테고리의 다른 글
어떤 개발자가 될 것인가 (2) | 2024.03.29 |
---|---|
GDSC DevTalk Seminar 후기(4/6) (0) | 2023.04.06 |