반응형
Notice
Recent Posts
Recent Comments
관리 메뉴

개키우는개발자 : )

Opinionated 본문

반응형

1. opinionated의 의미

  • 기본 정의: opinionated는 "자신의 의견을 강하게 고집하는", "독선적인"이라는 뜻을 가지고 있습니다. 스프링 부트가 스스로를 opinionated하다고 소개하는 이유는 개발자가 처음부터 모든 기술적 결정을 직접 하지 않아도, 스프링 부트가 이미 검증된 방식을 제안하기 때문입니다​.

2. 스프링 프레임워크의 설계 철학

  • 유연성: 스프링 프레임워크는 20년 이상 극단적으로 유연한 프레임워크로 알려져 있습니다. 다양한 기술을 통합할 수 있으며, 이로 인해 개발자는 여러 선택지를 가질 수 있지만, 그만큼 많은 결정을 직접 내려야 합니다​.
  • 다양한 기술의 통합: 스프링은 다양한 기술, 오픈소스, 상용 기술을 모두 수용하는 철학을 가지고 있습니다. 이는 장점이지만, 개발자는 프로젝트를 시작할 때 어떤 기술을 선택해야 할지 고민해야 하며, 잘못된 선택은 프로젝트 진행에 어려움을 줄 수 있습니다​.

3. 스프링 부트의 철학

  • opinionated 철학: 스프링 부트는 이러한 기술 선택의 고민을 덜어줍니다. 스프링 부트는 **"내가 다 정해줄게, 너는 도메인 로직에만 집중해"**라고 말합니다. 이는 스프링 부트가 개발에 필요한 기본 설정과 기술 조합을 미리 제공한다는 뜻입니다​.
  • 빠른 개발 환경: 스프링 부트는 빠른 개발을 위해 검증된 베스트 프랙티스를 기반으로 기술 설정을 미리 제공합니다. 개발자는 별도의 복잡한 설정 없이도 즉시 개발을 시작할 수 있습니다​.

4. 스프링 부트의 결정과 자동 구성

  • 자동 선택과 구성: 스프링 부트는 개발자가 사용할 기술, 라이브러리, 버전을 미리 결정해 줍니다. 예를 들어, JPA를 사용할 경우 어떤 엔진과 라이브러리를 사용할지, 기본 설정은 무엇인지 미리 구성되어 있어 개발자가 직접 선택할 필요가 없습니다​.
  • 복잡한 설정 자동화: 스프링 부트는 복잡한 설정 작업을 자동화합니다. 데이터베이스 연결 정보만 설정하면, 나머지 설정은 자동으로 이루어지며, 개발자는 바로 애플리케이션을 개발할 수 있습니다​.

5. 스프링 부트의 유연성

  • 커스터마이징 가능성: 스프링 부트는 기본 설정을 제공하지만, 개발자가 필요하다면 언제든지 이를 수정하거나 확장할 수 있습니다. 기본 제공되는 설정을 그대로 사용하더라도, 필요에 따라 손쉽게 변경할 수 있는 유연함을 제공합니다​.
  • 나만의 스프링 부트 모듈: 스프링 부트의 원리를 잘 이해하면, 자신만의 스프링 부트 모듈을 만들어 확장할 수도 있습니다. 이는 스프링 부트가 기술적 결정에 있어 강력한 의견을 제공하면서도, 여전히 유연한 확장성을 유지하고 있다는 것을 보여줍니다​.

6. 결론

스프링 부트는 개발자가 직접 모든 것을 선택하고 설정해야 했던 스프링 프레임워크의 철학과 달리, opinionated한 접근을 통해 많은 결정을 미리 내려 줍니다. 이를 통해 개발자는 복잡한 설정 없이 빠르게 애플리케이션을 개발할 수 있으며, 필요한 경우 커스터마이징도 쉽게 할 수 있는 유연성을 제공합니다.

반응형
Comments