인프라 관련 질문
안녕하세요!
강의를 통해 많은 인사이트를 얻었습니다. 좋은 강의 제공해주셔서 감사합니다.
강의를 수강하는 과정에서 궁금한 점이 생겨 질문 남깁니다.
시스템 디자인 단계에서 응답 시간(P95/P99)이나 TPS 같은 성능 목표를 설정할 때,
인스턴스 스펙이나 인프라 제약도 함께 고려해야 하는지가 궁금합니다.
특히 학생이나 개인 프로젝트의 경우 프리티어처럼 제한된 리소스를 사용하는 일이 많은데,
이런 환경에서는 인프라 제약을 기준으로 현실적인 목표치를 설정하는 것이 맞는지,
아니면 인프라 스펙을 별도로 고려하지 않고 일반적인 목표값을 그대로 설정하는 것이 더 바람직한지 조언 부탁드립니다.
감사합니다!
답변 2
0
안녕하세요, minseok5167님.
많은 분들이 궁금해하실 부분인데 강의에서 언급을 안했었네요! 좋은 질문 남겨주셔서 감사합니다.
실무에서 성능 목표는 인프라 제약보다는 사용자나 비즈니스 요구사항에 맞추어서 설정하는 경우가 많습니다. 물론 인프라 제약도 고려하기는 하지만, 성능이 크게 떨어지는 수준이 아니라면 인프라는 추후 수평확장 등으로 대응할 수 있기 때문에 목표치 자체를 결정짓는 주요 기준은 아닌 경우가 많습니다.
개인적으로는 공부를 위한 프로젝트라면 성능 목표치의 숫자 자체보다는, 성능을 측정하고 병목을 찾아 개선하는 과정을 경험하는 것이 더 중요하다고 생각합니다.
물론 프리티어를 사용해서 성능 테스트를 해볼 수는 있지만, 사실 CPU 1개, 메모리 1GB 정도로 리소스가 너무 제한적이다보니 부하를 주었을 때 CPU, 메모리, 디스크가 모두 바빠져서 어떤 자원이 병목인지 정확히 확인하기 어렵습니다. 이런 경우에는 성능 테스트를 해도 유의미한 결과를 얻기 어려울 수 있습니다.
그래서 가능하다면 성능 테스트를 진행할 때만이라도 프리티어보다는 조금 더 성능이 좋은 (병목을 확인할 수 있을 정도의) 서버 환경에 배포해 테스트해보는 것을 추천드립니다. 병목을 발견하면, 해당 서버 스펙은 그대로 유지한 채 병목 지점을 개선한 후 다시 테스트해보는 방식이 좋을 것 같습니다.
그리고 덧붙이자면, 성능 테스트 결과는 수행한 방법이나 환경에 따라 수치가 크게 달라질 수 있기 때문에, 성능 테스트 결과를 작성할 때 이를 상세하게 함께 적어두면 보는 사람도 환경을 감안해서 성능 테스트 결과 수치를 더 잘 이해할 수 있을 것입니다.
0
안녕하세요, 인프런 AI 인턴입니다. minseok5167님.
시스템 디자인에서 성능 목표를 설정할 때, 인스턴스 스펙이나 인프라 제약은 중요한 고려사항입니다. 특히, 학생이나 개인 프로젝트와 같이 프리티어 제한이 있는 환경에서는 더욱 그렇습니다.
인프라 제약을 고려해야 하는 이유:
- 현실성: 제한된 리소스를 감안하지 않고 높은 성능 목표를 설정하면, 달성할 수 없을 가능성이 높습니다. 이는 실망과 시간을 초래할 수 있습니다.
- 비용 효율성: 필요 이상의 성능 목표를 설정하면 불필요한 비용이 발생할 수 있습니다. 프리티어를 활용하면서 성능 목표를 설정하는 것이 경제적입니다.
- 리소스 최적화: 유한한 리소스 내에서 최적의 성능을 이끌어내는 것이 개인 프로젝트의 주요 목표 중 하나입니다.
일반적인 목표 값을 따르는 경우:
- 학습 및 연구 목적: 특정 성능 목표를 달성하면서 그 과정에서 배우는 것이 중요한 경우, 일단 일반적인 목표를 설정하고 필요한 경우 인프라를 확장하는 것도 하나의 방법입니다.
- 장기적인 계획: 초기에는 제한된 대역폭 내에서 시작하더라도, 향후 확장을 고려해 미리 설정해두는 것이 도움이 될 수 있습니다.
결론적으로, 프로젝트의 목표와 리소스 활용 계획에 따라 적절히 판단하시면 좋겠습니다. 개인 프로젝트처럼 제한된 환경에서는 인프라 제약을 먼저 감안한 뒤, 필요시 일반적인 외부 기준을 참고하여 점진적으로 목표를 수정하는 접근이 현실적입니다.
이와 유사한 주제를 다룬 게시물이 있다면, 향후 참고하실 수 있도록 아래 URL을 방문해 보시길 바랍니다:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
스터디는 매달 열리나요?
0
9
1
아무도 모르게 책 내시면 모르실 줄 알고!!
1
25
2
디자인패턴 질문
0
11
1
깃허브 저장소를 어디에 첨부하셨나요?
1
28
1
nestjs 강의는 없나요??
1
25
2
스타터 저장소
1
31
1
upload_file_id가 1,3,4 순서인 건에 대해
0
27
1
깃허브 권한을 다시 받을 수 있나요?
0
45
2
구글 폼 작성 완료했습니다
1
37
2
클로드코드 명령어-대화&세션관리 수업 자료
0
31
1
대규모 프로젝트에서 스펙파일 구조 설계
0
39
1
11장 미션에 이메일 남기는걸 누락했어요.
0
32
1
팩토리 패턴
0
41
2
싱글톤 패턴 구현방법
0
46
2
라이브러리 프레임워크 차이 질문
0
48
1
신입 공백, 프로젝트 관련 질문이 있습니다.
1
58
2
PlatformTransactionManager, ResourcelessTransactionManager 질문
1
51
2
시퀀스다이어그램은 무슨툴로 그리신건가요?
0
36
2
캐시전략 - Write-behind
0
93
2
유저 별 포인트
0
142
2
MSA 전환 시점
0
203
2
로드밸런싱 관련 질문
0
137
2
도움 되었어요!
0
124
2
멱등성. '같은 요청'의 기준?
0
257
1





