본문 바로가기
반응형

전체 글353

5GHz Wi-Fi가 보이지 않아요 결혼 및 독립을 하면서 데스크탑도 새로 사고 인터넷도 새로 설치했다.데스크탑 세팅을 하면서 와이파이 스캔을 하면 우리집 5GHz 와이파이가 안보이는 문제가 있었다.해결 과정과 상황을 정리해보려고한다. 문제 상황 요약 5GHz Wi-Fi가 잡혀야 하는데 PC에서 우리집 공유기의 2.4GHZ만 보이고, 5GHz는 안보임다른 5GHz 와이파이는 가끔씩 보임 → 5GHz 자체는 감지 가능 메인보드에 무선 LAN 카드가 없으므로 Realtek 8812BU 무선 랜카드 사용 이제 문제의 원인을 찾아보자. ✅1단계: 5GHz Wi-Fi 자체가 안 보임 다른 5GHz 와이파이는 보이고, 8812BU 무선 랜카드도 5GHz를 지원한다고 나와있지만 한 번 눈으로 확인해봤다. netsh wlan show drivers 지.. 2025. 10. 10.
Junit5 구조와 아키텍처 (with Junit이 main 없이 동작하는 이유) 개발 환경: IntelliJ 2024.3.1.1(Ultimate), JDK 21, Gradle 8.13 IntelliJ IDEA 환경과 Gradle 환경에서 Junit 살펴보기 오늘은 개발자들이 Junit을 사용하면서 스쳐지나갔을 main 함수가 없는데 Junit이 동작할 수 있는 이유에 대해 알아보고자 한다. 우선 인텔리제이에서 Build And Run 설정을 IntelliJ IDEA로 설정했다.  그리고 간단한 테스트 코드를 바로 프로파일링을 해보았다.  그럼 com.intellij.rt.junit.JunitStarter.main 메서드가 제일 먼저 실행된다. 이번에는 Build And Run 설정을 Gradle로 설정했다.  이제 다시 프로파일링을 진행해보자.  우선 제일 먼저 호출되는 코드는 Gr.. 2025. 4. 5.
Kotest 주의할 점 (with Spring) 오늘은 실무에서 Kotest와 스프링을 같이 사용하면서 당황한 부분을 정리하고, Kotest Isolation Modes에 대해 정리할 예정이다. Kotest Isolation Modes IsolationMode라는 Enum을 활용해 테스트 케이스 인스턴스를 어떻게 생성하는지 제어할 수 있다.IsolationMode Enum은 총 3가지 값이 있다. IsolationMode.SingleInstanceIsolationMode.InstancePerTestIsolationMode.InstancePerLeaf IsolationMode.SingleInstance 해당 Enum은 Spec(Fun Spec, Behavior Spec 등) 클래스의 인스턴스가 하나만 생성되고,모든 테스트 케이스가 차례대로 실행되며, 모.. 2025. 3. 21.
전시 도메인 캐싱에 대한 잡다한 생각들 이번 포스팅에서는 화면 레이아웃, 팝업, 배너, 카테고리와 같은 전시 도메인, 전시 영역에 대한 캐싱을 적용하면서 본인이 생각한 중요한 포인트 및 자잘한 생각들을 정리해보려고 한다. 프로젝트(이커머스)를 코프링으로 진행했으므로 아마 스프링과 JVM 관점에서 설명하는 내용이 존재할 것이다.인프라는 AWS이며, 데이터베이스로는 SQL(Oracle)과 Redis를 사용 중이다.  캐싱 적용 이유 및 놓친 부분 캐싱 적용은 6개월 또는 분기마다 트래픽이 높아지는 이벤트가 있는데 이에 도움이 되고자 진행한 작업이다.사실 이커머스에서 유저가 몰릴 때 부하가 제일 많이 생기는 곳은 상품 도메인이다.그래도 팀에서 전시 도메인 특징 상 자주 수정이 되지 않고 조회는 많으므로 캐싱 적용이 알맞고 도움이 될 것이라고 판단했.. 2025. 2. 5.
2개의 멀티 트랜잭션 안정적으로 다루기 2개의 다른 트랜잭션을 안정적으로 다루기 위한 고민을 담은 글입니다.2개의 다른 트랜잭션을 멀티 트랜잭션이라고 부르겠습니다.바로 시작하겠습니다. 멀티 트랜잭션 핸들링을 고민하게 된 계기 레거시 애플리케이션에서는 XA 트랜잭션을 사용해 멀티 트랜잭션을 핸들링하고 있다.시스템을 이관하면서 XA 트랜잭션을 사용하지말아달라는 요구사항이 들어왔고, 이를 수정해야했다. XA 트랜잭션은 A라는 데이터베이스와 B라는 데이터베이스에서 동시에 데이터를 처리할 때,이들을 하나의 트랜잭션으로 묶어서 ACID를 보장해주는 글로벌 트랜잭션이다. 2개의 DB를 사용하는 이유는?? 2개의 데이터베이스를 A 데이터베이스, B 데이터베이스라고 부르겠다. A 데이터베이스는 애플리케이션의 전체적인 비즈니스 로직 데이터들이 저장되고 수정되며.. 2025. 1. 11.
@Version을 사용하지 않는데 ObjectOptimisticLockingFailureException 등장?! 예측하지 못한 예외 등장?! Kotlin + Spring Boot + Spring Data Jpa 등 다양한 기술을 사용한 프로젝트를 진행하고 있다. 어느 평화로운 날.. 갑자기 프로젝트의 스프링 부트 버전에서 Tomcat 취약점이 발견되어 최신 버전 3.4.1로 스프링 부트 버전을 올렸다. 버전을 올리고 테스트 코드를 실행하면서 잘 동작하던 코드에서 ObjectOptimisticLockingFailureException이 발생했다.로그를 보면 StateObjectStateException이 먼저 발생하고 해당 에러를 OptimisticLocking 예외로 감쌌다. 프로젝트에서는 현재 낙관적 락(@Version)을 사용하지 않고 있어서 당황했다.기존 스프링 부트 버전으로 다운 그레이드하면 예외를 던진 코.. 2025. 1. 9.
반응형