woniper

IoC와 Framework 본문

Framework

IoC와 Framework

woniper1 2016. 1. 22. 12:25

  토비의 스프링책에 보면 Framework는 IoC라는 개념이 포함되어야한다고 나온다.

Framework와 IoC라는 단어와 개념은 스프링에서 파생된 개념은 아니다. Framework에 사전적 의미는 틀, 뼈대이고 IoC는 Inversion of Control, 제어의 역전이라는 뜻이다. 그럼 이 둘에 관계와 왜 Framework에 IoC라는 개념이 포함되어야 Framework라고 할 수 있는지 생각해 보았다.(내가 개인적으로 생각하고 정리한 내용이라 틀릴 수 있다. 다른 의견이나 틀린 내용은 댓글로 알려주세요~)

  우리 개발자들은 반복과 절차가 있는 지루한 작업을 추상화 시켜 애플리케이션을 만든다. 애플리케이션을(프로그램을) 만들기 위해서는 프로그래밍 언어가 필요한데, 단순히 프로그래밍 언어로만 무언가를 만드는건 고된 작업이기 때문에 Framework라는 것을 통해 개발을하는데, Framework를 사용해 개발을 한다는건 규칙이 있고 뜻 그대로 틀 안에서 자유롭게 개발을 하면된다. 물론 Framework 없이 개발하는게 더 자유롭겠지만 Framework는 로드맵을 제공한다고나 할까? 아무튼 Framework를 통해 개발을하는데 앞서 말했듯이 규칙이 있고 틀 안에서 개발을한다. 내가 말하고 싶은건 IoC와 Framework는 일맥상통한 것 아닌가 라는 것이다. 이 말을 이해하려면 IoC라는 걸 설명해야하는데 IoC라는 건,  개발자가 코드를 작성할때 그 코드에 대한 컨트롤(생성, 소멸, 생명주기 등등)을 일일이 해야하는 것을 역전 한다는 것이다. 즉 내가 작성한 코드를 개발자 스스로 컨트롤 하던걸 어떤 주체가 대신 컨트롤 한다는 것이다. 여기서 그 주체가 Framework인 것이다. 그럼 다시 원점으로 돌아가 Framework가 하는 역할은 규칙과 틀을 제공하고 추가로 개발자가 작성한 코드를 스스로 컨트롤한다. 그럼 Framework가 주는 장점은 무엇일까? 바로 편리함과 빠른 개발이다. 일일이 컨트롤하지 않아도 되는 편리함이 생기고 그 편리함으로 인한 빠른 개발과 규칙 안에서만 코드를 작성하면 되기 때문에 빠르게 개발이 가능하다. Spring Framework에서 Web 프로젝트는 Web 개발을 쉽게 하기 위한 Framework를 제공해 개발자는 최소한에 코드만 작성하고 나머지(Web 요청, 응답, 등...에 대한 공통된 작업)는 신경 쓰지 않아도된다.

  Framework 개발을 해보고 싶다.

Comments