본문 바로가기
반응형

분류 전체보기714

TIL_220204 1. Facts(사실, 객관) - 소유권이전 재렌탈 프로세스 구현 완료 - AS통계화면 Chart 사용법 공부 - AS현황, AS구체와 그래프 연동 2. Feelings(느낌, 주관) 소유권 이전 재렌탈 프로세스 구현을 완료했습니다. 팝업을 띄우고, 선택한 주문을 기준으로 새롭게 소유권이전 할인을 넣을 수 있습니다. 유효성 검사에도 신경써서 한번 사용한 주문은 다시 할인에 이용할 수 없습니다. 그런데, 실제 주문하는 고객과 할인을 사용하는 주문번호의 고객이 같은지 검사가 필요합니다. 따라서 추가적으로 이 부분을 구현할 예정입니다. AS 통계화면을 위해 chart 라이브러리를 설치하고 요구사항에 맞게 수정하는 작업을 했습니다. 사용자의 입장에서 어떻게 사용하는지 편할지 고민했습니다. 먼저 회사에서 제공한 .. 2022. 2. 5.
TIL_220203 1. Facts(사실, 객관) - 회사 전표처리 - docker & gcp 배포 글 정리 - jenkins & gcp 연동 글 정리 - jenkins & nginx 연동 글 정리 2. Feelings(느낌, 주관) docker & gcp 배포 글을 정리했습니다. local에서 dockerhub에 push하고 gcp 인스턴스에서 pull을 받아서 사용합니다. 또한 jenkins에 gcp를 등록하고 nginx를 등록해서 로드 밸런싱을 하는 과정을 정리했습니다. 회사에도 jenkins로 구성이 되어 있어서 비교하면서 공부하니까 좋았습니다. 개인 프로젝트는 spring boot와 docker를 사용하여 jar를 배포하고 회사에서는 spring을 이용해서 war를 배포합니다. 둘다 build는 maven으로 하는.. 2022. 2. 3.
TIL_220202 1. Facts(사실, 객관) - class101 백엔드 시스템 실무 Message Queue를 도입하여 데이터 유실 방지 수강 2. Feelings(느낌, 주관) Message Queue를 도입하여 글 작성 요청을 바로 DB에 보내느 것이 아니라 RabbitMQ에 전달하도록 구성했습니다. 그렇다면 클라이언트는 DB에 저장하고 값을 리턴받는 작업까지를 인식하지 않고, RabbitMQ에 요청을 전달하는 것까지로 시간이 단축됩니다. 이후에 QUEUE에 담긴 요청들이 순차적으로 DB에 insert되도록 분할하는 작업이 Message Queue의 기능입니다. 따라서, 이전보다 글 작성 요청이 걸리는 시간이 짧아졌습니다. 하지만 그럼에도 엄청나게 많은 요청이 들어온다면 이 또한 문제가 발생합니다. 따라서 다음 강.. 2022. 2. 3.
TIL_220201 1. Facts(사실, 객관) - class101 백엔드 시스템 실무 I/O bound 애플리케이션 수강 2. Feelings(느낌, 주관) I/O bound의 경우 어플리케이션 서버를 늘리는 것으로 한계가 있습니다. 왜냐하면 말 그대로 I/O 중점이기 때문에 CPU 증가가 효과가 미비할 수 있습니다. 그럼 I/O의 해결책은? Latency를 낮추는 것입니다. 각 인스턴스가 설치된 환경이 여기는 한국이므로 서울에, 가까운 일본에 하는 것이 다른 유럽과 미국에 하는것보다 조금 더 빨라집니다. 또한 DB를 이용한 한줄 게시판을 구현하면서 캐시 서비스를 했습니다. cron을 통해 1초마다 1페이지를 캐싱하고, 어떤 사용자든지 1페이지를 조회하면 캐싱된 페이지를 리턴합니다. 물론 이 방법이 실무에 쓰이는지는 질.. 2022. 2. 3.
TIL_220131 1. Facts(사실, 객관) - class101 백엔드 시스템 배포 자동화와 협업을 위한 Git 사용 수강 2. Feelings(느낌, 주관) sourcetree를 이용해서 깃 플로우 전략 사용을 배웠습니다. 이전에는 git bash에서 CLI를 이용해서 commit을 했는데, sourcetree를 사용하면 간단하게 GUI 환경에서도 git flow를 사용할 수 있었습니다. git flow는 main 운영환경, develop 테스트환경, feat 기능 개발, hotfix 긴급수정, relase 버전 태그 등의 5가지 대분류로 나누어 서로 협업하는 방식입니다. sourcetree에 깃플로우 기능이 있고 push pull commit rebase 기능들을 모두 선택으로 할 수 있어서 좋았습니다. 3. Fi.. 2022. 2. 3.
TIL_220130 1. Facts(사실, 객관) - class101 백엔드 시스템 실무 CPU bound 애플리케이션 무중단 배포 수강 2. Feelings(느낌, 주관) 이전에는 1개의 인스턴스만 jenkins에 연동해서 배포했습니다. 이번에는 여러개의 instance를 연동했으며, nginx로 로드밸런싱을 추가했습니다. 생각보다 nginx에서 ip정보를 활용하여 간단하게 구현이 가능했습니다. 또한 SSH를 이용해 원격으로 도커파일을 이용하여 애플리케이션이 실행이 가능했습니다. sleep을 통해 여러 instance의 배포시간에 차이를 두면, 무중단 배포가 가능합니다. 처음에 서버를 재시작하면, 다른 서버가 대기중에 있다가 다시 서버를 재시작하기 때문에 중단없이 배포가 가능합니다. 3. Findings (배운 점) 4... 2022. 2. 3.
TIL_220129 1. Facts(사실, 객관) - class101 백엔드 시스템 실무 백엔드 사전준비, CPU bound 어플리케이션 수강 2. Feelings(느낌, 주관) 백엔드 인프라를 위한 셋팅을 합니다. 특히 GCP 계정과 Docker Desktop 설치가 필요합니다. artillery를 통해 스트레스를 주는 테스트를 했습니다. 많은 양의 스트레스를 어떻게 테스트하는지 배웠습니다. 또한 그 결과를 그래프로 나타냅니다. 앞으로 대용량 테스트를 어떻게 처리하는지 배울 수 있었습니다. 또한 docker를 사용해서 GCP에 올리고 dockerhub에서 pull 받아 이미지를 사용하는 방법, jenkins를 이용해서 배포하는 방법을 배웠습니다. 3. Findings (배운 점) 4. Action (구체적 계획) 개인프로.. 2022. 2. 3.
nginx를 이용한 로드밸런싱 및 무중단 배포 개요 일반적으로 하나의 서버를 통해 애플리케이션을 운영하지만, 많은 사용자가 늘어남에 따라 요청을 감당하기 위해 여러개의 서버가 필요합니다. 이 요청을 여러개의 서버로 잘 분산시키기 위해서 도움을 주는 nginx를 알아보도록 하겠습니다. nginx 동작 방식 nginx는 1개의 마스터 프로세스와 여러개의 워커 프로세스를 가지고 있습니다. 마스터 프로세스 설정에 따라 워커 프로세스들 동작이 정해집니다. 워커 프로세스들은 실제 요청을 처리합니다. nginx는 이벤트 기반 모델과 OS 의존적인 메커니즘을 사용해 워커 프로세스들간에 요청을 효율적으로 분산시킵니다. 워커 인스턴스들의 갯수는 설정파일에 정의되어 있으며 주어진 설정에 따라 고정될 수도 있고 사용가능한 CPU 코어에 따라서 자동으로 정해질 수도 있습니.. 2022. 2. 3.
Jenkins 이용해서 배포하기 개요 이번 시간에 Jenkins를 이용해서 jar 파일을 배포하는 법을 알아보겠습니다. GCP 서버에 Jenkins 설치 및 docker를 이용해서 image를 사용해보겠습니다. 다음은 준비물입니다 - GCP ubuntu 환경 인스턴스 다음은 작업 목차입니다 1. jenkins instance 설치 2. worker instance 설치 3. jenkins 설치하기 3-1. jenkins 초기 설치하기 3-2. [플러그인 관리] 설정하기 3-3. [Jenkins 관리] 생성하기 3-4. [새로운 Item] 생성하기 3-5. build하기 1. jenkins instance 설치 jenkins 인스턴스에서 실행하는 명령어를 설치합니다. sudo yum install -y wget sudo yum insta.. 2022. 2. 2.
반응형