Java-Spring/토비의 스프링 3.1

자바 / 스프링 / 스프링부트 스터디 정리
Java-Spring/토비의 스프링 3.1

[토비의 스프링 3.1] Vol. 1 스프링의 이해와 원리 - 목차

1장. 오브젝트와 의존관계주요 키워드- 관심사의 분리 (리팩토링)- 전략 패턴- 개방 폐쇄 원칙- 낮은 결합도, 높은 응집도- 제어의 역전 (IoC)- 싱글톤 레지스트리- DI 컨테이너- 의존 관계 주입 (DI)- 생성자 주입과 수정자 주입- XML 설정1.0) 개요1.1) 초난감 DAO1.2) DAO의 분리1.3) DAO의 확장1.4) 제어의 역전(IoC)1.5) 스프링의 IoC1.6) 싱글톤 레지스트리와 오브젝트 스코프1.7) 의존관계 주입(DI)1.8) XML을 이용한 설정2장. 테스트주요 키워드- 테스트 자동화- JUnit 프레임워크- 테스트 일관성- 테스트 포괄성- 테스트 수행 간격- 테스트 주도 개발 방법- 테스트 코드 리팩토링- 테스트 메소드- 스프링 테스트 컨텍스트 프레임워크- 애플리케이션..

Java-Spring/토비의 스프링 3.1

[토비의 스프링 3.1] Vol.1 스프링의 이해와 원리 - 스프링 프로젝트 시작하기 (3)

9.3) 애플리케이션 아키텍처아키텍처클라이언트와 백엔드 시스템의 종류와 사용 기술, 연동 방법을 결정했다면 시스템 레벨의 아키텍처는 대략 구성된 셈이다.다음으로 결정할 사항은 스프링 웹 애플리케이션의 아키텍처다.아키텍처의 가장 단순한 정의는 어떤 경계 안에 있는 내부 구성요소들이 어떤 책임을 갖고 있고, 어떤 방식으로 서로 관계를 맺고 동작하는지를 규정하는 것이라고 할 수 있다.아키텍처는 단순히 정적인 구조를 나타내는 것으로만 생각하기 쉽지만 실제로는 그 구조에서 일어나는 동적인 행위와 깊은 관계가 있다.계층형 아키텍처지금까지는 주로 오브젝트 레벨에서 분리의 문제에 대해 생각해보며 DI를 기반으로한 유연한 설계와 구현 전략을 해왔다.관심, 책임, 성격, 변하는 이유와 방식이 서로 다른 것들을 분리함으로써..

Java-Spring/토비의 스프링 3.1

[토비의 스프링 3.1] Vol.1 스프링의 이해와 원리 - 스프링 프로젝트 시작하기 (2)

9.2) 개발도구와 환경JavaSE와 JavaEEJavaSE (Java Standard Edition)/JDK (Java Development Kit)스프링 3.0은 JavaSE 5 버전에서 추가된 새로운 언어와 문법의 특징을 최대한 활용해서 개발됐기 때문에기본적으로 JDK 5.0 또는 그 이상을 필요로 한다. 또 일부 기능은 JDK 6.0의 API를 이용해 개발된 것도 있다.JavaEE (Java Enterprise Edition) /J2EE (Java 2 Enterprise Edition)스프링 3.0이 사용될 자바 엔터프라이즈 플랫폼으로는 J2EE 1.4 버전이나 JavaEE 5.0이 필요하다.스프링 자체는 JDK 6.0과 JavaEE 5.0을 기준으로 개발됐지만 주요 기능은 JDK 5.0에서 동..

Java-Spring/토비의 스프링 3.1

[토비의 스프링 3.1] Vol.1 스프링의 이해와 원리 - 스프링 프로젝트 시작하기 (1)

9.1) 자바 엔터프라이즈 플랫폼과 스프링 애플리케이션스프링 애플리케이션의 종류스프링으로 만들 수 있는 애플리케이션의 종류에는 제한이 없다. 자바 언어를 사용하는 모든 종류의 프로젝트라면 어디든 사용할 수 있다.웹을 이용하는 자바 엔터프라이즈 시스템, 스윙이나 이클립스 RCP로 만드는 독립형 프로그램에도 적용 가능하다.또한 애플릿이나 모바일 애플리케이션 개발, 스프링을 핵심 엔진으로 사용하는 엔터프라이즈 미들웨어 제품에도 이용할 수 있다.그러나 스프링의 탄생 배경이나 스프링이 주로 제공하는 기능의 목록을 볼 때스프링은 주로 자바 엔터프라이즈 환경에서 동작하는 애플리케이션을 개발하는 목적으로 사용된다.자바 엔터프라이즈 애플리케이션은 서버에서 동작하며 클라이언트를 상대로 서비스를 제공하도록 되어 있다.즉 클..

Java-Spring/토비의 스프링 3.1

[토비의 스프링 3.1] Vol.1 스프링의 이해와 원리 - 스프링 프로젝트 시작하기 (0)

9.0) 스프링 프로젝트 시작하기 스프링은 어떤 종류의 애플리케이션에도 잘 들어맞도록 매우 유연하게 설계된 범용 프레임워크다. 그래서 아키텍처의 종류나 프로젝트를 구성하는 방법에 대한 지유도가 매우 높다. 그만큼 프로젝트 구성 방법이나 아키텍처를 선택할 때 주의를 기울일 필요가 있다. 그러므로 스프링을 이용해 애플리케이션 프로젝트를 처음 구성할 때 알아야 할 기본적인 내용을 다뤄보자. 또, 스프링 개발에 도움이 되는 개발 툴과 빌드 방법도 살펴보자. 마지막으로 스프링을 애플리케이션에 적용할 수 있는 아키텍처의 종류와 특징에 대해서도 알아보자.

Java-Spring/토비의 스프링 3.1

[토비의 스프링 3.1] Vol.1 스프링의 이해와 원리 - 스프링이란 무엇인가? (4)

8.4) 스프링의 기술 스프링의 가능기술 스프링에서는 POJO 프로그래밍을 손쉽게 할 수 있도록 지원하는 세 가지 가능기술인 IoC/DI, AOP, PSA를 제공한다. 스프링은 통일성 있게, 더 세련된 방법으로, 자바 엔터프라이즈 개발의 전 영역에 걸쳐 효과적으로 이를 적용할 수 있도록 프레임워크 형태로 제공한다. 제어의 역전(IoC) / 의존관계 주입(DI) IoC/D는 스프링의 가장 기본이 되는 기술이자 스프링의 핵심 개발 원칙이기도 하다. 나머지 두 가지 기술인 AOP와 PSA도 IoC/DI에 바탕을 두고 있다. 또한 템플릿/콜백 패턴이 적용된 부분도 IoC/DI가 핵심 원리다. 왜 DI 방식을 사용하는걸까? 왜 두 개의 오브젝트를 분리해서 만들고, 인터페이스를 두고 느슨하게 연결한 뒤, 실제 사용..

Java-Spring/토비의 스프링 3.1

[토비의 스프링 3.1] Vol.1 스프링의 이해와 원리 - 스프링이란 무엇인가? (3)

8.3) POJO 프로그래밍 스프링의 핵심: POJO 스프링의 가장 강력한 특징과 목표는 반드시 필요한 엔터프라이즈 서비스 기술을 POJO 방식으로 개발된 애플리케이션 핵심 로직을 담은 코드에 제공하는 것이다. 스프링 애플리케이션은 POJO를 이용해서 만든 애플리케이션 코드와, POJO가 어떻게 관계를 맺고 동작하는지를 정의해놓은 설계정보로 구분된다. 그리고 유연하게 확장 가능한 오브젝트를 만들어두고 그 관계는 외부에서 다이내믹하게 설정해주는 DI의 개념을 애플리케이션 전반에 걸쳐 적용한다. 스프링의 기술인 IoC/DI, AOP, PSA는 애플리케이션을 POJO로 개발할 수 있게 해주는 가능기술이라고 불린다. POJO란 무엇인가? 스프링 애플리케이션 개발의 핵심인 POJO를 좀 더 자세히 알아보자. PO..

Java-Spring/토비의 스프링 3.1

[토비의 스프링 3.1] Vol.1 스프링의 이해와 원리 - 스프링이란 무엇인가? (2)

8.2) 스프링의 목적 엔터프라이즈 개발의 복잡함 전통적인 자바 엔터프라이즈 개발 기법 프로젝트는 여러 가지 원인으로 실패했었지만, 그중 가장 대표적인 이유는 엔터프라이즈 시스템 개발이 너무 복잡해져였다. 엔터프라이즈 시스템이란 서버에서 동작하며 기업과 조직의 업무를 처리해주는 시스템을 말한다. 엔터프라이즈 시스템은 많은 사용자의 요청을 동시에 처리해야 하기 때문에 서버의 자원을 효율적으로 공유하고 분배해서 사용할 수 있어야 하며 보안과 안정성, 확장성 면에서도 뛰어나야 한다. 따라서 뛰어난 성능과 서비스의 안정성이 요구되고 그런 점을 고려한 개발 기술이 필요하다. 즉, 엔터프라이즈 시스템을 개발하는데는 순수한 비즈니스 로직을 구현하는 것 외에도 기술적으로 고려할 사항이 많다는 뜻이다. 따라서 이런 종류..

김깅긍
'Java-Spring/토비의 스프링 3.1' 카테고리의 글 목록