프레임워크(Framework)는 소프트웨어 개발을 위한 구조와 규칙을 제공하는 추상화된 환경입니다. 프레임워크는 개발자가 애플리케이션을 구축할 때 필요한 기본 구조와 기능을 정의하고, 개발자는 이 구조에 따라 필요한 부분만 직접 구현하여 사용할 수 있습니다. 이로써 코드의 재사용성이 증가하고 개발 생산성을 향상할 수 있습니다.
프레임워크는 대부분의 언어 기반으로 존재합니다. 소프트웨어를 만들 때 대부분이 사용하게 됩니다.
개발이 빠르고 안정적으로 만드는데 도움이 되기 때문입니다.
하지만, 프레임워크는 개발자들의 공통된 요구사항에 대해 지원하기 때문에 시간이 지날수록 규모가 커집니다.
어떤 프레임워크든지 시작은 간단한 구조로 가볍고 빠르게 동작이 되었으나, 지원하는 기능이 추가됨에 따라 점점 커집니다.
그리고, 대부분 오픈소스 커뮤니티에서 개발되기 때문에 오픈소스 특유의 리스크를 가지고 있습니다.
개인적으로 안타까운 점은 개발자들의 프레임워크 의존도가 너무 크다는 것입니다. 프레임워크가 없으면 아무것도 시작하지 못하는 경우가 생기고, 프레임워크의 기본 기능의 동작 원리를 모르니 근본적인 성능 향상이나, 문제에 대한 해결을 하지 못합니다.
개인적인 견해지만, 정말 끝내주는 애플리케이션은 Native로 만들어야 한다고 생각합니다.
대부분의 프레임워크를 보면 실제 조직에서 사용하는 기능들은 생각보다 많지 않은데, 기본 프레임워크의 기능이 너무 많아 낭비가 심합니다. 물론, 컴파일 시에 쓰지 않는 기능들은 배포 바이너리에 들어가지 않게 최적화하는 기술도 많이 발전했지만, 그럼에도 기본 바이너리 크기가 상당합니다.
저는 이런 말씀을 드리고 싶습니다.
1. 프레임워크로 흥한 사람은 프레임워크로 망한다.
2. 오픈소스로 흥한 사람은 오픈소스로 망한다.
정말 끝내주는 개발자는 자신만의 프레임워크를 만들 수 있는 실력을 가지고 있는 사람이라고 생각합니다.
오픈소스에 너무 의존하지 마세요. 개발이 편할수록 실력은 줄어듭니다.
개발이 단순 코딩이라고 생각한다면, 매우 슬플 것 같습니다.
TDD-목적,적용방법,주의사항,의견 (0) | 2024.01.17 |
---|---|
테스트 코드-목표, 수행시점, 의견 (0) | 2024.01.13 |
CI/CD-목적,주요점,의견 (0) | 2024.01.12 |
코드리뷰-중요점,주의점,방법,의견 (2) | 2024.01.11 |
BTS(Bug Tracking System)-주요요소,주의점,의견 (0) | 2024.01.10 |