프로젝트에 접근하는 방법
Source: Dev.to
How I Approach a Project
프로젝트를 만들 때 가장 중요한 부분은 명확한 접근 방식을 갖는 것입니다. 개발자들은 종종 프로젝트 요구사항을 먼저 이해하지 않고 바로 구축을 시작합니다.
1. Initial Planning
- 정확한 요구사항을 상세히 이해하기
- 전체 프로젝트 흐름을 시각화하기 위해 플로우차트 만들기
2. Technology Selection
플로우차트를 기반으로 기술 스택을 선택합니다. 이 단계에는 여러 고려 사항이 포함됩니다:
Backend Selection
- 빠른 처리 → NodeJS
- 데이터 처리 및 정제 → Python / Django / Flask
- AI 또는 머신러닝 → Python 또는 NodeJS (많은 라이브러리 제공)
- 보안 → Java
Frontend Options
- NextJS – 빠른 로딩 및 이미지 최적화
- ViteJS – 더 빠른 개발
- 기타 JavaScript 기반 프레임워크
- TailwindCSS / ShadCN – 스타일링
Database Choices
- MongoDB – 쉬운 문법, 문서 기반
- Supabase – 오픈소스 구조화 데이터베이스 (MySQL과 유사)
- ChromaDB / Pinecone / MongoDB – 벡터 임베딩 및 벡터 검색 (AI 관련)
API Testing Tools
- Postman
3. Design Phase
기술 스택을 선택한 후 Figma 또는 Penpot(오픈소스 Figma 대안)를 사용해 프론트엔드를 디자인합니다.
4. Development Process
프론트엔드와 백엔드 중 어느 쪽부터 시작할지에 대한 논쟁이 있습니다. 저는 백엔드부터 시작하는 것을 선호합니다. 백엔드가 더 많은 시간이 소요되고 철저한 테스트가 필요하기 때문입니다. 저는 테스트 주도 개발(Test‑Driven Development, TDD) 방식을 사용합니다:
- API 생성
- 여러 테스트 케이스 작성 및 실행
- 다음 API로 이동
5. Frontend Development
백엔드가 준비되면 프론트엔드를 개발합니다. 재사용 가능한 컴포넌트에 집중하여:
- 코드 라인 수 감소
- 디버깅 간소화
- 재사용성 촉진
모바일 퍼스트 전략을 채택해 데스크톱과 모바일 모두에서 사이트가 잘 동작하도록 하여 개발 시간을 절약합니다.
6. Integration & Testing
프론트엔드가 완료되면 API를 통합합니다—이는 모든 웹사이트에서 가장 중요한 부분입니다. 그런 다음 통합된 API와 UI를 모두 철저히 테스트합니다. 모든 것이 요구사항을 충족하면 프로젝트를 배포할 준비가 된 것이며, 그렇지 않다면 기준이 만족될 때까지 디버깅하고 문제를 해결합니다.
7. Deployment
Backend: Render, PythonAnywhere
Frontend: Vercel
배포가 완료되면 프로젝트가 완성됩니다. 축하합니다 🥳
작은 알림: 이 접근 방식은 프로젝트의 확장성 및 구체적인 사용 사례에 따라 조정될 수 있습니다.