자몽이 조아

[개발 고민]프레임워크를 사용할 것인가, 라이브러리를 조합할 것인가? 본문

개발공부

[개발 고민]프레임워크를 사용할 것인가, 라이브러리를 조합할 것인가?

Grapefruitgreentealoe 2025. 2. 10. 12:54
반응형

🚀 고민의 시작: 프레임워크가 항상 최선인가?

웹 개발을 할 때, 우리는 흔히 프레임워크(Framework) 를 사용할지, 아니면 필요한 라이브러리(Library)를 조합해서 직접 설계할지 고민하게 된다.

나는 처음에 프레임워크가 빠르고 편리한 해결책이라고 생각했지만, 점점 의문이 들기 시작했다. "꼭 이 방식을 따라야만 할까?" "필요한 기능만 쓰고 싶은데, 왜 강제적인 구조를 따라야 하지?" 라는 고민이 생겼다.

프레임워크는 개발 속도를 높여주고, 팀원들이 일관된 방식으로 개발하도록 도와주지만, 때로는 불필요한 기능까지 강제하고 개발의 자유도를 제한하기도 한다.

반면, 라이브러리 기반 접근법은 더 유연한 개발이 가능하지만, 직접 모든 것을 구성해야 하는 부담이 있다. 그렇다면, 어떤 경우에 프레임워크를 사용하고, 어떤 경우에는 라이브러리를 조합해서 개발하는 것이 좋을까?


1️⃣ 프레임워크를 사용하면 모든 게 좋아지는 걸까?

✅ 프레임워크의 장점

  1. 확장성과 유지보수의 용이함
    • 프레임워크는 기능이 정리된 상태에서 일정한 구조와 패턴을 제공하기 때문에 유지보수가 용이함.
    • Next.js, NestJS 같은 프레임워크는 SEO, SSR, API 관리 등 필수 기능을 포함하고 있음.
    • 반복적인 패턴을 사용할 수 있어 팀원 간 코드 일관성이 유지되고, 규모가 커질수록 효율적인 개발 가능.
    • 하지만, 처음부터 빠르게 개발할 수 있다는 의미는 아님. 초기 설정이 필요하고, 프로젝트의 크기에 따라 오히려 시간이 걸릴 수 있음.
  2. 일관된 코드 스타일 유지
    • 팀원이 많을수록 코드의 구조와 패턴을 통일할 수 있음.
    • 유지보수가 용이하고, 새로운 팀원이 쉽게 적응 가능.
  3. 커뮤니티와 공식 지원
    • 프레임워크는 보통 강력한 커뮤니티와 공식 문서 지원이 잘 되어 있음.
    • 유지보수와 버그 수정이 빠름.

❌ 하지만 이런 단점도 있다!

  1. 초기 설정 부담
    • 개발을 시작하기 전에 설정해야 할 것이 많을 수 있음.
    • 예: Next.js를 사용할 때, 필요하지 않은 SSR 기능을 끄거나 특정 API 방식에 맞춰야 하는 등의 설정이 필요함.
    • 결과적으로, 작은 프로젝트에서는 오히려 개발 속도가 느려질 수도 있음.
  2. 불필요한 기능 강제
    • 모든 기능을 사용할 필요가 없지만, 프레임워크의 규칙을 따라야만 함.
    • 예: Next.js에서 CSR(클라이언트 사이드 렌더링)만 필요해도 기본적으로 SSR 관련 설정이 포함됨.
  3. 커스텀화가 어려울 수 있음
    • 프레임워크가 제공하는 방식에서 벗어나면, 기존 구조와 충돌할 가능성이 있음.
    • 복잡한 기능을 추가할 때 제약이 많을 수 있음.
  4. 학습 비용
    • 프레임워크마다 다른 철학과 구조를 이해해야 함.
    • 새로운 기술을 도입할 때 팀원들의 학습이 필요함.

2️⃣ 그럼 프레임워크를 안 쓰면 해결될까?

✅ 라이브러리 조합 방식의 장점

  1. 필요한 기능만 선택 가능 (최소한의 코드)
    • 불필요한 구조 없이 가벼운 코드를 유지할 수 있음.
    • 예: Next.js 없이 Vite + React + Express 조합.
  2. 최적화된 환경 구성 가능
    • 성능, 로딩 속도 등을 프로젝트 특성에 맞게 최적화 가능.
    • React + Vite, Astro + Express 등 맞춤형 조합이 가능.
  3. 기술 변화에 유연함
    • 특정 프레임워크에 종속되지 않고, 필요할 때 다른 기술을 쉽게 도입 가능.

❌ 하지만 이런 단점도 있다!

  1. 초기 설정 부담
    • 모든 것을 직접 설정해야 하므로 초기 개발 속도가 느릴 수 있음.
  2. 팀원 간 일관성이 부족할 수 있음
    • 코드 스타일과 구조가 자유롭다 보니, 유지보수에 어려움이 생길 가능성이 있음.
  3. 커뮤니티 및 공식 지원 부족
    • 프레임워크에 비해 공식 문서나 커뮤니티 지원이 적을 수 있음.

3️⃣ 그렇다면, 어떤 경우에 무엇을 선택해야 할까?

상황 프레임워크 (Next.js, NestJS 등) 라이브러리 기반 개발 (Vite + React + Express 등)

팀 규모 ✅ 팀원이 많다면 통일된 코드 구조 유지 ✅ 개인 개발, 소규모 프로젝트라면 유연한 구조 가능
개발 속도 ❌ 초기 설정이 필요하지만, 규모가 커질수록 효율적 ✅ 빠르게 MVP를 만들어야 하는 경우 적합
SEO 필요 여부 ✅ SEO 최적화 (Next.js SSR) ✅ prerender.io 등을 사용하면 가능
유지보수 편리함 ✅ 유지보수 용이 (일관된 패턴) ❌ 개발자가 직접 관리해야 함
기능 커스텀 ❌ 제약이 있을 수 있음 ✅ 원하는 기능만 선택하여 최적화 가능
기술 변화 대응 ❌ 특정 프레임워크에 종속될 가능성 ✅ 필요할 때 다른 기술로 전환 가능

4️⃣ 결론: 프레임워크가 정답이 아니다. 프로젝트에 맞게 선택하자.

처음에는 프레임워크를 쓰는 것이 당연하다고 생각했다. 하지만 실제로 개발하면서 "왜 이 구조를 꼭 따라야 하지?" 라는 고민이 들었고, 불필요한 강제성이 불편할 수도 있다는 것을 깨달았다.

프레임워크는 일정 규모 이상의 프로젝트에서 확장성과 유지보수를 고려하면 효과적이다.라이브러리 기반 개발은 빠르게 프로토타입을 만들거나 실험적인 프로젝트에 적합하다.

🚀 결론적으로,

  • 중장기적으로 유지보수를 고려한다면 → 프레임워크(Next.js) 사용
  • 가벼운 프로젝트이거나, 빠른 테스트가 필요하다면 → 라이브러리 조합 방식 추천
  • 둘 다 적절히 조합하여 Hybrid 방식도 가능!

💡 "프레임워크가 항상 정답은 아니다. 프로젝트의 특성과 목표에 맞춰 최적의 선택을 하자!" 🚀

반응형
Comments