전체 글 55

2025 개발툴 정리

2025년 현재 사용중인 개발 툴 정리OS: MacDBredis insightpubsub용으로만 쓰고, redis cache는 intellij로 database plugin추가해서 사용gitforkintellij gitconflict가 상세히 발생하는경우 intellij에서 사용ideintellijcursorcursor 구독 취소후 claude-code 사용dockerorbstackdocker desktop 보다 훨씬 빠름k8slensTerminalwarpNetworkproxyman (무료 사용중이었지만, 그냥 사려고함 너무 좋음)postman (graphql curl까지 잘 import되서 이제 insomnia필요없음)tunnelblick (openvpn)intellij pluginsDatabase t..

카테고리 없음 2025.04.02

Implementing Redis Cache in Spring Boot: From Basic Setup to Serialization

Implementing Redis Cache in Spring Boot: From Basic Setup to Serialization캐시무효화와 Cache Aside를 통해 캐시를 사례를 구성했습니다.환경mackotlinspringboot준비사항springboot projectredis cluster ( container )다루는 내용@Cacheable, @CacheEvictSpring Cache, Spring Data RedisJackson1. Spring Cache와 Redis 연동을 위한 기본 설정필요한 의존성 설명implementation("org.springframework.boot:spring-boot-starter-data-redis")implementation("com.fasterxml.j..

OneToOne 관계에서의 지연 로딩과 N+1 문제 심층 분석

OneToOne 관계에서의 지연 로딩과 N+1 문제 심층 분석샘플 엔티티 관계 Team ▲ ▼ │ │ N │ │ 1 │ │ │ │ Member ◄──── 1:1 ────► Profile샘플 엔티티@Entity class Member( @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "member_id") val id: Long? = null, val name: String, val email: String, @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(n..

Java/JPA 2025.02.21

AWS EKS의 IRSA와 RBAC 이해하기 - Spring Boot MSA 환경의 로깅 시스템 구축 사례

AWS EKS의 IRSA와 RBAC 이해하기 - Spring Boot MSA 환경의 로깅 시스템 구축 사례 이번 포스팅에서는 AWS EKS 환경에 배포된 SpringBoot 애플리케이션 로깅 구축시 필요한 IRSA와 RBAC를 사례를 통해 정리합니다.로깅 구성시 중요하게 생각한건 확장성과 비용이었습니다. 현재 구성한 기술스택도 정답이 아니지만 중요하게 고려했던부분은 로그 저장소였습니다.로깅 구축에 사용된 기술 스택은 다음과 같습니다.aws cloudwatchfluentbitaws eks 환경에서 logging을 구축하기 위해서 해야할일을 크게 두가지로 나눴습니다.aws eks의 배포된 특정 app에 대한 로깅 수집수집한 로깅을 적재하는것ClusterRole로깅을 수집하기 위해서는 로깅 컬렉터가 필요합니다..

kubernetes 2024.11.19

DGS Framework의 GraphiQL을 Apollo GraphQL Sandbox로 대체하기

이번 포스트에서는 DGS Framework의 기본 GraphQL Playground인 Graphiql이 아닌 Apollo Graphql Sandbox에서 사용하는 방법에 대한 내용입니다. 환경kotlin 1.9.20spring-boot 3.3.3spring security 6graphql-dgs-spring-graphql-starter 9.1.2DGS Framework로 Graphql 서버를 올리게 되면 기본적으로 host:port/graphiql 로 graphiql playground로 graphql 쿼리 접근이 가능합니다.Apollo Graphql Sandbox를 사용하려던 이유는 회사내에서는 Apollo Graphql를 Node.js환경에서 운영중이기 때문에 대부분의 개발자는 Apollo Graph..

Graphql 2024.11.19

SOLID - SRP

이번 포스팅에서는 SOLID 원칙중 SRP의 개념을 이해하고, kotlin 코드로 개념을 익혀보려고 합니다.SRP의 개념은 다음과 같습니다. SRP, 단일 책임 원칙은 어떤 클래스를 변경의 이유가 하나여야 한다 조금 더 쉽게 풀어보면**단일 책임 원칙(SRP)**은 하나의 클래스가 오직 하나의 책임만 가져야 한다는 원칙입니다. 즉, 클래스가 변경되는 이유는 하나뿐이어야 하며, 여러 가지 책임을 가진다면 이를 적절하게 분리해야 합니다. 각 객체가 특정 역할만 담당하게 되면, 각 책임에 대해 독립적으로 변경 및 유지보수가 가능해집니다. SRP내용을 이해하기 위해서 가상의 개발자와 코드리뷰를 하는 형식으로 내용을 작성했습니다. OOP를 모르는 논리적인 개발자가 개발한 코드를 SRP을 적용하여 질답을 하는 구조..

디자인패턴 2024.09.19

독거미 87 키보드 fn lock

이번 포스팅에서는 mac에서 fn lock하는 방법에 대해서 포스팅합니다 인터넷에 나오는 fn lock 기능은 동작하지 않아서 서칭결과독거미 키보드의 OS를 window로 맞추고 karabiner로 option command를 변경하는 방법이었습니다. 저는 단순히 개발시 fn키를 사용하기 때문에 fn 이렇게 설정했습니다 다루는 내용독거미에서 OS를 windows로 설정karabiner로 option command 변경 독거미에서 OS를 windows로 설정FN + W를 3초 눌러줍니다잘 설정됐는지 확인하려면 FN키 누르면 W키에 LED 들어옵니다 Karabiner로 option command 변경brew install --cask karabiner-elements 보안설정 해주시고karabiner-..

디바이스 2024.09.06

spring aop와 annotation 맛보기

"k8s 클러스터에 springboot application 배포후 모니터링" 연재를 다룰 예정인데, 그 과정에서 프로파일링 관련 기능이 필요할것 같아 이번에 포스팅하게 되었습니다. 이번 포스팅에서는 spring-aop와 애노테이션을 사용할것인데, 그전에 spring-aop와 annotation 관련 내용을 포스팅하게되었습니다.간단히 메서드에 실행시간 출력하는 애노테이션을 추가했고, spring-aop를 통해 출력해보도록 하겠습니다.이번 포스팅은 상황을 가정하고 그 상황에 필요한 기술을 맛보기로 다룹니다. 부하테스트로 timeout이 발생하는 이슈를 파악하고 로컬환경에서 api 요청에 따른 로직의 성능을 파악하기 위해 jaeger를 사용해서 프로파일링하는 것을 목표로 합니다.  다루는 내용spring-a..

ExecutorService in Java: Complete Guide with Practical Examples - 1

ExecutorService in Java: Complete Guide with Practical ExamplesJava/Spring으로 여러 API를 비동기로 요청을 처리해야할때 내부적으로 ExecutorService를 사용합니다이번 포스팅에서는 ExecutorService에 대해서 자세히 다뤄보겠습니다 환경java17다루는 내용ExecutorService 개요execute vs submit스레드풀 중단 및 종료작업 종료 대기 및 확인 ExecutorService 개요ExecutorService는 비동기 작업을 실행하고 관리하기 위해 두 가지 메서드를 제공합니다void execute(Runnable r): 작업을 제출하면 작업을 실행하고 종료합니다Future submit(Callable c): 작업을 ..

Java/기초 2024.09.02