- JDK(JAVA)
- TOMCAT
- STS or Eclipse
- lombok
가 필요하다
JDK는 말그대로 자바를 사용할 수 있게 해주는 KIT이고
TOMCAT은 서버연결
STS / Eclipse는 실제로 코드를 입력 확인 할 툴이다
lombok은 SET/GET을 편하게 사용할 수 있도록 정해주는 기능을 한다
- 프레임 워크란 ??
프레임 워크란 말 그대로 [뼈대나 근간을 이루는 코드들의 묶음] 을 의미한다
- 프레임 워크의 사용 이유
프레임 워크를 사용하는 이유는 개발자들간의 실력이 달라도 프레임 워크를 사용하면 이미 만들어진
코드를 사용하기 때문에 결과물이 일정한 수준의 결과를 만들어 준다
가장 성공적인 경량(light-weight) 프레임워크 = 스프링(Spring)
1. POJO 기반의 구성
즉, JAVA 코드를 이용해서 객체를 구성하는 방식을 그대로 스프링에서 사용 가능
2. 의존성 주입(DI)
하나의 객체가 다른 객체 없이 제대로 된 역할을 할 수 없다는 것을 의미한다
즉, A 객체가 B 객체 없이 동작이 불가능한 상황이 있으면
이라고 표현한다
의존성을 사용하는 이유
의존성을 사용하는 이유로는 말 그대로 [주입을 받는 입장에서 어떤 객체가 나에게 주입을 하는지 신경쓸 필요가 없이 자신의 역활만 하면 된다]
스프링에서 의존을 할 때 A가 B에게 어떠한 기능을 요청하게 되면 B는 외부의 컨트롤러와 같은 어떠한 객체를 통해서 A에게 기능을 주입하게 된다
Spring에서는 ApplicationContext 라는 존재가 필요한 객체들을 생성, 필요한 객체들에 주입해주는 역활을 해준다.
횡단 관심사(Cross-Concern)란?
좋은 개발환경의 중요 원칙은 개발자가 비즈니스 로직에만 집중할 수 있게 한다 입니다
그 중 가장 쉽게 떠올릴 수 있는 것은 반복적인 코드의 제거 라고 할 수 있습니다
스프링은 이러한 반복적인 코드를 줄이고, 핵심 비즈니스 로직에 집중 할 수 있는 방법을 제공한다
대부분의 시스템이 공통으로 가지고 있는 보안이나 로그, 트랜잭션과 같이 비즈니스 로직은 아니지만, 반드시 처리가 필요한 부분을 스프링에서는 횡단 관심사(Cross-Concern) 이라고 합니다
AOP란?
이러한 횡단 관심사를 모듈로 분리하는 프로그래밍의 패러다임이다
AOP를 사용했을때 장점
트랜잭션이란?
트랜잭션이란 데이터베이스의 상태를 변경하는 논리적 작업 단위이다
트랜잭션은 논리적 작업 단위이기에 반드시 ROLLBACK과 COMMIT이 가능하다
트랜잭션의 특징 4가지(ACID)
A: Atomicity
하나의 트랜잭션 내 모든 연산이 모두 정상적으로 실행되거나, 아무것도 실행되지 않아야 한다는 것을 의미합니다.
(All 또는 Noting)
C: Consistency
트랜잭션이 성공적으로 완료된 후에도 데이터베이스는 항상 일관성 있는 상태여야 한다는 것을 의미합니다.
I: Isolation
현재 데이터베이스에 접근중인 트랜잭션이 완료될 때까지 다른 트랜잭션이 접근할 수 없다는 것을 의미합니다.
D: Durability
일단 완료된 트랜잭션은 데이터베이스에 반영되었으므로, 어떠한 경우에도 이 내용이 손실되지 않고 영구적이어야 된다는 것을 의미합니다.