Simple Queue Service 소개 및 사용법(1/2) Simple Queue Service(SQS)란 ? 분산 시스템를 구성할때 시스템간 메세지를 주고 받을 수 있는 메세지 큐 SQS는 전송,수신,삭제 3가지 기능을 제공한다. SQS의 기본적인 아키텍처 Producer가 메시지 전송 devbksheen.tistory.com 앞서 AWS Simple Queue Service(SQS)에 대해 알아보았다. 이제 Spring Boot에 적용해보겠다. IAM 권한 추가 AWS 콘솔에 로그인 후 IAM 서비스로 이동한다. 생성된 사용자가 없다면 생성 후 AmazonSQSFullAccess 권한을 추가한다. 해당 사용자의 access key와 secret key를 코드상에 적용해야 하므로 복사해둔다. SQS..
분류 전체보기
반응형
Simple Queue Service(SQS)란 ? 분산 시스템를 구성할때 시스템간 메세지를 주고 받을 수 있는 메세지 큐 SQS는 전송,수신,삭제 3가지 기능을 제공한다. SQS의 기본적인 아키텍처 Producer가 메시지 전송을 하면 Queue가 수신한다. 수신된 메시지를 Consumer가 전달받아 처리한다. Consumer에서 수신된 메시지를 처리완료하면 방금 수신받은 메시지를 삭제해달라는 요청을 날린다. 위와 같이 요청 받은 Server가 바로 성공 실패 여부를 알려줄 필요가 없을때 위와 같은 아키텍쳐로 서버를 구성할 수 있다. SQS Queue SQS서비스에는 2가지 종류의 Queue가 존재한다. Standard Queue(표준 대기열) 장점 초당 무제한에 가까운 TPS를 지원한다. 메시지 유실..
git 생성 $ git init 코드 클론 $ git clone 브랜치 생성 $ git branch 로컬 브랜치 삭제 $ git branch -d 원격 브랜치 삭제 $ git push — delete 로컬 브랜치 목록 $ git branch -a 원격 브랜치 목록 $ git branch -r 로컬 브랜치 선택 $ git checkout 원격 브랜치 선택 $ git checkout -t / 브랜치명 변경 $ git branch -m 수정한 파일 스테이지에 적용 $ git add # 해당 파일만 스테이지에 적용 $ git add . # 모든 변경사항 스테이지에 적용 코드 커밋 $ git commit -m “” 코드 새로고침 $ git fetch 원격 저장소 확인 $ git remote -v 원격 저장소 연결..
사이드 프로젝트를 만들며 소셜 로그인의 OAuth2.0 인증방식을 개발해보려고 한다. 인터넷에 소개되어있는 블로그 글들은 서칭 후 코딩해보고 정리하였다. 카카오, 네이버, 구글만 구현할것인데 나머지 소셜들도 대부분 비슷하다고 보면 된다. OAuth2.0란? 아래글 참조 OAuth2(Open Authentication2) OAuth2란? 다양한 플랫폼 환경에서 인증 및 권한 부여를 위한 표준 프로토콜 OAuth 방식이 등장하기 전에는 다른 서비스의 리소스를 가져오기 위해서는 다른 사이트의 ID와 PW를 직접 입력받아 저장 devbksheen.tistory.com 1. Build Setting build.gradle Spring Boot는 2.3.1.RELEASE 버전을 사용했다. plugins { id '..
Spring Cloud Config란? 각 Application의 설정 파일(property, yum...)을 저장하고 Config Server를 통해 전달해주는 구조 분산 시스템에서 설정 파일을 외부로 분리할 수 있도록 해준다. 그림 처럼 설정 파일의 저장소는 Git이 될수도 있고 서버상의 저장할수도 있다. 실행 중인 Application이 Config Server에서 설정 정보를 받아와 갱신하는 방식이다. 즉 실행 중에 설정값 변경이 필요해지면, 설정 서버만 변경하고 애플리케이션은 갱신하도록 해주기만 하면 된다. 따라서 설정이 바뀔 때마다 빌드와 배포가 필요 없는 구조이다. 구현 예제 Config Server를 구축하고 Client Server에서 설정값을 받아와 DB연결까지 구현해 보았다. 이번 예..
ELK란? 데이터 분석 및 저장 기능을 담당하는 Elasticsearch 데이터 수집 기능을 하는 Logstash 이렇게 수집한 데이터를 시각화하는 Kibana 그림처럼 3가지의 앞글자만 딴 Log 및 데이터 분석 도구이다. ELK는 접근성과 용이성이 좋아서 요즘 많이 사용하는 추세다. Elasticsearch Elasticsearch는 Apache Lucene( 아파치 루씬) 기반의 Java 오픈소스 분산 검색 엔진 Elasticsearch를 통해 루씬 라이브러리를 단독으로 사용할 수 있게 되었으며, 방대한 양의 데이터를 신속하게, 거의 실시간( NRT, Near Real Time )으로 저장, 검색, 분석할 수 있다. Logstash 다양한 소스로부터 데이터를 수집하고 곧바로 전환하여 원하는 대상에 ..
앞서 GitHub Action, Aws CodeDeploy, CI/CD가 무엇인지 알아보았다. GitHub Action + AWS CodeDeploy를 이용한 CI/CD (1/2) Github Action이란? Github 저장소를 기반으로 소프트웨어 개발 Workflow를 자동화 할 수 있는 CI/CD 도구이다. Workflow는 Github 저장소에서 발생하는 build, test, package, release, deploy 등 다양한 이벤트.. devbksheen.tistory.com 이번에는 GitHub Action + AWS CodeDeploy로 CI/CD 구현 예시를 정리해보았다. 구현 예시 1. EC2 인스턴스에 CodeDeploy Agent 설치 EC2 인스턴스(Amazon Linux 2..
Github Action이란? Github 저장소를 기반으로 소프트웨어 개발 Workflow를 자동화 할 수 있는 CI/CD 도구이다. Workflow는 Github 저장소에서 발생하는 build, test, package, release, deploy 등 다양한 이벤트를 기반으로 직접 원하는 Workflow를 만들 수 있다. Workflow는 Runners라고 불리는 Github에서 호스팅 하는 Linux, macOS, Windows 환경에서 실행된다. Runners를 사용자가 직접 호스팅하는 환경에서 직접 구동시킬 수도 있다.(self-hosted runner) AWS CodeDeploy란? SourceCode를 운영환경에 자동 배포하는 AWS Service EC2, ECS, Lambda등 여러가지에..
log4j(Log For JAVA)란? Java 기반 Logging 유틸리티로써 debug용 도구로 주로 사용된다. 애플리케이션에 문제 발생 시 문제의 위치를 빠르고 정확히 파악하기 위해 사용한다. 또한 성능 및 속도에 영향을 미치지 않고 편리하게 사용할 수 있다. log4j의 특징 속도 최적화 thread-safe 하다. 즉, 멀티스레드 환경에서도 안전 properties 파일과 xml 형식으로 실행 중 수정 적용 가능 5단계의 레벨의 장애를 사용(DEBUG < INFO < WARN < ERROR
애자일 방법론이란? Agile은 기민한, 날렵한이란 뜻으로 좋은 것을 빠르게 취하고, 낭비 없게 만드는 다양한 방법론을 통칭해 일컫는 말이다. 앞을 예측하며 개발하지 않고, 일정한 주기를 가지고 계속 검토해 나가며 필요할 때마다 요구사항을 더하고 수정하여 커다랗게 살을 붙이면서 개발해 프로세스 모델 방식이다. 미리 정해진 몇 개의 단계에 따라 엄격한 순서대로 이루어지는 일직선의 과정인 폭포수의 프로세스와는 비교가 많이되는 반대의 개념이다. 애자일 방법론의 진행 과정 애자일 방법론은 계획 → 설계(디자인) → 개발(발전) → 테스트 → 검토(피드백) 순으로 반복적으로 진행된다. 계획을 세운 후 다음 단계까지 기다려서 절차대로 진행하는 폭포수 모델과 달리 먼저 진행 후 분석, 시험, 피드백을 통하여 개선하여..