2024. 10. 7. 11:44ㆍSpring/에 대하여
spring에 대해서 예전에 난처하게 여겼던 개념들을 내가 이해했던 바를 바탕으로 기술하고자한다.
$ 면책조항으로 지극히 주관적이고 불친절하고 부정확할 수 있음을 미리 알린다.
오늘도 좋은 하루!
이번엔 spring에 대한 글을 작성하고자 한다.
순전히 나 자신의 이해를 위해 스스로 왜곡한 내용이 있을 수 있다. 내 머리 속에서는 agile하게 비비 꼬이고 빙빙 돌아가도 결국은 원래 개념에 안착할 수 있지만, 여러분들은 내 머리 속의 엉터리 logic이 확립되어있지 않으니 이게 뭐지 싶을 것이다.
Spring이란?
spring은 java의 web을 위한 framework이다.
framework라는 명칭에서 읽어낼 수 있듯, web 개발을 위한 뼈대를 제공한다.
spring에서 우리를 난처하게 만드는 것들은 무엇일까?
이번에도 명칭이다. spring의 기능, 목적, 철학 등이 담겨있다. 우리는 java에서도 오묘한 naming에 고통받았다. 뭐, 적어도 나는 그랬다.
spring의 핵심가치
제어역전? 의존성 주입? 🤨🥵 this must be illigal...
bean? container? 선물거래인가?
시덥잖은 농담이다.
하지만 처음 이것들을 봤을 때는 정말이지 곤혹하다. 객체와 instance를 명확히 구분하려하던 전적이 있는 본인은, 그 당시에 정말이지 울어버리기 직전이었다.
쉽고 간단하고 부정확하고 왜곡되게 설명해보겠다. 더 좋은 곳에서 다시 배우기를 바란다.
- IoC ( inversion of control ): 고운 우리말로 제어 역전이다. spring에게 제어 주도권이 넘어감을 의미한다. 이것을 유념하고 다른 개념들을 살피자.
- DI ( dependency injection ): 의존성 주입. 뭔가 바로 와닿지 않는다. 나는 엄한 생각만 든다. 하지만 일단은 spring 주도의 instance 생성이라고 생각하자.
- Bean: 이제는 정말이지 어쩌라는건지 조차 모르겠다. 상기한 두 개념을 떠올려보자. 아무튼 spring에서 알아서 한다는 말이지? bean은 DI를 통해 spring 주도로 생성된 instance이다.
- container: 이름대로 무언가를 담아둘 것만 같다. spring이 di로 생성한 bean이 상주하는 곳이 spring container다. 당연히 spring의 관리를 받는다. 당신은 객체에 대한 양육권을 잃었다.
이어서