스프링 3

[Spring] 어노테이션의 정의와 동작원리

📌 들어가며 SpringBoot를 이용해 개발을 하다보면 정말 많이 사용하게 되는 것 중 하나가 어노테이션입니다. 종류도 매우 다양하며(@RestController, @Component.. 등) Personal 어노테이션을 만들 수도 있습니다. 오늘은 이러한 Spring에서 어노테이션의 정의와 동작원리에 대해서 알아보도록 하겠습니다. 📌 Annotation 의 정의 어노테이션에 대한 정의를 자바 공식 문서에서 찾아보면 https://docs.oracle.com/javase/tutorial/java/annotations/ Lesson: Annotations (The Java™ Tutorials > Learning the Java Language) The Java Tutorials have been writ..

BackEnd/SpringBoot 2023.09.18

백엔드 아키텍처 개요(2) - DIP

지난 글에서 가장 기본적인 계층 구조의 아키텍처 구성에 대해 알아보았습니다. 이번 글에서는 그러한 계층 구조 아키텍처를 사용했을 때의 문제점과 이를 해결하기 위한 DIP(Dependency Inversion Principle) 의존성 역전 원칙을 알아보도록 하겠습니다. 예를 들어 어떠한 도메인의 가격 계산 규칙 기능이 있습니다. 할인 금액 계산 로직이 복잡해지게 되면 객체 지향으로 로직을 구현하는 것보다 룰 엔진을 사용하는 것이 더 알맞을 때가 있습니다. 다음의 예시 코드는 Drools라는 룰 엔진을 사용해서 로직을 수행하는 인프라스트럭처 영역의 코드입니다. public class DroolsRulerEngine { private KieContainer kContainer; public DroolsRul..

Architecture 2023.01.22

백엔드 아키텍처 개요

대학교 시절과 회사에 입사한지 얼마 되지 않았을 때 까지는 아키텍처의 중요성에 대해 간과했습니다. 그나마 알고 있는 것이라고는 MVC 프레임워크 정도가 전부였습니다. 물론, MVC 프레임워크 역시 아키텍처 영역에서 보기에는 표현영역을 위한 기술 중에 하나일 뿐이지 아키텍처를 대변하지는 않습니다. 회사에서 프로젝트를 진행하면서 DDD 에 관해 접하게 되고 AA(Application Architecture) 분들과 협업을 하게 되면서 아키텍처에 대한 공부 역시 필요하다는 것을 알게 되었습니다. 사실 아키텍처 공부는 정말 끝이 없는 것 같습니다. 정확한 영역이 어디까지인지도 아직 잘 모르겠습니다. 아키텍처를 공부하다 보면 이와 관련된 수많은 다른 영역들을 접하게 됩니다. DIP, infrastructure, ..

Architecture 2023.01.16