본문 바로가기

SpringFramework3

Spring Framework에서 복잡한 비즈니스 로직 구조화하기 Filter Chain 오늘은 스프링 프레임워크에서 복잡한 비즈니스 로직을 구조화해 본 경험을 이야기 해보려고 합니다.제가 실제로 해결하고자 했던 비즈니스를 기반으로 설명하면 좋겠지만 아무래도 보안상 문제가 있을 수 있어 배달 어플에서 사용 가능한 쿠폰 목록을 고객에게 안내하는 비즈니스 도메인이 가장 적절하다고 생각하여 해당 도메인으로 설명을 해보도록 하겠습니다. 우리가 해결하고자 하는 비즈니스 도메인은 다음과 같습니다.1. 고객이 보유한 쿠폰 목록 중 주문에 사용 가능한 쿠폰 목록을 보여준다.2. 사용가능한 쿠폰에 대한 정의는 다음과 같습니다.- 고객이 보유한 쿠폰중 사용기한이 만료되지 않은 쿠폰- 고객이 보유한 쿠폰중 전체 브랜드 또는 주문하고자 하는 가게 브랜드에 적용이 가능한 쿠폰- 고객이 보유한 쿠폰중 전체 지역 또는.. 2025. 4. 20.
SpringFramework 버그에 대한 불안감 떨쳐내기 Spock Test 개발자로 첫 취업 후 고객들에게 실질적으로 서비스되는 프로젝트 첫 배포는 정말 인생에서 잊지 못할 기억으로 남을 것 같습니다. 그때 당시 주니어 개발자인 저에게 메인 서비스 리뉴얼을 맡기고 배포할 수 있는 기회는 정말 소중했던 경험으로 죽을 때까지 잊지 못할 기억이 될 것 같습니다.잊지 못하는 기억에 이유는 물론 고객들이 실제로 사용하는 서비스를 배포하고 한다는 점도 있지만 버그가 발생할 것 같은 마음에 코드를 보고 또 봐도 마음 한편에 불안감 때문 이었던 것 같습니다. 지금은 경력이 짧지만 이제는 웬만한 버그없이 안정적으로 서비스를 개발하는 것 같습니다. 이런 안정감을 어떻게 저는 찾게 되었냐면 짧지만 경험을 통해 방어로직을 잘 구성하는 것 도 있지만 중요 로직에 대한 테스트시나리오를 구성하고 테스트.. 2025. 2. 19.
SpringFramework NullPointException 방지법 NullPointException자바 개발자라면 많이 마주치는 오류라고 단언컨데 이야기할 수 있을것 같습니다. 처음 자바 개발을 배우며 매번 만나던 오류였고 개발자로 취업후 2개월정도는 많이 고생했던 기억이 납니다. 이제는 NullPointException 에러방지는 몸에 습관이 되어서 잘 만나보지 못하지만 혹여나 NPE로 고생하시는 개발자분들 위해 간단하게 제가 Java Spring Framework에서 NPE를 방지하는 방법을 공유하도록 하겠습니다. // Db 엔티티 단건조회시 Optional 타입으로 조회Optional optionalBoard = boardRepository.findById(boardId);// 데이터가 존재하지 않을경우 체크if (optionalBoard.isEmpty()) { .. 2025. 1. 13.