해당 글은 코드스쿼드 2022 마스터즈 코스 "Java 웹 백엔드" 과정을 수강하면서 학습한 내용 등에 대한 회고 글입니다. :)
수강 회고
지난 80일간의 마스터즈 코스 과정과 건강 관리의 필요성
오늘로 마스터즈 코스 과정이 무려 80일차가 되었다. 마스터즈 코스 과정은 총 24주 과정으로 120일간 교육 및 학습 일정으로 이루어지기에 벌써 전체 과정의 2/3(66.6%) 만큼 온 셈이다. 작년에 위염을 크게 앓았었기에 코드스쿼드 마스터즈 과정에 지원하기 전까지만 해도 과연 내 건강이 부트캠프 과정을 잘 따라갈 수 있을지 걱정이 됐었지만, 다행히 큰 아픔 없이 지금까지 과정을 잘 따라갈 수 있었다.
다만, 과정이 진행될수록 점점 나의 운동량이 감소하는 중인데, (그 만큼 과정이 점점 어려워지고 있다는 것을 방증하기도하다. 🤣) 건강에 적신호가 올까봐 걱정이 된다. 😂 그래도 다행인 건 다음 주는 방학 주이기에 이 방학이라는 시간을 이용하여 그동안 하지 못했었던 운동(등산 등)을 하고자 한다.
가장 힘들었지만 가장 보람있었던 두 번째 팀 프로젝트
아울러, 오늘로 지난 2주간의 두 번째 팀 프로젝트가 모두 종료되었다. 팀 프로젝트 첫 날 기획서와 미션 요구사항을 보면서 "과연 이 기능들을 모두 구현할 수 있을까?" 의문이 들었는데, 어제 늦은 밤 피오와 프론트 엔드 팀원 분들과 함께 최종 연동 테스트 하는 것을 끝으로 기능 구현과 배포를 마무리할 수 있었다.
사실 지난 한 주는 조금 여유를 가지고 팀 프로젝트를 진행했었는데, 이번 한 주는 Spring Data JDBC, Nginx, OAuth 등 새롭게 학습해야할 기술들을 프로젝트에 적용시키느라 지금까지 마스터즈 코스 과정을 진행하면서 가장 '무리'했었던 한 주였다. 아울러 프론트 엔드 팀원분들께서도 분주하게 작업을 하시느라 하루하루 지나갈수록 피로가 쌓인 기색이 역력해져갔다.
하지만 힘들었었던 것 만큼 배운 것도 정말 많았던 팀 프로젝트였다. 지난 첫 번째 팀 프로젝트에서뿐만 아니라 이번 팀 프로젝트를 하면서도 프론트 엔드 팀원들과의 협업을 통해 '소통'의 중요성을 느낄 수 있었다. 개발자에게는 "어떻게 하면 개발을 잘 할 수 있을까?"라는 고민뿐만 아니라 "어떻게 하면 소통을 잘 할 수 있을까?"라는 고민도 정말 중요한 것 같다.
아울러 원활한 협업을 위해서는 협업하는 상대(프론트 엔드 등)의 기술에 대해 '어느 정도' 알아야 할 필요성을 느끼기도 했다. 이번 팀 프로젝트에서부터는 프론트 엔드에서 리액트를 이용하여 개발을 진행했는데, 나의 경우 바닐라 자바스크립트에 대해선 어느 정도 알았지만 리액트에 대한 개념이 전무했었다. 때문에 프론트 엔드에서 어떤 식으로 작업을 진행하는지 파악하기 어려웠고 이는 나중에 웹 앱을 연동하는 과정에서 소통의 어려움이 많았다.
또한 그동안 들어보기만 했었던 OAuth, Nginx, S3 등을 프로젝트에 적용해보면서 정말 많은 것들을 배웠고 무엇보다 정말 '재미'있었다. Access Token을 이용하여 깃허브 리소스 서버의 API를 호출하면 사용자(Resource Owner)의 정보를 받아오고 웹 서버 Nginx의 설정을 통해 요청 경로에 따라 특정 애플리케이션 서버로 해당 요청을 넘기는 등 동작 하나 하나들이 모두 처음 직접 접해보는 것들이기에 신비로운 현상들이었다. 아울러, 웹 앱 개발 과정의 시작과 끝을 간소하게나마 경험해봄으로써 이제야 비로소 웹 개발을 공부하고 있다는 느낌을 받기 시작했다.
앞으로 남은 40일간의 계획
지난 80일 동안 CS(컴퓨터 과학) 10 과정(5주)과 웹 백엔드 과정(7주) 그리고 프로젝트 과정(4주)을 진행하면서 정말 배운 것들이 많았었고 과정을 따라가면서 스스로 성장하고 있다는 느낌을 많이 받을 수 있었다. 다만, 이 과정에서 배우고 학습했었던 것들을 나름 기록하고 정리해보려는 노력을 중간 중간 했었지만 과정을 따라가기 급급하여 '학습 정리'의 시간이 매우 부족했었다.
예전에 같은 백엔드 클래스 수강생 Sammy가 '학습한 개념들이 정리가 될 때 비로소 가치가 생긴다.'라는 말을 해준 적이 있었다. 내가 마스터즈 코스 과정의 미션 과제들을 수행하면서 문제 해결을 위해 잠깐 잠깐 기술블로그 등을 통해서 주워(?) 들었던 수많은 개념들은 금방 잊혀지기 마련이다. 이렇게 조각조각 흩어진 개념들을 '나만의 방식대로' 정리했을 때 비로소 그 지식들이 나의 지식이 되는 것이라는 생각이 든다. 때문에 다음 주 방학이라는 시간과 그 이후의 시간들을 통해 지금까지 배웠었던 학습 내용들을 정리하는 시간을 가져보고자 한다.
아울러, 마스터즈 코스 과정을 시작한 이래로 일일 회고를 쓴지도 벌써 80일이 되었는데, 이왕 이렇게 된거 마지막 120일차까지 꾸준히 일일 회고를 쓰는 것을 목표로 하고자 한다. 사실 당초에는 CS10 과정 때까지만 일일 회고를 쓰고 그 이후로는 중간 중간 정리하고 싶은 내용이 있을 때만 글을 남기려고 했었는데, 같은 백엔드 클래스 내 일부 수강생들께서 글을 잘 보고있다는 말씀을 듣다보니 일종의 의무감(?) 같은 것이 생겨 작성하는 감도 없지 않아 있었던 것 같다..😇
하지만 당초의 의도와 생각과는 달리 하루에 한 번씩 회고를 작성하다보니 정신 없이 보내는 하루 일과를 되돌아보며 나의 부족한 점이 무엇이었는지, 내가 또 잘한 점은 무엇이었는지, 내가 앞으로 개선해야 할 점은 무엇인지 등을 생각할 수 있었고 복잡한 생각들이 정리되는 느낌을 받을 수 있었다.
아직 나는 학습 중에 있지만 개발자라는 직업은 정신적으로 스트레스가 굉장히 많은 직업 중 하나라고 생각이 든다. 개발을 하다보면 나보다 실력있는 개발자들을 수없이 많이 보게 된다. 즉, '비교'를 하게 되고 심리적으로 '위축'되고 '좌절'할 수 있는 환경에 노출되기 쉬운 것이다. 아울러, 개발함에 있어 풀리지 않는 문제들과 갖가지 오류들을 만나게 되면 밤 늦게까지 해당 문제들을 붙잡게 되고 그 과정에서 많은 스트레스를 받기도 하며 공부를 하면 할수록 공부해야할 것들이 더 많아지는(어떤 이들에겐 오히려 좋을수도?!) 분야이기도 하다.
이러한 과정에서 개발자는 '멘탈 관리'와 '마인드 컨트롤'에 능해야겠다는 생각이 들었는데, 개인적으로 '회고'를 쓰는 것이 이러한 부분에 있어 많은 도움이 된다는 것을 느낄 수 있었다. (물론 이와 함께 스트레스를 푸는 자기 자신만의 취미(운동 등)를 갖는 것도 정말 중요하다고 생각한다. 🥕)
학습 회고
- 반찬 주문 서비스 웹 앱 구현 프로젝트
- 팀원들(백 엔드 2명, 프론트 엔드 2명)과 zoom 회의실에서 학습
한동안 리눅스 명령어를 안 쓰다보니 이번에 AWS 리눅스 서버에 웹 앱을 배포하는 과정에서 중간 중간 명령어가 생각이 안나 이로 인해 구글링을 하는 등 시간을 허비하게 되 명령어를 다시 익혀놔야 할 필요성을 느꼈다. 아주 기초적인 명령어들 위주로 다음과 같이 정리해보았다.
vim 기본 명령어
ESC : 명령(일반) 모드 전환
i : 편집 모드 전환
ESC + :w + Enter : 편집기를 종료하지 않고 파일을 저장함
ESC + :w + 변경할 파일명 + Enter : 편집기를 종료하지 않고 파일을 다른 이름으로 저장함
:wq : 파일을 저장하고 편집기를 종료함
:q! : 파일을 저장하지 않고 편집기를 종료함
리눅스(우분투) 명령어 기초
touch {파일명.확장자명} : 파일 생성
cp : 파일 복사
→ cp abc.txt def.txt : abc.txt 파일을 def.txt로 이름을 바꾸어 복사한다.
→ cp *.txt bak : txt 형식 파일의 모든 파일을 복사하고 bak에 저장한다.
mkdir {디렉토리} : 디렉토리 생성(중복된 디렉토리가 있으면 오류 발생)
rm -rf {디렉토리} : 디렉토리 및 해당 디렉토리 내 모든 파일 삭제
→ rm 디렉토리/파일명 : 해당 디렉토리 내 파일 삭제
echo {출력할 문장}
→ echo "hello" : hello 출력
→ echo $0 : 현재 어떤 쉘 애플리케이션을 쓰고있는지 나타내어줌(bash, zsh 등)
who : 사용자 이름(username), 현재 콘솔 모드(tty1), 로그인 시간(UTC 기준)
whoami : 사용자 이름
cal : 달력 보기
date : 현재 시간(최초 UTC 기준)
sudo timedatectl : 지역별로 현재시간 확인하기
→ sudo timedatectl set-timezone "Asia/Seoul" : 현재 시간 서울 기준으로 바꾸기
pwd : 현재 나의 위치(디렉토리)는 어디있는지
cd : 현재 디렉토리를 변경함
좋았던 점
- 지난 마스터즈 코스 과정 1~3월에서는 웹 개발을 위한 기본 역량(CS, 자바, 스프링 및 웹 기초 등)을 길렀던 시간들이었다면 지난 4월은 배웠었던 것들을 활용하여 프로젝트에 적용시키고 그 과정에서 다양한 팀원들과 협업할 수 있었던 시간이었던 것 같습니다. 🥂 아직 부족한 점이 많고 앞으로 해야할 일들도 산더미지만 마스터즈 코스 과정을 통해 한달, 한달 성장해가는 것을 느끼고 있기에 (약간의 추억 보정 효과와 함께) 만족스럽습니다! ✨
아쉬웠던 점
- 마스터즈 코스 과정을 시작한 이후로 운동량이 급격히 감소했지만 그래도 지난 1~3월에는 월평균 10회 정도는 홈트레이닝을 했었습니다. 하지만 지난 4월을 되돌아 보았을 때는 홈 트레이닝을 단 1회밖에 하지 못했다는 점이 아쉬웠습니다. (건강 관리 소홀) 😂 그만큼 지난 4월은 엄청 정신없고 바쁘게 살았다는 것을 방증하는 것 같기도 합니다. 😇
이전 보다 개선되었던 점
- 3월의 나 자신과 4월이 모두 종료된 나 자신을 비교해보았을 때 프로젝트 팀원들(특히, 프론트 엔드)과 협업하는 역량을 기를 수 있었고 데이터 베이스 설계, API 설계, 스프링 부트 웹 앱 개발, AWS 배포, 웹 서버 구성 등 여러 개발 경험들을 해볼 수 있었습니다. 👍
'2022 Masters Course > Project Course' 카테고리의 다른 글
2022 마스터즈 코스(백엔드) 82일차 회고(2022. 5. 10.) - "꾸준함의 중요성" (0) | 2022.05.10 |
---|---|
2022 마스터즈 코스(백엔드) 81일차 회고(2022. 5. 9.) - "방학 끝 그리고 심기일전" (2) | 2022.05.09 |
2022 마스터즈 코스(백엔드) 79일차 회고(2022. 4. 28.) - "프로젝트 마지막까지 최선을!!" (0) | 2022.04.28 |
2022 마스터즈 코스(백엔드) 78일차 회고(2022. 4. 27.) - "협업할 상대의 기술 이해하기" (0) | 2022.04.27 |
2022 마스터즈 코스(백엔드) 77일차 회고(2022. 4. 26.) - "의미 없는 삽질은 없다." (0) | 2022.04.27 |