뜬금없이 뿜뿜해버렸따!
원래는 외주프로젝트에 대한 리팩토링을 적으려고 했는데
갑자기 그동안의 나에 대해 적어보고 리마인드하고 싶은 욕구가 뿜뿜해버렸따!! 으아악!!!
아무도 궁금해하지 않을 수 있지만,
지금까지 살아온 나의 행적?!들을 되돌아보고
앞으로의 방향도 구체적으로 잡아가고 이렇게 생각나는대로 글을 적어본다.
그동안의 나를 돌아보며,
그동안 블로그에 나에 대한 걸 적은 기억이 거의 없는 듯하여
오늘은 지금까지 살아온? 나를 돌이켜보고
어떻게 하다가 Semi 외주를 맡았는지까지 적어보려고 합니다.ㅎㅎ
처음 개발을 하게 된 건 3학년 2학기 어느 날이었죠..
때는 대학교 3학년 2학기
개발 경험이 아예 없던 저는
대외활동을 하고 싶어서
여러 동아리나 프로젝트에 "나도 할래요" 라면서 수많은 지원서를 냈었다.
그러다가 최종 면접까지 합격했던
서울시 산업진흥원?SBA에서 진행하는 개발자 양성 교육을 받는 기회가 왔고,
곧바로 시작했다.
안드로이드 개발자를 1순위로 하였으나,
생각치도 못했던 백엔드 과정을 들어야 한다는 소식에
불안하고 막연하고 무섭기만 했으나,
여러 밤샘과 구글링 (이 때부터 왜 개발자는 구글이 없으면 살지 못하는가를 뼈저리게 느꼇다. 지금 챗GPT....)
으로 개발이란 거에 아주 쪼금은 느낌 정도 잡았던 것 같다.
그러고 협업 프로젝트를 하면서 잠깐이나마 서비스 출시까지 했다.
허나 4학년이 되고 어떤 걸 더 해야하는지 몰랐던 저는 졸업프로젝트만 하고,
흐지부지 어영부영 공부 조금씩하면서 졸업을 했다.
본격적인 취업 스트레스... 허나 금방 탈출했다.
취업 스트레스는 4학년 2학기가 되면서 시작되었고,
졸업 전부터 이미 많은 곳에 지원서를 넣고 코테도 보고 면접도 보면서
많은 탈락과 쓴맛을 봐야했으나,
아주 고맙게도 나를 불러주는 곳은 있었다.
채용연계형 인턴으로 6개월 인턴활동 후 정규직 채용을 하는 M사였고,
바로 감사합니다. 하면서 바로 가지는 않았다... ;;;
첫 회사기에 섣불리 판단하고 싶지 않았는데...
나의 불안한 마음 끝내
3일 뒤에 다니겠다는 의사를 표했고
그곳에서는 나를 좋게 봐주셨는지 기다리고 있었다면서 바로 ㅇㅋ해주었다.
스프링 너를 첨 본 순간 나의 머리는 하얘졌다.
비록 졸업하기 전까지 Node.js 백엔드 개발자로 희망했으나,
졸업 전 취업한 곳은 우연치 않게도 코프링이었고,
그 뒤로 인턴으로 6개월간 일하면서
왜 다들 스프링 스프링 할까?라는 의문이 조금씩 이해해질 때쯤
인턴 기간은 끝나게 되었고, 정규직 오퍼를 받았으나,
일하면서 공허한 느낌이 나에게는 너무나 크게 느껴져서였던걸까?!
공허함은 점차 미래의 불안함으로 느껴지고,
이대로 가다가는 기초공사가 부실한 건물마냥
어느 순간에 와르르 무너져 내릴 것 같다는 생각이 들었다.
스프링에 대한 기초적인 공부 및 객체지향적인 사고 부족, 자바언어와 코틀린 언어의 미숙함
이런 것들을 극복하면서 6개월간 주어진 업무를 해냈지만,
하면서도 단순 처리만 할 뿐
정작 내가 왜 그런 생각을 통해 왜 이런 코드를 짰는지에 대한 확신이 많이 없었다.
(그럴 수 밖에 없었던게 잘 모르고 썼던 게 가장 큰 이유같다.)
그렇게 거절의사를 밝히고 퇴사를 했다.
6개월 간의 경험
다녔던 회사는 인턴이라고 사내 프로젝트와는 무관한 프로젝트를 하지 않았다.
사내 프로젝트 개발에 투입되어서
처음에는 QA 담당으로 테스트 코드를 작성하고,
여러 기능목록, 기획 회의, DB 설계(ERD) 회의,
API 명세서 등 많은 경험할 수 있게 해주셨다.
지금와서 생각해보면
채용연계형이고, 사내의 모든 개발자님들과 소통하고 협업하여
같이 일할지 판단하는 걸 모든 분들이 정하기에
인턴이라도 프로젝트에 참여하도록 하셨던 것 같다고 추측....
종종 대표님께서는 가끔 인턴 3인방(저 포함 2명의 한 달 먼저 입사한 동기들)들을
불러서 많은 인사이트를 얻을 수 있도록 교육을 해주셨는데,
이 때 개발에 관한 여러 인사이트들을 얻을 수 있었다.
그 중에서도 도메인에 대한 이해를 가장 많이 강조하셨었다.
당시에는 그렇게 도메인에 대한 이해가 중요할까? 싶었지만,
퇴사 후 여러 책들을 읽어보면서
도메인의 중요성을 깨달았다...
(그 때로 돌아간다면 사내 프로젝트 관련 도메인(feat.복잡한 물류체인 관련) 마스터하고 개발했을거에요.. 죄송합니다..)
그렇게 퇴사 후
퇴사 후 몇 달동안 리프레시도 하고 <- 허허 한것도 없으면서 리프레시...ㅋㅋ
다시 마음을 다잡고 초심으로 돌아가서 공부를 시작했다.
6개월간의 나름 현업에서 일하면서 스프링에 대해 공부해보고 싶었고,
NodeJS(ExpressJs)에서 Spring으로 기술스택을 바꾸기로 했다.
이 선택으로 다시 재취업이 늦어지는 걸수도 있지만,
덕분에 많은 걸 배웠기에 후회하지는 않는다.
대학교 2학년 객체지향 수업 이후 자바는 보지도 않았기에...
자바부터 객체지향, 인프런 김영한님의 강의까지 보고
오브젝트, 객체지향의 사실과 오해(토끼책), 개구리책, JPA 관련 책, 관련 여러 강의들 등등.
책과 강의 공부만 주먹구구식으로 했던 것 같다...
지금 와서 돌이켜보면
더 빨리 프로젝트를 해볼껄이라고 생각이 든다.
프로젝트에 내가 그동안의 공부한 걸 즉각적으로 녹이면서
응용하면서 했어야 했는데 미루기만 했던 건 조금 후회된다...
앞으로는 그러지 말자!!
이러한 경험을 통해 나쁜 습관은 없애면서
점차 내가 앞으로 개발자로서 성장하기에 좋은 습관만 남겨서 더 빨리 성장하는 계기가 된다고 믿고
앞으로를 살아가면 된다! ㅎㅎ
아!! 2023년도에 가장 아쉬웠던 건
예비군으로 인해 듣고 싶었던 교육의 코테 날짜와 겹치면서 못하게 되었을 때였다.
이 때는 예비군을 미룰 수 있다는 걸 몰랐다... 바보... ㅠㅠ
나의 생각과는 조금은 다른 교육과정...(feat.하지만 생명연장은 가능)
그렇게 시간은 2024년이 된다.
2024년도 여전히 혼자서 공부하고 있었다.
근데 시간이 지나면서 조금은 나태해짐이 생겼고,
환경을 바꿔야 겠다는 생각이 많이 들었다.
올해 초 아무래도 취준하면서 겪는 힘든 부분은
심적인 부분도 있지만, 금전적인 부분도 존재한다.
알바를 하고 싶지는 않고, 나의 미래를 위해 투자하는 시간을 가급적이면 놓고 싶지않아서
여러 방법을 생각하다가
F사 주관하는 국비교육을 신청했다.
해당 교육을 신청한 가장 큰 이유는 온라인 + 기업의 비즈니스 문제를 함께 해결하는 기회인 FINAL 프로젝트였다.
그것만 바라보고 지원했다.
글을 쓰고 있는 지금도 다달이 겨우겨우 30만원정도 주는 교육비로 생명을 연명중이다.
교육을 듣는 중간 중간 많은 여러가지 프로젝트를 진행하고자 했으나,
계속 무산되는 경우가 다반사였다.
더불어 해당 국비교육 특성상 개발을 처음하는 분들도 다수였기에
템포가 달라서 나는 다름 템포로 진행하고자 하는 마음이 계속 컸다.
파이널까지는 기간이 오래 남았고,
마음은 초조해져갔기에
매주 한번 씩 인프런, Hola, 링커리어 등등 들어가면서
프로젝트 경험을 계속 모색했다.
우연치 않게 본 외주 공지
그러다가 문득
코xx에서 FE 개발자 양성 과정 중에 FINAL 프로젝트를 위해
백엔드개발자와 디자이너를 뽑는 공지를 보게 되었다.
그동안 프로젝트는 하지 않고 단순히 공부만 했기에...
그렇게 이제는 더 이상 뒤로 미루기!! 그만!!! 이라는 마음으로 지원했다.
무엇보다도 내 스스로가 포트폴리오에도 넣고 싶은 프로젝트를 해야겠다는 마음도 겹쳤기에
무작정 지원하고 면접까지 보게 되었다.
면접 때는 스프링에 대한 경험이 없는 것이 조금은 흠이 되었으나,
3학년 때 어렴풋이나마 출시했던 서비스
(이제와서 말하지만, 많이 부족했으나 현직 디자이너님의 캐리로 디스콰이엇 실시간 2등까지 올랐었다.)
6개월간의 인턴 경험을 높이 사셨는지 통과해서 할 수 있게 되었다.
공지에서는 엄청 많은 걸 바라는 듯하면서도 아닌 듯해서
잘 몰랐는데 이제와서 돌이켜보면 생각보다 많은 걸 바라지는 않았던 것 같다.
단순히 개발만 가능하다면 다 되었던 것 같다.
그렇게 시작된 외주 같지 않은 외주 프로젝트
5명의 FE 교육생과 나 포함 2명의 백엔드 마지막으로 디자이너 한 분해서
총 8명이서 6주간 프로젝트를 기획부터 완료까지 하는 외주 같지 않은 외주프로젝트를 시작하게 되었다.
(나름 소소한 용돈벌이는 되었다.)
기획을 모두 다 같이 해야하지만,
나는 최대한 FE 교육생들이 원하는 걸 들어주고 싶었기에 기획을 맡기고
추후 점검하는 방향으로 진행했다.
나는 다른 한분과 같이
CI/CD 구축과 배포 서버를 구축을 우선으로 진행했고,
그 동안 기획이 fix되는 걸 기다렸다.
하지만 계속 기획이 변경되었기에
같이 기획회의에 참여하고 좀 더 프로젝트를 이해하는데에 집중했다면,
더 좋았을텐데 라는 생각이 들었다.
실제로 개발자에게 중요한 건 해당 도메인에 대한 이해인데...이를 당시엔 조금 망각했던 것 같다.
그래서 그랬는지 마지막 주에는 이 선택에 대한 아쉬움과 FE 분들께 미안함 마음이 들었다.
3주간의 기획과 3주간의 개발
그렇게 3주만에 겨우겨우 기획은 fix되었고,
그 사이에 나와 다른 백엔드분은 여러 컨벤션과 방향성을 다 잡은 상태였기에 바로 개발에 들어갔다.
나는 문서화에 대한 중요성을 알기에
무작정 개발하기 보다는 추후 테스트 작성도 고려하여
API 명세서와
용어를 어떻게 하면 좋을지 모르겠으나. API Design?! 세부 명세서?! 기능명세서?라고 해야하나
그걸 우선시 적고 작업했다.
이는 추후 프론트분들에게 상당히 많은 도움이 되었다기에 뿌듯했다.
더불어 이 글을 쓰고 난 후 진행할 리팩토링 후에
진행할 테스트에서도 많은 도움이 될 거라고 확신한다. ㅎㅎ (다행, 기특)
생각보다 도메인은 그렇게 복잡하지는 않았다.
단순하게 생각하면 여행 계획 커뮤니티라고 할 수 있는 기획이 덮여있는 CRUD 구현?!이라고 할 수도 있다.
그렇기에 이 프로젝트뿐만 아니라
혼자서 REST API를 보내는 프로젝트를 진행할 예정이다.
(feat. 예매, 동시성 이슈가 있을 만한 프로젝트 혹은 기능을 혼자서 개발해보고 겪을 필요가 있다고 판단되기에)
그래도 API명세서를 보면 40개의 API가 나왔다.
깨알 모자이크 허허 혹시 몰라서?! ㅎㅎ
프론트분들이 백엔드와 같이 협업해본 경험이 없기에
문서를 작성했고, 이를 바탕으로 의논하고 설명해줬다.
나중에 프론트분들이 이해하는데 많은 도움이 되었다고 한다. ㅎㅎ
아쉬웠던 건 프론트분들이 다들 바쁘셔서 문서 최신화를 조금은 신경쓰지 않았던 점인데..
왜 일했을 때 최신화를 자주 하라고 다들 그러셨는지 알 것 같다. ㅎㅎ
개발하면서 테이블 구조를 JOIN 테이블로 바꾼 것과
N+1을 막기 위해 FETCH JOIN을 사용하고
이 FETCH JOIN 사용 시점을 미리 땡겨서 메서드가 시작할 때 한 번에 조회하도록 하는 등
조회 관련된 부분에 많은 신경을 썼다.
하지만 확실한 지표나 수치가 없어서 나중에 서비스화된다면 어떻게 될까 라는 의문들었다.
그렇기에 성능, 부하 테스트를 하는 듯 하다. (아직은 둘을 경험하지 않았기에 일단은 같이 적는다.)
그 필요성을 느끼기엔 적합했던 프로젝트였다.
- 좀더 자세히 설명하면 단순하게 테이블을 select할 때와 join해서 한번에 긁어올때 어떤게 좋을까?
- 이는 직접 지표를 통해 알고 싶었다.
3주간의 일정도 끝나고 개발은 완료했다.
그리고 정산까지.. (그 와중에... 10% 세그므...ㅠㅠ)
하지만 시작은 지금부터
해당 프로젝트가 끝나고
개발 일정에 쫓겨서 포스트맨으로 밖에 테스트하지 못했다.
즉, 가장 중요한 테스트를 작성하지 않았다.
더불어 구현에만 급급한 나머지 코드들도 많은 걸 놓친게 보였다.
(유지보수 관련 좋지 않은 코드의 냄새가 풀풀 난다.)
그렇게 끝내고 일주일 간
자바/스프링 개발자를 위한 실용주의 프로그래밍 이라는 책을 다 읽고
3장 테스트는 노션에 요약하지 않았지만, 다른 부분까지는 다시 한번 읽으면서
요약하고 프로젝트에 적용할 만한 걸 간추렸다.
지금까지 읽었던 책들의 내용이 저 책에 녹아있는 듯하다.
더불어 부족했던 무언가를 긁어주는 느낌이 들었다.
책을 읽으면서 너무 좋아서 피식 웃었던 것 같다.
(이 책을 왜 이제야 읽을까 하면서...)
무튼 그래서 지금부터가 시작이라고 생각한다.
전에는 개발하고 끝!!
이랬지만, 이 또한 나의 나쁜 습관 중에 하나라고 생각한다.
내가 꼭 회사의 취업을 위해서가 아닌 회사에서 최소 1인분은 하는 개발자가 되기 위해서는
여기서 끝내는게 아니란걸 잘 알기에
이제부터 리팩토링부터 테스트 더 나아가 앞서 필요성을 느꼈던 성능테스트, 부하테스트까지 해서
프로젝트를 점차 디벨롭할 예정이며 그 사이에 생기는 여러 일들을 블로그에 이렇게 주저리주저리 적어보려고 한다.
앞부분을 너무 많이 적느라 정작 중요했던 외주 관련 내용이 많이 안 써진듯 하지만,
간략하게나마 있었던 일들을 적었던 것 같다.
마지막으로 긴글 읽어주셔서 감사합니다. ㅎㅎ
'외주' 카테고리의 다른 글
[외주] 트래블록 프로젝트 리팩토링 회고 (1) | 2024.08.23 |
---|---|
[외주] 리팩토링 방향성 (0) | 2024.07.10 |