본문 바로가기

Java 웹 프로그래밍67

Service - ServiceImpl 쓰지 말라고만 하고 사라지면 어떡해요! 요즘은 많이 줄어들었지만 예전에는 개발을 하다 보면 Service - ServiceImpl 구조를 굉장히 많이 만나볼 수 있었다. 나 조차도 사실 이걸 왜 써야하는지, 근본적인 이유가 무엇인지에 대한 의문을 품지 않고 그저 이런 구조를 사용해서 개발을 하는 것이 회사 개발팀의 컨벤션이기도 했고, 사실 큰 불편함도 없기도 해서 사용하기도 했다. 어느 날 개발을 하던 도중에 의문이 생겼다. 아무리 봐도 대부분의 Service와 ServiceImpl의 관계는 1:1에서 더 이상 바뀔 일이 없을 것 같아 보였고, 동료 개발자에게 질문을 했다. 왜 이런 구조를 채택했냐고. 돌아온 대답은 우리가 알고 있는 이유와 비슷했다. 인터페이스와 구현체를 분리함으로써 얻을 수 있는 이점이 많다는 이유였다. 틀린 말은 아니다... 2024. 2. 26.
스프링 @Transactional 어노테이션을 사용하는 가장 좋은 방법 Spring Transactional annotation 스프링은 1.0 버전부터 AOP 기반의 트랜잭션을 지원했고, 이를 사용하여 개발자들은 트랙잭션 범위를 선언적으로 지정할 수 있었습니다. 얼마 지나지 않아 1.2 버전에서 스프링은 @Transactional 어노테이션을 추가했고, 이로써 트랜잭션 범위를 지정하는것이 훨씬 더 쉬워졌습니다. @Transactional 어노테이션은 다음 속성들로 설정이 가능합니다. value와 transactionManager - value는 transactionManager와 동일(alias)하게 사용됩니다. 이를 사용해 @Transactional 어노테이션이 사용된 블록에서 사용될 TransactioinManager의 참조를 제공합니다. propagation - @T.. 2024. 2. 9.
당신의 RESTful API는 정말 RESTful 한가요? - REST와 Hypertext, HATEOAS 들어가기에 앞서 이 포스팅은 REST가 뭔지 찾아보다 생각보다 더 깊은 내용이 숨어있어 여러가지로 찾아보고 정리하고자 쓴 글입니다. 해당 포스팅에 써 있는 내용이 100% 정답일 수는 없습니다. 분명 모자란 부분도 있고, 틀린 부분도 있을테고, 이상한 부분도 있을겁니다. 그래도 정말 노력하고 재미있게 쓴 포스팅이니 함께 읽어주시고 부족한 부분을 채울 수 있도록 도와주시면 감사하겠습니다. REST? REST (representational state transfer, representational 상태 전송) 란 월드 와이드 웹의 개발과 디자인을 위해 만들어진 소프트웨어 아키텍처 스타일의 한 종류이다. REST는 Web과 같은 분산 하이퍼미디어 시스템의 아키텍처가 어떻게 동작해야 하는지에 대한 일련의 제약.. 2024. 1. 29.
그래서 @Retention이 뭔데 이 개발자야 왜 @Retention이 궁금해졌는가 자바 Annotation을 뒤적거리다가 @Retention을 보게 되었는데 각각 Class, Source, Runtime 세가지 종류로 나뉘어 있는걸 보았다. 그리고 이게 도대체 뭔데.. 싶어서 찾아보기 시작했다. 그래서 우선 Annotation이 뭔가요? 어노테이션은 클래스, 메서드 혹은 필드에 선언할 수 있는 일종의 주석같은 것 이라고 설명할 수 있을 것 같다. 그러면 Annotation의 역할은 뭔가요? Annotation은 JVM이나 컴파일러에 추가적인 정보, metadata를 전달하는 역할을 담당합니다. 컴파일 시점, 런타임 시점, 혹은 빌드시에 참고할 정보를 가지고 있습니다. 그럼 본론으로 돌아와서 @Retention이 뭔가요? https://docs.or.. 2023. 11. 26.
728x90