터벅터벅 나의 일상/회고 & 후기

3학년 2학기 회고

vㅔ로 2022. 12. 21. 03:37
728x90

3학년 2학기... 진짜 하고 싶은 말이 많다 ^^

3학년 1학기까지는 절평이었어서 첫 상대평가 수업이자 모든 강의가 대면 강의였던 첫 학기였다.

OMS로 하고 싶은 정도로 할 말이 많은데 하나씩 이야기 해보도록 하겠다.

1. 3학년 여름방학

무엇보다 많이 두려웠던 것은 캡스톤과 코딩부트캠프 수업이었다. 

그래서 여름방학 때는 캡스톤과 코부캠 준비를 많이 했던 것 같다. 수업을 같이 듣는 동기들과 코부캠 스터디를 만들고 약 5일동안 문제를 풀고 같이 문제 풀이법을 공유하는 방식으로 스터디를 진행했다.

그렇지만 중간에 알고리즘을 하다 번아웃이 와서.. 열심히 / 많이 공부는 못했던 것 같다.

 

캡스톤 준비는 분명 방학 때부터 했었는데, 처음에 우리가 냈던 아이디어가 구현하기에 애로사항이 많아서 중간에 엎다보니 결국 개발은 하나도 못하고 방학이 마무리되었다. 

끝까지 아이디어에서 많이 까였어서...ㅎ 캡스톤 할 때는 다른 앱들과 '차별화'되는 무기를 하나 가져가는 것을 추천한다. 안 그러면 우리 앱처럼 내내 아이디어에서 까이게 된다...

2. 캡스톤

캡스톤 이야기를 마저 해보자면, 이번에 백엔드로 참여했다.

재밌는 것은 내가 이번 학기에 백엔드를 처음 맡아봤다는 것이다. 배짱이 좋은 건지 아니면 안드로이드가 죽어도 하기 싫었던지 둘 중에 하나였던 것 같다. 안드로이드 개발에 줄곧 회의감을 갖고 있었다. 여전히 그렇지만, 내 프로그램을 만드는게 아니라 다른 사람의 프로그램을 이것저것 붙여 놓은 게 내 결과물인 것 같다는 생각을 해왔다.

그래서 이번 캡스톤에서는 '절대' 앱 개발을 하지 않겠다고 다짐하고, 첫 서버 개발을 캡스톤 때 시작하게 되었다. 스프링을 방학 때 공부하기는 했지만, 위에서 언급했던 번아웃 때문에 역시 열심히 공부하지는 못했다. 결국 캡스톤에서 사용한 기술스택들은 모두 학기 중에 습득한 것이다.

 

물론 추천하지 않는다... 나는 서버 개발의 모든 부분을 헤맸다. 뭐든 미리 시작하면 좋은 것이다.

서버 배포, AWS EC2, S3, docker-compose, REST API, DTO, JPA, JWT, Spring Security...내가 알아야 할 것, 해야 할 것은 정말 많았고, 나는 내가 늘 그래왔듯 몸으로 부딪혔다.

2주 동안 서버 배포와 도커를 잡고 고민하고 검색했다. 어쨌든 안 되는 건 없다.

JWT 때문에 또 1주일을 고생했다. 그렇지만 그것도 어찌어찌 해냈다.

 

캡스톤은 힘들고, 할 것도 많고, 시키는 것도 많고, 쓸 데 없는 것도 정말 많지만 그 중에서 가장 도움이 되었던 것은 '강제성'인 것 같다.

공모전 같이 데드라인이 정해져 있기 때문에, 학점이 달려있기 때문에 열심히 했고 어떻게든 구현해려고 노력하니 알게 된 것도 많았다. 그렇지만 이런 경험을 굳이 캡스톤이라는 형식으로 경험해야 했을까..? 라는 생각이 드는 과목이었다.

좀 더 결과물의 기술에 대한 피드백이 많았으면 좋았을텐데, 너무 인공지능에 치우친 피드백 때문에 솔직히 내 성장에 과목이 도움을 준 것은 없다고 생각한다. 그냥 내가 열심히 해서 많은 것을 얻을 수 있었던 것 같다.

실제로 실행되는 결과물을 만드는 건 좋았다. 정말 많이 성장한 것 같고, 또 다시 불가능해 보이는 일에 도전하고 성공했다고 생각해서 성취감도 든다. 하지만 역시 캡스톤을 다시 듣지는 않을 것 같다 ㅋㅋ

3. 코딩부트캠프

악명이 높았던 코부캠. 첫 1차 때 너무 어려운 문제들이 나와서 조금 좌절했다. 나름 여름방학 때 대비를 해왔다고 생각했는데 1차 합격은 택도 없었다 ㅋㅋㅋ 

2차 때는 교수님이 너무했다고 생각하셨는지(?) 난이도를 많이 낮춰서 내셨다. 문제에서 의도한 알고리즘이 있는 것 같았지만 그냥 브루트포스로 풀어도 정답이 나오는 문제들이었다. 시험 시간 동안 3문제를 건드렸는데, 250점을 받아 통과했다. 지나고 보니 점수가 조금 아쉽다. 겨울방학 때는 더 알고리즘 공부를 열심히 해야겠다는 생각을 했다.

결론, 알고리즘에 자신이 있다면 1~2차 때 붙을 테니 너무 걱정하지 않아도 된다. 이전에 알고리즘 공부를 좀 해 본 사람이라면 늦어도 3차 때 붙을 수 있을 거다.

4. 모바일 앱 개발

처음엔 Android native로 개발하는 줄 알고 수강신청 했는데 (작년까지는 Native 개발) 갑자기 Flutter로 수업한다고 해서 당황했던 수업이었다. 한 술 더 떠서 앱을 만드는 팀 프로젝트가 추가되어.. 내 억장을 무너지게 했던 과목. 

그래도 프로젝트인데 내세울 만큼은 만들고 싶어서 1달이지만 무리한 개발 계획을 세웠다. 체감상 캡스톤과 버금가는 수준의 시간을 할애했다. 앱 개발 수업이지만 나는 백엔드를 맡아 개발했다.

쪽지 기능, Pageable을 사용한 페이징 기능 등 캡스톤에서도 사용하지 않았던 기술들을 써봤던 게 재밌었다. 

 

무엇보다도 다른 백엔드 팀원과 협업했던 게 매우 인상깊었다. 협업을 통해 Custom Exception handling, Custom Response를 구현하는 방법을 알 수 있었다. 또한 package 규칙도 달랐어서, 도메인 주도 개발에 대해 알게 된 계기가 되었다.

나는 제대로 배우고 시작한 것이 아니라 처음부터 JPA를 썼는데, 이번 협업을 통해 JBDC template을 사용해서 DB와 통신하는 방법도 알게 되었다. 앱 개발 수업이라 이 쪽에서 깨달음을 얻을 줄은 몰랐는데, 정말 많은 도움이 되어서 같이 개발했던 팀원에게 감사한 생각이 든다.

 

개발 기간이 짧다 보니 더욱 열심히 회의를 했던 것이 개발을 끝마칠 수 있었던 원동력이었다. 각자 기능을 최대한 데드라인에 맞추고, 프론트와 협업을 위해 자세한 API 명세서를 작성하는 등 뭔가 애자일 비슷한(?) 개발을 한 것 같다. 애자일이라고 하기엔 민망하지만ㅋㅋ 지금까지 해온 팀플 중에 가장 협업다운 협업이었다고 생각한다.

5. 리눅스 시스템 응용 설계

이 수업이 이번 학기에 가장 기억에 남는다. 사실 처음에는 리눅스에 대해 배울 수 있다길래 가벼운 마음으로 들었던 수업이었는데, 실제로 내가 운영체제와 컴퓨터 구조 시간에 이걸 어떻게 구현하는 거지? 에 대한 대답을 얻을 수 있었어서 너무 좋았던 강의였다.

무엇보다 교수님과 소통하면서 수업하는 방식이 마음에 들었고, 질문할 때마다 교수님이 정말 신나게 (ㅋㅋㅋ) 질문에 대답해주시는 게 재밌어서 열심히 수강했던 것 같다. 

이 강의를 통해 개념적으로만 배워서 기억에 잘 안 남았던 lock이나 scheduling 등 다양한 개념들을 복습하고 실제로 어떻게 사용되는지 알 수 있었다. 정말 인상 깊었던 강의라서 다른 사람들에게도 추천하고 싶다.

6. 인공지능

개인적으로 인공지능과 맞지 않다는 걸 알게 되었던 수업이었다. 할 게 너무 많아서 화가 나긴 했지만ㅋㅋㅋ 수업을 통해 내가 맞지 않는 분야를 알아가는 것도 분야 탐색의 하나이기 때문에 그럭저럭 수강할 수 있었다. 만약 이렇게 바쁜 학기가 아니라 조금 널널한 학기였다면 인공지능에 좀 더 좋은 감정을 가질 수도 있었을 것 같다..ㅋㅋ

7.  우아한테크코스

중간고사가 끝나고 나서 동기와 이야기를 하다가 올해 우테코 지원 링크를 우연히 발견해서 지원하게 되었다. 우아한테크코스 관련 글은 나중에 따로 자세히 적겠지만, 3학년 2학기가 너무 바쁘게 느껴졌던 이유 중에 하나이다. 그렇지만 우테코 프리코스 동안에 Java 개발과 객체지향 / 클린 코드에 대해 많은 것을 배울 수 있었다. 우테코 관련 글은 최종 합격 발표가 나오고 나서 적도록 하겠다.

8. 컴퓨터 통신

처음에는 재미없을 것 같다고 생각했는데, 의외로 재밌고 신기한 과목이었다.

이번에 백엔드 개발을 하면서 AWS에서 인바운드 규칙 설정할 일이 많았다. 주로 6피에서 개발해서 IP를 등록해두었는데, 이상하게도 와이파이 IP를 등록해놓았는데 계속 IP가 변경되어 고민이 많았다.

이걸 해결하려면 인바운드 규칙을 xx.xx.xx.0/32 로 설정하면 된다기에 적었는데 정말 잘 돼서 그냥 이렇게 하나보다~ 하고 넘어갔었다. 그런데 컴퓨터 통신 시간에 supernetting을 배우고 나서 왜 그렇게 적으면 6피 내에서 와이파이 IP가 바뀌어도 잘 작동했는지 알 수 있었다. 마치 벼락이 친 듯한 느낌이었다. 백엔드와 네트워크를 (당연하지만) 떼놓고 생각할 수 없는 이유를 알게 되었던 수업이었다. 실제로 개발할 때 컴퓨터 통신 강의를 듣고 나서 이해가 되는 부분이 있었어서 도움이 많이 되었다.

방학 때도 네트워크 공부를 따로 할 생각이다. 아마 4-1은 인턴 대체를 할 것 같아서 넷응설 수업을 듣지 못하는 관계로.. 아쉽지만 독학으로 공부하려 한다. 

 

참.. 이번 학기 다사다난했다. 텀프로젝트급 과제가 3개, 팀플이 4개였어서 부담도 많고 학기가 끝나긴 하나? 싶었던 적이 많았는데 정말 끝나긴 하는구나 싶다. 3학년 2학기 때문에 3학년이 사망년이라고 불리는구나...라는 걸 알게 된 시간이었다. 

그래도 끝났다! 만약 이 글을 보는 사람이 2학년이라면 내년부터 파이팅 ^-^/

728x90