목록Programing & Coding/Spring (15)
S E P H ' S
Spring 핵심 3대 요소 스프링 프레임워크는 POJO (Plain Old Java Object) 프로그래밍을 지향한다. 순수 Java만을 통해서 생성한 객체를 말하는데 이를 지향하는 이유는 외부 기술이나 규약의 변화에 얽매이지 않고 유연하게 변화와 확장에 대처할 수 있다. 이를 통해 비즈니스 로직을 구현하면 객체지향 설계를 제한없이 적용할 수 있으며 코드가 단순해져 테스트와 디버깅이 쉬워진다. 이처럼 비즈니스 로직을 구현하는데에 POJO를 적극적으로 활용하는 패러다임을 POJO 프로그래밍이라고 한다. 이번 포스팅은 POJO 프로그래밍을 위해 스프링이 지원하는 기술인 IoC/DI, AOP, PSA에 대해 간략하게 알아보는 포스팅이 될 것이다. 1. IoC / DI (Inversion of Control..
오래전에 작성한 Spring에 대한 포스트에 이어서 Spring Framework에 대한 이해를 높이기 위해 다시 포스트를 시작했다. Spring을 사용해서 4개의 프로젝트를 진행했음에도 여전히 깊은 이해는 부족하다고 생각이 들었다. 그래서 Spring에 대해서 더욱 깊게 알아보려고 한다. Spring의 등장 기본적인 구조와 특징은 간략하게 1. 스프링(Spring)이란? 에서 다루었다. 지난 글을 가볍게 읽고 넘어온다면 Spring에 대한 이해가 더욱 잘될 것이라 생각된다. 스프링이 등장하기 전, 자바 개발자들은 EJB(Enterprise Java Beans)를 주 프레임워크로 사용했다. 2002년에 로드 존슨이 출판한 도서 "Expert One-on-One J2EE Desing and Developm..
싱글톤 컨테이너(Singleton Container) 싱글톤 컨테이너란 클래스의 인스턴스가 Java JVM 내에 단 하나만 존재하는 것을 의미한다. 웹 애플리케이션은 수많은 클라이언트에서 서비스를 요청받게 되는데 만약 서버에서 클라이언트의 요청을 받을때마다 클래스 인스턴스를 생성하게 되면 JVM 메모리 사용량이 증가하게 되고 서버 부하가 발생할 것이다. 예제로 함께 확인해보자. 예제는 Spring 프로젝트가 아닌 일반 Java 프로젝트로 만들어져있다. Java 프로젝트로 만들어져 있다고 해서 잘못된 것이 아닌가? 하는 것이 아니라 Spring에서 어떻게 싱글톤을 쓰는지에 초점을 두고 감안하여 읽으면 좋을 듯 하다. 먼저 AppConfig.java 에서 MemberService를 빈으로 등록했고 Membe..
무지성으로 기능 구현에만 집중했던 프로젝트를 리팩토링하면서 여러가지 문제점들이 있다는 것을 알게 됐다. 그 덕에 열심히 다시 Spring에 대한 공부를 하고 있다. 지금 작성하고 있는 포스트에 대한 문제도 사실 해결을 못한 것은 아니다. 하지만 왜 이렇게 해결이 되었는지 문제는 왜 발생한건지 궁금해서 하나씩 다 열어보고 싶어졌다. 그래서 리팩토링을 거친 순서대로 한번 짚어보면서 내용을 정리해보기로 했다. 생성자 주입 방식 프로젝트 리팩토링 대상 중 하나는 바로 생성자 주입 방식으로 변경하는 것이었다. Spring 4.3 버전부터는 생성자 주입 방식을 권장하고 있고 그 이유에는 대표적으로 3가지가 있다. 먼저 이것부터 간단히 짚고 넘어가자. 1. 객체 불변성 확보 @Controller public clas..