Spring Framework

INSANEZINDOL·2021년 11월 25일

spring

목록 보기
2/3
post-thumbnail

디자인 패턴 (Design Pattern)
절차형 언어에서 객체지향 언어로 넘어오면서 설계의 중요성이 커졌습니다. 객체지향은 객체들이 서로 메시지를 주고 받고 서로를 사용하면서 작업을 수행하기 때문에 객체를 어떻게 설정하고 객체 간 관계를 어떻게 정할 것인지, 이런 설계 작업이 핵심적으로 중요해졌습니다.

객체지향을 처음 배우는 사람들에게 이런 설계 개념을 설명하기 위해서 기존 개발 건 중에 설계가 잘 된 케이스들을 뽑아서 가르치기 시작했습니다. 이런 케이스들을 이름을 붙이고 목적과 용도, 그리고 구현 방법을 잘 정리해놓은 것이 바로 디자인 패턴 입니다. 그래서 아무렇게나 설계하는 것이 아니라 필요한 디자인 패턴을 참고해서 설계하면 효율적으로 설계할 수가 있게 되었죠.

라이브러리 (Library)
라이브러리는 어떠한 기능을 다른 사람들도 사용할 수 있도록 만들어 놓은 것을 말합니다. 예를 들어, 내가 만드는 애플리케이션 안에 이미지 변환 기능이 필요하다고 합시다. 그러면 이미지 변환 기능이 필요한 사람들은 모두 기능을 각자 구현해야곘죠. 하지만 그렇게 하지 않고 이미지 변환 기능을 다른 사람들도 소스 안에서 사용할 수 있도록 jar 형태로 묶어서 제공하는 것이 바로 라이브러리입니다.

프레임워크 = 디자인 패턴 + 라이브러리
프레임워크란 이름에서부터 알 수 있듯이 애플리케이션을 개발할 때 사용하는 일종의 틀을 말합니다. 앞서 말한 디자인패턴과 라이브러리들을 모아서 프로그램 형태로 만들어놓은 겁니다. 그래서 프레임워크를 사용하면 여러가지 유용한 기능을 통해 개발자는 구현해야 하는 핵심 로직에 집중할 수가 있습니다.

예를 들어, 나는 해변에 앉아 있는 사람을 그리고 싶다면, 이미 해변 그려져 있는 해변 그림을 가져다가 내가 그리고 싶은 앉아 있는 사람만 그리는 거라고나 할까요.

이를 통해서 사용자는 개발 생산성 향상과 일정 수준 이상의 품질을 보장받을 수 있습니다. 개발자의 실력에 상관없이 고급 기능들을 적용할 수 있기 때문에 대규모 프로젝트에서는 프레임워크를 반드시 사용합니다.

스프링 프레임워크 (Spring Framework)
스프링 프레임워크 는 자바 기반의 애플리케이션 프레임워크입니다. 웹 애플리케이션 서버 사이드 개발 시 많이 사용되고, 웹 뿐만 아니라 많은 곳에서 사용된다고 합니다. 스프링 홈페이지에 가보면 상당히 많은 프로젝트 가 있습니다. 우리나라 공공기관 웹 서비스 개발할 때 사용하는 전자정부 프레임워크도 스프링 기반으로 되어있습니다.

스프링 핵심 기능
스프링의 핵심 기능은 다음과 같습니다. 각각에 대해서 설명하기에는 양이 너무 방대하니 자세한 내용은 다른 포스팅을 통해서 하나씩 알아보기로 하죠.

의존 주입 (Dependency Injection)
관점 지향 프로그래밍 (AOP; Aspect-Oriented Programming)
스프링 MVC 웹 애플리케이션과 RESTful 웹 서비스 프레임워크 (Spring MVC web application and RESTful web service framework)
JDBC, JPA, JMS 지원

profile
Backend Engineer

0개의 댓글