솔적솔적

Spring Boot 를 배우기 전 알아야 할 개념 정리 1탄 본문

Back-end/Spring Boot

Spring Boot 를 배우기 전 알아야 할 개념 정리 1탄

카드값줘체리 2022. 3. 3. 06:16

Spring Boot를 사용하여 개발을 하려할 때 기본적으로 알고있어야하는 Spring의 핵심들, 

이거이거, 중요하니 툭 치면 입에서 저절로 나와야하는 중요한 개념들이므로

쫘르르 간단 명료하게 설명해보려합니다.

 

spring boot를 사용하기 전에 알아야할 것은 spring FrameWork.

 

면접에서도 많이 나오는 질문 중에 하나라고 하며

면접관들이랑 얘기할 때 이 프레임워크의 개념이 잘 잡혀진 기준하에 얘기가 진행될 수 있었다는...★★★★★

 

스프링이란1? 

스프링은 FrameWork다.

FrameWork란?

말 그대로 직역해본다. 그 말 그대로다. 

Frame : 틀 + Work : 동작하다 = 틀 안에서 동작한다는 것

이 틀을 벗어날 수 없는, 너는 이 틀 안에서 개발해. 이게 프레임워크입니다.

 

 

스프링이란2?

스프링은 오픈소스이다.

오픈소스는 소스코드가 공개되어있다는 것, 그말은? => 그말은 즉, 뜯어고칠 수 있다라는 것.

 

만약에 스프링을 공부하다보면 내부 깊숙한 곳까지 찾아서 볼 수 있습니다.

그 곳들을 우리는 음~ 여기 좀 고쳐볼까?하고

불편한 부분은 고쳐서 새롭게 설정할 수 있지요.

 

스프링이란3? 

스프링은 IOC컨테이너를 가진다.

IOC란?

Inversion of controll : 이것도 직역해보면

Inversion 역전 +of ~의+ controll 제어 = 제어의 역전.

제어의 역전이라... 이말은

주도권을 빼앗기다. = 주도권이 스프링한테 빼앗겼다라는 것입니다.

 

개발을 할 떄

class, object, Instance가 있지요?

 

 

오브젝트를 직접 new라해서 heap이란 메모리공간에 올리게되면

책상 t = new 책상();  new 했기에 실체화가 되는 것이고 (책상을) 그럼 이 주소를 t가 들고 있고

이 t는 매서드가 실행되는 순간에만 떠있어서 

다른 메서드에서 책상을 사용하고 싶다면 그 다른 매서드 안에 책상  t = new 책상();을 한다?

근데 새로 만든 매서드 안에 넣은 t가 위 그림의 t와 같을까? 아닙니다.

공유하는 것이 힘들죠, 나는 여기이 새로운 메소드에서도 쓰고 싶은데, 

그래서 스프링은 이렇게 해줍니다.

 

여러 오브젝트들 ex) 사슴, 토끼.. 사자 이것을 클래스로 만들어놓고 -> 스프링이 다 읽고 파악해서 직접 스프링이 heap 메모리 안에 띄웁니다. 그럼, 스프링이 이 여러 클래스들을 읽어서 내보내줍니다. heap 메모리 안에 다 띄어줌으로 공유가 될 수 있게 스프링에 만들어 준 것. (IoC덕에 스프링이 내가 만든 인스턴스들을 옮겨서 올려준 것)

 

스프링이란3?

스프링은 DI 지원한다.

Dependeny Injection를 말하는 것인데 이 뜻은 '의존성 주입'이란 뜻입니다.

 

원래 내가 new를 해서 객체의 주소를 개발자가 관리를 했다면 이제는 spring이 파악해서 메모리에 띄웠기 때문에

spring이 이제 관리를 하게됩니다.

그럼, 이제 내가 원하는 모든 곳에서 모든 클래스의 메소드에서 heap메모리에 만든 클래스들을 가져와서 사용할 수 있게되는 겁니다.  위의 그림과 같이 t 가 다른 것이아니라 같은 것이 된다는 뜻이죠. 공유를 할 수 있는 것. 그게 Dependeny Injection이라고 합니다.

 

다음은 메시지 컨버터가 무엇인지와 필터의 개념에 대해서 알아보도록 하려합니다. 

spring의 개념 파파팍~👊👊👊💨

 

[참고] 인프런 - 스프링부트 개념정리(이론)