BE/Spring

[Spring][JAVA] Spring 개념 정리 (AOP,POJO,JDBC 등)

coding_jelly 2020. 11. 4. 14:11
목차
1. 스프링이란
2. 스프링 특징
3. JDBC란? 
4. JSP와 Sevlet 
5. 웹 서버 동작 도구 
6. Restful API 
7. XML와 JSON 
8. AOP
9. POJO 
10. DTO / DAO / VO

 

1. 스프링(Spring)이란? 

JAVA언어를 기반으로 하는 JAVA 웹 프레임워크다. OOP기반 타 프레임워크와 달리 AOP 기반으로 코드 중복을 줄이고 비즈니스 로직을 더욱 간단하게 만들었다.  

 

2. 스프링(Spring) 특징 4가지 

POJO(Plain Old Java Object)

Spring은 Getter, Setter 방식의 순수한 자바 오브젝트 기반 프레임워크다. 

IoC (제어반전)

컨트롤의 제어권이 프레임워크에 있다. 프레임워크가 필요에 의해 사용자 함수를 호출한다. 

DI (의존성 주입)

각각의 계층이나 서비스간에 의존성이 존재할 경우 프레임워크가 서로 연결한다. 

AOP (관점 지향  프로그래밍)

기능 분리 :
개발과 비즈니스 로직을 분리하여 트랜잭션, 로깅, 보안과 같은 부분을 종단으로 분리하여 관리할 수 있도록 한다. 

재사용성 ↑ : 중복된 코드를 최대한 배제하여 기능이 필요할 때만 호출하여 쓴다.

 

3. JDBC(Java Database Connectivity)란? 

자바에서 데이터베이스에 접근할 수 있도록 하는 자바 api이다. 

JDBC 프로그래밍 흐름
1) JDBC 드라이버 로드 → 2) DB 연결 (getConnection) → 3) DB에 데이터 읽고 쓰기 → 4) 연결 종료

 

4. JSP와 Sevelet(서블릿) 

JSP (Java Server Page)

  • HTML 안에 자바 코드를 넣어 웹 페이지를 생성하는 웹 어플리케이션 도구 
  • 장점 : Servelet 에 비해 자바 코드를 활용해 페이지 레이아웃을 구성하면 되어 편리함

Sevlet(서블릿)

  • 자바 프로그램이 웹 서버 역할을 잘 할 수 있도록 확장해주는 도구 
  • 단점 : HTML을 출력해주는 방식으로 코딩해야 한다. 

 

5. 웹 서버 동작 구조

1) Client → Web Server  : 사용자가 URL을 접속해 Web서버를 호출하고 요청사항을 객체에 담아 전송 

2) Web Server  → WAS : Web 서버는 요청 객체를 받아 바로 처리하거나 어플리케이션 서버(WAS, Web Application Server)로 객체 전달 (WAS : Web Server + Web Container, Apache Tomcat)

3) WAS : WAS 서버는 요청에 대한 내용과 객체를 적절히 처리 

4) WAS Web Server : WAS 서버는 처리 후 결과를 응답 객체에 담아 WEB 서버로 전송 

5) Web Server  →  Client : WEB 서버는 응답 객체(Response)를 사용자에게 전송

6) Browser -> Client : 브라우저는 WEB서버가 보내준 코드를 해석해 화면 구성 

6. Restful API

Restful API : Rest(Representational State Transfer) 하게 클라이언트-서버간 데이터를 주고 받는 방식 

URL에는 정보의 자원을 표현하고 자원에 대한 행위는 HTTP Method(GET,POST,PUT,DELETE)로 표현한다.

 

7. XML 과 JSON 

XML : HTML과 비슷한 마크업 언어 
JSON(JavaScript Object Notation) : 자바스크립트를 확장한 마크업 언어 
문자열 데이터를 전송받은 후에 문자열을 바로 파싱하므로 처리속도가 XML 보다 빠르다.

그러나 데이터의 무결성을 사용자가 직접 검증해야 합니다.

 

8. AOP 

AOP는 Aspect Oriented Programming 관점 지향 프로그래밍으로써  공통적인 기능을 종단간으로 삽입할 수 있도록 한 것이다. 
기존의 OOP 로직에서 각 객체별로 반복적으로 처리했던 것을 관점 별로 외부에서 접근하게 할 수 있게 한 것.

 

9. POJO

POJO란, Plain Old java Object로 오래된 방식의 '순수한' 자바 오브젝트이다. 즉, Setter, Getter 메소드로 이루어진 Object이다.

 

10. DAO / DTO

DAO(Data Access Object) : DB를 사용해 데이터를 조회하거나 조작하는 기능을 맡는 객체(오브젝트)
DTO(Data Transfer Object) : Controller, View, Businness Layer 등에서 데이터를 교환하기 위해 만들어진 객체 
DTO는 Getter, Setter 메소드만 가진 클래스로 순수한 데이터 객체입니다.