PARA/03_Resources/R006_잡다한_것들/글쓰기/효율적으로 일하는 법에 대해 고민하기.md

효율적으로 일하는 법에 대해 고민하기

개요

최근 겪은 몇 가지 이슈를 통해 개발자로서의 나의 업무 방식과 마인드셋에 대해 생각해보고자 한다.
특히 팀 협업과 전사적인 업무 방식의 효율성에 대한 고민이 많았다.

효율적인 협업의 중요성

나찾프 조직진단 인터페이스와 테스트 기능 연동하기
어제는 백엔드 개발자와 함께 기능 연동 작업을 진행했다.
그러나 이 과정에서 몇가지 비효율적인 부분들이 눈에 띄었다.

결국 11시까지 남아서 작업했으나 결과적으로는 작업을 완성하지 못했고, 하루를 갈무리하는 과정에서 도대체 오늘 왜 이 간단한 작업을 완료하지 못했는지 의문이 들었다.
이유는 아래와 같았다.

  1. 불필요한 커뮤니케이션: "API 다시 날려주세요", "안 되네요", "수정했으니 다시 테스트해 주세요" 같은 대화가 계속 반복되었다.
  2. 시간 낭비: 단순한 데이터 동기화 작업에 예상 이상의 시간이 소요되었다.

개선 방안

우선 백엔드 개발자에게 최대한 톡식하지 않게 이 문제를 잘 설명해야 한다.
그리고 효율적으로 업무를 진행하기 위한 프로세스를 고민하고 정리해야 한다.

  • 명확한 커뮤니케이션 프로토콜 수립

    • 단순히 "됐습니다. 이제 해보세요 -> 안되는데요? -> 아 수정했어요 다시해보세요" 이런 식은 지양해야 한다.
    • 대신 문제의 원인과 기대하는 최종 결과를 명확히 전달한다.
      예: "현재 API 응답에서 'userProfile' 객체 내 'age' 필드가 누락되어 있습니다. 이로 인해 사용자 프로필 페이지에서 나이 정보가 표시되지 않고 있습니다.
      'userProfile' 객체에 'age' 필드를 추가하고, 해당 필드가 정수형으로 반환되도록 수정 부탁드립니다.
      수정 후 예상되는 응답 형식은 다음과 같습니다: { 'userProfile': { 'name': 'John Doe', 'age': 30, ... } }"
  • 테스트 자동화

    • 현재 우리는 여기에 걸맞는 테스트를 위한 도구가 없다.
    • 특정 요구사항을 테스트할 수 있는 임시 스크립트나 쿼리 등을 공유할 수 있는 시스템을 구축해야 한다.
    • 장기적으로는 주요 테스트 시나리오를 빠르게 테스트할 수 있는 방법을 고안해야 한다.
  • 생산성 있는 미팅으로 불필요한 실시간 소통 줄이기

    • 이 문제를 개선하고자 하는 의지를 팀과 공유해야 한다.
    • 자칫 잘못하면 "니 일 못하니까 이렇게 해라"라는 뉘앙스로 들릴 수 있음을 주의해야 한다.

문제 해결 능력의 중요성

어제 발생한 주요 이슈 중 하나는 iOS에서 특정 결제 수단을 사용할 때 발생한 문제였다.
다른 결제 수단은 정상적으로 작동했지만, 웹뷰에서 네이티브 앱으로 전환되는 결제 수단에서는 결제가 원활하게 이루어지지 않는 현상이 발견되었다.
당시 나는 결제모듈 개발 후 다른 작업을 진행 중이었고, QA를 진행하던 개발자가 문제 해결이 어렵다고 요청해 서포트에 나섰다.

처음에는 결제 모듈 자체에 문제가 있을 것 같지 않았다. 결제 모듈의 In-Out 흐름은 명확했기 때문이다.
하지만 여러 동료들과 함께 문제의 원인을 분석하면서, 결제 모듈 외부의 상호작용을 의심하게 되었다.

생각해 보니 기존의 결제 플로우는 다음과 같았다:

  • 레거시 : 네이티브 -> 웹뷰 -> 네이티브

  • 현재 : 웹뷰 -> 웹뷰 -> 네이티브로 전환되었는데,

    이 과정에서 네이티브에서 보내는 특정 구분자가 누락되었을 가능성이 있었다.

이를 검증해 본 결과, 가설이 맞았고 실제로 그 구분자가 누락된 것이 문제의 원인이었다.
이로 인해, 모바일 환경에서 특정 OS와 웹뷰 간의 상호작용을 충분히 검증하지 않았다는 사실을 깨닫게 되었다.
결국 유저 에이전트 값을 추가하는 방식으로 문제를 해결할 수 있었다.

문제 해결 과정에서 얻은 교훈

  1. 폭넓은 시각 필요성: 단순히 웹 영역의 문제만이 아닌, OS와의 상호작용까지 고려해야 한다는 것을 깨달았다.
  2. 레거시 시스템의 이해: 기존 시스템과 새로운 프로젝트 간의 차이점을 명확히 이해하는 것이 해결의 실마리가 되었다.
  3. 팀워크의 중요성: 여러 동료의 아이디어가 모여 최종 해결책을 찾아낼 수 있었다.

이번 문제 해결 경험을 통해 앞으로도 더욱 체계적이고 폭넓게 접근할 수 있는 인사이트를 얻었다.

자기 관리의 중요성

마지막으로, 연이은 야근으로 자기 관리의 중요성에 대해 깊이 고민하게 되었다.
특정 프로젝트나 작업이 몰려 야근을 하는 것은 어느 정도 받아들일 수 있지만,
만약 업무량이 항상 8시간 내에 완료할 수 없는 수준으로 유지된다면, 이는 두 가지 문제 중 하나일 수 있다.
회사에서 할당하는 업무량에 문제가 있거나, 내 업무 수행 방식에 개선이 필요하다는 것이다.

이 문제는 양쪽 모두를 고려해 해결해야 하며, 여러 관점에서 접근할 필요가 있다.
사실, 이전 프로젝트에서도 프로젝트 일정이 지나치게 타이트하다는 의견을 제시한 적이 있다.
pert 기법을 공부하여 일정 관리를 개선하려고 했고, 작업량이 과도하다고 어필도 했으나 상황이 상황인지라 받아들여지지는 않았다.
그렇다면, 회사 외부 요인뿐만 아니라 내가 개선할 수 있는 부분은 없었는가를 되돌아봐야 한다.

개선 방안

  1. 업무 시간 내 집중도 높이기

    • 업무 효율을 높이기 위해서는 우선 집중력을 유지하는 것이 중요하다.
      이를 위해 구글 캘린더를 활용해 1시간 단위로 집중 시간을 설정하고, 그 시간에는 다른 일에 방해받지 않고 집중하는 방식을 사용하고 있다.
      이는 일정한 시간 동안 몰입 상태를 유지하는 데 큰 도움이 되는 것 같다.
  2. 우선순위 설정 및 시간 관리 기술 향상

    • 구글 체크리스트를 활용해 업무를 세분화하고, 우선순위에 따라 작업을 처리하고 있다.
      각각의 업무에 대해 유효 시간을 설정함으로써 시간을 효과적으로 관리하려고 한다.
      이 방식은 큰 업무를 작게 나누어 하나씩 해결하는 데 유리하며, 시간의 흐름을 보다 체계적으로 관리할 수 있도록 돕는다.

마치며

이번 경험을 통해 더 나은 개발자가 되기 위해서는 기술적 역량뿐만 아니라 협업 능력, 문제 해결 능력, 그리고 자기 관리 능력도 균형 있게 발전시켜야 한다는 것을 다시 한번 깨달았다.
자기 관리를 통해 업무 효율성을 높이는 것이 결국 장기적으로 나와 팀, 그리고 프로젝트 전체에 긍정적인 영향을 미칠 것이다.
앞으로도 이러한 성찰의 시간을 꾸준히 가지며 지속적으로 성장해 나가야겠다고 다짐했다.
실제 일감 관리 문서를 운영해본 회고는 [[KnowledgeBase/Blog/잡다한 글/일감관리 문서 사용 후 회고]]에서 확인할 수 있다.

댓글

첫 번째 댓글을 남겨보세요.