본문 바로가기

springboot17

[Redis] Spring Boot - Redis Pub, Sub 구현&응용 목차 Spring Boot - Redis 환경 구성 테스트 개요 서버간 데이터를 동기화 하기 위해, 방법을 찾다가 Redis Pub/Sub 을 사용하는것이 현상황에서 최선이라는 판단을 내리고, 알아보게 되었다. (A - B 각서버간 방화벽 오픈 X, 통신불가 , 하지만 Redis 가 존재하는 C 서버에는 A, B 서버 모두가 바라보고 있음.) Redis를 채택한 또하나의 이유중 하나는, Message를 저장하지 않는 이유때문도 존재한다(Kafka는 메세지내용도 저장함) 메시지 브로커를 구현하는 것이기 때문에, 구현자가 원하는 비지니스 로직을 덧붙힌다면 채팅, 알림, 작업 큐, 동기화 등등 다양한 작업을 할 수 있을것이다. 흐름 Client Message 요청 -> Controller -> Service .. 2024. 3. 29.
[Redis] Redis + Spring boot 연동 (2) 1. Redis + Spring Boot 연결 Spring Boot 에서 Spring-data-redis 라이브러리를 통해 활용해보는 방법을 알아보겠습니다. - Redis Docker 설치 방법은 이전 포스팅을 참고 하세요! https://lucas-owner.tistory.com/56 [Redis] Redis란? - Docker로 간단 Redis(Local) 설치 (1) 1. Redis 란? - in-memory 방식의 No-SQL 기반 DBMS - Key-Value(키-값) 구조의 데이터를 저장, 관리 - Singel-Thread 기반으로 동작함.(명령 수행) - DB, Cache(캐시),Message Broker(메시지브로커) 용도로 주로 사용함. - lucas-owner.tistory.com ○ .. 2023. 3. 30.
[SpringBoot] QR코드 생성 & Test(링크이동) - zxing 1. 서론 몇년전 시작된 COVID19의 여파로 비대면, 비접촉 관련된 시스템들이 많이 생겨났다. (QR인증, QR결제 ...) 심지어 QR코드는 2000년 6월에 표준이 되었을 정도로, 오래된 기술이지만, COVID19 로 인해 사용범위, 활용성이 높아진것 같다. 더불어 옥외광고, 모바일 앱, 웹사이트 내부링크 등등 활용되는곳도 점점 많아지고, 생활에 점점더 밀접해지고 있다. 1-1. 바코드 vs QR 코드? 사실 일반인의 입장에서 보면, "바코드와 QR코드가 다른점이 뭐야? 둘다 똑같은거 아니야?" 라는 말을 하게된다. 왜 일상에서는 QR 코드를 더 많이 사용할까? 바코드 레이저(스캔물체)를 수평방향으로 인식해야 한다. 최대 20자의 정보 저장 가능. 바코드의 "I" 높이 중 일부분이 훼손되어도 인식.. 2023. 3. 24.
[SpringBoot] RestTemplate - 카카오 openAPI 연동하기(Translation, 번역기) 서론 - Spring Boot 기반의 RestTemplate 공부를 하며 local에 서버를 2개 띄워서 테스트 하는것 보다는, openAPI를 적용해보고 싶던 와중 kakao 에서 제공하는 Translate (번역) API 를 찾게 되었고 연동해보았다. - 예전에는 단순히 카카오 개발자 사이트에서, Test용 어플리케이션 등록 + Api Key로 사용이 가능했지만, 2023.03.13일 현재 kakao i cloud라는 시스템을 사용하는것으로 조금 바뀌어 있다. (호출 방식, key 같은것들이 다름.) 혹시나 하는 마음에 이전버전의 API 호출 방식을 적용해봤는데 정상적으로 동작이 되었다. 목적은 어디까지나 RestTemplate를 사용한 API호출 이었기 때문에, 예전방식으로 진행했다. * 시작전 유.. 2023. 3. 13.
[Docker] GitHub Actions CI/CD - Docker Image 자동 배포, run(CD) (2) GitHub Actions - Docker Image 자동 배포 (CD)- info이전 포스팅에서 GitHub Actions 를 사용하여 CI 파이프라인을 구축했었다.GitHub master 브랜치에 push 되었을 경우, jar빌드, docker image빌드, docker hub 푸시(퍼블리시) CI를 구축해놓았으니 CD를 구축해야한다.한마디로 docker hub에 푸시된 image를 EC2에서 새롭게 pull 받아 실행하는것이다.github master 브랜치에 push하는 순간 test 부터, EC2에 배포 및 실행까지 자동으로 이루어지는것이다.또한 이전에 포스팅 되었던 글에서 추가 된 내용이 많다. (제대로 공부하지 못하고 적용하려니, 엄청난 삽질의 연속..) * 주의할점 및 유의사항 (필독!.. 2023. 2. 19.
[Docker] GitHub Actions CI/CD - Docker Image 자동 빌드, push(CI) (1) GitHub Actions 를 사용한 Docker Image 자동 빌드, push - Info Docker를 사용하여 EC2에 Spring Boot를 배포하는 방법들을 포스팅해왔다, 실제로 해봤다면 알겠지만 해당 작업은 상당히 복잡한 프로세스를 갖고있고, 자동화 또한 되어있지 않다. 중간에 실수가 있거나, 순서중 하나만 헷갈리더라도 굉장한 장애를 발생시킬 수 있다.  이러한 배포 자동화를 CI/CD(Continuous Integration, Continuous Deployment) 라고 한다. CI (Continuous Integration)지속적 통합 : 여러 개발자들이 협업을 하고 있는 경우 발생하는 '불일치'를 최소화 해주는 개념.예를들어 master 브랜치에 PR 요청이 왔을때, 빌드, 테스트를 .. 2023. 2. 18.
[Docker] Docker - Spring Boot로 EC2 배포하기 Docker - Spring Boot로 EC2 배포하기 ○ 목표 - Spring Boot (server) Docker Image로 Build - Docker Hub에 Docker Image 공유(push) - EC2 Docker Image pull 및 설치 -> 한마디로 Spring Boot를 Docker를 이용하여 EC2에 간편하게 배포하는것이 목적이다. * 추가 : EC2 내부의 MySQL Container 와의 연동, 아래글에서 MySQL 컨테이너 생성법 참고! https://lucas-owner.tistory.com/47 [Docker] Docker로 AWS EC2 - MySQL 설치 및 테스트 Docker image 로 EC2에 MySQL 설치 및 테스트 하기 ◎ 목적 - AWS EC2 내부에 .. 2023. 2. 18.
[AWS] RDS 생성 - (EC2 연결, SpringBoot 배포)(2) 목표 - 지난번에 배포했던 AWS EC2와 RDS 생성/연결 하는것을 진행 해보자. DB는 MySQL 5.7.34 버전을 사용할 예정이다. 마찬가지로 프리티어(무료)를 사용할 예정이고, EC2 연결 및 Local 에서 연결 Test 까지 진행 할 예정이다. ◎ 과금 RDS 과금은 db.t2.micro 기준. 750시간 까지 무료. 초과시 시간당 0.026$ 부과. 한달 3천원 ~ 이상 부과. 사용용량 초과, 스냅숏(백업) 같은 기능으로 인해 추가 요금 발생 가능. 목차 RDS 인스턴스 생성 보안 그룹 생성 Local 접속 테스트 파라미터 그룹 설정(DB 설정) EC2 연결 1. RDS 인스턴스 생성 - AWS Console에서 RDS 메뉴로 이동. - 데이터 베이스 생성 버튼을 클릭! 1-1 DB 선택 .. 2023. 2. 16.
[AWS] EC2 생성 - Spring Boot 배포(1) 목표 AWS EC2 인스턴스 생성 후 EC2 내부에서 Spring Boot 서버를 실행 하는것이 최종 목표입니다. CI/CD 인프라 시스템을 구축하는것이 아닙니다. (단순 EC2 단일 배포) - 배포시 유의할 부분 고정 IP 주소를 사용합니다. (탄력적 IP : 이부분 설정을 넘기셔도 됩니다.) 터미널에서 SSH 클라이언트를 통해 EC2에 접속합니다. Git 방식이 아닌, FileZila 를 통해 프로젝트를 이동합니다. 프리티어(무료)를 이용합니다. - 사전 필요 작업 AWS 계정 생성. pem 키 발급. FileZila(for Mac) 프로그램 설치. (파일전송) jar 파일 build AWS Region 설정 (Asia/Seoul) AWS Console 우측 상단에서 설정 가능! 목차 보안그룹 설정 .. 2023. 2. 15.