1. 스프링 1일차

김상복·2022년 3월 26일
0

Spring

목록 보기
1/2

1. 스프링 설치 준비물

  1. JDK(JAVA)
  2. TOMCAT
  3. STS or Eclipse
  4. lombok

가 필요하다

JDK는 말그대로 자바를 사용할 수 있게 해주는 KIT이고
TOMCAT은 서버연결
STS / Eclipse는 실제로 코드를 입력 확인 할 툴이다
lombok은 SET/GET을 편하게 사용할 수 있도록 정해주는 기능을 한다

2. 스프링 프레임워크에 대해서

  • 프레임 워크란 ??

프레임 워크란 말 그대로 [뼈대나 근간을 이루는 코드들의 묶음] 을 의미한다

  • 프레임 워크의 사용 이유

프레임 워크를 사용하는 이유는 개발자들간의 실력이 달라도 프레임 워크를 사용하면 이미 만들어진
코드를 사용하기 때문에 결과물이 일정한 수준의 결과를 만들어 준다

가장 성공적인 경량(light-weight) 프레임워크 = 스프링(Spring)

3. 스프링의 주요 특징

1. POJO 기반의 구성

  • POJO = Plain Old Java Object

즉, JAVA 코드를 이용해서 객체를 구성하는 방식을 그대로 스프링에서 사용 가능

2. 의존성 주입(DI)

  • 의존성이란?

하나의 객체가 다른 객체 없이 제대로 된 역할을 할 수 없다는 것을 의미한다

즉, A 객체가 B 객체 없이 동작이 불가능한 상황이 있으면

  • A객체 가 B객체에 의존적

이라고 표현한다

의존성을 사용하는 이유

의존성을 사용하는 이유로는 말 그대로 [주입을 받는 입장에서 어떤 객체가 나에게 주입을 하는지 신경쓸 필요가 없이 자신의 역활만 하면 된다]

스프링에서 의존을 할 때 A가 B에게 어떠한 기능을 요청하게 되면 B는 외부의 컨트롤러와 같은 어떠한 객체를 통해서 A에게 기능을 주입하게 된다

Spring에서는 ApplicationContext 라는 존재가 필요한 객체들을 생성, 필요한 객체들에 주입해주는 역활을 해준다.

  • ApplicationContext가 관리하는 객체들을 Bean이라는 용어로 부르고, 빈과 빈의 의존 관계를 처리하는 방식으로 XML설정, 어노테이션 설정, Java 설정을 이용할 수 있다

횡단 관심사(Cross-Concern)란?

좋은 개발환경의 중요 원칙은 개발자가 비즈니스 로직에만 집중할 수 있게 한다 입니다
그 중 가장 쉽게 떠올릴 수 있는 것은 반복적인 코드의 제거 라고 할 수 있습니다
스프링은 이러한 반복적인 코드를 줄이고, 핵심 비즈니스 로직에 집중 할 수 있는 방법을 제공한다

대부분의 시스템이 공통으로 가지고 있는 보안이나 로그, 트랜잭션과 같이 비즈니스 로직은 아니지만, 반드시 처리가 필요한 부분을 스프링에서는 횡단 관심사(Cross-Concern) 이라고 합니다

AOP란?
이러한 횡단 관심사를 모듈로 분리하는 프로그래밍의 패러다임이다

AOP를 사용했을때 장점

  1. 핵심 비즈니스 로직에만 집중해서 코드를 개발할 수 있다
  2. 각 프로젝트마다 다른 관심사를 적용할 때 코드의 수정을 최소화시킬 수 있다
  3. 원하는 관심사의 유지 보수가 수월한 코드를 구성할 수 있다

트랜잭션이란?

트랜잭션이란 데이터베이스의 상태를 변경하는 논리적 작업 단위이다
트랜잭션은 논리적 작업 단위이기에 반드시 ROLLBACK과 COMMIT이 가능하다

트랜잭션의 특징 4가지(ACID)

A: Atomicity

하나의 트랜잭션 내 모든 연산이 모두 정상적으로 실행되거나, 아무것도 실행되지 않아야 한다는 것을 의미합니다.

(All 또는 Noting)

C: Consistency

트랜잭션이 성공적으로 완료된 후에도 데이터베이스는 항상 일관성 있는 상태여야 한다는 것을 의미합니다.

I: Isolation

현재 데이터베이스에 접근중인 트랜잭션이 완료될 때까지 다른 트랜잭션이 접근할 수 없다는 것을 의미합니다.

D: Durability

일단 완료된 트랜잭션은 데이터베이스에 반영되었으므로, 어떠한 경우에도 이 내용이 손실되지 않고 영구적이어야 된다는 것을 의미합니다.

profile
초보 개발자

0개의 댓글