Hyeok.log
로그인
Hyeok.log
로그인
개발 프로세스 흐름 정리
Hyeok
·
2025년 4월 27일
팔로우
0
1. 요구사항 분석 및 기획
수행해야 할 작업:
고객과의 커뮤니케이션: 고객과 미팅을 통해 비즈니스 목표, 사용자 요구사항, 기능적/비기능적 요구사항 수집.
요구사항 문서화: 요구사항 명세서(SRS, Software Requirement Specification) 작성.
프로젝트 범위 정의: 구현할 기능, 제외할 기능, 우선순위 설정.
기술적 타당성 검토: 고객 요구사항을 기존 기술 스택으로 구현 가능한지 평가.
와이어프레임/프로토타입 제작: UI/UX 디자이너와 협업해 초기 화면 설계 및 프로토타입 제공.
알아야 할 것:
도메인 지식: 고객의 산업(예: 전자상거래, 금융, 의료 등)에 대한 기본 이해.
커뮤니케이션 스킬: 비기술적 고객에게 기술적 내용을 쉽게 설명하는 능력.
요구사항 분석 도구: Jira, Confluence, Trello, 또는 Notion 같은 프로젝트 관리 도구.
기본 UI/UX 원칙: 사용자 중심 설계를 위한 기본적인 디자인 감각.
비즈니스 분석: 고객의 KPI(Key Performance Indicator)와 목표를 이해하는 능력.
2. 기술 스택 및 아키텍처 설계
수행해야 할 작업:
기술 스택 선정: 프론트엔드, 백엔드, 데이터베이스, 배포 환경 등을 프로젝트 요구사항에 맞게 선택.
시스템 아키텍처 설계: 마이크로서비스, 모놀리식 아키텍처, 서버리스 등 적합한 구조 설계.
데이터베이스 설계: ERD(Entity-Relationship Diagram) 작성 및 데이터 모델링.
API 설계: RESTful API 또는 GraphQL 설계, Swagger/Postman으로 문서화.
보안 설계: 데이터 암호화, 인증/인가(OAuth, JWT) 계획.
알아야 할 것:
프론트엔드 기술:
HTML, CSS, JavaScript (ES6+).
프레임워크: React
상태 관리: Redux
빌드 도구: Webpack, Vite.
백엔드 기술:
언어: Java(Spring)
프레임워크 및 서버: Spring Boot
API 설계: REST
데이터베이스:
관계형: MySQL, PostgreSQL, Oracle
비관계형: MongoDB, Redis
클라우드 및 인프라:
AWS, Azure, Google Cloud
컨테이너: Docker, Kubernetes
CI/CD: Jenkins, GitHub Actions
보안:
HTTPS, SSL/TLS
OWASP Top 10(예: SQL Injection, XSS 방지).
인증/인가: OAuth 2.0, JWT, SSO
아키텍처 패턴:
MVC, 마이크로서비스, 서버리스
3. 개발
수행해야 할 작업:
프론트엔드 개발: UI 컴포넌트 구현, 반응형/적응형 디자인 적용, API 연동.
백엔드 개발: 서버 로직 구현, 데이터베이스 연동, API 엔드포인트 개발.
테스트 코드 작성: 단위 테스트, 통합 테스트 작성.
버전 관리: Git을 사용한 코드 관리, 브랜치 전략(Gitflow, Trunk-based).
코드 리뷰: 팀원과 코드 품질 점검 및 피드백 반영.
알아야 할 것:
프론트엔드 최적화:
Lazy Loading, Code Splitting(?)
성능 최적화: Lighthouse 점수 개선(?), 렌더링 최적화.
백엔드 최적화:
캐싱(Redis).
비동기 처리: Promise, async/await, 메시지 큐(Kafka).
테스트 프레임워크:
프론트엔드: Jest, Cypress, Testing Library.
백엔드: Mocha, JUnit, PyTest.
버전 관리 심화:
Git 명령어(git rebase, cherry-pick).
브랜치 전략 및 충돌 해결.
코드 품질 도구:
ESLint, Prettier, SonarQube.
4. 테스트 및 QA
수행해야 할 작업:
단위 테스트: 개별 모듈/컴포넌트 테스트.
통합 테스트: API, 데이터베이스, 외부 서비스 간 연동 테스트.
E2E 테스트: 사용자 시나리오 기반 전체 워크플로우 테스트.
성능 테스트: 부하 테스트(Load Testing), 스트레스 테스트.
버그 수정: 테스트에서 발견된 이슈 수정 및 재테스트.
크로스 브라우징 테스트: 다양한 브라우저와 디바이스에서 호환성 확인.
알아야 할 것:
버그 트래킹 도구: Jira.
5. 배포
수행해야 할 작업:
배포 환경 설정: 개발, 스테이징, 프로덕션 환경 구성.
CI/CD 파이프라인 구축: 자동 빌드, 테스트, 배포 설정.
서버 배포: 클라우드(AWS EC2, Lambda) 또는 온프레미스 서버에 배포.
도메인 및 SSL 설정: DNS 설정, HTTPS 활성화.
모니터링 설정: 서버 상태, 에러 로그, 사용자 행동 모니터링.
알아야 할 것:
배포 도구:
AWS ECS, Elastic Beanstalk, Heroku, Netlify, Vercel.
Nginx, Apache 설정.
CI/CD 도구:
GitHub Actions, Jenkins, GitLab CI.
모니터링 및 로깅:
Prometheus, Grafana, New Relic.
로그 관리: ELK Stack, CloudWatch.
DNS 및 네트워킹:
Route 53, Cloudflare.
CDN(Content Delivery Network) 설정.
스케일링:
수평/수직 스케일링.
로드 밸런싱(AWS ELB, Nginx).
6. 유지보수 및 고객 지원
수행해야 할 작업:
버그 수정 및 패치: 배포 후 발생한 이슈 해결.
성능 최적화: 사용자 피드백 기반 성능 개선.
기능 업데이트: 새로운 요구사항 반영 및 추가 개발.
백업 및 복구: 데이터 백업 전략 수립 및 복구 프로세스 점검.
고객 지원: 고객 문의 응대, 기술 지원 제공.
알아야 할 것:
유지보수 전략:
롤백 전략.
핫픽스 배포.
모니터링 심화:
사용자 행동 분석(Google Analytics, Mixpanel).
서버 상태 알림 설정(Slack, PagerDuty).
고객 지원 도구:
Zendesk, Intercom.
기술 문서 작성(Markdown, Confluence).
Hyeok
공부하면서 정리한 블로그입니다. 혹시 잘못된 내용이 있다면 댓글로 알려주시면 큰 도움이 됩니다. 감사합니다!
팔로우
이전 포스트
인덱싱
다음 포스트
ISA(Instruction Set Architecture, 명령어 집합 구조)
0개의 댓글
댓글 작성