Published on

10월 3주 있었던 일 정리

Authors
  • avatar
    Name
    이건창
    Twitter

Introduction

이번 주는 QA를 경험하고 있어... 협업과 업무를 동시에 하는 건 정말 바쁜일 같아.

QA 경험중

QA 팀과 협업 하면서 기획과 협업의 중요성을 깨닫게 됐어.

처음에 기획과 다르게 구현된 코드로 인해 어떤 영향력이 있을지를 QA에서 확인할 수 있었지. QA 팀은 나와 비동기적인 소통으로 기획서를 바탕으로 테스트를 진행하게 돼. 그럼 QA 팀은 변경된 결과를 버그로 판단할 수 밖에 없었지. QA 팀에게 너무 많은 부담을 준게 이번 프로젝트의 실패 요인 중 하나야,,, 😭

기획 의도에서 약간만 벗어나게 되도 발생하는 사이드 이펙트는 예상할 수 없을만큼 커. 주변 사람들이 고통받지 않으려면 기획 의도에 맞게 코드를 짜거나 기획 의도 변경 시그널을 보내야겠어.

물론 그 과정에서 나만의 생각 만으로 기획서의 내용을 변경한 것은 아니야. 주변 사람들에게 동의를 구했고, 변경을 진행했지만, 모든 참여자들에게 전달되지 않았던게 문제였어. 정보가 없어서 전달력이 부족 했던 상황을 겪을 수 있었어. 앞으로의 행보를 결정 할 수 있는 꽤나 값진 경험이었어.

그 밖에도 의견을 표출 할 수 있는 좋은 문화 경험할 수 있었어. 기획과는 달리 우려되는 부분들을 공유하면서 결과를 함께 만드는 일이 뿌듯했어. 생신입인 나의 의견을 경청하다니,,, 좋은 회사 문화를 경험하고 있어서 기뻐.

네트워크 이슈

서비스 간 통신 과정에서 네트워크 에러가 많이 발생했어. ConnectionTimeoutException, ReadTimeoutException, PrematureCloseException 등을 경혐했지. 동일한 문제를 겪으면서 내가 어떤 지식을 놓치고 있는지도 확인했지. connection, keep-alive도 함께 정리했어.

  • connection : 통신을 위한 연결
  • keep-alive : 연결된 통신을 유지하기 위한 메커니즘

대충 트러블 슈팅을 정리해봤어.

  • PrematureCloseExceptionkeep-alive 유지가 되지 않은 커넥션으로 연결하려는 문제였어.
  • ConnectionTimeoutException은 커넥션 풀을 획득하는 시간이 오래걸리는 문제였어.
  • ReadTimeoutException은 특정 시간 동안 데이터를 읽는 데 실패했을 때 발생했어.

ReadTimeoutException은 조금 특별했어. 왜냐하면 webclient로 인해 발생하는 문제였거든. 이미 읽은 커넥션에서 ReadTimeoutException이 발생했으니 말이야.

ReadTimeoutException 문제는 아직까지 해결하고 있어. 어떤 문제인지를 파악하기 위해서는 동일한 상황을 재연해야하기 때문이야. 운영 환경에서는 동일한 상황을 재연할 수 있지만, 로컬 환경에서는 꽤나 어렵긴 하지만 도전해볼거야.

이번 주 읽은 테스팅 책

이번 주는 계약 설계에 대해서 학습했어. 사전 사후 계약을 어떻게 관리할지, 불변식을 어떻게 관리할지 고민하면서 읽어서 테스트 프로세스를 더 꼼꼼하게 정립 할 수 있었지.