
개요AWS RDS DB를 public subnet에 둘 수 있다면 RDS 엔드포인트만으로 접근할 수 있기 때문에 개발하는 입장에서는 행복해질 수 있다. 그러나 당연하게 AWS에서도 보안상으로 민감한 데이터를 갖고 있는 DB의 경우 public subnet에 두는것을 권장하지 않는다. (https://aws.amazon.com/ko/blogs/database/best-practices-for-creating-a-vpc-for-amazon-rds-for-db2/ Best practices for Amazon VPC design 챕터 참고) 그렇다면 DB를 private subnet으로 옮기게 되면 어떻게 될까? 이 경우 외부에서는 RDS 엔드포인트에 직접 접근할 수 없게 된다. 때문에 private VPC에..

개요간단한 검색 기능을 넣어놨는데... iOS에서 올린 데이터가 검색이 안된다는 이슈가 올라왔다. 그래서 DB를 뒤적거려보니... 아래와 같이 저장되어 있었다. 사실 처음부터 데이터가 이렇게 저장되고 있다는건 알고 있긴했다. 그런데, 문자열 기반 검색이 아닌 단순 조회에서는 신기하게 제대로 출력되서 큰 걱정은 안하고 있었다. 그런데 문자열 기반 검색이 안되기 때문에 조치가 필요했다. 가장 쉬운 방법은 쿼리에서 데이터 마이그레이션을 하고, 클라이언트에서 NFC 방식으로 업로드하는 것을 유도하는 것이다. 그런데, 클라이언트가 바로 패치를 못하는 경우가 있다. 이 때는 서버에서 단독으로 조치를 해줘야한다. 해결 방법을 하나씩 알아보자. 1. PostgresSQL에서 NFD방식을 NFC로 마이그레이션하기특정 버..

개요기본적으로 컨텐츠 정렬은 등록일자의 역순이 일반적이다. 그런데 정책 요구사항으로 이름 순 정렬이 생겼다. 이름 순 정렬이니 별생각없이 컬럼 정렬로 order by name ASC를 한다면? 재미있는 일을 마주하게 된다. 가장 먼저 숫자 쪽에서 의도치 않은 동작을 확인하게 된다.1 5 10 20 100 1100 위와 같은 순서로 이름을 짓게 되면 아래와 같이 정렬이 된다.1 10 100 1100 20 5이건 가장 단편적으로 보이는 문제고... 그외에도 문제가 많다. 가장 먼저 떠오르는 010은 10으로 봐야하나부터 시작해서 특수문자, 이모지 등등... 정말 많은 문제가 있다. 어떻게 할지 하나씩 정리해보자. 본 포스팅은 PostgreSQL을 기준으로 작성되었다. 1. 유니코드 정렬과 언어 기준 정렬 ..

개요PO분이 급하게 도메인을 만들고 정리하시느라 AWS가 아닌 GoDaddy에서 도메인 이름을 발급받으셨다. 거기다 상용 AWS 계정이 승인이 안나서 cloudflare에 모든 서브도메인 라우팅을 설정해두셨다. 추가적으로 SSL 인증서까지 cloudflare 에서 적용하셨다. AWS 상용 계정이 승인되고나서 도메인 서버, SSL 인증서를 마이그레이션해야했다. 처음에 언뜻 듣기로는 아 이거 뭐 금방하지라는 생각으로 모든 권한을 넘겨받았다. 그리고 바로 일이 터졌는데... 별일은 아니고 좀 오래걸렸다. 차근차근 방법을 알아보자cloudflare 설정 일시중지 혹은 삭제하기가장 먼저 해야할 내용은 아니지만 반드시 알아야할 설정이 여기있어서 처음에 뒀다. cloudflare는 CDN 역할만 해주는게 아니라 네임..

개요현재 프로젝트에서 파일 저장소로 S3를 사용하고 있다. 파일을 저장하면서 몇 가지 요구 사항이 붙게 됐다. 1. 업데이트를 하면 파일이 새로 업로드됨2. 그런데 업데이트 하기 전 파일로 롤백하려는 요구 사항이 있을 수 있음3. 그럼 업데이트된 파일을 어떻게 관리할 것인가? 사용하지 않는 파일에 아이디를 일일히 부여하는게 맞는가? 그럼 로우가 계속 늘어날텐데?4. 그러면 삭제 정책이 필요한데, 얼마나 저장할 것이며 어떻게 삭제할 것인가? 스케줄러를 돌리는 것도 말이 안되지 않나? 이런식으로 계속 꼬리질문이 나오는 상황에서 S3를 뒤져보던 중 객체 버저닝이란 것을 알게 됐다.https://docs.aws.amazon.com/ko_kr/AmazonS3/latest/userguide/versioning-w..

이 글에서 조금 더 나아간 버전이다.2024.02.01 - [개발/Kotlin] - 코틀린에서 static class 사용하기 : companion object - 자바와 다른 점 3 Utility 클래스 용으로 static을 사용하기 위해서 companion object를 쓰다가 확장함수까지 알게되서 정리한 글이었고, 이번엔 object를 걸 알게되서 다시 작성해본다. 아래에 작성한 내용들은 내가 사용하면서 느낀 점들이 조금씩 녹아있어서 오피셜한 내용을 파악하고 싶으면 코틀린 공식 문서를 보는 것을 추천한다. https://kotlinlang.org/docs/object-declarations.html#data-objects 목차를 따고 들어가면 다음 순서로 정리된다. 1. compaion object..

저번 글에서, Kotlin DSL로 JOOQ를 프로젝트에 적용시켜봤다.2025.02.28 - [개발/SPRING] - Kotlin + SpringBoot에 JOOQ 적용기 - 1. 선택 이유와 코드 자동 생성하기 사실 사용법은 여기서 다룰 필요 없이 공식문서에서 굉장히 잘 다뤄주고 있다.https://www.jooq.org/doc/latest/manual/sql-building/sql-statements/select-statement/ 이번 포스팅에서는 그냥 내가 썼던 쿼리들을 몇개 가져와서 어떻게 썼나 소개해보려고 한다. SELECTfun findById(userId: String, projectId: String): Project { return dsl.selectFrom(PROJECTS) ..

서버 개발 중 스프링 부트가 실행 될 때, 반드시 한번 실행 시키고 싶은 코드가 생겼다. 코드 상 서비스로직에 추가해야할 것 같고, 굳이 빈일 필요가 없다. 예를 들어, 변수에 어떤 값을 초기화 한다던가, 객체를 초기화 한다던가 여러가지 예가 있을 것 같다. 여러가지 방법이 있다. 하나씩 정리해보자.1. @PostConstruct @Serviceclass DataService { private val dataList = mutableListOf() @PostConstruct fun loadData() { // 애플리케이션 시작 시 데이터 초기화 dataList.addAll(listOf("Data1", "Data2", "Data3")) println(..
- Total
- Today
- Yesterday
- ChatGPT
- springboot
- elasticsearch
- AOP
- Elastic cloud
- 후쿠오카
- GIT
- 스프링부트
- S3
- openAI API
- serverless
- object
- OpenAI
- EKS
- CloudFront
- MySQL
- Log
- 티스토리챌린지
- terraform
- 오블완
- Kotlin
- Spring
- AWS EC2
- JWT
- cache
- java
- lambda
- docker
- 람다
- AWS
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |