Java
-
[토비의 스프링 3.1 Vol.1] 부록(스프링 모듈, 스프링 의존 라이브러리)Java/Spring Framework 2018. 4. 7. 00:00
[사족] 부록까지 후기를 남기는 이유는 평소 쉽게 지나칠 수 있을 법한 내용이지만 중요한 내용이라 그렇다. 스프링에 어떤 모듈들이 있고 서로 어떤 의존성을 가지는지 외우지는 않아도 알아보면 좋을 것 같다. [내용] 부록의 목차A.1 스프링 모듈의 종류와 특징A.2 스프링 모듈의 의존관계B.1 의존 라이브러리의 종류와 특징B.2 모둘별 의존 라이브러리 의존관계 스프링 모듈은 jar로 묶인 클래스 파일들이다. 따라서 스프링을 사용하기 위해서는 필요한 스프링 jar들을 추가해줘야 한다. 옛날 web project의 경우는 eclipse에서 dynamic web project를 만들고 lib 폴더에 한 번에 다 때려 넣었던 기억이 있다. 요새는 maven이나 gradle을 사용하여 관리하기 때문에 너무 편리하다..
-
[토비의 스프링 3.1 Vol.1] 9장 스프링 프로젝트 시작하기Java/Spring Framework 2018. 4. 1. 21:55
[사족] 9장의 제목을 정말 잘 선택한거 같다. 스프링 프로젝트를 시작하기 위해서 알아야 할 Tool부터 시작해서 JDK, 환경, 그리고 애플리케이션 아키텍처들에 대한 비교까지. 8장까지 열심히 공부했으면 이제 스프링 프로젝트를 시작할 수 있을 것 같은 기분(?)이 드는 마지막 장이다. [내용] 9장의 목차9.1 자바 엔터프라이즈 플랫폼과 스프링 애플리케이션9.2 개발도구와 환경9.3 애플리케이션 아키텍처9.4 정리 스프링으로 어떤 자바 애플리케이션도 개발 가능하다. 하지만 보통 웹 애플리케이션 형태의 서버 개발에 많이 쓰인다고 한다. EJB를 대체하기도 했고, 그만큼 서버 환경에서 필요한 기능들을 많이 지원하고 있기 때문이 아닌가 싶다. 9.3장에서는 애플리케이션 아키텍처들에 대한 비교를 한다. 소제목..
-
[토비의 스프링 3.1 Vol.1] 8장 스프링이란 무엇인가?Java/Spring Framework 2018. 3. 25. 22:10
[사족] 토비의 스프링은 미괄식 구성이다. 1 ~ 7장에서 스프링을 사용하면서 장점과 특징들을 일단 살펴보고 나서야 8장에서 스프링이 무엇인지 알려주기 때문이다(스프링이 뭔지 아는데 700페이지나 지나서 알게 되었네!). 이제 1권은 9장만 남겨두고 있다. 1권 다 보면 당분간은 다른책 보는 비중을 좀 늘려야겠다. [내용] 8장의 목차8.1 스프링의 정의8.2 스프링의 목적8.3 POJO 프로그래밍8.4 스프링의 기술8.5 정리 사실상 자바생태계에서는 표준이 된 스프링이지만, 자바상태계를 잘 모르는 개발자에게 스프링이 뭔지 간단히 소개해야한다면 어떻게 말해줄 수 있을까? 그에 대해 가장 잘 알려진 정의는 다음과 같다고 한다. 각 수식어들에 대한 설명은 책을 참고하면 좋을 것 같다. 자바 엔터프라이즈 개발..
-
[토비의 스프링 3.1 Vol.1] 7장 스프링 핵심 기술의 응용Java/Spring Framework 2018. 3. 23. 00:14
[사족] 6장 리뷰 이후 1달정도 지났다. 중간에 자바 성능 튜닝 이야기를 읽은 이유도 있지만 7장도 6장 만큼 분량이 상당하다. 내용도 기능 추가 및 리팩토링으로 빠르게 전환되서 술술 읽히지도 않았다. 이제 토비스프링의 고비를 어느정도 넘긴거 같다. 완독도 그리 어려운 일은 아닐 것 같다는 생각이 든다. [내용] 7장의 목차 7.1 SQL과 DAO의 분리 7.2 인터페이스의 분리와 자기참조 빈 7.3 서비스 추상화 적용 7.4 인터페이스 상속을 통한 안전한 기능확장 7.5 DI를 이용해 다양한 구현 방법 적용하기 7.6 스프링 3.1의 DI 7.7 정리 6장까지 점점 더 객체지향적이고 모듈화된 코드를 작성해 왔다. 여기서 더 나아간다. DAO에 속해 있던 SQL을 분리한다. 처음에는 bean에 prop..
-
[토비의 스프링 3.1 Vol.1] 6장 AOPJava/Spring Framework 2018. 2. 20. 23:31
[사족] 토비의 스프링을 접한 이후로 7년만에 처음 펴보는 장이 아닌가 싶다. 생각보다 분량도 많고(약 150페이지) 쉬운 내용이 아니라 읽는데 오래 걸렸다. DI/IoC, 서비스 추상화와 더불어 스프링의 3대 핵심으로 불리우는 AOP이다. Transactional을 대충 갖다 쓰는것과 원리와 처리 과정 등을 명확히 아는 것에는 정말 차이가 있다고 느껴졌다. [내용] 6장의 목차6.1 트랜잭션 코드의 분리6.2 고립된 단위 테스트6.3 다이내믹 프록시와 팩토리 빈6.4 스프링의 프록시 팩토리 빈6.5 스프링 AOP6.6 트랜잭션 속성6.7 애노테이션 트랜잭션 속성과 포인트컷6.8 트랜잭션 지원 테스트6.9 정리 5장까지 서비스 추상화 기법을 도입해서 데이터 엑세스 기술에 독립적으로 깔끔하게 코드를 개선시..
-
Reflection 리플렉션Java/기본 2018. 1. 21. 23:46
토비의 스프링 3.1 Vol.1 6장을 읽다가 리플렉션에 대해 설명이 나왔는데 쉽게 잘 설명이 되있다. 그래서 책의 내용을 읽고 정리해보았다. 위키에 리플렉션에 대한 정의는 다음과 같다.반영(Reflection)은 컴퓨터 프로그램에서 런타임 시점에 사용되는 자신의 구조와 행위를 관리(type introspection)하고 수정할 수 있는 프로세스를 의미한다. “type introspection”은 객체 지향 프로그램언어에서 런타임에 객체의 형(type)을 결정할 수 있는 능력을 의미한다. 위의 설명만으로는 잘 와닿지 않는다. 아래는 책의 설명이다. 자바의 모든 클래스는 그 클래스 자체의 구성정보를 담은 Class 타입의 오브젝트를 하나씩 갖고 있다. '클래스이름'.class'라고 하거나 오브젝트의 get..
-
[토비의 스프링 3.1 Vol.1] 5장 서비스 추상화Java/Spring Framework 2018. 1. 16. 22:37
[사족] 드디어 한 번만 본 챕터가 나왔다. 6장의 AOP는 본 기억이 없으니 아마 5장 중간즈음 보다가 완독을 못했을 것 같다. 이 기세로 쭉쭉 읽어 나가자. 5장은 내용이 더 재밌어진다. 이때까지 만든 사용자 관리시스템(?)에 기능을 더 추가한다. 활동별 사용자 등급 변경기능과 등급 변경시 메일 안내 발송 기능이다. 해당 기능들을 개발하면서 발생하는 문제점들을 풀어나간다. 어떻게? 당연히 스프링 DI를 활용해서. 그리고 토비 선생님은 정말 테스트를 중요하게 생각 한다는 것을 또 한번 느꼈다. [내용] 5장의 목차5.1 사용자 레벨 관리 기능 추가5.2 트랜잭션 서비스 추상화5.3 서비스 추상화와 단일 책임 원칙5.4 메일 서비스 추상화5.5 정리 사용자 관리시스템에 레벨 기능을 추가한다. 간단히 fi..
-
[토비의 스프링 3.1 Vol.1] 4장 예외Java/Spring Framework 2018. 1. 14. 01:08
[사족] 4장도 3번째 정도 보는 것 같다. 예외는 토비님의 말대로 많은 개발자들이 제법 귀찮아 하는 부분이다. 당장 돌아가는 기능이랑은 별로 상관 없다고 생각되기 쉽기 때문이다. 하지만 그 중요성은 누구나 다 알것이다. 99% 잘 돌아가다가도 1%의 예외 가능성 때문에 시스템이 장애가 나고 다운이 된다면 그건 불완전한 소프트웨어가 되버린다. 그만큼 디테일, 장인정신, 꼼꼼함이 필요한 것이 예외처리다. 자바8이나 스칼라 같은데는 null처리 같은 예외상황에 안전하게 대처하기 위해 Option이 있다. 스펙에 포함될 정도로 예외처리와 관련된 것은 중요하고 꼭 필요한 것이다. 4장까지 봤을때 스프링을 사용하는 가장 큰 이유는 "유연한 시스템 개발"인 것 같다. 인터페이스를 활용하여 느슨한 결합을 유지하고, ..