IT/Spring

스프링 프레임워크란 무엇인가?

binary? 2024. 9. 11. 08:38

스프링 프레임워크란 무엇인가?

 

스프링 프레임워크가 뭔지 알기 전에 이 글을 쓰는 이유에 대해 먼저 적어보겠습니다. ㅋㅋ

 

이직한지 벌써 2달이 지났습니다. 이직한 회사에서 면접 때 안 계셨던 꼰대? 상사님이 책 5권을 주고 다 읽으라고 하셨습니다. ㅋ_ㅋ 이유는 저에게 자바와 cs 질문을 했는데 50%밖에 답변을 하지 못했습니다. 코딩만 할 줄 아는 개발자가 되지 말라고 하시면서 동작원리?를 이해하는 개발자가 되라고 하셨습니다. (정확하게 뭐라고 하신지 모르겠음. 느낌으로 이해함)

 

저는 기본기가 없습니다. 학원을 다녀본 적도 없고 그냥 코드를 복사 붙여넣기 하면서 결과물만 완성하는 주먹구구식 개발만 해왔습니다. 이 책이 1300쪽가량 되는데 훑어보면서 쭈욱 다 읽었습니다. 그러면서 자바라는 프로그램이 어떻게 동작하는지 조금은 더 알게 되었습니다. 이 책을 한 권 읽고 이해한다면 면접에서 면접관이 질문의 50%는 답변할 수 있겠다는 생각이 들었습니다.

 

예전에 김영한 님의 스프링 강의 보면서 스프링이 무엇인지 감은 잡았지만 제대로 알지 못하고 넘어갔습니다. 이전 회사에서 전자정부 프레임워크를 쓰면서 무엇인지도 몰랐고, 개인 프로젝트로 스프링 부트를 쓰면서 무엇인지 몰랐습니다. 이제 와서 보니 개발자라는 말이 무색하네요.

 

이 책을 읽고 스프링이 무엇인지 이해하게 되었고 정리를 해보면서 제 머릿속에 좀 더 집어넣고자 합니다.

 

프레임워크(Framework)란?

사전적 의미 - 어떤 것을 구성하는 구조, 뼈대

소프트웨어적 의미 - 기능을 미리 클래스나 인터페이스 등으로 만들어 제공하는 반제품

 

스프링 프레임워크(Spring Framework)란 무엇인가요?

자바 웹 애플리케이션 개발을 위한 오픈 소스 프레임워크

 

예를 들어, 서로 다른 2개의 애플리케이션(A, B) 순차적으로 개발한다고 가정해 보겠습니다. 'A' 애플리케이션을 개발한 이후에 'B' 애플리케이션을 개발할 때는 일일이 처음부터 다시 개발해야 하는 단점이 있습니다. 그래서 애플리케이션 개발 시, 많이 사용하는 기능은 미리 만들어서 제공한다면 훨씬 효율적입니다.

즉, 스프링 프레임워크란 자바 애플리케이션을 개발할 때 개발 생산성품질이 보장된 애플리케이션을 만들게 도와주는 프레임워크입니다.

완전히 동일하지는 않지만 PPT 템플릿에 비유해도 쉽게 이해가 가는 거 같네요.

 

 

1. 스프링 프레임워크의 주요 특징

  • 의존성 주입(Dependency Injection)
  • 제어 반전(Inversion Of Control)
  • 관점 지향 프로그래밍(Aspect-Oriented Programming, AOP)
  • 트랜잭션 관리(Transaction Management)
  • 모듈화된 아키텍처

 

전자정부 프레임워크(e-Government Framework)란 무엇인가요?

  • 전자정부프레임워크는 주로 공공기관에서 사용되는 시스템 개발을 위한 프레임워크
  • 한국 정부의 정책과 규제에 맞추어 개발된 프레임워크

국내 공공 SI 개발하는 곳으로 가면 거의 전자정부 프레임워크를 사용하고 있습니다.

 

 

주요 특징에 대해서 적으면 너무 길어질 거 같아서 다음에 또 포스팅해 보겠습니다. 스프링 프레임워크라는 것이 저렇게 간단한 거였는데 저걸 제대로 모르고 있었네요.