Tagging 구현을 위한 최적의 설계를 찾아서(with Spring JPA)
이번 포스팅에서는 Spring을 활용한 사이드 프로젝트에서 엔티티 설계를 진행하며, 어떻게 하면 Tagging 혹은 Labeling을 잘 설계할 수 있을지 고민해보고 내린 잠정적인 결론과 근거를 소개해 보려고 합니다. 프로젝트 요구사항 우선, 어쩌다가 Tagging을 구현하게 되었는지 간략히 제 상황을 소개하고 지나가겠습니다. 저는 네이버 지도와 같...
이번 포스팅에서는 Spring을 활용한 사이드 프로젝트에서 엔티티 설계를 진행하며, 어떻게 하면 Tagging 혹은 Labeling을 잘 설계할 수 있을지 고민해보고 내린 잠정적인 결론과 근거를 소개해 보려고 합니다. 프로젝트 요구사항 우선, 어쩌다가 Tagging을 구현하게 되었는지 간략히 제 상황을 소개하고 지나가겠습니다. 저는 네이버 지도와 같...
이번 포스팅에서는 Spring Bean이 존재할 수 있는 범위를 뜻하는 Spring Bean Scope에 대해 자세히 알아보겠습니다. Spring Bean Scope란? 우선 Spring Bean Scope는 해당 Bean이 존재할 수 있는 범위를 뜻합니다. 이전의 포스팅들에서는 별다른 설명없이 Spring Bean이 Spring Container의...
이번 포스팅에서는 지금까지 배운 Spring Bean의 생명 주기(LifeCycle)에 대해 자세히 알아보는 시간을 가지도록 하겠습니다. Spring Bean LifeCycle Callback이란? 스프링 빈 생명 주기 콜백(Spring Bean LifeCycle Callback)이 무엇일까요? 이름 그대로 유추해보면 Spring Bean의 생성과 ...
이번 포스팅은 앞서 배운 @Autowired의 연장선으로 스프링 내 의존 관계 자동 주입에 대해 깊이 있게 알아보는 시간을 가지려고 합니다. 의존 관계 주입 방법 4가지 의존 관계 주입 방법에는 다음과 같이 크게 4가지가 있습니다. 생성자 주입 수정자 주입(setter 주입) 필드 주입 일반 메서드 주입 첫 번째로, 생성자 주입...
이번 포스팅에서는 앞서 일일히 직접 구현했던 Spring Bean 등록 과정을 더욱 편리하게 해주는 스프링 프레임워크의 컴포넌트 스캔 기능에 대해 알아보겠습니다. 컴포넌트 스캔과 의존 관계 자동 주입 지금까지 앞선 포스팅에서는 순수 Java 코드나 xml을 가지고 AppConfig라는 설정 정보 코드를 직접 구현하여 Spring container에 ...
이번 포스팅에서는 앞서 배웠던 Spring container에 이어서 싱글톤 컨테이너(Singleton container)에 대해 알아보는 시간을 가지도록 하겠습니다. 웹 애플리케이션과 싱글톤 우선 싱글톤(Singleton)이라는 것에 대해 간단히 알아보겠습니다. 싱글톤은 다들 익히 아시고 계신 것처럼 객체가 현재 나의 java jvm 안에 딱 하나...
이번 포스팅에서는 이전 DI, IoC 포스팅에서 배웠던 DI 컨테이너의 Spring 버전인 Spring container에 대해 기본적인 개념부터 깊이있는 내용까지 모두 다뤄보겠습니다. 그 전에 스프링을 사용하기 전에 순수 Java 코드로 구현한 AppConfig 코드 먼저 살펴보겠습니다. AppConfig with 순수 Java public cla...
이번 포스팅에서는 의존 관계 주입(Dependency Injection, DI)과 제어의 역전(Inversion of Control, IoC)이 무엇인지 살펴보고 이를 통해 프레임워크와 라이브러리의 차이점도 알아보겠습니다. 의존 관계 주입(DI)이란? 우선 의존 관계 주입을 이해하기 위해서는 앞선 관심사의 분리 포스팅의 내용을 이해해야합니다. 이전 ...
이번 포스팅에서는 객체 지향 설계에 있어 중요한 개념인 “관심사의 분리”에 대한 정의, 그리고 이 개념이 필요한 상황을 구체적인 코드와 함께 알아보겠습니다. 관심사의 분리란? 우선, 관심사의 분리를 위키피디아에 검색해보면 다음과 같습니다. 컴퓨터 과학에서 관심사 분리(Separation of Concerns, SoC)는 컴퓨터 프로그램을 구별...
이전 포스팅에서 객체 지향 설계란 무엇인지에 대해 알아봤습니다. 이번 포스팅에서는 좋은 객체 지향 설계를 위해 필요한 5가지 원칙, 줄여서 SOLID에 대해 살펴보겠습니다. SOLID란? SOLID는 Clean Code의 저자로 유명한 로버트 마틴이 좋은 객체 지향 설계 원칙을 5가지로 정리해 나타낸 것을 의미하고 이 각각의 원칙의 앞글자를 따 SO...