느린 것을 걱정하지 말고, 멈춰서는 것을 걱정하라
스프링 DataAccess 공부 후 고찰(선언적 트랜잭션)
IT/SpringFramework 2019. 11. 24. 09:44

토비의 스프링 vol2 Chapter2 DataAccess에서는 DAO클래스를 어떠한 식으로 작성하며, 추상화 기법을 이용하여 어떻게 DataAccess 기술을 사용하는지에 대해 나와있었다. 특히, 생각을 많이한 부분은 트랜잭션에 대한 설명이었는데, 개발자들이 '선언적 트랜잭션을 사용하기 위해 스프링을 사용하는 개발자가 많다.'라는 글귀에서 많은 생각을 하게 되었다. '선언적 트랜잭션'. vol1 AOP를 공부할 때도 많이 나오는 단어인데, 과연 여기서 말하는 선억적이란 무슨 의미일까 하는 궁금증이 생겨서 네이버 국어사전을 살펴보았다. 선언적의 의미로는 두가지의 동음 이의어를 발견할 수 있었다. 1. 선언적(選: 가릴선, 言: 말씀 언, 的, 과녁적) 몇 개의 배타적 개념이나 빈사(賓辭) 가운데에서 선택..

article thumbnail
Spring MVC- MyBatis 연동하기
IT/SpringFramework 2019. 11. 23. 17:30

이제 토비의 스프링에 대한 개념을 어느정도 익혀가고 있으니 Database와 연동하기 위한 빈을 연동하는 작업을 금일 수행할 것이다. Database와 연동하기위해 사용할 기술은 MyBatis인데 SQL코드와 소스코드를 나눠주고 객체와 SQL 간의 매핑을 하는데 쓰이는 퍼시스턴스 프레임워크(데이터의 저장, 조회, 변경, 삭제를 다루는 클래스 및 설정 파일들의 집합)으로 현재 우리나라의 많은 Spring 프로젝트에서 사용되고 있는 기술이다. 마이바티스의 홈페이지는 다음과 같다. https://mybatis.org/ mybatis mybatis.org 마이바티스의 정의 마이바티스(MyBatis)는 자바 퍼시스턴스 프레임워크의 하나로 XML 서술자나 애너테이션(annotation)을 사용하여 저장 프로시저나 ..

article thumbnail
웹에서의 스프링 IoC/DI
IT/SpringFramework 2019. 11. 21. 07:42

드디어 토비의 스프링 vol2의 공부를 시작한다. 토비의 스프링 vol1의 내용을 생각해보면 객체를 생성, 삭제 및 관계를 설정해주는 DI/IOC와 여러가지 기술을 유연하게 도입하거나 변경하게 해주는 서비스 추상화, OOP를 통해 모듈화 할수 없는 공통적으로 자주 쓰이고 여러곳에 산재되어 있는 코드를 모듈화해주는 AOP가 있다. 이러한 기술들을 기반으로 코드를 간단하고 유연하게 작성하도록 해주는 것이 스프링의 철학을 설명하고 있다. vol2의 경우 목차를 살펴보니 스프링 vol1의 경우 스프링의 근간이 되는 기술들에 다룬데 반하여 스프링을 사용하여 어플리케이션을 어떻게 작성하는지 실질적 업무에 쓰일수 있는(?) 기술에 대하여 나와있다. 하지만 이러한 기술들을 제대로 쓰려면 vol1을 꼭 봐야겠다는 생각도..

article thumbnail
Spring AOP의 토대가 되는 빈 후처리기를 이용한 프록시 객체 생성
IT/SpringFramework 2019. 11. 12. 14:15

스프링의 주요 기능은 DI, AOP, POJO, 서비스 추상화이다. 이 중 AOP 기능은 자주 사용하지만 AOP의 기반이 되는 기술을 잘 모르는 경우가 많다. 그래서 AOP의 기반기술이 되는 스프링의 빈 후처리기 및 프록시 객체 생성에 대하여 적어보고자 한다. 우리는 보통 소스코드를 작성할 때 목적에 맞게 클래스를 나누고 각 클래스 안에는 특수 목적을 가진 소스코드와 코드와 성능측정, 로그, 트랜잭션등 여러 클래스에 산재해서 많이 쓰이는 부가기능 코드를 작성한다. 그런데 이러한 부가기능이 각 코드에 산재해서 존재할 경우 소스코드의 응집도가 떨어질 수 있는 문제점이 있다. 그래서 이러한 핵심코드및 부가기능의 분리를 위해 프록시 패턴, 데코레이터 패턴등 많은 디자인 패턴이 생겨나게 되었다. 스프링에서는 이러..