상세 컨텐츠

본문 제목

프레임워크(Framework)-필요성,대표종류,의견

개발/방법론

by 화천사장 2024. 1. 15. 22:21

본문

반응형

프레임워크(Framework)는 소프트웨어 개발을 위한 구조와 규칙을 제공하는 추상화된 환경입니다. 프레임워크는 개발자가 애플리케이션을 구축할 때 필요한 기본 구조와 기능을 정의하고, 개발자는 이 구조에 따라 필요한 부분만 직접 구현하여 사용할 수 있습니다. 이로써 코드의 재사용성이 증가하고 개발 생산성을 향상할 수 있습니다.

 

[목차]

필요성

  1. 구조화된 개발
    • 프레임워크는 개발 프로세스에 구조를 제공하여 일관된 패턴과 규칙을 따르게 합니다. 
    • 이는 코드의 일관성과 가독성을 높이며, 프로젝트의 전반적인 구조를 향상시킵니다.
  2. 생산성 향상
    • 프레임워크는 기본적인 작업들을 추상화하고 자동화하여 개발자가 핵심 비즈니스 로직에 집중할 수 있게 합니다. 
    • 이로써 개발 생산성이 향상되고, 더 적은 코드로 더 많은 일을 할 수 있게 됩니다.
  3. 재상용 가능한 코드
    • 프레임워크는 재사용 가능한 코드와 구성 요소를 제공합니다. 
    • 개발자는 이러한 구성 요소들을 활용하여 반복적이고 일상적인 작업을 최소화하며, 코드의 재사용성을 높일 수 있습니다.
  4. 표준화된 개발
    • 프레임워크는 일반적으로 표준화된 구조와 규칙을 제공합니다. 
    • 이는 여러 개발자들이 협업할 때 일관성을 유지하고 혼돈을 방지하는 데 도움이 됩니다.
  5. 유지보수 용이성
    • 프레임워크를 사용하면 기본 구조가 정의되어 있어 코드의 유지보수가 더 쉬워집니다. 
    • 새로운 요구사항이나 변경사항이 있을 때, 프레임워크는 일관성 있게 적용되어 개발자가 변경에 대응하기 용이해집니다.
  6. 보안성 강화
    • 일부 프레임워크는 보안에 대한 고려가 이미 내장되어 있습니다. 
    • 이는 개발자가 보안 관련 이슈에 대해 더 적극적으로 대응할 수 있도록 도와줍니다.
  7. 빠른 개발 주기
    • 프레임워크는 개발 주기를 단축시키는 데 기여합니다. 
    • 개발자는 기본적인 기능들에 대해 미리 정의된 모듈과 라이브러리를 활용하고, 이를 통해 신속하게 애플리케이션을 구축할 수 있습니다.

대표 종류

  • Spring Framework
    • Java 기반의 오픈 소스 프레임워크로, 기업급 애플리케이션 개발을 지원하며 다양한 기능과 모듈을 제공합니다.
  • Django
    • Python 기반의 웹 애플리케이션 개발을 위한 프레임워크로, 간편한 문법과 높은 생산성을 제공합니다.
  • Ruby on Rails
    • Ruby 언어 기반의 웹 프레임워크로, 간결한 코드와 컨벤션으로 개발 생산성을 높입니다.
  • .NET Framework
    • Microsoft에서 개발한 프레임워크로, Windows 환경에서 다양한 애플리케이션 개발을 지원합니다.

의견

프레임워크는 대부분의 언어 기반으로 존재합니다. 소프트웨어를 만들 때 대부분이 사용하게 됩니다. 

개발이 빠르고 안정적으로 만드는데 도움이 되기 때문입니다. 

하지만, 프레임워크는 개발자들의 공통된 요구사항에 대해 지원하기 때문에 시간이 지날수록 규모가 커집니다. 

어떤 프레임워크든지 시작은 간단한 구조로 가볍고 빠르게 동작이 되었으나, 지원하는 기능이 추가됨에 따라 점점 커집니다. 

그리고, 대부분 오픈소스 커뮤니티에서 개발되기 때문에 오픈소스 특유의 리스크를 가지고 있습니다. 

개인적으로 안타까운 점은 개발자들의 프레임워크 의존도가 너무 크다는 것입니다. 프레임워크가 없으면 아무것도 시작하지 못하는 경우가 생기고, 프레임워크의 기본 기능의 동작 원리를 모르니 근본적인 성능 향상이나, 문제에 대한 해결을 하지 못합니다.

개인적인 견해지만, 정말 끝내주는 애플리케이션은 Native로 만들어야 한다고 생각합니다. 

대부분의 프레임워크를 보면 실제 조직에서 사용하는 기능들은 생각보다 많지 않은데, 기본 프레임워크의 기능이 너무 많아 낭비가 심합니다. 물론, 컴파일 시에 쓰지 않는 기능들은 배포 바이너리에 들어가지 않게 최적화하는 기술도 많이 발전했지만, 그럼에도 기본 바이너리 크기가 상당합니다. 

저는 이런 말씀을 드리고 싶습니다. 

1. 프레임워크로 흥한 사람은 프레임워크로 망한다. 

2. 오픈소스로 흥한 사람은 오픈소스로 망한다.

정말 끝내주는 개발자는 자신만의 프레임워크를 만들 수 있는 실력을 가지고 있는 사람이라고 생각합니다. 

오픈소스에 너무 의존하지 마세요. 개발이 편할수록 실력은 줄어듭니다. 

개발이 단순 코딩이라고 생각한다면, 매우 슬플 것 같습니다. 

반응형

관련글 더보기