- Published on
10월 3주 있었던 일 정리
- Authors
- Name
- 이건창
Introduction
이번 주는 QA를 경험하고 있어... 협업과 업무를 동시에 하는 건 정말 바쁜일 같아.
QA 경험중
QA 팀과 협업 하면서 기획과 협업의 중요성을 깨닫게 됐어.
처음에 기획과 다르게 구현된 코드로 인해 어떤 영향력이 있을지를 QA에서 확인할 수 있었지. QA 팀은 나와 비동기적인 소통으로 기획서를 바탕으로 테스트를 진행하게 돼. 그럼 QA 팀은 변경된 결과를 버그로 판단할 수 밖에 없었지. QA 팀에게 너무 많은 부담을 준게 이번 프로젝트의 실패 요인 중 하나야,,, 😭
기획 의도에서 약간만 벗어나게 되도 발생하는 사이드 이펙트는 예상할 수 없을만큼 커. 주변 사람들이 고통받지 않으려면 기획 의도에 맞게 코드를 짜거나 기획 의도 변경 시그널을 보내야겠어.
물론 그 과정에서 나만의 생각 만으로 기획서의 내용을 변경한 것은 아니야. 주변 사람들에게 동의를 구했고, 변경을 진행했지만, 모든 참여자들에게 전달되지 않았던게 문제였어. 정보가 없어서 전달력이 부족 했던 상황을 겪을 수 있었어. 앞으로의 행보를 결정 할 수 있는 꽤나 값진 경험이었어.
그 밖에도 의견을 표출 할 수 있는 좋은 문화 경험할 수 있었어. 기획과는 달리 우려되는 부분들을 공유하면서 결과를 함께 만드는 일이 뿌듯했어. 생신입인 나의 의견을 경청하다니,,, 좋은 회사 문화를 경험하고 있어서 기뻐.
네트워크 이슈
서비스 간 통신 과정에서 네트워크 에러가 많이 발생했어. ConnectionTimeoutException
, ReadTimeoutException
, PrematureCloseException
등을 경혐했지. 동일한 문제를 겪으면서 내가 어떤 지식을 놓치고 있는지도 확인했지. connection
, keep-alive
도 함께 정리했어.
connection
: 통신을 위한 연결keep-alive
: 연결된 통신을 유지하기 위한 메커니즘
대충 트러블 슈팅을 정리해봤어.
PrematureCloseException
은keep-alive
유지가 되지 않은 커넥션으로 연결하려는 문제였어.ConnectionTimeoutException
은 커넥션 풀을 획득하는 시간이 오래걸리는 문제였어.ReadTimeoutException
은 특정 시간 동안 데이터를 읽는 데 실패했을 때 발생했어.
ReadTimeoutException
은 조금 특별했어. 왜냐하면 webclient
로 인해 발생하는 문제였거든. 이미 읽은 커넥션에서 ReadTimeoutException
이 발생했으니 말이야.
ReadTimeoutException
문제는 아직까지 해결하고 있어. 어떤 문제인지를 파악하기 위해서는 동일한 상황을 재연해야하기 때문이야. 운영 환경에서는 동일한 상황을 재연할 수 있지만, 로컬 환경에서는 꽤나 어렵긴 하지만 도전해볼거야.
이번 주 읽은 테스팅 책
이번 주는 계약 설계에 대해서 학습했어. 사전 사후 계약을 어떻게 관리할지, 불변식을 어떻게 관리할지 고민하면서 읽어서 테스트 프로세스를 더 꼼꼼하게 정립 할 수 있었지.