SpringBoot

Spring Quick - DAY1(1)

EJUN 2023. 2. 6. 22:44

프레임워크란?
더보기

뼈대 혹은 틀로서 소프트웨어적으로 접근하면 아키텍처에 해당하는 골격코드를 의미한다.

▶ 프레임워크의 장점

  1. 빠른 구현 시간
  2. 쉬운 관리
  3. 개발자들의 역량 획일화
  4. 검증된 아키텍처의 재사용과 일관성 유지

 

스프링 프레임워크는 POJO형태의 객체를 관리한다.

 

POJO란?

POJO는 옛날 자바 객체를 의미한다.

POJO를 쉽게 이해하기 위해선 반대로 Not POJO클래스를 이해하면 된다.

대표적으로 Not POJO클래스는 Servlet클래스가 있다.

Servlet 계층도

Servlet클래스는 개발자 마음대로 만들 수 없고 아래와 같은 특징이 존재한다.

  • javax.servlet, javax.servlet.http 패키지를 반드시 import해야함
  • public클래스로 선언되어야 함
  • Servlet, GenericServlet, HttpServlet 중 하나를 반드시 상속해야함
  • 기본생성자가 있어야 함
  • 생명주기에 해당하는 메소드를 재정의 해야함 
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws
ServletException, IOException {
System.out.println("doGet");
}
@Override
public void destroy() {
System.out.println("destroy");
}

위와 같은 doget(), destory()같은 메소드를 오버라이딩을 해야한다.

 

스프링(Spring)


IoC(제어의 역행)을 통해 애플리케이션을 구성하는 객체 간의 느슨한 결합, 즉 낮은 결합도를 유지

AOP(관점지향프로그래밍)를 통해 메소드마다 반복해서 등장하는 공통로직을 분리함으로써 높은 응집도를 유지

 

결합도를 낮추는 방법

  • 다형성 이용
  • 디자인 패턴 이용 - Factory패턴 이용

다형성을 사용하려면 상속과 오버라이딩(메소드 재정의,Overriding), 그리고 형변환이 필요

 

Factory pattern이란?

사용자가 사용할 객체 생성을 캡슐화하여 클래스 A와 클래스 B사이를 느슨한 결합 상태로 만듬

public class BeanFac{
	public Object getBean(String name){
    	if(name.equals("samsung")){
         	return new Samsung();
        }
        else if(name.equals("lg")){
        	return new Lg();
        }
        return null;
    }
}
public class A{
	Public static void main(String[] args){
		BeanFac factory=new BeanFac();
       		B b=(B)factory.getBean("samsung");
        /* 
        	B 메소드 호출
        */

위와 같이 Factory패턴을 이용하면 A클래스는 자신이 필요한 객체를 직접 생성할 필요가 없어진다.

'SpringBoot' 카테고리의 다른 글

[Spring] 스프링 시큐리티(Security)  (0) 2023.07.24
[Spring] 트랜잭션(Transaction) 이란?  (0) 2023.07.02
Spring Quick - DAY1(2)  (0) 2023.02.06