일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
29 | 30 | 31 |
- 가사 검색
- 카카오 인턴
- 알고리즘
- pycon
- 보행자 천국
- 프로그래머스
- 불량 사용자
- Spring Boot
- trie
- bulk update
- jdbc
- 징검다리 건너기
- 크레인 인형뽑기 게임
- 튜플
- 티스토리
- Open API
- 트라이 #trie #알고리즘
- Python
- CleanCode
- 호텔 방 배정
- 티스토리 open api
- 트라이
- Tistory
- Today
- Total
목록분류 전체보기 (153)
택시짱의 개발 노트
최근에 면접관으로 참여 하면서 배포 방식에 대한 이야기가 자주 나오고 있어서 그 중 여러 분들이 사용하고 도입 했던 Blue Green 배포를 한번 해보았습니다.저도 개념만 알고 있지 직접 해당 배포 방식을 구현 및 적용 해본적이 없어 간단하게 해봤습니다. 구성은 아래와 같습니다.spring boot 의 jar를 docker container로 생성 ( blue, green ) 하고앞에 nginx를 두어 load balancing 를 해주도록 했습니다.Dockerfile# 베이스 이미지로 OpenJDK를 사용합니다.FROM openjdk:17-ea-17-jdk-slim# curl 설치RUN apt-get update && apt-get install -y curl# 임시 디렉토리 설정VOLUME /tmp..
본문 회사에서 Excel을 이용하여 다량의 계정을 생성하는 태스크를 진행하게 되었습니다. 다량의 데이터를 저장하기 위해 JdbcTemplate의 bulkUpdate를 사용했습니다. 기본 구성 예시로 사용하기 위한 Entity /** * 계정 엔티티 */ @Entity class Account( val displayName: String, val email: String, val value: String, ) { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) val id: Long = 0 @OneToMany(mappedBy = "account") val infos: MutableList = mutableListOf() fun addInfo(info: A..
개요 고정된 사이지의 이미지를 여러 플랫폼에서 사용하게 되는데 플랫폼 마다 필요로 하는 이미지의 사이즈가 다를 수 있음 Cloudfront의 Lambda@Edge를 이용하여 최종적으로 클라이언트가 원하는 이미지의 사이즈를 능동적으로 호출할 수 있게 하려 함 Lambda@Edge 란 Lambda@Edge는 AWS Lambda의 확장으로 Amazon CloudFront 엣지 로케이션에 Python 및 Node.js 함수를 배포할 수 있습니다. Lambda@Edge의 일반적인 사용 사례는 함수를 사용하여 CloudFront 배포가 최종 사용자에게 제공하는 콘텐츠를 사용자 지정하는 것입니다. 오리진 서버가 아니라 최종 사용자에게 가까운 위치에서 이들 함수를 간접적으로 호출하므로 지연 시간이 크게 단축되고 사용자..
입력 값에 대한 Validation 처리 필요할 때가 있다 예를들어 아래와 같은 User를 생성하는 간단한 예제가 있을때 @RestController @RequestMapping("/user") class UserController( private val userUseCase: UserUseCase, ){ @PostMapping("") fun createUser( @RequestBody request: CreateUserRequest, ){ userUserCase.create(command=request.toCommand()) } } data class CreateUserRequest( val name: String, val age: Int, val address: AddressRequest, ){ fu..
개요 MSA 구조에서 특정 API 호출시 다른 서버의 API를 호출하는 부분에서 timeout이 발생 호출 되는 서버에서 API 응답을 줄때 여러 테이블의 정보를 취합하는 join 연산이 많아 지연시간 발생 읽기 전용 model을 생성하여 join 연산 없이 데이터를 조회 할 수 있도록 진행 해볼 예정 부하 테스트 진행 Locust를 이용하여 부하 테스트 진행 (Locust란?? https://docs.locust.io/en/stable/what-is-locust.html ) 기존에 사용하던 API 읽기 전용 모델로 변경한 API 결론 Read 전용 Model을 생성하여 TPS 및 응답 시간을 비약적으로 개선할 수 있었습니다. ps. ReadModel을 생성했을때 가장 중요한 부분은 데이터 동기화 문제..
개요 - MSA 환경에서 다른 server로 요청 보내야할때 spring cloud openfeign을 이용하여 정보를 얻고 있는데 종종 의도한 동작을 하지 않을때가 있다. 예를들면 open feign에 설정한 timeout 을 초과 했을때, 또는 인증 문제, 등등 open feign에 logging을 남기기 전에는 내가 작성한 코드가 문제인지 open feign에서 문제 인지 단정하기 어려웠다.. 그래서 open feign에 logging을 달기 시작했다. 1. FeignConfiguration 작성 import feign.Logger import org.springframework.cloud.openfeign.EnableFeignClients import org.springframework.conte..
해당 포스트에 작성된 문제와 해결 방법은 아래 글을 참고하여 해결 하였습니다~! https://okky.kr/articles/884329 OKKY - AWS EC2 프리티어 쓰시는분들 참고하세요! 일기장에 기록해둔건데 프리티어 쓰시는 분들에겐 좋은 정보일것 같아 남깁니다.제 일기장에서 긁어온거라 폼이 많이 깨지긴 했는데 감안하고 봐주세요! AWS 프리티어 EC2를 사용 중 겪은 문제 okky.kr 문제 spring boot와 AWS 프리티어 EC2를 사용하여 겪은 문제이다. Git Action을 이용하여 CI/CD를 구축 후 git action에서 아래 script를 EC2 인스턴스에서 실행하는 과정중에 계속 인스턴스가 멈추는 현상이 발생 했다. #!/bin/sh echo "################..
문제 사이드 프로젝트를 진행하며 서버 배포 자동화를 위해 구축해 놓은 github action error가 발생했다 원인 해당 error를 찾아본 결과 용량 부족이 문제임을 알게 되었다. github action으로 서버에 배포시 docker image가 계속 생성 되고 있었고 API 서버로 이용중인 AWS EC2는 free tier를 이용하고 있었기에 충분히 발생할 수 있는 상황 이였다. instance에 접근하여 용량이 얼마나 남았나 확인해 보니까 역시나.. 해결 EC2 instance의 용량 늘릴까 생각 했으나 어차피 기존에 생성된 docker image를 삭제하지 않으면 해당 error가 계속 발생할것 같음 그래서 배포를 위해 작성한 deploy.sh에 이미 생성된 docker image를 삭제하..