Spring 20

토비의 Spring_Chapter01_오브젝트와 의존관계

개요 스프링은 자바 기반의 프레임워크다. 그리고 자바의 가장 큰 특징이라면 객체지향 프로그래밍이 가능한 언어라는 것이다. 자바 엔터프라이즈 기술(Java EE)의 혼란속에서 잃어버렸던 객체지향 기술의 진정한 가치를 회복시키고, 그로부터 객체지향 프로그래밍이 제공하는 폭넓은 혜택을 누릴 수 있도록 기본으로 돌아가자는 것이 스프링의 핵심 철학이다. javaEE에 대해 궁금할 수 있지만 이번 챕터는 오브젝트에 초점을 맞췄기에 간단히 알아보면 다음과 같다. 더보기 JAVA EE(Java Enterprise Edition) Java EE는 자바 기술로 기업환경의 어플리케이션을 만드는데 필요한 스펙들을 모아둔 스펙 집합니다. 자바로 구현된 웹프로그래밍에서 가장 많이 사용되는 JSP, Servlet을 비롯하여 데이터..

Spring 2022.10.11

SpringBoot_Chapter01_개요

Spring과 Spring Boot Spring은 다양한 소규모 프로젝트에 적용되는 Java 기반의 오픈소스 앱 프레임워크이다. 그리고 Spring boot는 Spring을 더 쉽게 이용하기 위한 도구이다. 그럼 그 두 개의 차이점을 알아보자. Spring Spring Boot 정의 Java를 기반으로 하는 오픈 소스 웹 애플리케이션 프레임워크이다. Spring 프레임우커를 기반으로 하는 확장 또는 모듈이다. 주 역할 사용자 지정되어 느슨하게 연결된(=결합도가 낮은) 웹 앱을 만들기 위해 미리 빌드된 코드 라이브러리와 도구들을 이용해 유연하면서도 완전히 구성할 수 있는 환경을 제공한다. 주석이나 XML 구성 또는 여러 가지 추가 코드를 작성할 필요 없이 바로 실행할 수 있는 실행형 Spring 애플리케이..

Spring 2022.10.05

Spring_Chapter08_Transaction

트랜잭션 만약 데이터베이스의 데이터를 수정하는 도중에 예외가 발생된다면 어떻게 해야 할까? DB의 데이터들은 수정이 되기 전의 상태로 다시 되돌아가져야 하고, 다시 수정 작업이 진행되어야 할 것이다. 이렇듯 여러 작업을 진행하다가 문제가 생겼을 경우 이전 상태로 롤백하기 위해 사용되는 것이 트랜잭션(Transaction)이다. 트랜잭션은 더 이상 쪼갤 수 없는 최소 작업단위이며 전체 로직이 모두 다 반영되거나 모두 반영되지 않은 논리적인 작업(All or Nothing)의 묶음을 의미한다. 논리적 단위로 어떤 한 부분의 작업이 완료되었다 하더라도, 다른 부분의 작업이 완료되지 않을 경우 전체 취소한다. 이때 작업이 완료되는 것을 커밋(commit)이라 하며, 작업이 취소되는 것을 롤백(rollback)이..

Spring 2022.05.12

Spring_Chapter07_A.O.P

AOP를 들어가기에 앞서 다음 3가지의 용어를 알 필요가 있다. 관심사(Concern) 어플리케이션을 개발하기 위한 구현 기능들을 관심사(Concern)라 한다. 어플리케이션의 비즈니스 중요 기능들을 핵심 관심사(Core Concern)이라 한다. 횡단 관심사(Cross-Cutting-Concern) 여러 모듈에 걸쳐 공통적이고 반복적으로 필요로 하는 처리 내용을 횡단 관심사라 한다. 횡단 관심사 분리 횡단 관심사를 한 곳으로 모으는 것을 횡단 관심사의 분리(Separation Of Cross-Cutting Concern)이라 하며, 이를 실현하는 방법을 관점지향 프로그래밍이라 한다. AOP 정의 AOP는 Aspect Oriented Programming의 약자로 관점 지향 프로그래밍이다. 관점 지향은 ..

Spring 2022.05.02

Spring_Chapter06_스프링+MyBatis

MyBatis개요 MyBatis는 ORM(Object Relational Mapping)기술중 하나로 SQL과 자바 객체를 매핑하는 사상에서 개발된 데이터베이스 접근용 프레임워크이다. ORM이란? 더보기 ORM은 Object Relational Mapping의 약자로 Object는 객체지향 언어의 객체를, Relational은 관계형 데이터베이스의 데이터를, Mapping은 객체지향 언어의 객체와 관계형 데이터를 서로 변환 해준다는 의미를 갖고있다. 즉, ORM이란 관계형 데이터베이스에서 조회한 데이터를 Java 객체로 변환하여 리턴해 주고, Java 객체를 관계형 데이터베이스에 저장해 주는 라이브러리 혹은 기술을 뜻한다. MyBatis의 장점은 다음과 같다. SQL의 체계적인 관리(설정 파일, 애노테이..

Spring 2022.04.29

Spring프레임워크_Chapter05_스프링 MVC

1.스프링 MVC 개요 스프링 프레임워크는 MVC 패턴을 준수한다.그럼 MVC란 무엇인가? MVC는 Model-View-Controller 약자로 소프트웨어공학에서 사용되는 아키텍쳐 패턴으로 MVC 패턴의 주 목적은 Business logic과 Presentation logic을 분리하기 위함이다. 모델, 뷰, 컨트롤러는 각각의 인터페이스가 정의되어 있어 서로 구현에 의존적이지 않아 약한 결합도로 구성되어 유연하고 확장하기 쉽다는 이점이 있다. MVC패턴은 크게 Model1패턴과 스프링이 채택한 Model 2패턴으로 나눌 수 있다. Model 1 Model 1 패턴의 경우 View와 Controller를 모두 JSP가 담당하는 형태를 가진다. 즉 JSP 하나로 유저의 요청을 받고 응답을 처리하므로 구현 ..

Spring 2022.04.08

Spring_chapter04_스프링 JDBC

1.데이터 액세스 층 데이터 액세스 층의 역할은 데이터 액세스 처리를 비즈니스 로직 층에서 분리하는 것이다. 이를 통해 비즈니스로직층은 데이터 액세스처리에 신경쓰지 않고 기술할 수 있으므로 소스코드가 간결해지며, 유지관리가 쉬워진다. DAO(Data Access Object) DAO는 데이터 액세스 처리에 특화된 오브젝트로 데이터 취득과 변경(CRUD)에 데이터 처리의 역할을 한다. DAO가 CRUD메서드를 실행하면 자 JDBC,Hybernate,MyBatis, JPA등의 여러 프레임워크를 통해 데이터 액세스 기술을 처리한다. DAO패턴 DAO패턴은 데이터 취득과 변경에 데이터 처리를 DAO 오브젝트로 분리하는 패턴이다. 구성은 DAO 인터페이스와 DAO 인터페이스를 구현한 클래스, 데이터 전송 객체(D..

Spring 2022.03.28

Spring프레임워크_chapter03_Dependency Injection

1.Dependency Injection정의 개발 시 하나의 기능을 처리를 수행하기 위하여 여러 개의 컴포넌트를 조합해서 구현하는 경우가 일반적인데, 여러 개의 컴포넌트를 통합할 때 의존 관계 주입(Dependency Injection) 디자인 패턴이 매우 효과적이다. DI는 오브젝트 간의 의존 관계를 만드는 것으로 객체 간의 결합도를 낮춘다. IoC(Inversion of Control)은 역전 제어, 즉 인스턴스를 제어하는 주도권이 역전된다는 의미이다. 컴포넌트를 구성하는 인스턴스 생성과 의존 관계 연결을 개발자의 소스 코드가 아닌 DI 컨테이너가 대신해 주기 떄문에 제어가 역전되었다고 정의한다. spring 프레임워크이 제공하는 IoC Container를 통해 인스턴스의 생명주기 관리 및 의존 관계..

Spring 2022.03.17

Spring 프레임워크_Chapter02_Maven

1.Maven Maven은 프로젝트를 관리하는 도구이다. 빌드 자동화 기능과 프로젝트 관리 기능을 제공한다. 프로젝트(라이브러리) 관리는 pom.xml 파일을 이용하여 프로젝트와 관련된 jar 파일을 다운로드하고 관리한다. 빌드 자동화는 빌드 작업들을 간단하고 쉽게 그리고 일관성 있게 수행할 수 있는 통합 환경을 제공한다. 이때 빌드는 소스코드 파일을 실행 코드로 변환하여 배포하는 과정을 말한다. 2. 프로젝트 관리 기능 프로젝트 관리 설정들을 메이븐이 미리 정의한 설정들로 대체한다. 정형화된 프로젝트 디렉토리 구조 관리(pom.xml) CoC(Convention over COnfiguration)패러다임을 따른다. - 설정보다는 규범 의존성 관리기능 편리한 라이브러리 관리 기능이다.(pom.xml, R..

Spring 2022.03.12

Spring 프레임워크_Chapter01_프레임워크 기초

1. 웹 애플리케이션 일반적인 웹 시스템은 정적 컨텐츠인 HTML와 동적 컴텐츠인 JSP으로 나눌 수 있다. HTML 웹 브라우저가 웹 서버로부터 저장된 HTML을 읽어와 표현한다. JSP 웹 브라우저가 웹 서버에 동적 페이지를 요청하면 이 요청을 애플리케이션 서버가 실행하고, 처리결과(데이터베이스 조회등)를 브라우저가 HTML 형식으로 받아서 표현한다. 2.스프링의 등장 스프링 전에는 EJB라는 분산 환경에서의 트랜잭션 처리를 위한 컴포넌트를 사용했다. JSP와 서블릿은 프레젠테이션을 구현했고, EJB는 비즈니스 로직을 구현했다. 하지만 J2EE 버전업과 함께 EJB 복잡도는 높아지고 확장성은 떨어지는등 문제가 생겨 그것을 보완하기 위해 등장했다. 스프링 프레임워크는 자바 플랫폼을 위한 오픈소스 애플리..

Spring 2022.03.11