0012.1 2025 Portfolio 플랜
README#
이 페이지는 포트폴리오를 2025년 버전으로 리뉴얼 하기 위해 플래닝을 정리하기 위한 공간입니다. 2023년부터 2024년 그리고 지금까지 백엔드 웹 개발자로의 커리어를 요약하고 나의 강점과 전문성, 문서작성능력, 성과 수치화를 통해 매력적인 포트폴리오를 만들어봅시다.
Giftogether#
0012.3 Portfolio . Giftogether
아래는 아직 미완성된 프로젝트인 Giftogether를 포트폴리오로 뽑아내기 위해 어떤 성과를 가져왔는지 플랜을 짜기 위해 GPT를 사용한 결과입니다. 코드 커버리지 증가, 새 모듈에 Separation of Concern 원칙을 도입하여 파일당 LoC 감소, 이벤트 스토밍 세션을 통한 바운디드 컨텍스트와 애그리게이트 식별, eventual consistency를 달성하고 여러 애그리게이트에 걸친 God-object를 제거하였습니다. TypeORM을 사용하면서 만난 N+1쿼리 문제를 해결하여 특정 API에 대한 쿼리속도 향상 이것들을 전부 수치화하여 포트폴리오로 작성할 예정입니다.
플랜#
- [x] Enhanced Code Reliability {Giftogether} 보고서 작성하여 코드 커버리지 상승
- [ ] SoC 적용한 모듈과 그렇지 않은 것과의 파일당 LoC 비교, 코드 단순화
- [ ] 이벤트 스토밍 진행한 결과를 위키에 작성 및 요약
- [ ] (Improvements) N+1 쿼리 문제 해결 전 후 성능향상 결과 공유
Resume Entry Example#
Giftogether (In Progress) - Enhanced Code Reliability {Giftogether}: Increased test coverage from 0% to X% using Jest, ensuring robustness and early bug detection. - Improved Code Maintainability: Applied "Separation of Concern" principles, reducing the average Lines of Code (LoC) per file by X%, minimizing code conflicts, and simplifying debugging. - Promoted Collaborative Design: Organized and documented event storming sessions to define clear boundaries between aggregates and implement eventual consistency, eliminating reliance on a single "god-object." - Boosted Query Performance: Addressed N+1 query issues with TypeORM by optimizing data fetching strategies, resulting in a X% improvement in querying efficiency when handling related entities.
Plan Execution for Resume Updates#
- Track Metrics: Keep records of test coverage percentages, LoC reductions, and performance improvements.
- Document Processes: Write a concise technical document or blog about your event storming sessions and decisions—it’s great to reference in your resume or portfolio.
- Highlight Outcomes: Whenever possible, tie your actions to team or project-level benefits, such as "improved collaboration" or "enhanced scalability."
Additional Suggestions#
- Testing: If Jest increases the project's reliability or reduces bugs, emphasize this outcome (e.g., "Decreased bug recurrence by X% with comprehensive Jest testing").
- Eventual Consistency: Highlight real-world challenges you addressed (e.g., "Ensured eventual consistency across distributed systems by designing clear aggregate boundaries").
- Performance: If the query optimization reduces load time or improves user experience, mention it (e.g., "Reduced database query time by X ms, improving API response time").
RecRe#
이미 이력서에 있는 RecRe 내용을 정리하고 수치화하여 좀 더 설득력이 있는 프로세스로 만들어야 할 것입니다.
플랜#
- [ ] 100명의 유저 동시접속을 보장함을 증명하는 문서
- [ ] IMDB를 사용했을 때 쿼리 성능이 X% 향상되었음을 밝히는 문서
- [ ] 소켓 유령을 제거한 결과 X% 만큼 메모리 사용량이 줄었음을 밝히는 문서
Plan to Improve "RecRe" for Consistency and Impact#
1. Add Measurable Outcomes#
Quantifying results is key to making achievements impactful. Here are some potential ways to measure and present improvements:
- Real-Time Handling: Measure and report latency improvements (e.g., "Reduced average latency by X ms, enhancing user interaction").
- Concurrent Users: Stress-test the system to validate performance under load (e.g., "Achieved stable performance with up to 100 concurrent players").
- Database Optimization: Compare query performance before and after implementing IMDB (e.g., "Improved query execution speed by X%").
2. Enhance and Quantify Key Contributions#
- Latency Management: Add metrics for RTT improvements or response times. Highlight the method used and its effect on user experience.
- Socket Ghost Removal: Quantify the resource savings (e.g., "Freed up X% of server memory by systematically disconnecting idle sockets").
- Robust User Identification: Report metrics like reconnection success rates or reduced downtime for users.
- IMDB Optimization: Highlight reductions in query time or transaction conflicts (e.g., "Resolved X race conditions in game session queries, reducing game interruptions by X%").
3. Visualize Results Using Metrics or Testing Tools#
- Use performance benchmarks: Display metrics with tools like WebSocket Bench, PostgreSQL EXPLAIN, or NestJS Performance Testing to verify and visualize improvements.
- Graph results: Create charts showing reductions in latency, memory usage, or query execution time to visually support your resume claims.
4. Incorporate Testing & Scalability Enhancements#
- Introduce automated tests (e.g., Jest, Mocha) and measure test coverage (e.g., "Achieved X% test coverage for WebSocket modules, ensuring stability").
- Stress-test scalability (e.g., simulate 100+ users to prove resilience under heavy load).
5. Frame Accomplishments with Action Verbs & Clear Outcomes#
Reorganize your achievements into impactful bullet points like the ones below: