![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/b3fPDk/btsEeFxoyWy/5cuOBQcdHb7dUlKvQPzPx0/img.webp)
스프링+자바에서는 종종 static 클래스나 매서드를 쓴다. static 매서드/클래스를 쓰게 되면, 빈보다 먼저 생성되기 때문에 굉장히 유용하게 쓸 수 있는데, 코틀린에서는 특이하게 static이라고 명명하지 않고 다른 이름으로 사용한다. companion object라는 이름으로 사용하는데 자바에서의 static과는 사용법이 조금 다르다. 공용 클래스에 static 매서드로 만들어진 UTC KST 시간 변환 매서드가 있다고 해보자. Java public class CommonUtils { public static LocalDateTime convertToUtc(LocalDateTime localDateTime) { if (localDateTime == null) { return null; } Zone..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/UcH3H/btsD6w6FNJC/ecIRaspQfU1K00r6k4yQSk/img.png)
1월 27일 토요일에 게으른 개발자 컨퍼런스를 보고 왔다. 나랑 같은 생각, 고민을 했던 세션도 있었고 다른 회사는 어떤 문제를 어떻게 해결했나를 알 수 있었던 좋은 기회였다. 세션은 아래와 같이 준비되어 있었는데, 나는 빨간색 사각형 순으로 들었다. 1. 분산트랜잭션 : 과거와 현재첫번째 세션은 분산 트랜잭션에 대한 세션을 들었는데, 아직은 내가 할 수 없는 범위의 내용들이었다. 올해 중순부터 이 내용들을 볼 수 있을 것 같아서 세션을 들은 목적은 키워드를 얻는 것이었는데, 목적은 충분히 이룬 세션이었다. 세션 내용은 분산트랜잭션이 어떻게 진화해왔나였고 최종적으로는, MSA 환경에서 일어날 수 있는 트랜잭션 문제를 어떤 방식으로 대응할 수 있을까에 대한 내용이었다. 참고하면 좋을 것 같은 사이트를 전..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bfbEqR/btsDLsqZgPD/hZrURgl7HKDmCzAGzZdqQ1/img.png)
AWS EC2에서 작업을 하다가 HTTPS 설정을 해야하는 필요한 이슈가 발생했다. HTTPS 설정을 하기 위해서는 SSL/TLS 인증서를 발급받아야 한다. SSL/TLS 인증서를 서버에 적용하기 위해서는 몇 가지 방법이 있다. 1. secure sign과 같은 정식 발급해주는 곳에서 발급 받고 가이드 대로 적용하기 https://www.sslcert.co.kr/guides/Spring-Boot-SSL-Certificate-Install 2. Let's encrypt를 사용하기(얘는 자동 갱신도 됨) https://jiwontip.tistory.com/83 3. ACM(AWS Certificate Manager) 사용하기 https://docs.aws.amazon.com/ko_kr/acm/latest/u..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bmxTo1/btsD3rkq1dW/0lVI6GmnuGrKmZPnLdQgK0/img.png)
상태 검사(health check)란? 상태 확인(상태 검사)은 특정 서버의 서비스에 작업을 성공적으로 수행할 수 있는지 여부를 물어보는 방식입니다. 로드 밸런서는 각 서버에 이 질문을 정기적으로 물어보며 트래픽을 라우팅하는 데 안전한 서버를 확인합니다. 대기열에서 메시지를 폴링하는 서비스는 대기열에서 더 많은 작업을 폴링하도록 결정하기 전에 정상 상태인지를 물어볼 수 있습니다. 외부 모니터링 플릿이나 각 서버에서 실행되는 모니터링 에이전트는 경보를 알리거나 장애가 발생한 서버를 자동으로 처리할 수 있도록 정상 상태인지 여부를 서버에 물어볼 수 있습니다. https://aws.amazon.com/ko/builders-library/implementing-health-checks/ 쿠버네티스를 사용하거나 ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/KQb9W/btsD0G3XYld/2QKbZiV1v4XCLTeoKLtFQk/img.png)
조금 늦었지만 올해 목표를 기록해야한다. 작년 재작년의 목표를 돌아보면, 조금 추상적인 목표가 많았던 것 같다. 그 만큼 내가 할 수 있는 것과 해야할 것이 잘 정리되지 않았던 것 같은데, 이제는 앞으로 뭘해야할 지 정리가 된 상태다. 그래서 더 구체적인 목표를 세운 것 같다. 1. 체지방률 10% 이상 줄이기(현재 28%) 2. 간단한 product 만들어보고, 배포하기 3. 전반기에 쿠버네티스 중심, 후반기엔 DB 중심으로 공부하기 - 쿠버네티스는 현재 회사 인프라를 완벽하게 익히기, DB는 지금 알고 있는 것보다 더 깊이 알아보기 4. 외부활동 꾸준히 하기(dev festa, meet up, 동호회 등의 활동을 꾸준히 하기) 5. 분기별로 책 한권씩 읽기(4권 이상!) 6. github 꾸준히 관리..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bzEOP4/btsDGV8xdww/rHoO73ykFU9XOAgXZXMA70/img.png)
매번 SSM으로 접속하다가 SSH 키를 발급받아서 EC2에 접속할 일이 생겼다. 별 생각 없이 키를 발급 받고 접속을 시도 했는데 아래와 같은 에러가 발생했다. $ ssh -i key.pem ec2-user@ec2-[your-ip].[your-region].compute.amazonaws.com @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: UNPROTECTED PRIVATE KEY FILE! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Permissions 0555 for 'key.pem' are too open. It is required that your..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/AdBYw/btsDApIJXoM/GvxJ93or9ku90zvEKkPBK1/img.png)
일단 나는 API 문서화 + 공유용으로 Postman을 더 선호한다. 그런데 내가 Postman을 선호하고 잘 쓸 수 있었던 가장 큰 이유는 팀 규모가 크지 않았기 때문이라 생각한다. 팀 규모가 커지면 Postman은 상당히 비싼 툴이기 때문이다. 팀 규모가 커져서 Postman을 놓아줄 경우 대안은 여러 종류가 있지만, OpenAPI + Swagger-ui 를 많이 쓴다. 그런데 난 Swagger를 선호하지 않는다. 거기엔 이유가 몇가지 있다. 1. SpringBoot에서 쓰기엔 코드에 너무 많은 어노테이션들이 들어가서, 오히려 코드의 가독성을 망친다. 2. springdoc, springfox에 spring 버전, openapi 버전, java/kotlin 버전에 따라 사용법이 너무 달라서 잘 쓰기 ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/y1Btq/btsDwBNYA2u/JcqRtHBT2NNMiwkJcEEb60/img.jpg)
이전 글들은 이 글을 쓰기위한 빌드업이 었다. 1. AWS S3와 CloudFront 연동 끝까지 가보기 2. WSL/WSL2에 Go(Golang) 설치하기 3. Go + serverless framework로 Lambda 관리하기 4. 꼭 읽어줬으면 하는 AWS Lambda@Edge의 특이 사항들 정리 개인적으로는 Lambda@Edge를 시작하기전에 4번은 꼭 훑고 갔으면 좋겠다. 1번 글의 마치며에서도 언급한 내용이지만, 이미지가 아직 CloudFront(CDN)에 등록되지 않았을 경우 첫 로딩에 문제가 발생할 수 있다. 그리고 그 문제는 이미지의 크기가 커질수록, 더 커질 것이다. 그래서 이미지의 사이즈를 작게 만드는 과정이 필요하다. (리사이징이든, 확장자 변환이든 여러가지 방법이 있다) 하지만 ..
- Total
- Today
- Yesterday
- 오블완
- AOP
- GIT
- AWS
- ChatGPT
- 스프링부트
- docker
- openAI API
- Spring
- OpenFeign
- lambda
- java
- 람다
- springboot
- OpenAI
- 후쿠오카
- elasticsearch
- 티스토리챌린지
- MySQL
- AWS EC2
- Log
- serverless
- CloudFront
- S3
- terraform
- EKS
- cache
- Kotlin
- JWT
- Elastic cloud
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |