항해 99 5기
-
Docker, Elasticbeanstalk, Travis CI항해 99 2022. 8. 23. 00:59
프로젝트에서 도커와 AWS, CI/CD를 통한 배포 프로세스는 다음과 같다. 깃헙으로 push -> Travis CI가 이를 인식 -> 테스트 코드 실행 후 테스트 통과 시 운영환경의 이미지 빌드 -> 빌드된 이미지가 Dockerhub로 전달됨 -> Dockerhub 내 새로운 이미지가 생겼다고 AWS EB에 전달 -> AWS EB가 해당 이미지를 가져와서 ec2에 배포를 진행 Docker 먼저 실전 프로젝트에서 사용된 Docker 파일을 살펴보자. 아래는 개발 환경용인 Dockerfile.dev이다. # 노드를 베이스로 생성 FROM node:16.13.1 # app 디렉토리 , working 디렉토리 생성 RUN npm install -g nodemon # -g = global RUN mkdir -p..
-
항해 99 5기 TIL_93항해 99 2022. 4. 14. 00:36
▶ Today I Learned [package.json이 꼭 필요할까요?] 꼭 필요하다. 왜냐하면 npm이 이를 통해 프로젝트를 식별하고 어떤 패키지를 의존하고 있는지 의존(dependency & devdependency)파일을 참고하고 종속처리를 해주기 때문이다. package.json은 npm이라는 오픈소스 패키지 생태계를 사용하기 위한 명세이자, 프로젝트의 의존성 관리를 위한 명세, 또 이 생태계로의 배포를 위한 명세라고 볼 수 있다. 특정 패키지를 npm install을 통해 설치할 때 npm registry로 부터 그 패키지를 가져오는 것이며 이때 패키지에 대한 정보가 package.json에 들어있어야만 한다. 그렇지 않으면 npm에 있는 패키지를 설치하거나 npm에 패키지를 배포할 수 없다..
-
항해 99 5기 TIL_92항해 99 2022. 4. 13. 10:21
▶ Today I Learned 우리 프로젝트에 적용된 도커를 하나씩 뜯어보며 공부해보자. .dockerignore: docker 이미지를 빌드할 때 제외할 파일을 정해준다. 현재 우리는 아래와 같이 노드의 모듈들과 .gitignore 파일은 올라가지 않도록 하고 있다. # Dependency directories node_modules/ .gitignore Dockerfile.dev: 도커 공식문서에 보면 아래와 같은 문구가 있다. In order to build the application, we need to use a Dockerfile. A Dockerfile is simply a text-based script of instructions that is used to create a conta..
-
항해 99 5기 WIL_13항해 99 2022. 4. 11. 06:30
▶ Weekly I Learned (회고) 프로젝트가 끝나가면서도 여전히 배울게 많은 요즘이다. 단순히 비즈니스 로직만 짜는 것이 아닌 AWS의 기술들, 도커와 CI/CD, 타입스크립트 등 다른 팀원 분들이 적용하신 부분들을 공부하고 있다. 쉽지 않지만 하나씩 차근히 따라해보고 필요한 부분은 공부하며 내것으로 만들어나가자. 화이팅팅! + 항해 동안의 WIL 작성은 이것으로 마무리이다. 모두와 함께하던 시간이 그리울 듯 하다. 다같이 열심히 공부하고 답을 찾아나가던, 아니, 우리만의 답을 완성해가던 그때를 기억하며 그 열정을 가지고 꾸준히 공부해나가자. 화이팅팅 :) ▶ 공부 시 참고 링크들 없음
-
항해 99 5기 TIL_91항해 99 2022. 4. 11. 06:30
▶ Today I Learned 며칠 전 찾은 글에 이어 추가적으로 도커에 대해 정리해보고자 한다. IBM의 정의: "Docker is an open source platform for building, deploying, and managing containerized applications." 도커는 컨테이너화된 애플리케이션을 만들고 배포하고 관리하는 오픈소스 플랫폼이다. "Docker is an open source containerization platform. It enables developers to package applications into containers—standardized executable components combining application source code wi..
-
항해 99 5기 TIL_90항해 99 2022. 4. 10. 00:10
▶ Today I Learned [이력서] 종이 규격에 맞는 워드 파일 것은 것을 사용하기! (하지만 제출 시에는 pdf나 링크 사용! 뷰어가 없는 경우에 대비하여!) 이력서 포맷은 인터넷에도 많이 나와 있음 [이력서의 목적] 1) 면접 볼만한 사람을 걸러내기 위해 채용 담당자가 보기에 빠르게 보다가도 '오 다시봐야지' 하는 생각이 들 수 있는가 2) 면접 질문을 준비하기 위해 이력서 내용이 면접 때 어떤 질문으로 이어질지 고민하고 작성하자 3) 나의 부족한 점을 발견하는 것 이력서에 쓸 내용이 없다면? 의미있는 경험이 더 필요하다는 뜻 혹은 한 일에 대한 성과를 모르거나 숫자로 표현할 수 없다는 것 -> 일할 땐 항상 성과(목표)에 집중하고 숫자로 나타낼 수 있도록 항상 측정하고 기록하자. 즉, ‘통계..
-
항해 99 5기 TIL_89항해 99 2022. 4. 9. 20:24
▶ Today I Learned [최종 발표회] 팀원들과 그간 준비한 프로젝트에 대해 최종 발표회를 진행하였다. 우리의 최종 프로젝트 아키텍처는 다음과 같다. 기본적으로 메인이 되는 화상채팅 기능은 WebRTC 기술인 simple peer를 사용하였다. P2P방식을 사용하였기에 많은 인원을 수용할 수는 없으며 인원 제한은 4명으로 두었다. STUN 서버는 구글에서 제공되는 것을 사용한 것으로 안다. 그 외 보안을 위해 HTTPS를 설정했고 편리한 배포를 위해 Travis CI와 Docker를 이용, 서버 이용량 증가 시 자동 확장을 위해 Amazon Auto Scailing을 사용하였다. 클라이언트로 부터 어떤 트래픽이 발생하면 Elastic Load Balancer가 이를 서버 상에서 적절히 나누어준다..