[Oh! 반면교사 시즌 2] 앞에서 다른 팀에서 시간 다쓰고는 2일밖에 안남았는데 그 안에 해결해주세요 하면서 절차는 다 지키라고..?

ㅎ… 지금 회사 D-1 인데… 인수인계 때문에 힘들다. 근데 그것보다… 이 시리즈 쓰는 소재는 많은데… 생각하면 그냥 머리만 아프다.

여기 일은 수주하면서 특수 버전에 대한 기능 수정이 들어가야 하는데… 개발 및 배포 단계에 대해서 다음과 같은 절차를 거칩니다.

참고로, 회사 비밀땜에 일부 내용은 뺐습니다.

  1. 이전에 작성한 버전의 소스코드 폴더 복사합니다.
  2. 폴더명에 버전 올립니다.
  3. 개발자 노트북으로 복사합니다.
  4. 사양서 작성, 체크리스트 작성, 버전 정보 기록, 코드 수정을 합니다.
  5. 코드 내에 버전이력.txt 파일에 버전에서 수정한 내용 적습니다.
  6. 테스트를 합니다. 테스트 시트에서 각 부서 통과할 때마다 각 부서마다 버전 관리 기록 문서를 작성합니다.
  7. 테스트 프로그램을 사내에 배포합니다. 사내 배포정보에도 버전 관리 기록 문서 작성합니다.
  8. 테스트 후, 폴더 압축합니다.
  9. 압축 파일과 압축 안한 폴더를 다시 서버에 복사합니다.
  10. 서버 내에 버전 관리 엑셀 파일에 버전 업데잍트 정보 작성합니다.
  11. 수정 완료 정보에 대한 기록을 기록물 관리 서버에 업로드 합니다.
  12. 모든 기록물을 대조하여 버전 관리 기록이 하나라도 빠졌는지 확인합니다.
  13. 릴리즈용 프로그램 빌드를 합니다.
  14. 릴리즈 관리 문서를 작성하고, 릴리즈 버전 관리 문서를 작성합니다.
  15. 릴리즈 프로그램을 릴리즈 담당자에게 전달합니다.
  16. 릴리즈 담당자가 관런 버전 기록물을 만듭니다.
  17. 오더에 따라 출하되는 프로그램마다 버전 기록물을 만듭니다.
  18. 릴리즈 끝.

저희 팀만 해도 이 단계대로 해야 정상인 것입니다.

근데 저희만 일을 하는 게 아니라, 수주이기 때문에 앞에서 수주 관련 설계를 해야 하고, 클라이언트쪽에서 개발하는 시스템에 따라서도 커스터마이징이 들어가는지도 다 따지고 해서 소프트웨어 검토에 들어오니… 2일 밖에 안남았습니다.

근데 수정 사항은 2일 꼬박 다 써도 모자랍니다.

그래서 저 과정 중 일부가 생략되어서 나가기도 합니다. 주로 문서 관련해서가 생략될 때가 많습니다. 문서는 나중에 만들면 되니깐요.

근데 그러다가 저처럼 사람 나가고 하는 일 생기면, 그땐 이야기가 다릅니다.
그럴 때에 뭐 관련해서 인수인계 다 해주고 가야 하는데…
바쁘니깐 펑크난 문서들이 발생합니다. 그것도 한두곳이 아니라 여러 곳에서요. 그래서 까입니다.

근데 시간은 제대로 줄 수 있는 상태에서 까시죠? 저거 다 지키면서 앞에서 다 까먹고 남는 시간에 작업해야 할 일 터지면서 무슨넘의…

….하…. 저 단계 관련해서도 다른 할 말이 좀 많네요.

[Oh! 반면교사 시즌 2] “외부랑 연결 안되면 보안 문제없는 거 아냐?” 라면서 이상한 주장을 펼치는데는 뭐가 있구나

이건 내가 반면교사 시리즈에 넣어야 할지 말지를 좀 고민하고 있다가… 일단은 넣기로 했다. 오씨 까는 시즌 1때에도 오씨 까는 것보다 전반적인 이해 부족으로 인한 문제점을 적은 내용도 조금 있었으니깐…..

당연하게도, 해외 개발회사랑도 일을 많이 한다. 그러다 보면 당연히 영미, 유럽 회사들도 만나게 되는데…

이 글을 읽는 분들도 잘 알겠지만, 일본인들 영어 실력 진짜 극과 극이다. 잘하는 사람들은 잘 대화되고(그래도 일본인인 거 티가 확 난다.) 못하는 사람은 진짜로 못한다. 심각하다. 회사 공식문서를 영어 일본어 동시 작성한다 하면 일본어를 그냥 구글 번역으로 돌리고 끝인 경우도 많다. (내 계약서 관련해서, 그리고 내 퇴직 관련 문서에서 그렇게 그냥 구글 번역 돌려서 작성해준 문서 많다.) 그러다 보니, 미국 회사에서 3년 일하고 온 내 경력은 이들에게 있어서 중요한 거다. 가끔 기술 관련 영어 번역이나 통역에 쓰이니깐.

그리고 이번 케이스에서의 스토리처럼, 외국 회사들 관련해서 미팅 있으면 통역해야 하니깐…

….뭐, 잠시 딴 이야기로 좀 샜습니다만…

그래서 외국 회사들은 자기네 시스템, 솔루션을 가져다가 쓰고 그러면 보통 여러모로 물어보는 것이 참 많습니다. 한국 회사들 물어보는 건 쨉도 안될 수준으로요. (한국 대기업들은 좀 다르려나… 제 경험에는 순수 자기들 기술 가진 중견기업에서는 사전에 엄청 묻는 경우는 얼마 없더군요.) 그러다보니 여러모로 대답을 해줘야 할 경우가 많은데, 거의 항상 마지막에 나오는 이야기는 다음과 같습니다.

“귀사의 솔루션의 보안적인 측면은 어떻습니까?”

라고 물을 때, 제일 힘드네요. 왜냐….

결론부터 말하면,

“저희 회사 시스템은 외부 네트워크와 연결되지 않는 분리된 시스템으로 동작하기 때문에 외부 보안적인 측면에서는 전혀 문제가 없습니다.”

…뭐, 틀린 말은 아닙니다. 실제로 시큐리티 엄청 신경쓰는 연구소라던가 그런 곳들은 격리된 네트워크를 쓰고, 필요한 repo 같은 것들은 전용 서버 만들어서 거기서 받아서 하죠. 미러 서버를 만들어서 외부 업데이트와 내부 망을 나눠서 처리하기도 하고요.

그래서 솔직히 저 대답에 뭐 잘못된 건 없다고 봅니다. 실제로 회사 팜플렛에서 회사 솔루션의 전체 구성도를 보여주고 있고, 그게 어떻게 전체적인 구조 안에서 동작하는지를 파악하는 전체적인 설명을 들으면 충분히 납득이 되는 상황이 많이 일어나곤 합니다.

뭐, 실제로 제조된 기계의 입장으로 봐도 그렇게 단독으로 구성된 시스템에서 뭐 건드릴 거 없습니다 진짜로… 그런 임베디드 기계들 뭐 한둘도 아니고요.

근데 이걸 생각보다 다른 곳에서 악용하는 케이스를 보게 될 줄은 몰랐습니다. 누가요? 바로 그분입니다. (욕쓰기도 아깝습니다 이젠…) 그리고 팀장도, 주임도 생각 외로 그렇게 생각합니다. 그 백그라운드를 설명하겠습니다. 설명 들으면 진짜로 뒷목 잡을 껍니다.

일전에 게임이라는 단어가 들어있다는 이유로 개발 관련된 사이트도 차단했다고 했죠? 뭐 프로그램 다운로드 사이트들도 마찬가지입니다. 일본에서는 다운로드 사이트를 공식 홈페이지가 아니라 옛날 옛적에 한국처럼 서드파티로 다운로드 하는 곳에서 받아서 쓰는 그런 습관들이 여전히 남아있는 거 같습니다. 실제로 일본 내에도 그런 사이트들 판을 치고(한국은 거의 죽었죠. 개인 수준의 사이트들밖에 안남았습니다. 그리고 그들마저도 공문으로 시달리고요.) 한국으로 치면 옛날 네이버 다운로드 같이 프로그램 모아서 다운로드 하도록 되어있는 그런 사이트들이요. 요즘은 그런 사이트들 가면 이상한 프로그램 설치하고 해서 여러모로 말이 많아서 잘 안가게 되지만…

뭐, 저런 것들이 여전히 남아있어서 그런지 지금도 보면 그런 다운로드 사이트 같은 곳들에 대해서는 여러모로 차단을 다 걸어두고 있습니다. 그리고 다운로드 관련으로도 여러모로 제약을 걸어두고 있습니다.

그럼 대체 궁금하죠? 아니, 필요한 프로그램들은 어떻게 쓰라는 거냐? 그냥 메모장, 그림판 뭐 이런것만 쓰라는 거냐??? 할 수 있겠죠?

바로 저 ㅆㄴ의 부서인 정보관리과에 사용 신청을 하면, 자기들이 다운로드 받아서 백신도 돌려보고, 문제 없는지 보고, 보안 관련해서 문제 없는지 보고 그렇게 해서 다 통과 되면 인스톨러를 제공해 주겠다고 합니다. 반대로 당신들이 멋대로 접근하면 바이러스나 악성 프로그램을 받을 수 있다는 기적의 논리로요.

……….

자, 전에 글에서 저 기적의 논리에 대응해서 제가 지금 회사의 보안이라는 것을 설명한 적이 있습니다. 백신에 안걸리면 장땡인 논리입니다. 저들은 오픈소스라서 소스코드를 제공해도 코드 분석은 커녕 돌릴 수 있는 프로그램을 가져와라라고 저한테 역으로 협박을 합니다. 그러면서 저런 내용에 대한 대안이 저딴 보안입니다.

그럼 그냥 저런 거 지켜가면서 회사 생활 하면 되는 거 아닌가요? 라고 물을 수 있는 분들께….

그런 곳에서 쓰는 프로그램의 최종 만능 툴이 일본 SI 시장의 최고 대명사인 사쿠라 에디터입니다. SI 현장에서 다른 건 다 안되는데 저 에디터는 무조건 OK라는 소리의 그 주인공…

저딴 걸로 스스로 갈라파고스 되는 케이스를 보고 있습니다. 그나마 다행인 것이 북미, 유럽권 외국인들도 있는 회사라서 저런 에디터만 쓰는 환경은 아니라서 여러 프로그램들을 쓰긴 합니다만…

저 이상한 주장이 이상하다는 걸 못느끼는 팀장급, 주임급들이 넘쳐난다고 생각해보세요…. 라고 하고 전 일단 이번 글은 마칠께요. 머리아파요…..

[Oh! 반면교사 시즌 2] 파이썬을 써야 하는데 pip를 접속할 수 없어요, nodejs로 짜인 걸 확인해보고 싶은데 npm을 접속할 수 없어요!!!!

이전 편에서 이렇게 썼습니다.

“그리고 저 환경으로 급할 때 요긴하게 쓴 파이썬 스크립트도 장난아니게 많습니다. 근데 정작 사내에서 파이썬 쓰는데 문제가 또 있는데…(이건 다음 편에서)”

네, 그 다음편입니다.

요즘 뭐 개발하는 데 있어서 패키지 관리자의 소중함은 다들 아실 껍니다. 누가 완전 추가 패키지 없이 기본 패키지만으로 자기네 전용 패키지 만들어서 쓰고, 그걸로 갖고 그냥 순수하게만 씁니까….

라고 하면 저렇게 해야 하는 특수 분야 분들이 어떻게 받을 지 모르겠지만(진짜 STL도 버거워서 쌩개발 해야 하는 그런 분야 분들은 어쩔 수 없는 거 압니다. ㅠㅠ), 일반적인 개발에서는 있는 라이브러리 잘 쓰는 거 다들 아실꺼라 봅니다.

ㅎ 근데…..

와. 패키기 관리자를 다 막았네요. 심지어 일부 개발 언어나 환경은 사이트 자체를 막았습니다.

구라같죠? 진짜입니다.

근데 이게 막은 이유가 뭐 있나 싶으면…있습니다.

바로 “Game”, “게임”, “ゲーム”라는 단어가 들어가 있기 때문입니다.

…………….

…………..

무슨 개소리냐 싶겠지만, 일단 들어보세요. 저 개소리가 이해만 되고 납득이 안되는 상황을 보여드립니다.

당연하겠지만, 회사에서 일하는 컴으로 게임하는 건 안되는 겁니다. 회사 컴은 일하라고 주는 거니 놀라고 주는 게 아니니깐요. 그러니깐 직장인들 좀 놀고 할 수 있는 것이 정보 공유를 통한 커뮤니티 사이트가 되기도 하고 그런 거죠 뭐….

근데 이걸 무식하게 생각해서…..

“아예 그냥 게임 관련 모든 사이트를 다 막아버리면 되는 거 아냐?”

라는 특정한 마인드의 분들이 다수 모여있는 곳에서 정해진 것이 바로 키워드에 따른 접속 차단입니다. 그럼 이걸 키워드로 막게 되니깐,

게임 사이트들 다 막고, 게임 뉴스나 게임 정보 관련된 사이트 다 막고, 게임 개발에 관련되어있는 사이트를 다 막습니다. 그러니 게임 개발에 필요한 것들은 그냥 다 막아요. 스크립트 언어 관련해서 루아도 막고, 파이썬도 막고… 게임 서버 관련된 것도 막습니다. 뭐 여러모로 막습니다.

그러나, 유일하게 피해가는 곳이 있으니! 그것은 마이크로소프트입니다.

근데 왜 마소는 안막아? 엑스박스 게이밍 있잖아? 다이렉트 X 게임 개발에 쓰잖아? 라고 생각하실 분들…
마소는 어차피 여기서 윈도우 개발도 하고 해야 하니 당연히 예외처리 했습니다. 그분들이 거기까지 멍청하진(??) 않습니다.

자, 이렇게 쳐막았으니 당연히 파이썬 안됩니다. js 관련된 거 다 안됩니다.

…..왜 이꼴이 났는지 이해가 되시죠?

그리고 그 중심에는 그 썅년이 또 껴있습니다. 그 썅년 아이디어입니다.

이걸 회사 입장에서 이해하는 분들이 있을 수 있지만… 개발에 특정 언어 하나만 가지고 모두 다 할 수 있는 경우 있나요? 이것저것 필요하면 쓰는 거고, 빠르게 개발할 수 있는, 빠르게 처리할 수 있는 거면 그냥 쓰면 되는 겁니다. 그런 거에 이것저것 따지거나 하는 건 없다고 보는데….

이렇게 이것저것 다 막아놓은 관계로 개발한 거 빠르게 테스트 할 테스트 프로그램 외부에 널려있는 것도 파이썬 없어서 못돌리고 그래서 C#으로 테스트 프로그램 싹 다 개발해서 테스트 합니다. 그렇게 힘들게 테스트 프로그램까지 짜서 돌려서 문제 없이 싹 다 만들고 했는데 나중에 개발에 시간 많이 걸렸다, 다음에 이 공수 어떻게 줄일꺼냐 하는 소리나 들어야 했습니다.

….이걸 미쳤다고 이야기 안하면 그냥 평생 그러고 살라고 하고 싶습니다.

[Oh! 반면교사 시즌 2] 회사에서 말하는 보안과 회사에서 검증하지 않은 소프트웨어 == 회사에서 쓰는 백신으로 안돌려본 소프트웨어

이전 편의 좀 연장으로 쓸께요. 원래 쓰고 싶었던 내용은 그 다음에 쓰기로…. 왜냐, 저딴 개소리를 하는데 있어서 뭔가 이상하다 싶으면 이걸 보면 됩니다.

저딴 일이 있고나서 저한테 안내라면서 저를 회의실로 불렀습니다. 회사 보안에 맞는 소프트웨어를 써야 한다고 말이죠. 그래서 제가 물었습니다.

“회사 보안에 맞는 소프트웨어는 어떤 것이냐. 지금 보면 라이센스 만료되고, 개발 중단되어서 끊긴 그런 소프트웨어들 엄청 보이는데 이런 프로그램들이 더 문제지 않느냐?”

하니깐 하는 소리가

“사내에서만 쓰니깐 문제 없다.”

……

그래서 다시 묻습니다.

“그럼 프로그램들이 보안이 취약한지, 내가 쓰고 있는 오픈소스나 재단, 비영리 프로그램들이 보안이 취약한지 어떻게 아느냐?”

“백신 돌려본다.”

……………………..

미치겠습니다. 또 묻습니다.

“그럼 백신이 안잡아내는 프로그램이면 전부 OK인거냐?”

“우리가 돌렸을 때 문제 없고, 업무에 꼭 필요하면 된다.”

……………..

그래서 제가 그자리에서 3분만에 프로그램 하나 짰습니다. 백신에 당연히 걸리는 프로그램니다. (이정도 단순한 바이러스는 다들 교양으로 하나 짤 수 있잖아요.) 근데 웃긴데 짜고 돌리는데도 바이러스로 인식 안합니다.

“그럼 이거 돌려봐라.”

근데 회사 백신이 못잡습니다. 바이러스 아니랍니다.

“이 프로그램 백신에 걸려야 정상이다. 근데 왜 안잡냐.”

“프로그램 정보가 없어서 안걸린 거 같다.”

“프로그램 정보가 없으면 오히려 예외 처리를 해줘야 할 만큼 잘 잡아야 정상 아니냐?”

입 쳐 다뭅니다. 그리고 저 이야기가 틀린 소리냐면 그것도 아닙니다. 개발 처음 하시거나 회사에서 처음 프로그램 내보고 하면 아실 껍니다. 프로그램 정보가 없어서 백신 프로그램들이 차단하고 난리인거… 백신은 그게 당연한 겁니다.

…………진짜 썅년입니다.

뭐 그러고는 할 말 있나 지켜보는데 결국 말하는 거라고는

“회사에서 인정 못하는 프로그램은 안됩니다.”

라고 해서 또 질문 합니다.

“이 소프트웨어는 여러 파트너 맺어져 있고, 실제로 마소나 몇몇 유명한 회사 직원들도 컨트리뷰터로 참여하고 있는 프로그램이다. 그리고 이걸 각종 백신회사에서도 검증하고 배포하는 곳에서도 안전한 프로그램으로 이미 다 인식하고 있는 프로그램이다. 이건 왜 안되는 거냐.?”

입 다뭅니다.

“파이참 개발한 젯브레인스는 지금 여기 회사 개발보다 몇십배는 많고 몇배는 똑똑한 사람들 모여서 만드는 상용 프로그램의 커뮤니티 버전이다. 당신이 지금 이 프로그램의 보안 문제를 검증할 수 있는 실력이라면 이 프로그램에서 어떤 문제 때문에 안되는지 나한테 설명해라.”

“파이썬 언어 자체를 사용 금지하도록 해뒀는데, 이걸 왜 사용하면 안되는지에 대해서 나한테 설명해라. 내가 이 정보 그대로 번역해서 파이썬 재단에 파이썬 언어의 중대한 결함 시스템으로 해서 당신 이름하고 같이 공유하겠다.”

입 다뭅니다. 짜증납니다. 그래서 짜증 좀 냅니다.

“당신이 말하는 보안이라는 수준이면, 당신은 지금 이 프로그램이 컴퓨터에서 돌면 바이러스나 각종 유해 프로그램처럼 돌 것이라는 것을 전부 다 알고 있다는 소리인데, 그러면 그런 해안이 없어서 전 세계 사람들에게 검증받고, 수많은 회사들이 써보고 문제 없다고들 이야기하는 소프트웨어를 개발한, 이용하는 전 세계의 모든 사람들이 당신보다 멍청한 사람들이라서 이걸 쓰는거냐?”

당연히 대답도 안합니다.

“그래서, 내가 이런 툴을 쓰려면 어떻게 해야 하냐.”

그러니 이제서야 답할 내용 튀어나오니 바로 답합니다.

“정보보안과에 신고해 주시기 바랍니다. 신고 후에 검증하고 결과 통보까지 4주 걸립니다.”

………………………

제정신 아닌 년입니다.

참고로 그 뒤에 어떻게 되었냐면요….

저 년은 제 근처에 얼씬도 안하고, 정보 보안 관련해서 저한테 단 한톨도 말 안합니다. 대신 제 위에 있는 사람 통해서 간접적으로 들어오는데, 그분들도 뭣도 모르고 다 털립니다. 이게 회사 입사 4일만에 있던 이야기입니다.

그리고 지금까지도 그때 금지한 프로그램들은 여전히 금지입니다. 저 빼고요. 이러고도 미친년 소리 안나오면 이상한 겁니다.

[Oh! 반면교사 시즌 2] 나는 (회사에서 검증하지 않은 소프트웨어를 쓴) 너를 자를 수 있어!

이게 뭔 제목인가 싶겠지만… 사실입니다. 그리고 지금 이 회사 정보보안과 주임이라는 년이 꺼든 협박입니다. (순화된 표현을 쓰기도 아까운 년입니다. 그래서 년으로 씁니다.)

개발을 하기 시작하면 당연하게도 개발 환경을 구축합니다. 그리고 개발환경 구축하면서 원하는 개발 툴이나 확장 프로그램들을 설치해서 쓰는 경우가 허다합니다. 이건 누구나 다 그럴 껍니다. 요즘 오픈소스로 나온 것들도 많고 그냥 프리웨어 환경으로도 여러모로 구축하고 시작하니깐요.

그러나, 보안이라는 이유로 프로그램 다운로드를 금지하고, 공식 사이트를 못들어가게 하는 미친 환경이 실존할 거라고는 생각 못했습니다. 진짜로요….

….ㅎ 진짜.

일본에 넘어오기 전에 구현한 회사 프로그램이 있는데, 그건 패키지 관리자를 통해서 몇몇 라이브러리를 이용하여 만든 프로그램입니다. 그래서 이걸 인수인계 하는 과정에서도 이 개발 환경을 보여주는데 패키지 관리자에 접속이 안됩니다. 회사 네트워크에서 블락했습니다. 마이크로소프트의 패키지 관리자를 블락하는 사상 초유의 미친 환경을 봤습니다. 개지랄을 하니깐 풀어줍니다.

그리고 다서 얼마 안 지나서는 회사 서버 접속이 이상하게 안되는 일이 있어서 정보관리과를 불렀더니, 그들이 제 노트북을 뺏어갑니다. 원인을 모르겠다고요.

그리고는 고치라는 서버 접속문제는 안고치고는 제 노트북에 깔린 프로그램에 대해서 문제시합니다.

그때 깔린 프로그램들이 뭐냐면요..

  • visual studio
  • visual studio code
  • jetbrain
  • sourcetree
  • winmerge
  • vim
  • WSL2로 깔린 ubuntu
  • wireshark
  • nmap
  • putty
  • sqlite browser
  • python
  • nodejs

이 중에 비주얼 스튜디오와 비주얼 스튜디오 코드를 제외하고는 뭔지 모른다는 이유만으로 전부 삭제할 것을 저한테 명령하였습니다. 진짜로요. 근데 이걸 개발을 관장하는 과장도 이 이외의 프로그램들을 왜 썼는지 알려줘도 어찌해야 할 지 모릅니다.

그러면서 저 정보보안과 주임년이 날린 개소리가 가관입니다.

“나는 (회사에서 검증하지 않은 소프트웨어를 쓴) 너를 자를 수 있어! 말 안들으면 인사과에 퇴사 조치 시키겠다.”

무슨 이런 대사도 아니고 진짜…

그때 퇴사 결심을 했었는데 그게 입사 3일만의 일이었습니다. 진심으로 저걸 지금 여기 입사를 위해서 멀리에서 찾아온 외국인한테 하는 소리라고 지껄이는 건가 싶습니다.
그러고는 사내 툴이라면서 보여주는 몇몇 것들은 이미 라이센스 만료된 소프트, 개발 끊긴지 몇십년 된 소프트, 윈도우 xp 환경 권장 소프트… 전부 안돌아간다면서 거부했습니다. 노트북은 최신껄 줬으면서 대체 왜…?

그리고 저 환경으로 급할 때 요긴하게 쓴 파이썬 스크립트도 장난아니게 많습니다. 근데 정작 사내에서 파이썬 쓰는데 문제가 또 있는데…(이건 다음 편에서)

p.s. 이런 것들이 진짜 바글바글한게 일본이란 나라라면, 일본은 희망이 없습니다. 일본에서 사쿠라 에디터 쓰는 이유가 있습니다. 메이드 인 재팬 뽕 채우는 정신승리용 에디터입니다.

[Oh! 반면교사 시즌 2] (내가 참가하지 않은) 이전 회의때 정해진 걸 왜 이제서야 물어?

되게 간단한 유틸리티 개발 요구가 있었다. 그래서 회의를 잡고 요구사항 히어링 하면서 기능에 대해서 정의를 싹 했다. 그리고 정의된 내용에 대해서 다시 회의를 잡고 이게 맞는지 최종 컨펌을 또 잡는다. (이게 일본회사 스타일이고, 이딴 짓 땜에 피로감이 장난 아니다.)

그렇게 해서 최종으로 정해진 내용을 가지고 유틸리티를 하나 개발해줬다. 그렇게 어려운 것도 아니었기 때문에 금방 끝났다. 그리고 그날 테스트까지 다 마치고는 넘겨줬다. 이게 그냥 단 하루만에 될 정도였다.

근데 퇴근시간에 돌아가려고 할 때, 나한테 이거 아닌데? 하는 소리가 전해졌다.

ㅎ 진짜…..

그래서 다음날 회의를 잡으려고 했다. 근데 출장갔단다.

……………

그러고 다음주가 되었다.

그리고 나서 회의하는데, 원래 이게 아니란다. 이 유틸리티로 정리할 파일의 포맷이 잘못되었다고 한다.

그래서 뭔가 했더니, 원래 이 유틸리티의 결과물을 또 받아다가 처리할 프로그램이 또 있다고 한다. (…????) 그러니 그 프로그램에서 읽을 수 있도록 파일 포맷을 맞춰야 한다는 것이다.

그래서 난 그자리에서 지난번에 결정된 내용을 싹 다 말했다. 그러면서 저 말을 끼워맞추니

나: 그 다른 처리 프로그램이 요구하는 내용이 원래 더 있어야 하는 거네요?
X: 응.
나: 그 프로그램은 왜 저한테 이야기가 안되었죠?
X: 이미 전에 이야기 했잖아?
나: 언제요?
X: OO일에.
나: 저 이거 관련해서 첫 회의 진행한 날이 ㅁㅁ일인데요? (ㅁㅁ = ㅇㅇ + 3일)

그제서야 내가 참가하지도 않은 자기네 내부 회의 내용을 이제서야 말한 것이다.

ㅎ ㅅㅂ….

그러고는 출장 가있는 동안 사내 정보 공유하면서 내가 그 유틸 한거 어찌되었냐? 아직도 못했냐? 그러면서 부서란 부서에 죄다 쪼고 있었다고 한다. 그래서 위에 팀장들한테 졸라 까인 건 덤이다.

일단 그 연동해야 하는 소프트 관련해서 정보 얻고 뭐 하고 해서 이틀 걸렸서 완성 다 하고 깔끔하게 끝났는데, 일 끝나면서도 하는 소리가 또 가관이었다.

“앞으로는 사양 제대로 확인하고 해요.”

…..이래서 이 회사는 발전이 없는 곳이라도 본다. 그냥 하루빨리 퇴사일이 와야지 별 수 있냐….

[Oh! 반면교사 시즌 2] 회사 자원이 제대로 있어야 하는 걸 모르는 전산관리 담당자

내가 이 시리즈를 다시 쓸 일은 없을 거라고 생각했다. 왜냐, 오씨의 그 쓰레기짓 같은 일을 설마 더 겪겠어 했거든….

근데 다른 형태로도 겪는다. 개발 아닌 곳에서도 겪는다… 그래서 시즌 2를 적기 시작한다. 진심 최악이다.

이번에는 진짜 회사 it 자원에 대한 이야기를 좀 하려고 한다.

회사에 it 자원은 우리가 개발하는 데 필요한 자원이다. 그러니깐 꼭 있어야 하고, 꼭 잘 되어야 하는 자원이다. 그건 당연히 일의 효율과도 직관된다. 반대로 이런 자원이 제대로 되지 않은 곳에서는 될 일도 안된다.

그 대표적인 것이 바로 똥컴 주는 회사랑 인터넷 느린 회사다. 이건 말도 안되는 거다. 미친거다 진짜로….

컴 느린 거 주는 건 진짜 컴에 대한 개념이 없는 거다. 사무직들 쓰는 컴 주면서 개발하라고 하는 거 진짜… ㅎ 그냥 할 말 없다. 개발용 컴퓨터를 따로 주면서 사무용으로 컴퓨터를 나눠 쓰면 뭐 다행인데…. 그건 나 포함 일부 사람들 뿐이었다. ㅡㅅㅡ

그리고 네트워크 느린거…. 느리다 못해 도중에 끊기는 것도 진짜 미친 거다. 요즘 인터넷 안되는 곳에서 일 어떻게 하냐. 협업 툴도 인터넷 되어야지 되는 세상에! 네트워크 끊기는 것도 절대로 있을 수 없는 일인데 그걸 별 수 없다면서 여기는 놈들이 진짜….

그러면서 어이없는 네트워크 점검한답시고 공지 띄우고 하는꼴 보면서 드는 생각이… 그냥 미쳤다는 생각밖에 없네요.

지금 여긴 네트워크를 그냥 첨부터 싹 다 뜯어내고 다 갈아엎어야 하는 상황인데, ap도 그 낡아빠진 거 다 갈아 버리고 다시 새로 사서 하고, 망 중계기도 100mbps 레벨인 거 아는데 이거 kddi 불러서 죄신껄로 바꾸고 회선망도 다 갈아서 유선으로던 무선으로던 엄청 여유로운 걸로 바꾸면 네트워크 안끊긴다 그런 소리 몇번을 해도 개소리 취급이나 하고…

ㅎ… 그냥 늬들 맘대로 해라. 난 나갈란다.

개발자와 치질

정말 오랜만에 쓰는 블로그이자, 개발자와 건강 시리즈인듯 하다..

규링도 솔직히 IBM(이미 버린 몸)인지라, 내 몸만 가지고도 개발자와 건강 시리즈를 여럿 쓸 수 있을 거라 생각했는데… 정작 규링이 걸리지 않는 병이 있다는 걸 깨달았다.

바로 치질.

(전조조차 없다)

안걸리는 게 행운이긴 하다만….

개발자들 의자에 오래 앉아있는 특성상 치질은 피할 수 없는 거라고 생각한다.

이 치질이 은근 장시간 앉아있는 직업의 경우에 은근 많이 생기는 녀석인데 난 아직 걸린 적이 없다고 은근 무시하고 있던…

근데 일단 내 주변에 걸린 이야기 들리니 갑자기 확 들었다.

치질 있는 분들과 의자의 상관관계를 생각해봐야겠다고…

그냥 가끔 일어나서 혈액순환 좀 시켜주고, 그리고 상시 바른 자세로 앉아서 압력을 잘 분산시켜야 한다는 거 외에는 의자와 관련된 거로는 잘 안떠오르지만, 사실 이건 치질 아니어도 중요한 것인지라…

게다가 자극적인 거 먹지 말고, 위생 잘 챙기고, 설사랑 변비 안생기도록 해야 하는 것도 다른 것들의 건강습관과 연결되어 있고…. 적당량의 물 마시고, 음주 하지 말고…

쓰고 보니깐 그냥 치질 관련된 것도 언급하면서 이걸 끝내야 할지도 모르겠다. ;ㅅ;

아니, 쓰고보니 어차피 다른 건강 챙길 것들하고 겹친단 말야…ㅠㅠ

….이걸 진짜 시리즈로 엮어서 정리하는 것만으로도 아무래도 책 내용 나올 거 같은데…ㅇㅅㅇ;;;

p.s. 일단 이런 걸로 언급이라도 해야 경각심이 생길 거 같습니다. 진심…

하지 말아야 되나? – 사용자한테 사용자 경험을 묻는다…?

…..리치 클라이언트 프로그램 개발은 두 종류가 있다. 아예 처음부터 새로 개발하는 경우와 기존의 프로그램을 아예 새로운 버전으로 업그레이드 하는 경우다. 대부분은 후자의 경우가 많다. 전자는 정말 설계가 튼튼해야 한다. 그래서 어느 정도 정형화된 형태에서 수정하는 형태로 사용자 경험을 만들어내는 경우가 많다보니 후자에 가까운 케이스로 되는 경우도 많이 존재한다.

뭐, 어떠한 형태가 되었던 간에 기존 시스템을 바탕으로 구현해야 할 의견을 찾게 된다. 이때에 사용자에게 기존 시스템에서 사용하기 어려웠던 점을 묻는 경우가 많은데, 내가 보기에는 물어서는 안된다고 본다. 이런 경우에는 대부분 부분적인 개선에 대해서 하나 하나 이야기를 하게 되는데, 사실 이런 경우에는 근본적인 해결이 아니라 그냥 자잘한 노가다 혹은 그만도 못한 작업을 해서 개선이 되는 요소가 존재하지 않게 된다.

예를 들어서, 여러 단계로 작성되는 웹 폼 화면을 개발하는데, 사용자에게 어려운 점을 물었더니 “2단계에서 물어보는 입력에 마지막 단계는 해당하지 않는데 이걸 그냥 놔둬야 하는지, 필수 입력인지 혼란스럽다.” 라고 해보자. 이런 경우에는 그냥 이 입력은 필수가 아닙니다 하는 형태로 설명을 달아주고 하는 형태로도 수정을 할 수 있다. 그러나 이런 식의 해결이 과연 근본적인 해결이었을까? 과연 이 마지막 입력이 정말 필요한 입력인지 아닌지를 묻고 필요한 입력이면 이전 단계의 값을 확인하여 동적으로 입력 폼을 보여주는 것이 더 좋은 해결책이 될 수 있는 거 아닐까? 표시되지 않는다면 사실 입력할 필요 자체가 없는 것이 된다.

하지만 이 일련의 과정을 사용자가 대답한다고 해서 좋은 해결책이 나올 수 있었을까?

사용자의 작업이 어느 화면에 어느 조작에서 막히거나 문제가 되는지를 알아내기 위해서 사용자가 사용하는 것을 캡쳐하거나 영상으로 찍어두고 분석하면 이런 해결책에 대한 해결 방법 중 하나가 되기도 한다. (고객센터에서 계속 원격으로 확인하면서 하는 게 이런 작업임…) 이런 식으로 사용자가 어떤 조작을 진행하였고, 어떤 조작을 요구하는지를 생각하면서 업무 순서와 내용을 분석한다. 그러면 부분적인 분석이 아닌 전체적인 분석을 하고 생각하면서 최선의 해결책을 찾는 것으로 이어지게 된다.

그리고 이런 건 사용자에게 물어서 확인할 수 있는 영역이 아니다. 사용자는 사용하다가 그냥 불편한 것에 대해서만 제공할 뿐, 이런 내용에 대해서 깊게 생각할 기회나 경험 자체가 없다. 리치 클라이언트에서의 사용자 경험에 우러난 조작성은 일련의 흐름을 갖고 있다. 그렇기 때문에 전후의 화면 사이에서도 깊은 의미를 가지고 있다. 이런 걸 특정 화면, 특정 기능에만 주목해서 보게 되는 사용자의 시점에서는 일련의 전체적인 흐름에 대해 보지 못해서 프로그램 개선을 망치게 될 수 있다.

그리고 이건 사실 사용자 뿐 아니라 영업 관점에서도 여러모로 말 나오는 이야기일 수 있다. 영업 입장에서는 사용자쪽을 이해 혹은 설득하는 듯한 작업 수순을 통해서 설명하고 그에 따른 이야기들을 듣고 오다보니 사용자쪽 시선에 갖춰져서 시선이 좁아지는 경우도 생기기 마련이기 때문에다. 그래서 영업과 개발이 싸우기도 하고…./먼산

하지 말아야 되나? – 사용자 경험을 무조건 다 집어넣을 수는 없다. 요건이 아니다.

오늘은 블로그 글을 여러모로 적으면서 볼일 보는 걸 기다리고 있다만… 리치 클라이언트 관련 이야기를 하다 보면 여러모로 하고 싶었던 이야기가 있었다. ;ㅅ; 그 중에서도 사용자 경험에 대해서도 여러모로 하고 싶은 말도 있다. 나도 과거에 실수했던 내용이기도 하고 해서..ㅠㅠ

리치 클라이언트가 주목받는 가장 큰 이유는 보다 나은 사용자 경험을 표현하여 개발할 수 있다는 것이다. 사용자 경험에 대한 부가 설명을 간단하게 하면 인지 심리학자 도널드 A 노먼씨가 미국 애플에서 UI를개발하고 있었을 때 만든 개념으로, 이를 통해 다른회사의 제품과 차별을 두기 위해 생각한 개념인데 이게 널리 퍼졌다.

이 개념에 중심에 있어서 외관을 먼저 디자인 하는 것이 아니라 사용자 시점에서 사용하기 쉽게 한다는 점에 목적을 두고 설계를 하는 사용자 중심의 설계를 기반으로 하고 있다.

리치 클라이언트에서는 지금까지 본 적도 느껴본 적도 없는 조작 위주의 UI를경험할 수 있다. 그러나 이것을 구현하기 위해서는 사용자에게 어떤 서비스를 어떻게 제공해 주어야 감동을 줄 수 있는지에 대해 충분히 검토한 후에 디자인 해야 하는 것이 중요하다. 이러한 디자인을 사용자 경험 디자인이라고 하며, 사용자의 분석, 컨셉의 명확화, 테스크 분석, 실물 모형을 촬영한 동영상 제작, 프로토 타입 제작, 목표 명확화 등 여러 스텝을 밟고 해야 한다. 자세한 건 UX관련 서적들이 자세히 써놓았다.

근데 이러한 작업들은 노력도 시간도 많이 들기 때문에 기본적으로 비용 증가로 연결된다. 그래서 승산 없이 사용자 경험을 마구잡이로 포함시켜서는 안된다.

오히려 사용자 경험에 대한 건 기능적 요건이 아니라 부가가치적 개념으로 들어가야 한다.

사용자 경험은 리치 클라이언트에서 반드시 필수인 것은 아니다. 즉, 기능 요건이 아니라 부가 가치인 것이다. (이걸 헷갈리면 진짜 프로그램 개발 산으로 간다)

응용 프로그램에서 사용자 경험을 적용하면 사용자의 지원 및 비용을 줄일 수 있거나 조작 오류를 감소시킬 가능성이 높다. 경우에 따라서는 몇 번 사용해 보고 기분 좋은 경험을 고객에게 전달해 줌으로써 제품을 계속 사용하게 만들는 효과를 가져올 수 있다. (애플은 이걸 정말 잘 아는 기업이다. 그리고 요즘의 마이크로소프트도 이에 대한 도전을 많이 하고 있다.) 이러한 부가 가치의 금액을 정확하게 산출하는 것은 일반적으로는 어려운 일이다. 그러나 가능한 한 금액으로 환산하여 사용자 경험을 구축하는 데 드는 비용과 비교하여 도입 유무를 잘 검토하는 것이 중요하다.

그리고 이 글 작성하면서 도중에 적었다만, 이걸 정말 잘 하는 기업이 애플이라고 했다. 그리고 앱스토어에 있는 수많은 앱들 중 에디터의 초이스로 선택된 앱들 또한 그런 것들을 가지고 있다. (애플 디자인 어워드에 있는 앱들 또한 마찬가지..) 그 앱들 중에서는 비슷한 기능을 가지면서도 더 기능 많은 앱들이 앱스토어에 있는 거 같은데도 뽑힌 이유는 바로 그 앱들이 가지는 고유의 사용자 경험이 애플의 에디터들을 만족시킨 것이다. 그래서 앱 개발에 있어서 여러모로 난이도가 올라간 것들이 없지 않게 존재한다.