∞. 기술 면접/9. 스프링

01. 기술면접 - 스프링 - 스프링 프레임워크

THE HEYDAZE 2021. 10. 25. 10:43
공부목적으로 다른 블로그의 글을 그대로 따라치면서 작성되었습니다. 저작권 문제 시, 비공개 처리하겠습니다

스프링 프레임워크란

- 자바 엔터프라이즈 개발을 편하게 해주는 경량급 오픈소스 애플리케이션 프레임워크
- Lightweight Java Application Framework
    - 목표: POJO 기반의 Enterprise Application 개발을 쉽고 편하게 할 수 있도록 한다
    - Java Application 을 개발하는 데 필요한 하부구조(Infrastructure)를 포괄적으로 제공한다
    - Spring 이 하부구조를 처리하기 때문에 개발자는 Application 개발에 집중 할 수 있다
- 간단히 스프링 (Spring) 이라고도 불린다
- 동적인 웹 사이트를 개발하기 위한 여러가지 서비스를 제공한다

프레임워크란?
소프트웨어의 구체적인 부분에 해당하는 설계와 구현을 재사용이 가능하게끔
일련의 협업화된 형태로 클래스들을 제공화한 틀 또는 기반구조 또는 뼈대를 뜻한다

Application 개발 시, 필수적인 코드, 알고리즘, 데이터베이스 연동 등과 같은 기능들을 위해 어느정도 구조를 
제공해준다

-> 소프트웨어의 특정 문제를 해결하기 위해서 상호 협력하는 클래스와 인터페이스의 집합

라이브러리란?
특정 기능에 대한 도구 or 함수들을 모은 집합

즉, 프로그래머가 개발하는데 필요한 것들을 모아둔 것입니다.

->   단순 활용이 가능한 도구들의 집합

프레임워크와 라이브러리 모두 개발자에게 필요한 것을 모아둔 것이라고 착각 할 수 있지만 큰 차이가 존재합니다
그것은 IOC (Inversion Of Control) 제어의 역전이다
Flow(흐름)에 대한 제어 권한이 어디에 있느냐의 차이인데, 프레임워크는 전체적인 흐름을 자체적으로 가지고 있으며,
프로그래머가 그 안에 필요한 코드를 작성하는 반면에 라이브러리는 사용자 흐름에 대해 제어를 하며, 필요한 상황에
가져다 쓰는 것이다 (프레임워크는 어느정도 생명주기가 다 정해져있다 - 실행 전, 실행 후, 종료 후 처리를 하고있음)

대부분의 프레임워크에는 제어의 역전(IOC)가 적용되고 있다는 점이다

스프링에서의 대표적인 IOC 기술은 @Autowired 즉, 의존성 주입 (DI)다

 

참고
 

프레임워크와 라이브러리의 차이점

프레임워크와 라이브러리의 차이에 대해서 포스팅을 해야겠다고 생각했던 것은 어떤 분이 예전에 페북에서 'Angular Js와 React Js의 차이'에 대해서 물었던 글을 본 것에서 부터 시작하였습니다. 많

mangkyu.tistory.com

 

몰라도 되는 Spring - 리플렉션으로 만드는 Dynamic proxy

Dynamic proxy 이전 AOP Proxy 포스팅에서 Spring 에서 사용하는 Dynamic proxy와 CGLib를 이용한 proxy에 대해 말씀드리면서 다음과 같은 설명이 있었습니다. JDK dynamic proxy Reflection을 통해 동적으로 proxy 객체

taes-k.github.io

 

 

Spring AOP의 메커니즘과 Proxy Bean 생성

Moon

gmoon92.github.io

 

 

[Spring] Bean 정리

Spring에서는 Spring Container, IoC Container라는 개념을 사용한다. Container는 인스턴스의 생명주기를 관리하며, 생성된 인스턴스들에게 추가적인 기능을 제공하도록 하는 것이다.즉 Container는 개발자가

velog.io

 

 

IoC - spring

BeanFactory 와 ApplicationContext 관계

dahye-jeong.gitbook.io

 

 

[Spring] Spring Framework란? 기본 개념 핵심 정리

Spring Framework란? 자바 플랫폼을 위한 오픈소스 애플리케이션 프레임워크로서 엔터프라이즈급 애플리케이션을 개발하기 위한 모든 기능을 종합적으로 제공하는 경량화된 솔루션입니다. 엔터프

khj93.tistory.com