일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 비동기
- TaskExecutor
- 백업
- webflux
- CompletableFuture
- GCS
- EC2
- Infra
- R2DBC
- Java
- ci/cd
- mysql
- 알고리즘
- @async
- 스왑메모리
- GoogleCloudStorage
- 프로그래머스
- Algorithm
- 백준
- AWS
- github
- SUbmodule
- JPA
- gitActions
- programmers
- actions
- swapmemory
- 백업스크립트
- 파일업로드
- mono
- Today
- Total
목록전체 글 (18)
쿵야지식떨이
spring 프레임워크에서 제공하는 비동기 처리 기능에는 여러 가지가 있다. 이번 글에서는 spirng에서 제공하는 비동기 처리에 대해 간단하게 정리해보려 한다. 📚 @Async Spring의 전통적인 비동기 처리 방식 제공 @Async를 메서드에 붙이면, 해당 메서드는 별도의 스레드에서 실행된다. 이를 통해 메소드의 실행이 비동기적으로 이루어진다. @Async를 사용하면 메서드의 반환 값은 Future 또는 CompletableFuture 객체를 통해서 제공된다. 해당 객체를 통해 비동기 작업의 결과를 얻거나 비동기 작업이 완료될 때까지 기다릴 수 있다. @EnableAsync를 설정 클래스에 추가하면 @Async가 붙은 메서드를 별도의 스레드에서 실행될 수 있도록 Spring이 자동으로 처리. 더보기..
팀 프로젝트를 진행하면서 ai 서버와 통신을 하는 부분들이 많아졌다. npc에게 채팅을 요청하고, scenario를 받고, intro 요청을 하는 등등.. 요청하고 받아야 하는 것들이 늘어나면서 하나의 요청이 끝날 때까지 아무것도 못하는 동기 처리보다는 결과가 나오는데 시간이 걸리더라도 다른 작업을 할 수 있는 비동기 방식을 적용하는 게 좋겠다는 생각이 들었다. 동기 처리와 비동기 처리에 대한 부분부터 spring Boot에서 적용할 수 있는 @Async를 프로젝트에 실 적용하는 과정과 공부한 내용을 모두 기록해보려고 한다. 동기, 비동기란? 동기(Synchronous) 작업이 순차적으로 진행된다. → 한 작업이 끝나야 다음 작업이 시작된다. 요청을 하면 시간이 얼마나 걸리던지 요청한 자리에서 결과가 주..
프로젝트를 진행할 때 보여주고 싶지 않은 민감 정보를 담은 yml 파일이 존재한다.submodule을 사용하여 특정 폴더만 private로 설정하여 노출을 막을 수 있다!submoduleGit 프로젝트에서 다른 Git 프로젝트를 하위 디렉토리에 포함시키는 방법submodule 적용 과정1. public repository에 프로젝트 파일 업로드 2. 민감한 정보를 담을 private repository 생성application.yml 파일을 private repository에 생성하여 추가public repository에 존재하는 민감한 정보를 private repository로 옮기고 clone 시에만 연동해서 가져온다고 생각하면 된다. 3. public repository에 submodule 등록 ..
GitHub Actions 가 정상적으로 작동하게 스크립트를 작성해야 한다. CI/CD 스크립트 작성 과정 1. 프로젝트에 yml 파일 생성 프로젝트 root 경로에 ./github/workflows 디렉토리를 만들고 cicd.yml 파일을 생성한다. 파일 이름은 cicd.yml은 예시일 뿐 이름은 상관없다! 2. yml 파일 안에 스크립트 작성 #github repo Actions 이름 name: CI/CD on: push: branches: ["develop"] pull_request: branches: ["develop"] permissions: write-all jobs: build-and-deploy: # ubuntu 최신버전에서 실행 runs-on: ubuntu-latest steps: - n..
팀 프로젝트를 진행 중 server 파트는 GitHub Actions를 적용하기로 했다. 적용하는 과정과 겪었던 에러를 정리하고 여러 포스트로 나눠서 정리해보려 한다. 틀린 내용이 있을 수 있으니 잘못된 내용이 있다면 댓글 부탁드립니다. GitHub Actions GitHub에서 제공하는 CI/CD를 위한 서비스 GitHub 레포지토리에서 CI/CD 결과를 확인하고 관리할 수 있다. YAML 포맷을 사용하여 가독성이 높다. 이미 구현되어있는 많은 액션들을 마켓플레이스에서 쉽게 찾을 수 있어 좀 더 간단하게 CI/CD 플로우를 작성할 수 있다. 더보기 CI(Continuous Integration) : 테스트, 빌드, Dockerizing, 저장소에 전달하는 것까지 프로덕션 환경으로 서비스를 배포할 수 있..
https://www.acmicpc.net/problem/1244 1244번: 스위치 켜고 끄기 첫째 줄에는 스위치 개수가 주어진다. 스위치 개수는 100 이하인 양의 정수이다. 둘째 줄에는 각 스위치의 상태가 주어진다. 켜져 있으면 1, 꺼져있으면 0이라고 표시하고 사이에 빈칸이 하나씩 www.acmicpc.net 문제 1부터 연속적으로 번호가 붙어있는 스위치들이 있다. 스위치는 켜져 있거나 꺼져있는 상태이다. 에 스위치 8개의 상태가 표시되어 있다. ‘1’은 스위치가 켜져 있음을, ‘0’은 꺼져 있음을 나타낸다. 그리고 학생 몇 명을 뽑아서, 학생들에게 1 이상이고 스위치 개수 이하인 자연수를 하나씩 나누어주었다. 학생들은 자신의 성별과 받은 수에 따라 아래와 같은 방식으로 스위치를 조작하게 된다. ..
https://www.acmicpc.net/problem/9461 9461번: 파도반 수열 오른쪽 그림과 같이 삼각형이 나선 모양으로 놓여져 있다. 첫 삼각형은 정삼각형으로 변의 길이는 1이다. 그 다음에는 다음과 같은 과정으로 정삼각형을 계속 추가한다. 나선에서 가장 긴 변의 www.acmicpc.net 문제 위 그림과 같이 삼각형이 나선 모양으로 놓여져 있다. 첫 삼각형은 정삼각형으로 변의 길이는 1이다. 그 다음에는 다음과 같은 과정으로 정삼각형을 계속 추가한다. 나선에서 가장 긴 변의 길이를 k라 했을 때, 그 변에 길이가 k인 정삼각형을 추가한다. 파도반 수열 P(N)은 나선에 있는 정삼각형의 변의 길이이다. P(1)부터 P(10)까지 첫 10개 숫자는 1, 1, 1, 2, 2, 3, 4, 5,..
https://www.acmicpc.net/problem/1193 1193번: 분수찾기 첫째 줄에 X(1 ≤ X ≤ 10,000,000)가 주어진다. www.acmicpc.net 문제 무한히 큰 배열에 다음과 같이 분수들이 적혀있다. 이와 같이 나열된 분수들을 1/1 → 1/2 → 2/1 → 3/1 → 2/2 → … 과 같은 지그재그 순서로 차례대로 1번, 2번, 3번, 4번, 5번, … 분수라고 하자. X가 주어졌을 때, X번째 분수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 X(1 ≤ X ≤ 10,000,000)가 주어진다. 출력 ❓풀이 전 이해해야 할 것 위 큰 배열의 패턴을 먼저 이해해야 한다. 패턴은 파란 선의 움직임대로 짝 수 번째 줄은 위에서 아래로, 홀 수 번째 줄은 아래에서 위로 올..