목록공부/스프링 (14)
빠에야는 개발중
스프링 AOP 이번에는 AOP를 적용하여 관심사를 분리해보고자 한다. 이전에 한번 써볼 기회가 있었는데 컨벤션 문제로 롤백 되었던 기억이 있다. 그래서 정확한 사용법을 모르기 때문에 차근차근 짚어보았다.AOP 이해하기 관점 지향 프로그래밍(Aspect Oriented Programming)은 객체 지향 프로그래밍과는 조금 다른 방식의 패러다임이다. 기존의 OOP에서는 공통 코드를 독립된 모듈로 분리해내기가 어려웠는데, AOP를 사용하면 쉽게 해결할 수 있다. 우선 용어를 알아보자. 핵심 관심 주요한 비즈니스 로직을 의미한다. 횡단 관심 로깅, 트랜잭션 처리, 예외 처리 등의 다수의 핵심 관심에 걸친 공통 관심을 의미한다. 조인포인트(Joinoint) 조인포인트는 호출되는 모든 비즈니스 메소드를 의미한다...
이번에는 기존에 xml 설정을 통하여 의존성 주입을 해주던 방법과는 다르게, 어노테이션을 이용하도록 코드를 수정했다. 또한 이전에 작성했던 tv 프로그램을 삭제하고, 본격적으로 많이 사용되는 Service(Impl), DAO, VO 컴포넌트들을 추가하여 db와 연동시켰다. 전체적인 구조는 아래와 같다. 이전에 진행했던 프로젝트들은 DAO와 ServiceImpl을 각각의 패키지에 분리해서 넣어줬었는데, 이 프로그램은 크기가 작아서 그런지는 모르겠지만 한 패키지에 집어넣었다. impl이라는 이름의 패키지에 서로 다른 역할을 하는 두 클래스가 같이 들어가있으니 굉장히 찝찝하다. 아마 발전 단계에 있는 미완성작이기 때문인 듯 하다. 자세한 소스 및 변경 사항은 [여기]에서 볼 수 있다.
우선 기본 설정들을 진행했다. 이클립스, STS, 톰캣(아직은 사용하지 않지만)을 설치하고 소스트리를 이용하여 github에 푸시 하였다. 앞으로도 코드가 업데이트 되면 github을 갱신할 것이다. 또 이전에는 데이터베이스를 mysql만 사용했었는데, 본 책에서는 h2 데이터베이스를 사용한다. 이전부터 사용해보고 싶기도 했고 실제로 세팅해보니 매우 가볍고 간편했다. 프레임워크 소개 프레임워크는 개발자에게 간편하게 개발할 수 있도록 그 틀을 제공한다. 이렇게 함으로써 개발 컨벤션을 어느 정도 통일시켜 다른 개발자들간의 혼동을 줄이고, 전체적으로 유지보수 비용을 줄일 수 있다. 스프링에서는 스프링 컨테이너가 IoC를 담당하여 객체 생명주기 관리 등 번거로운 작업들을 대신 해주어(대신 해주는 것 뿐만 아니라..
4학년 여름방학 이후, 2학기 내내도록 개발을 하지 못했다. 아니 안 했다고 하는 게 솔직한 표현이다. 머리 속으로는 나름대로 잊지 않겠다고 구조를 되뇌이곤 했지만 코딩은 역시 직접 해보는 것이 최고 아니겠는가? 그리하여 본격적인 토이프로젝트를 진행하기 전에 “무작정 따라해보는” 책을 통하여 감을 되찾고 더 나아가 H2, JPA 등 써보지 못했던 기술들을 추가하고, 스프링 부트로의 진행을 고려해보고자 한다. 그래서 무슨 책을 볼건데? 내가 사용할 책은 네이버 인턴 생활을 할 때 받았던 [스프링 퀵 스타트] (채규태, 루비 페이퍼)이다. 이 책은 하루 7시간을 투자하여 5일동안 간단한 프로젝트를 완성 해보는 “무작정 따라하기” 책이다. 물론 코드만 줄줄 읊어져있는 건 아니고 프레임워크에 대한 소개와 도입하..