앞으로의 목표 👍
- javascript 능력 및 고난도 알고리즘 풀이 능력
- Nest, Graphql등 최신 기술 스택 활용 능력
- 기초 미니프로젝트 포트폴리오
- 로그인, 결제기반 심화프로젝트 포트폴리오
- 배포를 위한 네트워크 및 CI/CD 배포자동화 능력
- 120% 백엔드 개발 지식
오늘부터 꾸준히 해야할 일 👍
- 영타실력 늘리기
- 단축키 사용 익숙해지기
- 코드리딩 실력 키우기
- 데일리 퀴즈
- 포트폴리오 작성
- 독스에 친숙해지기
- MDN 보는 연습하기
오늘의 수업 👍
📝 성능테스트 도구를 활용한 무중단 배포 테스트
▷ 서버 성능 테스트
- 배포한 서버가 클라이언트의 요청이 많은 상황에서도 잘 작동하는지 테스트하는 것이다.
- API의 요청이 많은 상황을 가정하고, 가상의 클라이언트를 많이 만들어서 요청을 실제로 보내서 부하가 발생할 때 서버가 잘 작동하는지 어디서 오류가 발생하는지 등을 테스트한다.
▷ JMeter vs Locust
- 성능테스트를 도와주는 프로그램 중 JMeter, Locust를 비교해보겠다.
▶ JMeter
- 가장 먼저 출시된 성능 프레임워크 중 하나로 Java로 만들어졌다.
- 웹 관련 어플리케이션의 부하 테스트 목적으로 만들어졌지만, 현재는 거의 모든 형태의 어플리케이션을 테스트 할 수 있다.
- 데스크탑 프로그램이 있어서 GUI로 쉽게 사용 가능하다.
- 대신 그만큼 무겁다. 테스트할 때 많은 메모리를 사용한다.
▶ Locust
-
Python으로 만들어졌다.
-
파이썬으로 성능 테스트하는 스크립트를 작성할 수 있다.
-
테스트하는 시나리오를 코딩으로 다 작성해야한다.
-
그래서 GUI에 비해서 사용하는게 어렵지만, 코드라서 다른 사람과 공유하거나 유지 보수하기 쉽다는 장점이 있다.
-
두가지 모두 오픈소스라서 자유롭게 사용 가능하다.
📝 CI / CD 배포 자동화
CI/CD
개발 단계부터 배포까지 자동화하는 것을 말한다.
Continuous Integration
- 지속적 통합
Continuous Delivery
- 지속적 제공
Continuous Deployment
- 지속적 배포
-
쿠버네티스를 사용하면서, 수정 사항이 있을 때마다 아래의 단계를 번거롭게 거쳐야했다.
- git add → commit → push
- docker-compose build
- docker-compose push
- 쿠버네티스에 접속
- set image로 이미지 업데이트
-
배포를 자동화하게 되면 Git에 push 하기만 하면 그 코드를 가지고 도커가 자동으로 빌드되고 배포되기 때문에 훨씬 간단하다.
-
AI처럼 완전 자동이 아니라, 명령어 모음을 전달하면 그걸 실행해 주는 것이다.
📝 정규표현식
- ( / / )안에 작성한다.
- ( / / )안에 작성한 규칙이 유저가 작성한 규칙과 같은지 확인한다.
/안녕하세요/.test("안녕하세요")
=> true
/^안녕하세요$/.test("안요")
=> false
/\d{3}-\d{3,4}-\d{4}/.test("010-0000-0000")
true
\d
=> 숫자 한글자를 의미
\d?
=> 숫자 1개 또는 0개를 의미
\d{3}
=> 숫자 3개
/\d{3}-\d{3,4}-\d{4}/.test("010-0000-0000000000000000000")
true
- 정규표현식은 같은가를 보는 것이 아니라 포함되는가를 보는 것이다.
/\d{3}-\d{3,4}-\d{4}$/.test("010-0000-0000000000000000000")
false
/\d{4}$/
=> 숫자4글자로 끝나야한다.
/^\d{3}-\d{3,4}-\d{4}$/.test("01000000000000-0000-000")
false
/^\d{3}/
=> 숫자3글자로 시작해야한다.
오늘의 마무리 👍
- 복습
- github 공부
- 블로그 포스팅
- 데일리 퀴즈
- 알고리즘 문제 풀기
항상 겸손한 자세로 배우면서 성장하자, 할 수 있다!! 💪
출처 : 코드캠프