안녕, 퇴물아재 왔음.


나는 솔직히 신입을 뽑아본 적은 없어서 요즘 현실과는 조금 다른 이야기 일 수 있음.

신입 정도 되는 친구들한테 외주를 줘본적은 있는데 이건 뭐 채용이 아니니까 생략하고.


경력이든 신입이든 제일 중요한 질문이 있는데,


"어떤 어려운 문제를 해결한 경험에 대해서 설명해달라." 이 질문임.


경력이면, 대게 개발하면서 어떤 골 때리는 문제에 봉착했고, (기술적인 측면뿐 아니라 사회적인 측면도 포함)

그게 어떤 문제로 추정했고 그에 따라 어떻게 해결했다.


이런 썰을 좀 들으면 대략 실력이나 커버리지정도도 파악이 된다.

솔직히 어떤 프레임워크를 알고 모르고는 별로 중요하지 않았음.

왠만한 개발자라면 '모르는 것'에 대한 그런건 일주일 주고 공부시키면 다 배워서 되는거거든.


그런데 공부에 대한 태도나 타인에 대한 에티튜드가 안좋게 느껴지면 어지간해선 뽑진 않음.

나름 팀플 작업인데 팀플 분위기 해치면 팀장 입장에선 솔직히 실력 없는 것보다 더 X같다.


InMemory DB 그런거 웨씀?? <- 이런 말투성격이면 오래못가고 퇴물될거라 예상되는거지.


신입을 볼 때 알고리즘 잘 이해하고, 코테 높은 점수 얻고 그런 것 보다는

포폴 프로젝트를 하면서 느낀점에 대해서 조리있게 잘 설명하고 잘 접근한걸 높은 점수를 주고 뽑을 것 같음.


왜냐면, 애초에 뭔가 기술력이나 개발적 성능?을 기대했다면 그냥 경력을 뽑으면 되는거거든.

근데 일머리라고 하는건 사람마다 워낙 편차가 크기 때문에, 일머리 부분을 확인하기 위해서는 저런 질문이 좋다.


저번에 내가 '인터넷이 느려요 ㅠㅠ' 라는 질문을 올렸고, 그 질문에 대해서 어떻게 됐냐고 물어보는 글이 있었음.

그걸 그냥 예로 들자면,


면접관: "어떤 어려운 문제를 해결한 경험에 대해서 설명해주세요."


퇴물: "근데 고객이 폰으로 업로드하면 너무 느리데요. 근데 FTP 속도 측정하면 빨랐어요. 1기가 풀속도 나오더군요."


면접관: "그래서 어떻게 했어요?"


퇴물: "일단 변경요인을 파악했습니다. 느리다고 나온 시점이 IDC를 변경했을 무렵인데, 그렇다면 소스코드 변경으로 인한

사이드 이펙트는 후순위 요인이라 판단했고, IDC 회선망에 뭔가 뭔가가 있을거라 생각해서 IDC에 콜 때렸습니다."


"그런데, 자기네들은 방화벽에서 차단하고 있는건 없다면서 해당 서버의 인터넷속도를 체크해보시라고 했습니다"

"FTP로 1기가 풀속도가 나오더군요. 대역폭을 나눠써서 생기는 문제도 아닌듯 했습니다"

"앱 고객사한테서 발생확률에 대해서 물었더니, 신규고객의 절반은 잘되는데, 절반은 업로드가 한참동안 1%에 머물러 있었습니다."

심지어 업로드가 아예 안되는 것도 아니였죠.


면접관: "그렇군요. 아예 안되면 안되고 되면 되는게 좋은데, 어쩔댄 되고 어쩔된 안되는게 제일 미치는 버그지요."

면접관: "그래서 어떻게 해결하셨나요?"


퇴물: 가장 간단한 방법으론 IDC 철수하고 AWS로 옮기는건데, 그게 GPU 서버라서 택시요금 올라가는 것보다 더 비싸고

강렬하게 요금이 찍히는 것 같아서 최대한 이방법은 피하려고 했습니다.

정말 회선이 문제인가를 확인해야 했고.

AWS에 Proxy 용 Instance를 띄워서 AWS 회선으로 업로드를 post 받아서 IDC IP로 리버스프록시 형태로 쏴주는걸 설정했습니다.

일단 IDC는 1기가로 빠르거든요. 그 후로 느리거나 해외에서 안된다는 리포트는 없었습니다.


면접관: "회선에선 어떤 문제였을까요? 차단된게 없다고 했는데"


퇴물: DDOS 방어 솔루션에 한 기능이 있었을텐데 관리자가 몰랐을 수 있죠.

반은 되고 반은 안되면 누군가가 튕겨낸다는 거고 그럴만한게 맨 상위 라우터에 있는 방화벽이거든요.

첫 방문 IP인데 초면에 다짜고짜 Body 사이즈 수메가짜리 Post를 보낸다면 DDOS 라고 판단해서 필터 쳤을 가능성이 크죠.

(당시 스태틱 서버와 업로드 서버는 따로 있었음)


면접관: "그런걸 프로그래머가 어떻게 아세요?"


퇴물: "DDOS 당해서 영업 안된다고 대체 언제 되냐고 욕 쳐먹어 보시면... 자동으로 알게 됩니다."


면접관: "그런건 보통 네트워크 엔지니어나 인프라 엔지니어가 처리하지 않나요?"


퇴물: "뭔 빌라에서 경비원 아저씨 찾는 소립니까?"


면접관: "아.. 빌라 같은 회사 다니시는군요?"


퇴물: "아뇨 저는 텐트에서 살아요."


아무튼 이런식으로 흘러가는데,

지금처럼 인프라쪽 말고 개발쪽이라면, 발주자의 특정 요구에 따른 우회설계 방안이라던지.

특정 모듈이 찐빠나서 포크 뜨고 고치고 풀리퀘 때렸다는 이야기 등등 다양하게 있을꺼임.

근데 이런걸 안물으면 묻도록 유도하도록 하자.


신입도 마찬가지임. 대단한거 알거나 알고리즘이나 CS를 잘 모르더라도

자기가 아는 선 안에서 많은 시도를 해보고 문제를 해결 해보고

그걸 컨텐츠화 하면 좋은 인상을 줄 수 있을 것 같음.


퇴물이는 신입때 어떻게 했냐면...


어....


20대 극초반때 겜회사 다니는 친구가 게임기획에 지원해보라고 해서 지원했는데 당연히 떨어짐 ㅋㅋ


너무너무 빡쳐서


입사재지원서라고 써서 전지사이즈 하드보드 한판을 사서 그만한 사이즈로 인쇄해서 퀵으로 보낸적 있음.

이력서 중에서는 아마 국내에선 제일 큰 사이즈가 아니었을까.


친구 얘기 들어보니 회사는 시끌시끌 난리가 났고, 얘 진짜 면상 궁금하다 한번 뽑아보자는 사람이 많았으나

해당 파트 팀장이 신입이고 포폴도 빈약해서 못 뽑는다 했다 함..


뭐 헤프닝은 헤프닝이고 일은 일이니까 ㅋ

2번 떨어졌으니 할말은 없었음. ㅠ_ㅠ

그래도 타지원자들 대비 임팩트는 줫으니 다행이라 생각함.


암튼 남들은 문제해결에 대한 썰을 준비 못했을테니 이런 썰 준비해서 면접에 임해보도록 하자. 끗.