분류 전체보기 86

[AWS] EC2 서버 중지 or 종료하는 방법

AWS EC2로 배포할 경우 보통 인스턴스 유형을 t2.micro (프리티어/1년 무료)로 서버를 띄우게 된다.  📣1년 무료 기간이 지나기 전에 이렇게 종료하자!1. EC2 콘솔에서 '인스턴스'에 접속한다.2. 대상 인스턴스에 마우스 우클릭 > '인스턴스 상태' 를 클릭한다.3. 인스턴스 중지 혹은 인스턴스 종료를 클릭한다. 서버 중지 완료! 참쉽죵?

Cloud/AWS 2024.08.04

[AWS] EC2, RDS를 이용해 배포하기 2 - EC2 서버 구매 및 배포 편

[Spring/AWS] EC2, RDS를 이용해 배포하기 1 - RDS 설정 및 인텔리제이와 연결 편* 사전에 (윈도우의 경우)Git Bash 설치 및 AWS 회원가입이 선행됐다고 가정 후 쓰는 글입니다!환경Windows, Git Bash, Spring Boot 3.1.0, MySQL 오늘은 개인 토이프로젝트를 하면서 AWS의 EC2, RDS를 활용해 배포developer-jinnie.tistory.com환경Windows, Linux, Ubuntu, Git Bash, Spring Boot, MySQL 이전 글을 통해서 RDS 설정과 인텔리제이에서 MySQL 설정을 마무리해줬다면, 이제 EC2 서버 구매 및 배포를 해볼 차례다. 1. EC2 서버 구매하기1-1. OS로 리눅스의 Ubuntu 설치 후 배포 ..

Cloud/AWS 2024.08.03

[AWS] EC2, RDS를 이용해 배포하기 1 - RDS 설정 및 인텔리제이와 연결 편

* 사전에 (윈도우의 경우)Git Bash 설치 및 AWS 회원가입이 선행됐다고 가정 후 쓰는 글입니다!환경Windows, Git Bash, Spring Boot 3.1.0, MySQL 오늘은 개인 토이프로젝트를 하면서 AWS의 EC2, RDS를 활용해 배포한 경험을 공유해보려고 한다. 1. FileZilla 설치먼저 이 링크에서 FileZilla를 설치해주어야 한다.다운로드 버튼을 누른 후, 제일 왼쪽의 Free 버전을 다운 받아주면 된다.▪️ FileZilla널리 사용되는 무료 및 오픈 소스 FTP 클라이언트. 주로 서버와 클라이언트 간에 파일을 전송하는 데 사용되며, FTP, FTPS, SFTP와 같은 파일 전송 프로토콜을 지원한다. FileZilla를 통해 AWS EC2 인스턴스에 파일을 전송하고..

Cloud/AWS 2024.08.03

[리팩토링] MSA 구조에서의 인증/인가 처리

[프로젝트][MSA] API Gateway 작성으로 모듈 별 연결하기우선 지금 진행하고 있는 api gateway와 각 도메인들을 모듈별로 구분해놓고, 각 모듈은 각기 다른 포트 번호를 가지고 있는 구조이다. 오늘은 api gateway 모듈에서 게이트웨이 설정으로 각 모듈 별 apdeveloper-jinnie.tistory.com문제 배경원래 로그인 시 필자가 담당하는 유저 모듈에서 JWT 토큰을 발급하고 이를 통해 인증을 처리하였으나, 다른 모듈로 요청이 전달될 때 인증 및 인가 정보를 제대로 전달받지 못하는 문제가 발생했다!이로 인해 유저 정보가 필요한 다른 모듈에서 기능이 작동되지 않는 상황.. 해결 방안 문제를 해결하기 위해서 우리 팀원들이 고려한 두 가지 방안은 이렇다  :모든 모듈에서 인증/..

[프로젝트][ES] ElasticSearch와 Kibana 설치 (feat. docker-compose)

금방 끝날 줄 알았는데 생각보다 쫌쫌따리 에러가 많아서 조금 시간이 걸렸다. 이 긴 여정과 각종 명령어를 잘 남겨두기 위해 포스팅 ..  ElasticSearch 설치1. docker-compose.yml 파일 설정기존의 docker-compose.yml 파일에 엘라스틱 서치 관련 코드를 넣어줬다. es_lecture: image: docker.elastic.co/elasticsearch/elasticsearch:8.6.0 container_name: es_lecture ports: - "9200:9200" environment: - discovery.type=single-node networks: - neulpoom_network 2. 보안 인증 ..

[트러블슈팅] '선착순 쿠폰 발급' 로직 - Redis를 통한 동시성 문제 해결 (2/2)

[트러블슈팅] '선착순 쿠폰 발급' 로직 - 동시성 문제 발생 (w/ Race Condition) (1/2)일반 쿠폰 발급 로직 설계를 마치고, 선착순 쿠폰 발급 로직 개발에 들어왔다가 동시성 문제에 맞닥뜨렸다. 드디어 여태 들어만 봤던 동시성 문제를 해결할 기회가 왔다. 맞다이로 드루와 개요developer-jinnie.tistory.com이전 글에서는 로직 설계를 하면서 맞닥뜨린 동시성 문제와, 이 문제에 대한 분석 및 해결 방안 등을 찾아보고 비교해봤다. 이번 글에서는 지난 글을 통해 도출해낸 해결 방법을 내 로직에 적용해보며 동시성 문제를 해결해보는 과정을 담아보려 한다. 문제 해결 과정먼저 Redis를 설치해주어야 하지만 필자의 환경에서는 전에 레디스를 통한 캐싱 작업을 해 본 경험이 있어 Re..

[트러블슈팅] '선착순 쿠폰 발급' 로직 - 동시성 문제 발생 (w/ Race Condition) (1/2)

일반 쿠폰 발급 로직 설계를 마치고, 선착순 쿠폰 발급 로직 개발에 들어왔다가 동시성 문제에 맞닥뜨렸다. 드디어 여태 들어만 봤던 동시성 문제를 해결할 기회가 왔다. 맞다이로 드루와 개요일단 서비스 및 컨트롤러, 레포 코드를 작성한 후 테스트 케이스를 작성하고 돌려봤을 땐 pass가 떴다. 그 후 postman으로 1차 기능 테스트 까지는 성공.서비스 레이어 코드123456789101112131415161718192021222324252627282930    /**     * 선착순 쿠폰 발급     */    @Transactional    public CouponIssuedResponseDto issueFirstComeCoupon(CouponIssuedRequestDto request) {      ..

[프로젝트] 선착순/일반 쿠폰 발급 로직 분리에 대한 고민

프로젝트를 시작한 지 일주일이 조금 넘어간다. 초반 3일 정도 동안은 팀원들과 ERD 설계, 요구사항 정리, 깃 컨벤션 정리 등등을 했고, 본격적으로 각 도메인을 맡아 개발을 한지는 막 일주일이 된 것 같다. 내가 메인으로 맡은 쿠폰 도메인은 크게 발급 수량 제한이 없는 일반 쿠폰과, 선착순 쿠폰 이벤트를 위한 선착순 쿠폰으로 나눠진다. 그리고 쿠폰 도메인은 쿠폰 자체의 발급을 위한 관리자용 쿠폰 CRUD, 발급된 쿠폰 내역을 유저마다 관리하는 쿠폰 발급 CRD 기능이 존재한다. 이번 포스팅에서는 위에서 설명한 쿠폰 발급 로직을 설계하며 고민했던 사항들과, 고민 끝에 왜 이렇게 결정했는지 기술적 의사 결정에 대한 설명을 적어보려 한다.  🔎고민일반 쿠폰과 선착순 쿠폰 로직의 API 엔드포인트를 따로 두..