일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 코딩배우기
- 인공지능모델학습
- 웹개발포트폴리오
- reactStrictMode
- 부트캠프프로젝트발표
- pymupdf
- 엘리스AI트랙
- 코딩국비지원
- 블로그와 친해지기
- 코딩부트캠프
- tempfile
- 엘리스AI트랙데모데이
- after_this_request
- fabricjs
- 코딩 국비지원
- 프로젝트마무리
- 와탭랩스
- Python
- 엘리스
- 프레임워크vs라이브러리
- devmode
- 코딩교육
- 엘리스 AI 트랙
- 팀프로젝트
- 개발자 채용설명회
- FLASK
- aws_s3
- 웹개발프로젝트
- 이미지처리프로젝트
- REACT
Archives
- Today
- Total
자몽이 조아
[개발 고민]프레임워크를 사용할 것인가, 라이브러리를 조합할 것인가? 본문
반응형
🚀 고민의 시작: 프레임워크가 항상 최선인가?
웹 개발을 할 때, 우리는 흔히 프레임워크(Framework) 를 사용할지, 아니면 필요한 라이브러리(Library)를 조합해서 직접 설계할지 고민하게 된다.
나는 처음에 프레임워크가 빠르고 편리한 해결책이라고 생각했지만, 점점 의문이 들기 시작했다. "꼭 이 방식을 따라야만 할까?" "필요한 기능만 쓰고 싶은데, 왜 강제적인 구조를 따라야 하지?" 라는 고민이 생겼다.
프레임워크는 개발 속도를 높여주고, 팀원들이 일관된 방식으로 개발하도록 도와주지만, 때로는 불필요한 기능까지 강제하고 개발의 자유도를 제한하기도 한다.
반면, 라이브러리 기반 접근법은 더 유연한 개발이 가능하지만, 직접 모든 것을 구성해야 하는 부담이 있다. 그렇다면, 어떤 경우에 프레임워크를 사용하고, 어떤 경우에는 라이브러리를 조합해서 개발하는 것이 좋을까?
1️⃣ 프레임워크를 사용하면 모든 게 좋아지는 걸까?
✅ 프레임워크의 장점
- 확장성과 유지보수의 용이함
- 프레임워크는 기능이 정리된 상태에서 일정한 구조와 패턴을 제공하기 때문에 유지보수가 용이함.
- Next.js, NestJS 같은 프레임워크는 SEO, SSR, API 관리 등 필수 기능을 포함하고 있음.
- 반복적인 패턴을 사용할 수 있어 팀원 간 코드 일관성이 유지되고, 규모가 커질수록 효율적인 개발 가능.
- 하지만, 처음부터 빠르게 개발할 수 있다는 의미는 아님. 초기 설정이 필요하고, 프로젝트의 크기에 따라 오히려 시간이 걸릴 수 있음.
- 일관된 코드 스타일 유지
- 팀원이 많을수록 코드의 구조와 패턴을 통일할 수 있음.
- 유지보수가 용이하고, 새로운 팀원이 쉽게 적응 가능.
- 커뮤니티와 공식 지원
- 프레임워크는 보통 강력한 커뮤니티와 공식 문서 지원이 잘 되어 있음.
- 유지보수와 버그 수정이 빠름.
❌ 하지만 이런 단점도 있다!
- 초기 설정 부담
- 개발을 시작하기 전에 설정해야 할 것이 많을 수 있음.
- 예: Next.js를 사용할 때, 필요하지 않은 SSR 기능을 끄거나 특정 API 방식에 맞춰야 하는 등의 설정이 필요함.
- 결과적으로, 작은 프로젝트에서는 오히려 개발 속도가 느려질 수도 있음.
- 불필요한 기능 강제
- 모든 기능을 사용할 필요가 없지만, 프레임워크의 규칙을 따라야만 함.
- 예: Next.js에서 CSR(클라이언트 사이드 렌더링)만 필요해도 기본적으로 SSR 관련 설정이 포함됨.
- 커스텀화가 어려울 수 있음
- 프레임워크가 제공하는 방식에서 벗어나면, 기존 구조와 충돌할 가능성이 있음.
- 복잡한 기능을 추가할 때 제약이 많을 수 있음.
- 학습 비용
- 프레임워크마다 다른 철학과 구조를 이해해야 함.
- 새로운 기술을 도입할 때 팀원들의 학습이 필요함.
2️⃣ 그럼 프레임워크를 안 쓰면 해결될까?
✅ 라이브러리 조합 방식의 장점
- 필요한 기능만 선택 가능 (최소한의 코드)
- 불필요한 구조 없이 가벼운 코드를 유지할 수 있음.
- 예: Next.js 없이 Vite + React + Express 조합.
- 최적화된 환경 구성 가능
- 성능, 로딩 속도 등을 프로젝트 특성에 맞게 최적화 가능.
- React + Vite, Astro + Express 등 맞춤형 조합이 가능.
- 기술 변화에 유연함
- 특정 프레임워크에 종속되지 않고, 필요할 때 다른 기술을 쉽게 도입 가능.
❌ 하지만 이런 단점도 있다!
- 초기 설정 부담
- 모든 것을 직접 설정해야 하므로 초기 개발 속도가 느릴 수 있음.
- 팀원 간 일관성이 부족할 수 있음
- 코드 스타일과 구조가 자유롭다 보니, 유지보수에 어려움이 생길 가능성이 있음.
- 커뮤니티 및 공식 지원 부족
- 프레임워크에 비해 공식 문서나 커뮤니티 지원이 적을 수 있음.
3️⃣ 그렇다면, 어떤 경우에 무엇을 선택해야 할까?
상황 프레임워크 (Next.js, NestJS 등) 라이브러리 기반 개발 (Vite + React + Express 등)
팀 규모 | ✅ 팀원이 많다면 통일된 코드 구조 유지 | ✅ 개인 개발, 소규모 프로젝트라면 유연한 구조 가능 |
개발 속도 | ❌ 초기 설정이 필요하지만, 규모가 커질수록 효율적 | ✅ 빠르게 MVP를 만들어야 하는 경우 적합 |
SEO 필요 여부 | ✅ SEO 최적화 (Next.js SSR) | ✅ prerender.io 등을 사용하면 가능 |
유지보수 편리함 | ✅ 유지보수 용이 (일관된 패턴) | ❌ 개발자가 직접 관리해야 함 |
기능 커스텀 | ❌ 제약이 있을 수 있음 | ✅ 원하는 기능만 선택하여 최적화 가능 |
기술 변화 대응 | ❌ 특정 프레임워크에 종속될 가능성 | ✅ 필요할 때 다른 기술로 전환 가능 |
4️⃣ 결론: 프레임워크가 정답이 아니다. 프로젝트에 맞게 선택하자.
처음에는 프레임워크를 쓰는 것이 당연하다고 생각했다. 하지만 실제로 개발하면서 "왜 이 구조를 꼭 따라야 하지?" 라는 고민이 들었고, 불필요한 강제성이 불편할 수도 있다는 것을 깨달았다.
✅ 프레임워크는 일정 규모 이상의 프로젝트에서 확장성과 유지보수를 고려하면 효과적이다. ✅ 라이브러리 기반 개발은 빠르게 프로토타입을 만들거나 실험적인 프로젝트에 적합하다.
🚀 결론적으로,
- 중장기적으로 유지보수를 고려한다면 → 프레임워크(Next.js) 사용
- 가벼운 프로젝트이거나, 빠른 테스트가 필요하다면 → 라이브러리 조합 방식 추천
- 둘 다 적절히 조합하여 Hybrid 방식도 가능!
💡 "프레임워크가 항상 정답은 아니다. 프로젝트의 특성과 목표에 맞춰 최적의 선택을 하자!" 🚀
반응형
'개발공부' 카테고리의 다른 글
[python].pyc 파일이 왜 생기는가? (0) | 2025.02.10 |
---|---|
[python,Flask]Flask의 @after_this_request 데코레이터 사용법 (0) | 2025.02.10 |
[python]자바스크립트와 파이썬의 비동기 처리 방식 비교 (0) | 2025.02.10 |
host, host 환경의 의미 (0) | 2022.05.21 |
dependencies 와 devDependencies 차이 (0) | 2022.05.21 |
Comments