Top Coder RAW novel - Chapter (4)
탑 코더-4화(4/303)
# 4
마법 같은 능력
────────────────퇴원 후 휴식을 위해 받은 휴가는 3일.
승호는 그 기간 동안 갑작스레 생긴 능력을 파악하는데 최선을 다했다. 그렇게 해서 알아낸 사실은 총 네 가지였다.
1. 오른 손을 전자기기에 대면 0과1이 흘러가는 게 보인다.
2. 0과 1이 해석 가능하고, 그 의미 역시 알 수 있다.
3. 오른 손을 전자기기에 대고, 두드리면 0과 1로 이루어진 데이터의 흐름에 간섭할 수 있다. 그러나 전기가 연결되어 있지 않으면 할 수 없다.
4. 기기와 직접적인 연결이 되어 있어야 간섭이 가능하다.
5. 컴퓨터 공학, 과학 관련 지식들이 머리를 꽉 메우고 있다.
수 십 번도 넘게 실험해 보았다. 전등 버튼을 누르지 않고 불을 꺼보기도 했고 문에 설치 된 도어락 을 터치 두 번으로 열기도 했다. 콘센트는 연결되어 있지만 전원은 꺼져 있는 TV를 켜는 신기를 보이기도 했다. 실험을 하면 할수록 입이 떡 벌어질 뿐이었다.
그러다 보니 어느새 금요일.
출근을 해야 할 시간이었다. 회사 까지는 집에서 걸어서 15분 밖에 걸리지 않았다. 그러나 승호는 일찌감치 집을 나섰다.
실력이 없으면 부지런해야 한다.
승호의 모토였다. 언제나 가장 먼저 출근했고, 가장 나중에 퇴근했다. 그렇게 열심히 살았다.
아침 8시 30분.
오늘도 가장 먼저 출근한 건 승호였다.
“오랜만이다······.”
사무실 풍경은 그대로였다. 졸릴 때 뽑아 먹던 커피포트의 위치도, 쪽잠을 자기 위해 설치 해놓은 간이침대도. 부족한 지식을 메우기 위해 읽던 프로그래밍 책들도 제 자리에 있었다. 승호는 걸음을 옮겨 자신의 책상으로 가보았다.
사원 강승호.
이름 석 자가 파티션 위에 올라가 있었다. 두 달이나 지났지만 변한 건 아무것도 없었다. 혹여나 책상을 치웠으면 어쩌나 하는 걱정은 기우에 불과했다. 자리에 앉아 컴퓨터를 켜 보았다.
지이잉.
하는 소리와 함께 모니터에는 부팅 정보가 올라왔다. 승호는 부팅이 완료되고, 사내 코드 저장소에 접속해 2달간 올라온 코드를 살펴 나갔다.
***
8시 50분이 넘어가자 하나 둘 씩 출근을 시작했다.
“승호씨 왔어? 몸은 좀 어때?”
“많이 좋아졌습니다.”
“정말 출근 했구나. 사고가 컸다고 들었는데 이제 괜찮아 진거야?”
“네. 이제 일 할 정도는 되요.”
저마다 한 마디 씩 위로의 말을 던졌다. 그런데 다들 안색이 그리 좋질 않았다.
“진짜 다행이다. 음주운전 하던 트럭에 치였다면서? 그런 놈은 바로 감방 보내야 하는데.”
“경찰에서 잘 조사할 겁니다.”
“사장님이 마음고생 많이 했어. 자기 때문인 것 같다고, 자기가 뽑지만 않았으면 그런 일 당하지도 않았을 거라면서.”
“항상 감사하게 생각하고 있어요.”
다들 눈 밑에는 다크 써클이 가득했고, 얼굴에는 근심 걱정이 가득했다.
‘무슨 일이 있나······.’
그렇게 아침 인사 겸 위로의 말을 듣다 보니 순식간에 수십 분이 지나갔다. 승호는 옆 자리에 앉아 있는 황시내에게 물었다.
“그런데 사람이 좀 준 것 같은데 다들 외근 가셨어요?”
황시내의 안색이 어두웠다.
“그간 회사 사정이 많이 나빠졌어요. XONE 납품에 문제가 생겨서 손해가 좀 있었거든요.”
“아······.”
“망하는 회사에 남고 싶은 사람은 없을 테니까요.”
승호가 입술을 살짝 깨물었다.
‘회사 사정이 그렇게 나빴나?’
자신이야 월급 꼬박 꼬박 나오니 자세한 내막 까지는 알지 못했다. 회사 돌아가는 사정을 알기에는 직급은 낮았고, 하루하루 실력을 쌓는 것만으로도 정신이 없었다.
“그랬군요······.”
“더구나 지금 발생한 이슈 해결 하지 못하면 이번 납품 건 까지 물거품이 되고 말아요. 만약 그 건 까지 제대로 마무리 안 되면.”
황시내가 차마 뒷말을 잇지 못했다. 듣지 않아도 느낌상 알 수 있었다.
‘그래서 사무실 분위기가 이렇게 삭막 했구나.’
원래는 출근하고 나면 다들 커피 한 잔씩을 하며 화기애애한 분위기가 연출된다. 그러나 지금은 어떤가.
다들 눈앞의 모니터만 보고 있을 뿐이었다.
그때 지친 기색의 황호근이 사무실로 들어섰다. 황호근이 잰 걸음으로 회사내 유일한 부장이자 개발팀 팀장인 최기훈에게 다가갔다.
“어때, 해결 기미가 좀 보여?”
최기훈이 절레절레 고개를 저었다. 황호근이 깊은 한숨을 내쉬었다.
“후우······.”
“기간을 더 늘릴 수는 없을까요? 일주일은 너무 짧습니다.”
“내가 몇 번이나 말해 봤는데 소용이 없어. 무조건 그 안에 해결해 오라는 식이야.”
“갑자기 보안 점검을 하고, 기준을 맞추지 못하면 나가라니 세상 어디에 이런 계약이 있답니까.”
최기훈이 답답함에 울분을 토했다. 황호근의 안색이 딱딱하게 굳어졌다.
“선진 데이터시스템 쪽 부장이 나가서 회사를 하나 차린 모양이야. 그것도 하필 검색 솔루션 쪽으로. 그쪽을 밀어줄 심산인 것처럼 보여. 구두 계약을 믿은 내가 멍청한 거지.”
“젠장! 무조건 납품 될 거라고 자기만 믿으라고 하던 놈들이.”
“다른 판로를 알아보고 있지만 쉽지 않아. 딱히 기술력이 뛰어난 것도 아니니 굳이 우리 제품을 쓸 이유가 없는 셈이지. 너무 선진만 믿고 있었어.”
냉철한 자기비판에 최기훈이 한숨을 내쉬었다.
“휴우······.”
둘의 대화는 조용했지만 사무실에서 듣지 못한 사람이 없었다. 승호가 황시내에게 물었다.
“상황이 심각한가 보네요.”
“선진 데이터시스템 쪽에 들어가기로 했던 솔루션 공급 계약이 물거품 되게 생겼으니까요. 최악의 상황에서는 회사 문을 닫아야 할지도 몰라요.
“보안 검사 결과를 조치하면 되는 거 아닌가요?”
“그게 말처럼 쉬우면 이런 고민 하지도 않죠. 조치 사항으로 나온 내용만 50가지가 넘어요. 그걸 1주일 안에 해결해야 하는 상황이고요.”
황시내의 안색이 한층 더 어두워졌다. 그리고 씁쓸히 중얼거렸다.
“시간이 좀 더 있다면 해결 할 수 있겠지만 전 사원이 매달려서 하루에 5건 처리하는 게 고작이에요.”
“하루 다 섯 건이면··· 지금 얼마나 해결 됐다는 건가요?”
황시내가 손가락 다섯 개를 펴 보였다. 승호가 입맛을 다셨다.
‘그러면 45건을 일주일 안에 해결해야 한다는 말인데.’
승호가 입맛을 다셨다. 내용만 들어봐도 쉽지 않을 것 같았다.
“간단한 것들이야 바로 처리 되지만 그 중에서 OAuth2.0 적용이 문제예요. ”
OAuth 2.0.
사고를 당하기 전이라면 아무런 대꾸도 못했을 것이다. 그러나 지금은 아니었다. OAuth2.0 이라는 단어를 듣자마자 관련 지식들이 자연스럽게 떠올랐다.
“인증 서버라면 오픈 소스로 많이 풀려 있어서 그리 어렵지 않게 구축 할 수 있을 것 같은데. 특히나 spring 프로젝트에서 만들어 놓은 걸 사용한다면 더 빨리 구축 할 수 있지 않을까요?”
황시내가 어안이 벙벙한 표정으로 승호를 보았다.
“진짜 승호씨, 맞아요?”
“네?”
“아니 승호씨 이런 사람 아니었잖아요.
승호는 뒷머리를 긁적거렸다. 황시내가 어떤 의도로 말하는지 알 것 같았다. 자신은 원래 이런 말을 할 수 있는 사람이 아니었다.
“아··· 하하. 제가 그랬었죠.”
“마치 OAuth에 대해 잘 아는 것처럼··· 더구나 스프링 프로젝트에 OAuth가 있는 건 어떻게 알았어요?”
승호의 머리가 빠르게 돌아갔다.
“시내씨가 말했던 것처럼 정체기를 지나서 이제 점프를 했나 봐요. Spring 프로젝트야 워낙 유명하니까. 당연히 알 고 있었죠.
황시내가 살짝 고개를 끄덕였다.
“뭐, 그렇다면 좋은 일이긴 한데.”
승호는 잽싸게 대화의 주제를 원래대로 돌렸다.
“spring security 프로젝트. 그걸 쓰면 되지 않나요? 하긴 일주일이면 일정이 너무 짧은가.”
“일정도 일정이지만, 쓴다고 해결되는 문제가 아니에요. 커스터 마이징이 필요해요. 인증 서버에서 발급되는 토큰에 따라 권한을 설정하고 해당 권한에 맞는 검색 결과를 보여줘야 해요. 더구나 인증 서버는 회원과 관련이 되어 있어서 우리 쪽 영역이 아니에요. 한 마디로 갑 질 하고 있는 거라고요.”
황시내의 목소리가 점점 올라갔다. 분을 이기지 못하고 씩씩 거리며 거친 콧바람을 쏟아냈다.
“이 모든 걸 선진 데이터시스템 측에서 일 주일 만에 해오라고 시켰어요. 이제 하루가 지났고요.”
승호는 정리되지 못한 턱 수염을 긁적거렸다.
일주일.
너무 짧은 시간이었다. 예전의 자신이었다면 그저 발이나 동동 굴릴 뿐 아무 것도 하지 못했을 것이다.
그러나.
왜 자꾸 할 수 있을 것 같다는 생각이 드는 걸까.
“그거 제가 한 번 해볼게요.”
“네?”
“다른 분들에게는 일단 비밀로 해주세요. 저도 할 수 있을지 없을지 한 번 해봐야 해서.”
“지금 도대체 무슨 말을······.”
“제가 사고를 당하기 전에 관련 공부를 계속 했었어요. 들어보니까. 그 분야랑 딱 들어맞는 것 같아서요.”
“아무리 그래도 이건 그렇게 간단한 일이 아니에요.”
승호는 다시 황시내의 입을 막았다.
“이틀? 늦어도 삼일 정도면 PoC(컨셉 증명) 정도는 될 것 같아요.
“농담 하는 거죠?”
“저도 이제 밥값 할 때잖아요.”
승호는 고개를 돌리고 모니터를 보았다. 황시내는 두 눈을 동그랗게 뜬 채 승호를 보았다. 그러거나 말거나 승호는 자신이 해야 할 일에 열중 했다.
***
오후 네 시.
황시내는 힐끔 거리며 옆 자리에 앉아 있는 승호를 살폈다. 그는 끊임없이 키보드를 두드리고 있었다.
‘확실히 달라졌어.’
과거에는 일을 시키면 인터넷을 찾아보기 바빴다. 찾아낸 웹 페이지에서 코드를 복사해 붙여 넣는 게 하는 일의 대부분이었다.
그런데 지금은.
직접 무언가를 하고 있었다. 가끔 미간을 찡긋 거리긴 하지만 그것도 잠시 뿐이었다. 황시내가 궁금함을 견디지 못하고 물었다.
“어때요? 뭔가 될 것 같아요?”
“지금 spring 에서 Oauth를 내려 받아서 기동은 해봤습니다. 이상 없이 작동하는 건 확인했어요.”
“그 정도는 최기훈 팀장님이 어제 확인한 내용이에요. 문제는 그 이후에 password credentials에 접근 권한 체계를 설정하고, 그걸 우리 쪽 검색 서버에 적용하는 게 핵심이에요.”
“네. 그것도 최대한 심플하게 처리하기 위해서, 색인 서버 쪽에 등급관련 컬럼 하나를 추가하고, 문서 생성 시에 해당 등급을 넣도록 만들었어요.”
“벌써요?”
“그냥 아주 간단하게만 만 든 거예요. 한 번 보시겠어요?”
황시내가 고개를 끄덕였다. 승호는 조악하게 만들어진 웹페이지를 하나 띄웠다.
“먼저 여기에서 문서를 생성합니다. 물론 등급도 같이 넣어주고요. 그럼 A라고 넣어 볼게요. 그 다음 임의의 사용자를 생성하고 password credentials로 로그인을 해볼게요.”
승호는 천천히 설명을 이어나갔다. 그럴수록 황시내의 눈동자가 점점 더 커졌다.
“이후에 로그인한 사용자가 이 토큰으로 검색을 하면. 검색서버에서 토큰에 담겨 있는 정보를 읽어 A등급 이상은 보이지 않는 거죠.”
황시내는 일순 머리가 복잡해 졌다. 뭐가 어떻게 돌아가는 건지 잘 이해를 하지 못했다.
“다, 다시 한 번 만 말해줄래요.”
“아··· 그러니까 이게 어떻게 동작하는 거냐 하면 말이죠.”
작고, 조용한 사무실.
아무리 작게 이야기 한다고 해서 주변에 안들 릴 수가 없었다. 둘의 등 뒤에서 익숙한 목소리가 들렸다.
“지금 자네가 말하고 있는 내용. 회의실로 가서 자세히 말해주겠나?”
팀장 최기훈이 둘을 내려다보고 있었다.