본문 바로가기

항해 시절

DI,IoC, Bean란 무엇인가 (항해 3주차 회고록)

728x90
728x90

이번 주차를 진행하면서 주특기 자바 스프링을 활용하여 글을 남기고, 글 들을 조회하는 페이지와, 상세페이지 및 작성한 글을 삭제하는 기능들을

구현해보았다.

자바 스프링을 처음 쓰는거였는데, Controller, Service, Repository로 패키지를 나누어 코드를 작성하는 방식으로 기능을 만들어 보았다.

새로운 개념들을 너무 많이 듣게되어 아직은 혼란스러운 점이 있으나, 스프링을 통해 처음으로 기능들을 구현해본 점이 되게 뿌듯하고 스프링 개발자가 되기 위한 첫 발걸음을 뗀거 같아서 기분이 좋았다.

하지만 내가 스프링을 배우면서 스프링도 모르지만, 자바에 대한 개념도 아직 부족한 것이 많다는 것을 알게되었다.

항해를 하면서 개인과제를 완성하고 제출하는 것은 일부분에 지나지 않는다고 생각한다. 자바와 스프링에 대한 기본 지식과 더불어 내가 제출했던 코드에 아키텍쳐, 라이브러리 등에 대해서 특징과 장단점 등 공부해야 할 것이 산더미이다. 앞으로도 열심히 달려가야 겠다.

스프링을 입문하면서 듣게된 용어 몇가지를 정리해 보려한다

DI란 Dependency Injection의 줄임말로 의존성 주입이라는 말이다, 스프링이 제공하는 의존 관계 주입 기능으로, 객체를 직접 생성하는게 아니라 외부에서 생성 한 후 주입 시켜주는 방식이다.

외부에서 생성 한 후 사용하는 이유로는 직접 생성하는 방식으로는 코드에 변동 사항이 생겼을 때 컨트롤러, 서비스, 리포지토리에 생성 된 코드들을 일일히 바꿔줘야 하는 번거로움이 생길 수 있어, 수정을 좀 더 용이하게 하기 위해서 이다.

스프링에서는 객체를 Bean이라 부르며, Bean들이 모아져 있는 곳을 Bean 컨테이너라 부른다.

IoC는 Inversion of Controller 의 줄임말로 제어의 역전이라는 뜻이다.

제어의 흐름이 바뀐 것인데 정확히는 메소드나 객체의 호출 작업을 개발자가 정하는 것이 아니라, 외부에서 결정되는 것을 뜻한다.

IoC를 통해 객체 간의 결합도를 줄이고 유연한 코드를 작성할 수 있게 되어 유지보수가 편해진 장점이 있다.