[단상] 5/6~5/7 생각 정리
서버 프로그래머의 자질
정말 오랜만에 동아리 선배랑 이야기를 나눴다.
프로그래머로 나보다 훨씬 오래 일한 선배인데, 많은 조언 중 서버 프로그래머가
응당 가져야 할(?) 자질을 얘기해줬는데 그 중 몇 개가 굉장히 와닿았다.
- 컨텍스트 스위칭이 잘 되야 하는 것
서버에 이상이 생기면 무슨 일을 하고 있던 간에 달려가서 문제점을 파악하고 해결할 수 있어야 한다.
한 가지 일에 깊게 집중해서 일을 하다가도 곧바로 다른 일을 처리할 준비가 빠르게 되어야 한다.
단순히 "서버가 터졌을 때 빠르게 달려갈 수 있어야 한다" 정도의 느낌으로 받아들이고 있었는데,
컨텍스트 스위칭이라는 단어를 사용하니 어떤 의미인지 확 와닿았다.
- 큰 그림을 볼 줄 알아야 하는 것
예를 들어 어떤 게임의 랭킹 정보를 조회하려고 하는데, 조회가 안 된다고 가정하자.
그러면 무수히 많은 원인이 있을 수 있다. 서버 프로그래머라고 해서 서버 쪽만 알아선 안 된다.
결국은 클라이언트단에 대한 이해도 필요하다 .넓은 관점에서 문제를 파악할 수 있어야 한다.
서버가 죽었을 수도 있고, 로드밸런서에 문제가 있을 수도 있고,
포트가 안 열려있다거나, 클라이언트가 API 키값을 잘못 줬다거나... 등등.
그런 맥락에서 큰 그림을 볼 수 있어야 한다.
- 돌다리를 100번 두드리는 성격
신중하고 또 신중해야한다. 특히 DB를 다룰 때 아주 꼼꼼하게 확인하면서 작업해야 한다.
당연한 거긴 하다. 하지만 아무리 강조해도 지나침이 없다고 생각한다.
SQL은 근육과도 같아서
운동을 꾸준하게 해주지 않으면 근육량은 줄어들기 쉽다.
마찬가지로 SQL도 꾸준하게 쓰지 않으면 안 되는 것 같다.
정확히는, 아주 충분히 긴 기간동안 사용했다면 잠시 사용하지 않는다고 해서 기억 속에서 사라지진 않겠지만
그게 아니라면 사라지기 쉽다. SQL 뿐만 아니라 모든 게 그렇겠지만 말이다. 단적인 예로 악기라든가.
팀원분이 DB 데이터 정리하는 걸 도와주셨는데, 마치 오백 년 만에 데드리프트를 하는 기분이었다.
이대론 안 되겠다 싶어 칸아카데미 SQL 과정을 다시 보려 했다가, 그냥 문제를 내리 푸는 게 좋겠다 싶어서
프로그래머스 SQL 고득점 키트를 후다닥 풀고 나니까 좀 기분이 낫다.
전문가가 옆에 있는데
k8s과 istio에 대해 새벽 늦게까지 조사를 하다가,
내가 원하는 use case는 도통 보이질 않아서 다소 피곤한 상태로 잠에 들었다.
출근해서 인프라팀 팀원분께 조언을 구했는데, 머릿속이 맑아졌다.
근처에 앉아 계셨던 다른 분도 얘기를 들으시더니 의견을 주셨다!
혼자서 문제를 해결하기 위해 노력하는 것도 중요한데, 전문가가 옆에 있는데 삽질만 하는 것도 미묘하다.
그 중간을 적절하게 판단하는 게 좋겠다.