본문 바로가기
Development/Toy Projects

[진행2] 안써본거 위주로 써보기 위한 토이 프로젝트

by Nahwasa 2022. 1. 2.

  진행1에 이어서 계속 공부를 해보고 있다. 우선은 여러가지 새로운 것들을 경험해보는게 주 목적이므로, 빠르게 쭉 살펴보면서 중간 과정들(환경잡기, 개념, 에러 처리 등)은 노션에 정리하고 있다. 일단 쭉 살펴보는게 끝나면 좀 더 디테일하게 보면서 블로그에 개념들을 공유하기 위해 글을 작성할 계획이다.

 

 

1. Docker 관련 이어서 진행

  

  현재는 실제 배포를 진행한다 가정하고 어느정도 사용 가능한 방법 까지 알아봤다. 로컬에서 docker 이미지를 생성한 후, docker hub에 올린다. 실제 배포할 서버는 클라우드(차후 AWS를 공부하면서 AWS로 옮길 생각이다.)의 리눅스 인스턴스이다. 배포서버에는 쉘 스크립트로 새로운 이미지를 도커 허브에서 다운받고 실행하는 부분까지 자동으로 동작하도록 해봤다. 구체적으로는 쉘 스크립트의 내용은 다음과 같다.

sudo docker pull nahwasa/docker-springboot-test-img
sudo docker container stop docker-test-cont-1
sudo docker container rm docker-test-cont-1
sudo docker run --name docker-test-cont-1 -p 8080:8080 -d nahwasa/docker-springboot-test-img

  당장은 여기까지만 하고 어차피 CI/CD (github action을 우선적으로 해보고 있다.)를 통해 도커 배포까지 수행할 것이므로 도커는 나머지 계획들을 마친 후 추가로 쿠버네티스도 실습해보면서 좀 더 공부해보려 한다.

 

 

2. React 실습을 위해 우선 백엔드 제작하기

 

  'React.js, 스프링 부트, AWS로 배우는 웹 개발 101' 책은 React를 배워보기 위해 구입한 책이다. 하지만 백엔드 부분도 나와있는 책이고, 우선 백엔드로 React에서 사용할 REST API 서버단을 만든 후, React로 프론트엔드를 만드는 실습이 진행된다. 따라서 React를 배우기 전에 백엔드 부분을 먼저 만들어야 했고, 백엔드는 그냥 하기엔 좀 난이도 낮아서(?) 책의 실습에서 추가로 이하 '3'~'5'를 추가로 해봤다. 또한 '진행1'에서 설치해둔 WSL을 기반으로 최대한 CLI 위주로 동작해보려 했다. IDE는 현재 가장 마음에 들고 잘 쓰고 있는 인텔리제이를 계속 사용했다.

 

 

3. 테스트 코드 작성

 

  원래 계획 중 하나였던 테스트 코드 작성도 일단 맛만 봤다. TDD 수준으로 진행하진 않았지만, 테스트 코드가 어떤 것이고 어떻게 짜는지 기본 정도를 확인했다. junit5에 mockito를 붙여서 진행했다.

 

 

4. VCS를 github으로 사용하면서 다양한 명령어 익히기

 

  기존엔 svn을 주로 사용했었다. github은 꾸준히 써왔지만 개인용으로만 사용해서 pr 등에 대한 개념이 없었다. 또한 git 명령어를 CLI 위주로 진행해보지도 않았었다. 현재는 토이 프로젝트를 진행하면서 github을 CLI를 통해 사용하면서 기본적인 개념들을 여러 가지로 테스트 해보면서 기본적인 git 개념을 익혔다.

 

 

5. github action을 통한 CI

 

  최종적으론 github action을 통해 CD까지 진행해볼 예정이다. 현재는 일단 CI도 맛만 본 상태이다. 로컬에서 깃헙을 클론해서 가져간걸 수정하고, add - commit - push로 main이 아닌 개발용 브랜치로 올린다. 그럼 여기서 github action이 실행되면서 '3'에서 작성한 테스트코드를 돌린다. 테스트를 통과하면 pull request를 올릴 수 있다. 이후 merge 전에 다시 한번 테스트코드가 돌게 된다. 역시 통과해야만 머지가 진행되도록 해두었다.

 

push 시 테스트를 통과하지 못한 경우!

 

github action을 통한 CI 맛만 일단 보기

 

 

6. React 익혀보기

 

 이후 책을 보며 리액트를 익혀보고 있는 상태이다. 다만 책은 모든 내용이 클래스형으로 컴포넌트를 생성한다. 현재 모던 리액트로는 함수형 컴포넌트에 훅을 사용해 state를 사용하는 방식이라고 한다. 따라서 책은 클래스형이지만, 함수형 위주로 변경하며 해보고 있다. 이걸 위해 일단 책을 더 진행하기 전에 리액트에서 공식으로 제공하는 리액트 자습서(근데 이것도 클래스형이 많긴하다.) 및 다른 사이트들의 설명을 보면서 해보고 있다.

 

 

짧은 기간에 해당 기술들의 개념도 정확히 없는 상태에서 개념부터 잡으며 많은 것들을 익히려다보니 어려운 부분도 많지만, 그래도 확실히 평소에 안해본것들이라 더 재밌는것같다.

댓글