Archive for 10월 2014
나이를 먹을 수록, 조직이 커질 수록
글을 쓰거나 말할 때 조심스럽게 된다. 혹시 내가 알고있는 게 사실과 다르거나 틀린 건 아닐까, 나 때문에 피해를 보거나 불편한 사람은 없을까 등 생각이 많아진다. 어떤 문제에 직면했을 때 다양한 관점에서 바라보고, 생각해보려고도 노력한다. 이런 게 나이를 먹으며 경험과 연륜이 쌓여가는 게 아닐까라고 생각하기 때문이다.
최근에 이런 얘기를 전해 들었다. A팀에서 배포를 한 후 B팀에서 관리하는 화면이 깨지는 일이 있었는데, A팀에 그 내용을 공유하자 누군가가 그 쪽은 손도 대지 않았는데 왜 그런 얘길 하느냐고 했다고 한다. 내가 운영 서버에 배포한 후에 내가 건드리지 않았던 다른 기능이 동작하지 않는다거나 화면에 이상하게 나올 경우 어떻게 대응하는 게 옳을까?
– 나는 그게 뭔지도 모를 뿐더러 어디 붙어있는지도 몰라요.
– 우리는 그 쪽하고는 무관하지만, 방금 전에 우리가 배포했으니 한 번 같이 보시죠.
거창하게 비즈니스 매너라는 말을 쓰지 않아도 될 상식 수준의 문제다. 우리 팀 배포 후에 문제가 생겼다면 당연히 우리가 문제의 원인을 제공했을 수 있는 거 아닌가. 수 백 명이 지지고 볶는 거대한 애플리케이션에서 내가 개발한 부분의 부작용이 전혀 없다고 딱 잘라 말할 수 있을까. 물론, 똑똑한 IDE와 로컬, 팀 개발, 공통 개발, 스테이징 장비를 거치며 수 없이 테스트를 하기 때문에 웬만한 건 다 걸러지기 마련이다. 하지만, 운영 장비에서는 또 모르지 않나. 하다못해 팀원들 모아놓고 데모라도 할라치면 에러가 빵빵 뜨는 게 현실인데, 하루에 수 십, 수 백 만이 이연하는 서비스라면 정말 말도 안 되는 일이 벌어지는 게 다반사가 아니던가. 일단 같이 들여다보고 정말 무관하다는 확신이 생겼을 때, 그 때 느그들이 잘하면 된다고 얘기해도 늦지 않는다. 이렇게 늦게 얘기할 때에도 기분나쁘지 않게 얘기를 하면 나중에 도움받을 일이 생길 때 껄끄럽지 않아서 더 좋고.
회사가 커지고 내가 속한 조직도 커지면서 많은 사람들과 일을 하다 보니, 말을 할 때에도 메일을 쓸 때에도 실수하는 건 없는지 조심하게 된다. 눈치를 보거나, 기죽어 산다는 게 아니다. 잘난 사람들이 많은 곳에서 살아남기 위해 이런 거라도 잘 해야 한다기 보다, 내가 실수할 수 있고, 문제의 원인이 될 수 있다고 생각해보는 거다. 그래야 불이 났을 때 초기 대응도 잘 할 수 있으리라 생각한다.
협업하는 동료 이전에 사람 대 사람으로 대하려는 노력을 한다면 모두가 좋지 않을까. 그리 어려운 일은 아니지만 자꾸 잊어버리게 되니 일부러 의식하는 연습이라도 해야겠다.
상태 변경과 유효성 검사
서로 다른 시스템에서 서로 다른 유저가 하나의 데이터를 보며 상태를 변경할 때에는 상태를 변경하려는 액션에 앞서서 현재 상태가 다음 상태로 변경이 가능한지 여부를 잘 따져야 한다. 너무도 당연한 건데, 인수인계를 한 후 운영을 하며 이런 유효성 검사 로직이 빠져있단 걸 알았지만, 지금까지 문제가 발생하지 않아 신경쓰지 않다가 최근 프로세스 변경이 되며 발생한 데이터에 문제가 발견되어 급하게 반영했다.
A – 데이터 등록 상태
B – 데이터 수정되면 안 되는 상태
다른 시스템에서 나와 같은 A상태의 데이터를 보던 유저가 B상태로 변경한 것을 모르고, 내가 데이터를 수정했을 경우 문제가 발생하기 때문에, 상태 변경 전에 변경가능한 상태인지 체크. 동료가 구현해 놓은 걸 참고하여 로직을 추가했다. 상태값을 나타내는 Enum클래스에 Set으로 변경가능한 상태를 넣어두고, 상태 변경 전에 Set.contains로 변경 가능한 상태 여부를 확인하니 간단하게 처리 가능하더라.
출근 시간대의 3호선 구파발역
출근 시간대인데 3호선 구파발역에 열차가 들어와도 타지 않는 사람들이 많다. 이유는 구파발에서 서울 시내로 출발하는 열차가 있다는 걸 알기 때문인 것으로 추정한다. 새벽 시간부터 7시를 조금 넘은 시간까지는 일산에서 출발한 열차와 구파발 역에서 발차하는 열차가 한 번씩 번갈아 들어오거나, 일산에서 오는 열차 두 대가 지나가고 구파발 발차가 들어오거나 한다.
나처럼 일산에서 3호선을 타는 사람 가운데 자리에 앉지 못한 이들 중에는 구파발까지 서서간 후 구파발에서 발차하는 열차로 환승하는 경우가 적지 않다.
다만, 구파발 역 기준으로 7시 반 정도 이후부터 한 시간 정도는 그런 게 먹히지 않는다. 모든 열차가 일산에서 오기 때문. 어떻게 알 수 있느냐? 열차 시간표에 답이 나와있다. 구파발역의 열차 시간표는 대부분 3-5분 사이인데, 일산지역-지축역의 열차 시간표는 3-10분 간격이다. 구파발 이전의 역에서 6분 이상 간격이 있을 경우에 구파발에서 발차하는 열차가 끼어드는 거고, 그 때 구파발 환승을 할 수 있는 것이다. 이 시간대의 구파발 이전 역의 열차 간격은 전부 3-4분이다.
요 며칠 간 평소 새벽 출근과는 다르게 정시 출근을 테스트해보고 있는데, 아까 구파발역을 지날 때 아무 것도 모르고 환승하려고 내리는 사람들과 열차에 안 타고 다음에 올 빈 차를 기다리는 사람들을 보고 끄적끄적. 이런 역 중에는 4호선 사당 역이 있다.
** 다음 지도 앱의 지하철 시간표에는 발차하는 역과 종착하는 역이 표시가 되어있으므로, 구파발 발차 열차 시각이 궁금하다면 다음 지도 앱의 지하철 노선도를 참고하시길.