[Spring] virtual thread vs webflux
·
spring
최근 넷플릭스는 WebFlux에서 다시 Web MVC로 회귀하겠다고 발표했습니다. 가장 큰 이유는 함수 색 전염 문제였습니다. WebFlux는 비동기 체계를 유지하기 위해 모든 모듈을 비동기 방식으로 작성해야 하며, 이로 인해 유지보수 비용이 크게 증가합니다.https://www.linkedin.com/pulse/%EB%84%B7%ED%94%8C%EB%A6%AD%EC%8A%A4%EB%8A%94-%EC%99%9C-webflux%EB%A5%BC-%EC%82%AC%EC%9A%A9%ED%95%98%EC%A7%80-%EC%95%8A%EC%9D%84%EA%B9%8C-springrunner-pw8tc/ 넷플릭스는 왜 WebFlux를 사용하지 않을까?몇달 전 JavaOne 2025에서 넷플릭스의 자바 플랫폼을 총괄하는..
mock대신 spy를 사용한 이유
·
spring
테스트 코드를 작성하다가, mocking(stubbing) 에 대한 생각을 하게 되었습니다. 맞닥뜨린 코드는 다음과 같습니다. @Transactional public void cancelFoo(Long fooId) { Foo foo = getFoo(fooId); foo.cancel(); fooRepository.save(foo); } Foo 엔티티 내부에 status가 있는데,이 status를 변경하고 저장하는 로직입니다. 위 내용을 Mockito를 이용하여 mocking(stubbing) 후 단위테스트로 작성하면 다음과 같습니다. @Test void cancelFoo() { //given Foo mockedFoo..
[Spring] 어느 레이어에서 리팩토링 해야할까?
·
spring
데이터베이스 vs 애플리케이션 레이어리팩토링은 어디서 해야 할까?웹 서비스를 운영하다 보면 데이터를 가공하거나 필터링해야 하는 경우가 자주 발생합니다.이때 항상 따라붙는 고민이 있습니다."이 로직을 DB에서 처리해야 할까, 아니면 애플리케이션에서 처리해야 할까?"최근 외부 API 연동과 사용자 조건 필터링을 함께 다루는 기능을 리팩토링하면서 이 문제를 직접 마주했습니다.당시 고려했던 기준들과, 그에 따른 결론을 공유드리려고 합니다.🔍 어떤 레이어에서 리팩토링할지 판단 기준리팩토링 과정에서 고민했던 주요 포인트는 다음과 같습니다.1. 유지보수를 자주 해야 하는가?빈번하게 변경될 가능성이 있다면 애플리케이션 레이어가 적합합니다.SQL 쿼리는 변경 시 배포 또는 마이그레이션이 필요한 경우가 많기 때문입니다...
성능 최적화 - 성능 저하 원인 찾기 (1)
·
spring
2025.04.03 - [데이터베이스] - 성능 최적화 - 병목 구조 튜닝하기 (2) 성능 최적화 - 병목 구조 튜닝하기 (2)https://featherdale.tistory.com/6 지난 포스팅지난 포스팅에서는 병목이 어디서 발생하는지 확인해 보았습니다.이번 글에서는 실제 실행된 PostgreSQL 쿼리를 기반으로 실행 계획을 분석하고,어떻게 성능featherdale.tistory.com2025.04.04 - [ELK] - 성능 최적화 - 모니터링 시스템 구축 (3) 성능 최적화 - 모니터링 시스템 구축 (3)지난 포스팅 :2025.03.31 - [spring] - 성능 최적화 - 성능 저하 원인 찾기 (1) 성능 최적화 - 성능 저하 원인 찾기 (1)느려진 성능 최적화 하기프로젝트를 살펴 보던 중..
[Spring] AOP의 개념 및 특징
·
spring
AOP란?Aspect-Oriented Programming (관점 지향 프로그래밍)AOP는 공통 기능을 분리해서 모듈화하고, 핵심 로직과 관심사를 분리하기 위한 프로그래밍 패러다임입니다.예시 코드public void transferMoney(Account from, Account to, int amount) { log.info("송금 시작"); // 공통 관심사 try { from.withdraw(amount); // 핵심 로직 to.deposit(amount); // 핵심 로직 } catch (Exception e) { log.error("에러 발생", e); // 공통 관심사 ..