본문 바로가기

전체 글168

AWS SDK for Java 1.x가 AWS credentials를 가져오는 5가지 방법 AWS SDK for Java 1.x 를 사용하고 있는 Java/Spring Boot 서비스에서 AWS credentials을 가져오지 못하는 문제를 만나게 되었습니다. 해당 문제를 분석하며 AWS SDK for Java 1.x 에서 AWS credentials를 가져오는 방법을 정리해 보았습니다. DefaultAWSCredentialsProviderChain AWS SDK for Java 1.x에서는 DefaultAWSCredentialsProviderChain를 사용하여 편리하게 AWS credentials를 가져올 수 있습니다. // DefaultAWSCredentialsProviderChain 사용 예 private void getCredentials() { credentialsProvider =.. 2023. 4. 23.
Go를 사용하며 느꼈던 몇 가지 충격(?) 포인트들 웹 백엔드 개발자로 주로 Java/Spring(Boot) 기반 개발을 하였지만 회사에서 Go/Gin 기반 개발을 시작하였습니다. Java를 사용했던 개발자가 Go를 사용하며 느꼈던 몇 가지 충격(?) 포인트를 소개드리려 합니다. 특정 언어가 더 좋다를 이야기하는 것이 아닌 Go의 매력을 느끼고 있는 중이라고 생각해 주시면 감사하겠습니다. 잘못된 내용이나 의견 있다면 편하게 말씀해 주세요. 🙏🏻 목차 1. Go 언어 소개 2. 포인트 - 포인터가 있습니다. 근데 GC를 곁들인 - 암묵적 형 변환을 지원하지 않습니다. - 함수(Function)와 메서드(Method)가 구분되어 사용됩니다. - OOP를 지원하지만 클래스가 없습니다. - OOP를 구조체의 확장형으로 사용하고 있기에 상속이 없습니다. - Jav.. 2023. 3. 25.
macOS 개발 환경 설정과 자주 사용하는 앱 소개 (Karabiner, Alfred, Go, Java, Jetbrain, ...) 최근 회사에 입사하며 맥북 설정을 하였습니다. 자주 사용하는 앱과 개발 환경 설정을 정리하였습니다. 목차 - Commom - macOS App (Karabiner, Alfred, Magnet, itsycal) - Terminal - Jetbrain(Intellij, Goland, plugins) - 개발 언어 설정(Go, GVM, Java, JVM) - Infra (Docker, k8s kubectl, redis-cli) Commom System Preferences - Keyboard 키보드 입력 속도 변경 맥북 기본 키보드 입력속도가 느리기 때문에 키보드 입력 속도를 빠르게 설정하는 편입니다. 키보드 입력 automatically 제거 macOS App Karabiner (무료) 키보드 입력키를 변경.. 2023. 3. 12.
[회고] 글쓰기 모임 '글또', 7기 회고와 8기 시작하며 글또란? 글또 (글 쓰는 또라이가 세상을 바꾼다)는 글 쓰는 개발자 모임입니다. 약 6개월의 기간 동안, 2주마다 1개의 글을 작성합니다. 본인이 속한 개발 직군 채널(e.g. 백엔드)에 글을 공유합니다. 채널 멤버들끼리 글을 피드백을 합니다. 종종 오프라인(커피챗, 공식 행사 등) 모임도 있습니다. 7기를 마치며 글또 7기 22년 5월~10월 기간 동안 MySQL, GitHub Actions, TestContainers, Git, Static program analysis, Terraform, Jira, AWS(VPC, ALB, Route53, S3, CloudFront)의 주제로 약 24개의 글을 작성하였습니다. 부족한 글들도 많지만 이렇게 모아서 보니 많은 것을 기록했구나 되돌아보았네요. (작성한 .. 2023. 2. 11.
Maven Standard Directory Layout과 plain jar, executable jar 이번 글에서는 간략하게 Maven Standard Directory Layout와 plain jar, executable jar에 대해 소개하려 합니다. Maven Standard Directory Layout 흔히 spring boot 프로젝트를 생성하면 아래와 같은 패키지 구조를 가지게 됩니다. > tree src src ├── main │ ├── java │ │ └── com │ │ └── kukim │ │ └── recipe │ │ └── RecipeApplication.java │ └── resources │ ├── application.properties │ ├── static │ └── templates └── test └── java └── com └── kukim └── recipe └─.. 2022. 12. 28.
[간단 장애 회고] Redis + @Transactional (트랜잭션에서 Redis Get은 항상 null을 리턴한다. 트랜잭션 없는 상위 메서드에서 트랜잭션 있는 하위 메서드 호출은 에러다.) 잘못된 내용이나 의견 있다면 편하게 말씀해주세요.🙏🏻 사건의 개요 Spring Boot에서 @Transactional 어노테이션을 사용하여 Redis에 대해 트랜잭션을 사용했습니다. 하지만 문제가 발생했습니다. 하나의 트랜잭션에서 Redis Get와 Redis Set을 사용할 때 Redis Get가 조회되지 않고 항상 null을 발생시켰습니다. +a 배경지식 : Spring Data Redis + @Transactional Spring Boot에서 Redis 저장소를 사용합니다. 연결하기 위해서는 spring-boot-starter-data-redis 의존성을 사용합니다. 해당 의존성은 Redis Client인 lettuce 라이브러리를 사용합니다. JDBC나 JPA에서 사용하는 @Transactiona.. 2022. 12. 18.