그냥 사는 이야기

2022년 회고록 - 국비지원 , 포스코 장애인 디지털 아카데미 수료 후기(feat. 1년 반 도전을 마치며)

TerianP 2022. 12. 23.
728x90

사실 나는 회고록 이란 것을 별로 좋아하지 않는다. 이는 회고록 이라고 쓰게되면 정말로 그만큼 시간이 지나갔구나...라고 스스로 인식해버리기에 그만큼 아쉽기도하고 이상하기도 하고 기분이 미묘하기 때문이다.

그럼에도 올해는 적어도 2022년에 대해서 만큼은 회고록을 작성해야겠다는 생각을 하였다. 지난 회사로부터 약 1년 반의 시간 동안 '개발자'라는 직업에 도달하기 위해서 도전해왔다. 나름 열심히는 해왔다고 생각한다. 조금의 자랑을 덪붙이자면 지난 시간동안 3일 이상 코딩을 쉬어본적이 없었다. println 이라도 쳐야한다는 마음으로 주중에도 주말에도 카페에 나가서최소 한번은 코드를치고 결과를 보곤 했다. 물론 그만큼 부족한 것도 많았다. 기본기의 부족, 자료구조에 대한 이해부족, 알고리즘 지식 부족...사실 지금도 아는 것보다는 부족한 것이 더 많다고 생각한다. 때문에 이렇게 글을 쓰는게 부끄럽기도 하다. 그래도 올해 내가 경험한 것들에 대한 느낌과 1년 반의 도전의 결과에 대한 순수한 감정들을 적기에는 지금이 아니면 안된다고 생각했다.

그럼 시작하겠다.

1. 국비 지원 : 중앙 HTA Java + SpringBoot 과정 ⇒ 02월 ~ 08월

기본적인 Java 언어에 대한 내용과 Servlet, JSP, Spring 과 SpringBoot 에 대해서 공부하였다.
아마 공부한 거의 대부분의 것들을 블로그에 정리한 것 같다.
사실 JS, CSS, html 에 대한 것들이나Servlet, JSP 에 대한 것들은 솔직히 많이 정리하지 못했다.
아마 이거 배울때가 5월? 쯤으로 기억하는데 귀찮기도하고…다른 개인 프로젝트에 더 많이 투자했기 때문이었던 것 같다.

적어도 Spring 에 대해서는 자세히 배울 수 있었다. 물론…
다만 아쉬웠던 것은 SpringBoot 에 대해서는 엄청 짧게 1주? 정도했고, JPA 는 배우지 못 했었다.

학원에서 조별 프로젝트를 약 3번정도 경험했는데

첫번째는 JFrame 를 기반으로 한 배달 프로그램

무려 회원가입, 메뉴 정하기, 주문하기, 주문 내역 조회 등등 정말 다양한 기능이 들어갔었다.
뭣보다 같은 조에서 퍼블리싱을 배웠었던 멋진 누님이 계셨었고, 또 디자인에 관심이 많은 분도 계셔서 나는 비교적 쉽게? 따라가기만 하고 기능만 구현하는데 집중할 수 있었다.
자세히는 기억 안나는데 아마 회원 가입쪽과 주문자와 가게의 주문 정보 조회를 담당했었던 것으로 기억한다.

둘째는 JSP, Servlet 을 기반으로 한 중고거래사이트!!

망해버렸던 채팅 프로토타입이 등장했던 프로젝트였다. 사실 중고물품을 올리고 나서 거래를 위해 일정을 잡고, 가격을 조정하고 하기 위해서는 당연하게도 ‘댓글’ 기능이 필수적이다.
처음에는 사다리타기의 저주로 인해 고물품 상품 판매 페이지를 맡게 되었었다….그러다가 문득 판매 페이지에 얼마나 많은 css 가 들어가며 얼마나 많은 html 을 수정해야하는지 생각했고, 이건 아니다 싶어서 다른 방법이 없나…하고 의견을 띄웠다.
사실 이때 댓글 기능을 넣을지 아니면 채팅 기능을 넣을지 아니면 둘 다 넣을지 이야기를 많이 했던 것 같다. 다만 두개 모두 넣기에는 시간도 많이 부족했기에 결국 좀더 이뻐보이는? 채팅 기능을 넣게 되었다.
이때 모두에게 저 채팅 할래요!! 라고 강하게 어필했고 결국 정말 감사하게도 나의 억지가 받아드려졌다(이전부터 채팅에 관심있다는 걸 강하게 어필했던게 효과가 있었던 듯…)
그렇게 개발하다가 다시 난관에 부딪히고 마는데 바로 Servlet 과 JSP 만으로는 실시간 채팅 구현이 아주아주 힘들다는 점이었다. 당시에도 WebSocket 을 찾아봤었는데 결국 Spring 없이는 구현하지 못했다.
그렇다고 그때 ‘나 채팅 못 하겠어요’라고 이야기하는건 팀원들에게도 민폐고, 아닌 것 같아서 ‘실시간’과 가능한 비슷하게 채팅을 구현 할 수 있는 방법을 찾아보았다.
그렇게 찾은게 ‘나동빈’님의 실시간 채팅 만들기 였다.

  • 다시 한 번 나동빈 선생님께 감사의 인사를 올립니다. 급할때마다 도움을 주시는 나의 구원자…

https://www.youtube.com/playlist?list=PLRx0vPvlEmdAVcSdYgqjJ64A7ggHhorU_

JSP Ajax 실시간 익명 채팅 사이트 개발하기 강좌

www.youtube.com

유튜브 강의를 보면서 내가 구현하고자 하는 모양의 채팅의 기본을 구현할 수 있었다. 그러나 완벽하게 똑같이 해서는 현재 프로젝트와 맞지 않은 부분이 많았다.

첫째로 우리는 ‘회원 가입’ 대상을 기본으로 채팅 기능을 제공한다는 점.
둘째로 모든 회원들이 ‘구매자’ 이자 ‘판매자’ 가 되기 때문에, 모든 사람들이 상품 페이지에서 채팅하기 버튼을 눌러서 채팅을 보내고, 판매자는 해당 채팅 내역을 받을 수 있어야한다 ⇒ 이 부분은 당근마켓의 채팅을 생각하면 쉽다

요렇게 기본 구현 요소 2가지를 확실하게 정해 놓고, 채팅을 뜯어고치기 시작했다.
여기서 부터는 정말, 지금 생각해도 어떻게 그렇게 만들 수 있었는지 그저 스스로가 대단하기도하고 멍청하기도하고…ㅋㅋㅋㅋ
당시에 ‘실시간 채팅’ 을 어떻게 구현할지가 정말 고민이었다. 특히 websocket 을 쓸 수 없는 상황이었기에 ‘다른 방식으로 실시간성’을 구현해야했다. ‘실시간’ 이란 무엇일까? 사전에서는 입력된 데이터를 순식간에 처리하여 그 즉시 출력하는 상태. 또는, 네트워크로 연결된 컴퓨터 사이에 입출력이 거의 동시에 이뤄지는 상태라고 정의한다.
나는 여기서 네트워크로 연결된 이란 부분을 제외하고, 컴퓨터 사이에 ‘입출력이 거의 동시에 이뤄지는 상태’ 라는 점에 주목했다.
이 프로젝트에서 실시간 채팅 기능은 DB 에 저장된 채팅 내역을 거의 실시간으로 뽑아오는 행위를 통해 ‘채팅의 실시간성’을 구현하였다.

즉 A 라는 사용자가 Chat 이라는 채팅방에서 채팅을 보냈을 때 해당 채팅 내역을 Chat 채팅방과 관련된 테이블에 저장이 된다. 그러면 서버에서는 이렇게 채팅이 올라온 것을 감지(확인)하여 DB 에서 해당 채팅방의 채팅 내역 중 가장 마지막 채팅 내용만을 뽑아와서 프론트로 보내게 된다. 프론트에서는 받아온 채팅 내용을 B 사용자에게 보여준다.

이때 감지하는 방법이 중요하다. 먼저 static 변수를 하나 만들고, A 혹은 B 사용자가 채팅방에 들어왔을 때 static 변수에 해당 채팅방의 전체 채팅의 갯수가 저장한다. 이후 채팅이 발생했을 때 채팅을 발신한 쪽에서는 static 변수 값+1 을 하고, 해당 채팅 내용을 프론트단에서 보여준다. 반면 수신하는 쪽에서는 약 5초에 한번씩 DB 에 전체 채팅 갯수에 대한 쿼리를 실행하고 만약 현재 static 변수에 저장된 값과 다르다면 새로 추가된 채팅이 있다는 것으로 판정, static 변수 값 +1을 한 후에 가장 최신의 채팅 내역만 불러와서 프론트에서 보여준다.

결과적으로는 나름 실시간 비스무리하게 채팅 기능이 구현되었다. 정말 말 그대로 비스무리하게. 사실 이 로직에는 엄청나게 커다란 오류가 2가지가 있었다.

첫째로 서버에서는 계속해서 특정 변수를 확인해야한다. 이는 서버에서는 A 라는 사용자가 채팅을 쳤는지 혹은 B 라는 사용자가 채팅을 쳤는지 모르기 때문이다. 다만 채팅을 쳤다 라는 행위는 결국 DB 의 해당 채팅방 테이블에 필드가 1개 추가된다는 뜻이다. 발신하는 쪽에서는 당연히 ‘내가’ 발신했기에 static 변수를 쉽게 +1 할 수 있지만 문제는 수신하는 쪽이었다. 어떻게하면 채팅의 갯수가 늘어난 것을 알 수 있을까하다가….그냥 무식하게 5초마다 한번씩 DB 에 쿼리문을 날리는 방법을 취했다. 어쨌든 그렇게 날아간 쿼리를 통해서 채팅방에 있는 채팅의 갯수를 확인할 수 있고, 값의 변화가 생기면 ‘당연히’ 새로 추가된 채팅이 있는 것이기에 해당 채팅 내용만 불러와서 보여주면 되는 것이다.
망한 채팅 기능, 잘못된 프로토타입 기능 이라고 하는 이유를 이제 모두가 알 것이다. 지금 생각해보면 다시 느끼는 건데 정말 무식하고 위험한 방법이 아닐 수 없다. 정말 단순한 프로젝트이고, 사용하는 사람이 없다는 가정하에 가능한 것이지 그게 아니라면…생각만해도 겁난다.
둘째로 이건 사실 첫째에 이어서인데, 당연히 이런 로직으로는 N:M 의 채팅은 어렵고(하면 안되고), 동시에 채팅하는 사람이 많아질 수록 문제가 발생한다. 실제로 잠깐 테스트하면서 디버깅 할 때 초반에는 셀 수도 없이 많은 버그가 발생했었다. DB 조회 오류, 조회 시 버벅임, 일부 채팅 내용만 조회되는 경우, 채팅 내용이 2번씩 조회되는 경우 등등….물론 후반에 가면서 열심히 수정했고, 발표 할 때는 더 깔끔하게 수정되어서 그래도 위에서 설명한 것보다는 훨씬 나아진? 기능을 가졌었다.
3가지 프로젝트 중에서 사실 가장 어려웠고, 가장 재미있었던 기능이었다.

이는 ‘어떻게 구현할 것인지에 대한 고민’과 ‘무엇이 부족한지에 대한 확인’을 모두 할 수 있었던 프로젝트였기 때문이다. 사실 그전까지는 기능 로직에 대한 고민이 거의 없이 그냥 배운대로? 만드는대로 만들었던 것 같다. 당연하게 DB 에 연결하고, 당연하게 DTO 를 만들고….그렇게. 그러나 이때는 이전에는 배운 적 없었던 새로운 기능을 개발해야했고, 어떻게 하면 그것을 만들 수 있을지 정말 많이 고민했던 것 같다. 어디에서 어디로 데이터가 이동해야하고, 어디서 어떤 기능이 동작해야하고 하는 모든 기능 로직에 대해 스스로 고민하고 생각할 수 있었다. 또한 나의 부족한 부분, 특히 알고리즘 적인 부분이나 지식적인 부분이 부족하다는 것을 느꼈던것 같다. 단순히 기능 구현만 되면 끝나는 것이 아니라 내가 돌아갈 것이라고 생각하고 만들었던 기능이 정말로 딱! 내가 원하는 대로 ‘동작만’ 하는 기분…?

딱! 이런 느낌


정말 저런 느낌이었다. 온몸이 삐걱거리고, 부러져가는데 ‘날아가는’ 기능은 되는 그런 무서운 코드였던 것이다. 그래서 이때 단순히 동작만 하면 되는게 아니구나. 정말 정교하게 로직을 구상하고, 생각하고 고민해서 짜야하는구나라는 것을 뼈저리게 느꼈고, 동시에 저런 상황에서 뭔가 특정 알고리즘을 바탕으로 접근해서 코딩했으면 뭔가 되지 않았을까…? 하고 생각했기에 알고리즘에 대한 관심이 높아졌다.

마지막으로 취업 정보 제공 사이트 GoodJob

파이널 프로젝트로 사람인 API 와 연동하여 만들었다. 시작할때는 무려 우리가 만들 취업 제공 사이트에 우리의 이력서와 포트폴리오를 올려서 보여주자 라는 기대와 목표와 욕심으로 가득채워서 프로젝트를 시작했다.
내가 담당했던 부분은 회원 가입, 소셜 로그인, 취업 정보 페이지로 총 3가지 이다. 물론 이것 외에도 여기저기 돌아다니며 바보짓을 많이 했다.
이전 프로젝트 보다는 오히려 어려운 편은 아니었다. 다만 소셜 로그인을 처음 접했기에 OAuth2 와 SpringSecurity 에 대해서 공부하는데 오래 걸렸던 것 같다. 이때 담당하는 부분을 정말 잘 선택했다고 생각이 되는게 덕분에 지금까지도 소셜 로그인쪽은 개인 프로젝트에도 정말 유용하게 써먹고 있기 때문이다.
이 외에도 회원 가입 시 이메일 확인, 비밀번호 찾기 시 이메일로 임시 비밀번호 발송 등 기능을 맡아서 구현했다. 당시에는 프로젝트에서 네이버 이메일과 연동해서 사용했는데 처음에는 기존에 만들어두었던 mail.hjproject.kro.kr 과 연동하려 했었다. 이 부분은 꼭! 나중에 개인 프로젝트로 사용할 예정이다.

조금 부끄러운 부분은 CSS 와 html 을 정말 못하는 편이라 기능은 거의 다 해놓고, 결국 CSS 는 다른분께서 전부 만들어주셨다. 때문에 나도 용병 삼아 그 분이 맡으셨던 파트에 들어가서 이것저것 만졌지만 사실 그 분이 가장 힘들었고, 어려웠고, 시간도 많이 쓰셨다고 생각된다. 현재 git 에 올라간 내용물 중에서 메인 페이지, 회원 가입 페이지, 검색 결과 등은 모두 그 분 작품이다.

다시 한 번 감사드립니다.

2. 포스코 장애인 디지털 아카데미 1기 수료 ⇒ 10월 ~ 12월

과정에 대한 자세한 내용은 검색!!
사실 앞으로 오늘 회고록을 쓰게 된 가장 큰 이유이고, 정말 솔직하게 국비에서의 6개월보다 여기서의 2개월이 훨씬 값어치 있었다고 생각한다. 물론 6개월이 있기에 2개월이 의미 있었겠지만.

나는 국비를 끝마치고, 국비를 같이 들었던 사람들과 함께 취업 스터디를 하다가 10월에서야 들어가게 되었다. 사실 들어간 것도 함께 스터디를 하던 사람들이 하나 둘 취업을 되는걸 보면서 급해서 그랬던 것 같다.
처음에는 공단 쪽에 해당 프로그램이 내년에도 되는지 물어보려고 전화를 했었다. 그런데 어떻게 이야기가 흐르다가 10월에 그대로 들어가게 되었다. 아, 이력서와 자기소개서를 보내달라고 요청하셔서 보냈더니 나에게 말도없이 교육을 듣던 모두에게 털려버렸던 것은 덤ㅠㅠ

여튼 솔직히 처음 들어갈 때 까지만해도 어느정도 자신이 있었다. 나름 열심히 공부했고, 이것저것 만들어봤던 것도 많고 해서 ‘까짓거…’라고 생각했던 것 같다. 그러나 첫 날 수업을 들으면서 ‘와…여기 수업 정말 대박이다’라는 ‘큰일 났구나’ 라는 생각과 마주했다.
이는 3가지 이유가 있었다.
먼저 들어가자마자 구 교수님께서 강의하던 내용이 SpringSecurity 에 대한 것이었다. 근데 대충 설명하고 넘어가는 강의가 아니라 Security 의 엄청 자세한 내용과 구조, 흐름을 설명하고 있었던 것이다. 솔직히 하루종일 그냥 앉아만 있었다.
두번째로는 바로 옆자리에 앉아계시던 형님 때문이다. 강의 중간 어버버하면서 쉬고 있는데 옆자리에 계시던 형님이 리엑트로 개인 프로젝트를 하는 것을 보았다. 그때 일단 1차적으로 ‘이 사람은 뭔 사람이지? 여기 벡엔드반 아닌가?’ 하고 생각했었다. 이러한 생각은 수업때도 계속 이어졌는데 교수님이 물어보는 모든 질문에 대하여 거의 완벽에 가까운 답을 내놓는 사람이 그 형님 이었다. 당시에 그것들이 나에겐 진짜 말도 안될 정도로 멋있게 느껴졌고, 닮고싶다 혹은 배울게 많겠구나 라고 생각했던 것 같다.
마지막으로는 JPA(사기당했기) 때문이다. 사실 들어올 때 JPA 를 배우고 있다는 것을 어렴풋이 들었는데 그때 물어봤을 때 분명 ‘이제 아주 초반이야 들어와서 충분히 따라갈 수 있어’ 라고 들었는데…그래 따라갈 수는 있었다. 그런데 절대 초반은 아니었다. 들어갈때까지만 해도 나는 JPA 를 전혀 몰랐고, 어떻게 쓰는지 들어만 봤을 뿐 전혀 이해를 못하고 있었다. 그런데 들어가보니까 왠걸 JPA 교재로 교육을 진행하고 있었다. 당연히 주된 내용은 JPA 였고, 이전에 들었던 Security 에 대한 것은 중간에 회원가입 후 로그인 때 어떻게 하는지를 설명하기 위함이었다고 한다.
블로그에 10월 전반에 JPA 에 대해서 공부한 내용을 올렸던 이유는 바로 이 때문이다.

그리고 나서 다음날에는 조 교수님 강의를 듣게 되었다. 그렇게 처음 들었던 강의 내용이 docker 로 FTP 서버 만들기였다.
사실 Linux 는 이전 회사에서 열심히 다뤄봤었고, 최근에도 채팅 프로젝트를 AWS 에 docker image 로 만들어서 EC2 에 올려봤었기에 오히려 JPA 수업보다는 들을만 했다. 여기서 너무나 감사했던 것은 교수님께 내가 마음껏 사용할 수 있는 리눅스 서버를 받을 수 있었다는 점이다. 이때 교수님의 수업을 들으면서 docker 와 kubernetes 의 개념에 대해서 많이 배울 수 있었고, 실습도 마음 껏 할 수 있었다.
블로그에 10월 후반에 쿠버네티스에 관한 내용이 올라왔던게 바로 이런 이유 때문이다. 참고로 글을 10.22 에 올라갔지만 정말 수업이 끝난 후 6시면 바로 카페로 달려가서 JPA 강의도 안 듣고 계속 kubernetes 만 두들겼다. 어떻게든지 해보고 싶어서ㅋㅋㅋ

내가 들을 때는 강의는 이렇게 구 교수님의 JPA 및 Java, SpringBoot 강의와 조 교수님의 서버, 클라우드, JPA, DB 강의를 번갈아가면서 수업 했었다. 적어도 10월 내내 저렇게 진행되었다.
참고로 정말 건대 교수님들이 오셔서 강의하셨었다. 정말이지 찐행복…

내가 들을 때는 강의는 이렇게 구 교수님의 JPA 및 Java, SpringBoot 강의와 조 교수님의 서버, 클라우드, JPA, DB 강의를 번갈아가면서 수업 했었다. 적어도 10월 내내 저렇게 진행되었다.
참고로 정말 건대 교수님들이 오셔서 강의하셨었다. 정말이지 찐행복…

대충 2주간의 기록.jpg 여기에서는 5차시도 까지만 나와있지만 당연하게도 실제로는 과장 조금만 보태서 50차 시도 정도까지 있었다고 생각한다. 진짜 엄청…오래 걸렸다.
그래서 제목도 기존에는 도커 && 쿠버네티스 도전하기에서 어느 순간 화가나서 ‘부셔버리기’로 바꾸었다. 2주 내내 저거에 몰두하느라 화가 많아졌다.

쿠버네티스를 설치하고 구동하기 위한 노력...

뭐…어쨌든 결국에는 쿠버네티스 설치에 성공했고, 2주의 노력은 후일 최종 프로젝트때 정말 많은 도움이 되었다.

그렇게 JPA와 쿠버네티스와 도커로 10월 한달을 보내고, 11월에는 최종 프로젝트를 진행하게 되었다.
사실 이 11월은 내가 지난 1년동안 했던 모든 프로젝트와 모든 시간들 중에서 단언코 가장 힘들었다고 생각한다.

백엔드 과정의 총 인원은 8명으로 4명, 4명으로 나눈 A조에서 나는 조장을 맡았다. 사실 내가 조장을 맡을 만한 실력도 아니었고, 원 조장도 다른 사람이었다. 바로 그 분이 내 옆에 계시던 엄청난 능력을 갖고 계신 형님이셨다. 다른 조의 조장님은 역시나 엄청난 능력을 갖고 계신 형님이었다(참고로 이 두 분은 상당히 유명한 SI 기업쪽으로 취업되셨다. 역시 능력있는 사람은 다르다)
나는 내 옆자리에 앉아있던 형과 한 조가 되었다. 솔직히 조가 만들어졌을 때 오히려 기뻤던 것 같다. 같이 조를 짜고 프로젝트를 진행하면서 정말 많이 배우고 알 수 있을 것이라고 생각했기 때문이다. 그러다가 형님의 사정으로 인해 프로젝트 시작 첫 주를 통으로 빠지시게 되었고, 반 자동으로 내가 조장이 되었다. 사실 나 말고 다른 2명이 조장이 되었어도 충분히 좋았을 것이라고 생각한다. 오히려 나보다 훨씬 잘했을 것이라고 생각한다.

프로젝트 주제는 의외로? 간단했다. ‘KokeeTea 프렌차이즈를 대상으로 한 매출관리시스템 개발’이었다. 간단한건 아닌가…?
주제는 뭐…그렇다치고 어려운 것은 나머지였다. 개발 전 과정을 진행해야 했다.
먼저 개발 계획서, 제안서, 요청서부터 시작해서 중간 보고서, 최종 보고서, 발표용 ppt 까지 전부 모두 작성하고 만들면서 개발을 진행해야 했다. 이제와 고백하자면 실제로 코드를 짜고 개발을 하는 것보다 저렇게 문서 만드는게 정말로 몇 배는 더 어려웠다. 특히 첫 주에 무려 제안서, 요청서를 모두 작성해야만 했다. 사실 제안서까지는 왜 작성하는지 알겠지만, 요청서는 그냥 쓰라고 해서 썼었던 것 같다. 아마 내가 이해가 부족해서 그랬겠지

여튼 첫주에 제안서와 요청서 문서를 모두 작성해야만 했다. 와…정말이지 문서 작성하는게 이렇게나 어렵구나. 힘들구나 라는 것을 깨달을 수 있는 좋은 기회였다. 이때 많이 힘들었던 것 중 하나는 시스템 설계도라는 것을 직접 만들고 고민해보고 그리고, 그에 맞게 글을 쓰고 하는 것이었던 것 같다.

사실…처음에 구 교수님께 보여드렸더니 진짜 5분도 안되서 광탈 당했던게 너무 충격이었다. 물론 이제보면 그 그림은…뺨이라도 안 맞은게 다행인 정도로 해괴한 그림이었지만 어쨌든 당시에는 나름 수업이 끝나고 카페가서 10시까지 하고 또 집에서도 만들고 글쓰고 그리고 했던 것이었기에 너무 힘들었던 것 같다. ‘대체 내가 왜 조장을 맡아서 왜 이렇게 힘들지?’ 라는 생각도 들었었다. 그래도 어떻게든 한 주가 지나갔고, 결국 제안서와 요청서가 모두 만들어졌다.
사실 우리 조에 경영학과 형이 한 명 있었는데(이분은 금융권 쪽으로 취업, 비개발) 이 형이 정말 정말 많이 고생하셨다. 진짜 내가 말 그대로 개소리를 적어놓으면 이 형이 수정하고, 이상하게 그려놓으면 이 형이 그걸 수정하고 정말 대단한 형이었다. 참고로 최종 발표 ppt 도 이 형이 만들어주셨다. 형은 당시에 이미 취업을 끝낸 상태였는데 그럼에도 나와서 ppt 를 만들어주셨다.
혹시라도 이 글을 보게 되거든 정말 감사드립니다.

그렇게 첫 주가 지나가고 2주차 때부터는 개발, 오직 개발뿐이었다. 물론 그냥 개발은 아니었고, 구 교수님이 오실 때는 프로젝트 시연의 시간이었다. 프로젝트가 어디까지 진행되었는지 말로 설명하는게 아니라 일단 프로젝트를 실행시켜서 직접 시연하고 앞으로 어떻게 고쳐야하는지 들을 수 있었다.
사실 이때 시간이 많이 부족했다. 이는 2주차와 3주차에 걸쳐 오후내내 포스코에서 강사님이 오셔서 python 과 pandas, 크롤링, 데이터 분석과 관련된 강의를 들었다. 즉 오후에는 프로젝트와 관련된 개발을 전혀 하지 못 했었다. 물론 이때 배운것들이 이후 프로젝트에서 얼마나 유용하게 쓰였는지는…추후 따로 글을 작성하도록 하겠다. 너무나 감사하게도 이 수업을 기반으로 단순히 ‘매출 관리’에서 끝날 프로젝트가 ‘매출 관리 및 분석’ 과 RestAPI 를 기반으로 한 Flask - SpringBoot 의 결합이라는 정말 생각도 못한 프로젝트로 바뀌게 되었다.

2주차에는 짝꿍 형님이 돌아오시고, 경영학과 형님이 불참하게 되었다ㅠ.ㅠ 다른 조에서는 조장 형님이 코로나로 쉬게 되어서 다른 형님이 조장을 맡게 되었다(이 형님은 뒤에 다시 소개하겠다).
정말 다사다난한 2주와 3주였다. 솔직히 이때…정말 포기하고 싶었다. 이 시기에는 3시 이전에 잠든 적이 없었다. 정말로 10시에 수업을 시작하면 6시까지하고 다시 7시부터 카페에 도착해서 10시까지하고 다시 12시부터 3시까지하고…이걸 2주정도 반복했던 것 같다.
그에 비해서 개발 진척은 이상하게도 없었다. 오죽하면 교수님께 ‘너무 느린거 같아. 이거 오늘까지는 되어야하는데’ 라는 말을 들었다. 진심으로 포기하고 그냥 내가 혼자서 진행하던 웹 채팅 프로젝트나 마무리하고 그거 좀 더 발전시켜서 포트폴리오에 올리는게 낫지 않을까라는 생각도 했었다.
원래 해야하는 분량이 있는데 각자 사정으로 인해 뭣보다 내 부족으로 인해서 모두에게 제대로 일감이 분배되지 않았고, 결국 목표하던대로 개발을 진행할 수는 없었다. 특히 이 시기에 내가 많이 헤맸기에 지시하는 것도 이것 시켰다가 저것 시켰다가 하면서 조장으로서 부족한 모습을 많이 보였고 나와 동갑이던 친구가 가장 많이 고생했을 것이라고 생각한다.

그렇게 또 2주차 3주차가 지나가고 결국 4주째가 되었다. 11월 23일 개발이 마무리되었다. 이 날을 기점으로 눈에 띄는 버그만 수정할 뿐 더는 개발을 하지 않았다. 그런데 ‘개발’만 마무리였고, 아직 문서는 남아있었다. 결국 23일 밤을 새서 프로젝트 결과 보고서를 작성해야만 했다.
이후에 정말로 끝이라고 생각했지만 Flask 를 docker 로 올리는데 문제가 있었고, 이를 해결하기 위해 또 하루가 가버렸다. 이때 특히 옆자리 형님께 많은 도움을 받았다.

그렇게 프로젝트가 끝나고 곧바로 취업 준비가 시작되었다. 자기소개서를 쓰고, 포트폴리오를 고치고, 면접을 보고 정말 계속 그랬다. 그러다가 나는 운이 좋게 덜컥 취업이 되버렸다. 오묘한 기분이었다. 신기하기도 했고. 사실 퇴근하고 글을 쓰는 지금도 신기한 기분이다.

3. 개인 프로젝트

개인 프로젝트도dynamicMusic, wordCloud, 이미지 번역기, 채팅 프로젝트까지 총 개발 4개, 쿠버네티스 및 도커 관련 1개해서 총 5개 정도 했었다.
이 중에서 이미지 번역기 까지는 모두 국비 지원 중간에 했던 것들이고, 채팅 프로젝트는 국비가 끝나고 스터디를 하면서와 포스코 아카데미에 들어가서 화상채팅까지 마무리했다.

사실 이 부분에 대해서는 더 적을 것이 없다. 왜냐하면 이미...블로그와 git 에 다 정리되어있으니까!!
https://github.com/SeJonJ/java-game-DynamicMusic

GitHub - SeJonJ/java-game-DynamicMusic: Java 로 만드는 음악 게임

Java 로 만드는 음악 게임. Contribute to SeJonJ/java-game-DynamicMusic development by creating an account on GitHub.

github.com


https://github.com/SeJonJ/java-Word-Cloud

GitHub - SeJonJ/java-Word-Cloud

Contribute to SeJonJ/java-Word-Cloud development by creating an account on GitHub.

github.com


https://github.com/SeJonJ/java-Image-Translator

GitHub - SeJonJ/java-Image-Translator

Contribute to SeJonJ/java-Image-Translator development by creating an account on GitHub.

github.com


https://github.com/SeJonJ/Spring-WebSocket-WebRTC-Chatting

GitHub - SeJonJ/Spring-WebSocket-WebRTC-Chatting: SpringBoot WebSocket & WebRTC Chatting

SpringBoot WebSocket & WebRTC Chatting. Contribute to SeJonJ/Spring-WebSocket-WebRTC-Chatting development by creating an account on GitHub.

github.com

4. 회고록 정리

1) 국비 지원 후기

- 내가 다녔던 학원은 나쁘지 않았다. 특히 매니저님이 취업 지원을 위해 계속 연락을 해주셨다.
- 강사님과 수업에 대해서는 비밀 댓글로...!!
- 아쉬웠던 것은 코로나 시기였기에 대면 강의가 아니라 비대면 강의였다는 점. 왜 아쉬웠냐면 대면강의로 만나서 공부하고 스터디도 하면서 했으면 더 좋지 않았을까...싶어서
- 역시나 함께 프로젝트도 하고 스터디도하고 함께 했던 모든 분들께 감사합니다.

2) 장애인 포스코 아카데미 1기

- 최고의 교수님들. 최고의 수업. 실제로 대학교에 가서 수업을 듣는게 아니라면 이보다 더 질 높은 수업을 들을 수는 없다라고 감히 장담한다. 구 교수님, 조 교수님 감사합니다
- 사실 나중에 들어왔기에 오히려 경쟁자가 늘어나서 텃세부리고 할 법 했는데 그런거 없이 나를 편안하게 받아준 감사한 백엔드 프론트 엔드 분들 형, 누님, 친구들께도 진심으로 감사합니다.
- 특히나 우리 1기의 자랑 KB 형님ㅋㅋ. 이 형은 내 블로그 주소도 아니까 언젠가는 보지 않을까 싶은데....혹시나 보게 되거든 너무나 고마웠고 감사했다고 이야기하고 싶다. 특히 내가 많이 의지했고, 고민도 많이 털어놨고, 나를 정말 열심히 도와주고 지지해주고 해주었던 정말 감사한 형님이다. 인성만큼이나 젤 좋은 곳에 KB 개발자로 취업하셨다.
- 포스코에서도 지원을 많이 해주셨고, 특히 담당 대리님께서 면접동안 직접 우리를 데리고 다니면서 도와주셨다. 감사합니다
-공단 선생님도...많이 도와주시긴 했다 아마도
- 다시 한 번 말하지만 '수업은' 좋았다. '수업과 클래스 사람들은'
- 만약 이 프로그램에 참여할 수 있는 조건에 해당하고 IT 에 관심이 있다면 충분히 도전해볼만 하다. 또 말하지만 수업과 반 사람들은 최고였다. 개인적으로는 수업보다도 프로젝트도 보다도 다른 것이 더 힘들었다.
- 아쉬운점 실망한점 그런것들은 비밀댓글로 대신하겠다.
마지막으로 또 말하지만ㅋㅋ수업과 클래스 사람들은 정말정말 좋았다. 다시 한 번 감사드립니다

3) 더 도전하며

앞으로도 할 것들이 많다. 채팅도 더 많들어야하고, 업무와 관련해서 자바와 jquery 도 더 공부해야한다.
결국 도전의 끝은 또 다른 도전이니까.
모두 화이팅!

댓글