목록전체 글 (346)
정구리의 우주정복

AWS 를 사용해서 로컬의 코드를 git 에 merge 하면 자동 배포가 되는 플로우를 구현해볼거다 내가 생각한 플로우는 위의 그림과 같음 ! 우선 ECR 과 ECS 에 대해서 조금만 알아보자 ECR 은 AWS 가 제공하는 Docker 이미지 저장소이다원래는 도커 이미지를 가져올때 도커 허브에서 주로 가져오지만 공개 이미지가 아닌 경우에는 나만의 은밀한 곳에 올려놓고 가져다 써야한다 이전에 Nexus 를 사용해본 적이 있지만 이번에는 ECR 을 사용해서 이미지를 올려놓고 ECS 에서 ECR 의 이미지를 가져다가 배포하는 방식으로 구현 할 것이다 ECS 는 AWS에서 제공하는 컨테이너 관리 서비스 이다.즉 , Docker 컨테이너를 AWS가 대신 실행·관리해주는 플랫폼 이라고 생각하면 편하다 Docke..

우선 볼륨의 역할은 컨테이너의 데이터를 안전하게 저장하고, 컨테이너와 독립적으로 유지·공유할 수 있게 해주는 공간이다 왜 볼륨이 필요할까?컨테이너는 원래 휘발성(volatile) 이라:컨테이너를 삭제하거나 재시작하면 컨테이너 안의 데이터는 사라집니다.예) MySQL 컨테이너에 데이터를 넣었는데 컨테이너를 지우면 DB 데이터도 같이 날아감.그래서:컨테이너 밖에 데이터 저장소(볼륨) 를 만들어서,컨테이너 안의 중요한 데이터를 그곳에 보관하면,컨테이너를 지우거나 교체해도 데이터는 영속적으로 살아남습니다. anonymous volume 설정해보기일반 작업 dir 이 /app 이라면 /app/feedback 에 저장을 하고싶다 라고 가정하겠음FROM node:14WORKDIR /appCOPY package.jso..

redis 연결하고 데이터 넣기 ? 어렵지 않다 우하하연결하고 -> redisTemplate 작성하고 -> 내용 뿍 넣으면 된다연결하기일단 local 에 redis 하나 띄워주겠다 (이미 떠있는거 있으면 그거 쓰삼 !!!)docker run -d --name redis-local -p 6379:6379 redis:latest그리고 프로젝트에 설치한걸 연결해주자build.gradleimplementation 'org.springframework.boot:spring-boot-starter-data-redis-reactive'나는 r2dbc 사용중이라 reactive 를 해줬다 만약 jdbc 라면 spring-boot-starter-data-redis 를 쓰세용application.ymlspring: da..
Spring mvc 사용할땐 @Transactional 을 사용하면 모든게 다 해결 되었지만 .. WebFlux 를 사용하면 그렇지 않다 슬프다 ! 그럼 어떻게 해야할까 바로바로 TransactionalOperator 를 사용해야한다 ! 일단 build.gradle 에 해당 내용을 추가해준다 특이하게 aop 를 추가해야함 implementation 'org.springframework.boot:spring-boot-starter-aop:3.4.5'implementation 'org.springframework.boot:spring-boot-starter-webflux' 그리고 ReactiveTransactionManager 를 설정해줘야함 !!!package com.example.toygry.webflu..

피그마 공부를 해두면 어디가서든 써먹을 것 같아서 개인 포폴때 화면 기획을 피그마로 해보려 한다맨날 남들이 만든거 보고 댓글 달 줄만 알았지 직접 만들어본건 처음이라 쉽지 않다 .. 아이콘 추가하기 나는 + 모양 아이콘을 추가하고싶었다 plugins & widgets 클릭 후 Iconify 검색 (이게 사용량이 제일 많은듯) 클릭 후 save 나 run 을 누르자 나는 자주 쓸 듯하여 save 를 했다 원하는 아이콘을 검색하고 클릭하자 하단에 있는 걸 클릭해서 내 피그마에 소환시키면 된다 어려워 ..

https://www.acmicpc.net/step/48 누적합 죠패보겠음 https://www.acmicpc.net/problem/11659 11659 구간 합 구하기 4import sysinput = sys.stdin.readlinedata_no , quiz_no = map(int, input().split())numbers = list(map(int, input().split()))sum_list = [0]sum = 0# 누적합 구하기for i in numbers: sum += i sum_list.append(sum)# 입력 받은거 구하기for j in range(quiz_no): start, end = map(int, input().split()) print(sum_list[..
비동기 처리할때 사용하는 WebFlux 에 대해서 정리해보려 한다 ! 써봤는데 남들에게 설명해줄 수준은 아니라 .. 정리해보기 전통적인 Spring MVC와의 차이종류SpringWebFlux프로그래밍 방식동기 (블로킹)비동기 (논블로킹)기반 APIServlet APIReactive Streams (Project Reactor)스레드 사용요청당 스레드 하나적은 수의 스레드로 수많은 요청 처리Return 타입String, Model, ResponseEntityMono, Flux 기존에도 자바에는 Thread 나 Virtual Thread 와 같은 비동기 처리들이 있는데 이들과는 어떤 차이가 있는지 알아보장 내가 이해한 바로는 WebFlux는 프로젝트 전체가 비동기로 돌아가는 거고,Thread나 Virtual..
프로젝트를 하다보면 Response 가 제각각이라 이녀석이 성공인지 실패인지 어떤 상태인지 표현하기가 어렵다그래서 오늘은 공통 Response 를 정의해서 Http status 값과 ,message 그리고 Data 를 넣어보려 한다 어렵지 않음 !!!"기존 Response 를 한번 더 감싸준다"라고 생각하면 쉽다 data class BaseResponse( val status: HttpStatus, val message: String, val data: T? = null) 나는 status , message, data 를 넣었지만 자기한테 필요한 형태로 커스텀 해서 사용 가능하다 만약 기존에 ResponseEntity 이렇게 사용했다면 ResponseEntity> 이렇게 정의해주면 된..