핫게 실시간 커뮤니티 인기글
종합 (5140773)  썸네일on   다크모드 on
| 02:21 | 추천 10 | 조회 448

가족같은 회사와의 재회 #3 +11 [2]

오늘의유머 원문링크 https://m.todayhumor.co.kr/view.php?table=humorbest&no=1797289

K테크 사람들을 돌려보내고 사무실로 돌아오는데 대표가 설레발을 쳤음.


"이야~ 인마야! 첫 일이다! 이거 할 수 있겠지 너 정도면!?"


"아직 코드도 안받았습니다.."


꾀돌이 이사도 설레발을 쳤음.


"원래 소장님이 해봤던 설비니까 잘 하실거라 믿습니다^^"


"제가 하던 때가 13년도에요. 저 설비가 그때랑 동일하다는 보장이 없잖아요? 예전에 일하시면서 다 보셔놓구선 ㅡㅡ"


"아 그래도 원리는 변하지 않았으니까요~"


"코드가 변했죠. 예전 Winform 프로그램이 WPF로 바뀐거잖아요."


대표와 이사가 조금 심각한 얼굴로 말했음.


"그럼..못할수도 있는건가..? 좀 확실히 말해줄 수 없나?"


"아 그러니까 코드를 봐야 아는거죠 ㅋㅋㅋ"


"코드야 너가 전문가니까 코드보는 정도야 할 수 있잖아?"


"문제 정의가 확실하다면 대충 견적을 내보겠지만, 지금 저쪽 요청사항이 뭐 하나 확실한게 없잖아요. 어떤 똥이 숨겨져 있을 줄 알고요?"


꾀돌이 이사가 말했음.


"괜찮을 겁니다. 제가 일하던 시기만 해도 저거 다른 문제 없었어요. 제가 그 현장에서 PM을 했기땜에 잘 알아요."


"다른 버그가 없으면 다행인 거구요."


대표가 말했음.


"그래서..얼마정도 기간이면 할 수 있을까?"


"코드를 봐야 안다니까요?"


"그래도 너네는 전문가니까 대략적인 각이 나올거 아냐."



manipulate_img(this)


"개발자는 코드를 두고 다짐을 하지 않습니다."


".....그래..."


"일단 저쪽에 필요한거 요청을 다 하고, 그때부터 판단을 하는거죠."


".........." (여기서 대표가 나에게 가지는 기술적 역량 평가가 실시간으로 차감되는걸 느낌)

[덧셈 뺄셈도 모르는 인간들에게 나의 미적분을 시험당하는 기분이랄까..]


그날부로 통풍이와 고민을 해보았음. 소스코드는 성 차장이 메일로 전달해준 덕분에 비교적 빠르게 받을 수 있었음.


"얘네들은 여전히 자체 알고리즘 없이 Mil 라이브러리 원 툴이네. 이거봐라. 동글키 에러뜬다."


"아 쫌 한번에 동글키도 같이 주면 안되냐? ㅋㅋ"


"그게 되면 쟤들이 우리랑 일하겠냐? ㅋㅋ"


"근데 이거 실행해 보려니 이것저것 깔아야 될게 많네? 아진도 설치해야되고, 센서 프로그램도 깔아야 하고.. Mil도 10버전으로 깔아야 되네. 너 이것들 있냐?"


"성 차장한테 요청해야지 뭐~"


그렇게 성차장에게 요청사항을 전달했음.


"성 차장님. 저희가 코드를 테스트하고, 노트북에 돌려보려면 Mil 개발자 동글키가 있어야 합니다. 혹시 K테크 내에 동글키가 있을까요?"


"아 넵. 저희한테 있습니다!"


[그럼 미리 쫌 달라고요 ㅡㅡ]


"다행이네요. 그 외에도 설치파일이 몇개 더 필요합니다. 동글키랑 설치파일 보내주시면 저희가 검토 후, 말씀드리겠습니다."


"저어..혹시 언제까지 파악이 될까요?"


"뭐.. 일주일 안에는 되지 않겠어요? 빨리 주시는 만큼 시간이 절약되겠죠?"


"네. 그럼 명일 동글키는 택배로 보내드리겠습니다. 설치파일은 제가 있다가 비전팀에 요청해서 메일로 전달 드리도록 할께요."


"네 감사합니다."


그렇게 다음날 동글키가 오길래 노트북에 연결하고 프로그램을 열어보니 여전히 에러가 뜨는거였음.


"야이 ㅅㅂ...이거 릴리즈 키잖아...개발자 키가 아니라.."


"환장한다 진짜..."


다시 성 차장에게 연락했음.


"차장님. 이거 개발자 키가 아닌데요? 이걸로는 저희가 디버깅을 할 수가 없어요."


"아...그게 차이가 있나요..? 저희 비전팀에서는 지금까지 따로 말이 안나오던데...요.."


"그렇다는건 K테크 비전팀이 코드 수정 할 일이 한번도 없었다는 거겠지요. 아니면 개발자 키를 따로 가지고있으면서 영업에 얘길 안했거나요."


"크흠...일단 제가 다시한번 물어보겠습니다.."


"네."


............

..........

.......


얼마후 성차장이 다시 연락이 왔음.


"저...소장님? 저희가 알아보니 동글키가 없더라구요. 전에 퇴사하던 개발자들이 그걸 가지고 퇴사했나봐요.."


"그게 당시 개발자들이 개인 사비로 산 개발자 키인가요?"


"아뇨. 당연히 회사에서 구매한 거죠."


"그럼 무단으로 회사 자산을 횡령한거잖아요? 그 사람들한테 연락해서 다시 가져오라고 하시죠?"


"그게...예전 분들 연락이 잘..안됩니다.."


"그럼 그분들 앞으로 내용증명이나 고소장 보내 놓으세요. 연락 갈테니.."


"아...그건 제 소관이 아니라..."


"어쨌든 저희는 동글키가 있어야 프로그램도 실행해보고 파악을 할 수 있습니다."


"그거..혹시 동글키 없이 코드 수정이 안되는 부분일까요?"


"수정은 할 수 있죠. 그런데 검증이 안되잖아요? 현장설비가 눈앞에 있는것도 아닌데.."


"소장님 실력이 있으시다고 들었습니다.. 왠만하면 동글키 없이.."


"아뇨. 저 실력 없습니다. 동글키가 있어야 되요. 저는 아직 코드 실행도 없이 완벽하게 프로그램을 수정해 낼 실력은 안됩니다."


".........."


"동글키 안구해 주시면 그냥 이번 일 못한다고 보고할께요."


"아...그러시면..저희가 한번 구매를 해보겠습니다.."


"네. 감사합니다."


통풍이가 옆에서 말했음.


"완전 개차반이네 회사가...ㅋㅋㅋ"


"K테크가 원래 그래."


"저러고도 설비회사를 하고있어!? 상식이 없잖아 상식이.."


"우리 회사를 봐라. 저게 다 어디서 배워온건지 보면 모르냐?"


"아....그래...이게 보통 가정교육이 안된거라고 해야하나...ㅋㅋㅋ"


"K테크 유전자는 이곳으로 잘 이어져있다..ㅡㅜ"

manipulate_img(this)

젠장..


그렇게 하루가 갈때까지 나는 ATT 코드를 눈 코딩했음. 그리고 또 한번의 감탄.


..........

........

......


WPF는 xaml 이라는 약간 HTML 형식의 마크업 언어로 UI를 따로 개발할 수 있음.

그러다보니 기존의 MFC에서는 표현하지 못했던 다양한 디자인 기법들을 UI에 반영해 낼 수 있음.


예를들어 내가 전 회사의 말년에 가장 하고싶어했던..버튼에 은은한 그림자를 넣어 Neon 스타일을 표현할 수있음.

그외에 투명도나 컨트롤의 부분적인 형상도 컨트롤 가능하기 때문에 웹사이트 혹은 PPT와 같이 자유로운 디자인 컨트롤이 가능함.


가장 좋은 점은 코딩을 하면서 디자이너에 실시간으로 UI가 미리보기 가능하기에 MFC처럼 화면상의 좌표 하나하나 머리속에 그려가며 코딩하고, 그걸 실행해서 실제 화면을 보며 체크하는 과정이 필요 없음.


잘 익이기만 하면 MFC와는 비교할 수 없는 압도적인 속도로 개발이 가능함.

즉, 파워오버웰밍(Power Overwhelming)이 가능함.

잘 익히기만 한다면 말이지...잘 익히면..


WPF는 약간 애매한 지점도 있었음. xaml로도 코딩이 가능하고, 기존의 C# 코드처럼 Code-behind, 비지니스 로직만으로도 똑같은 기능을 구현가능 함.


실제로 강의를 보면, 기존의 개발자들이 WPF로 넘어가며 xaml을 익히기가 힘들었던지.. 모든 코드를 Code-behind로 처리하는 경우를 많이 보았음.

반면, 해외 디자이너들은 xaml로 대부분 처리하고 비지니스 로직을 최대한 줄이는 방향으로 강의를 함.


초기에 통풍이와 나도 과연 xaml이 옳은가!? 그렇다면 어째서 코드 비하인드로도 똑같은 구현이 가능한 것인가?

WPF를 만든 사람들의 의도는 무엇인가?에 대해 열띤 토론을 하곤 했음.


기술적으로 납득을 해야 다음으로 넘어가는 우리 두 사람의 '성격'으로 인해 WPF 학습이 반년 가까이 지체되는 상황이었음.


그러다가 결론이 나기 힘든 부분은 잠시 내려놓고 다음을 공부하고, 그 다음을 학습하며 나아가다 보니 결국 xaml도 익숙해지고, Code-behind도 익숙해진 시점에서 깨달음을 얻을 수 있었음.


[WPF는 일단 xaml과 비지니스로직 둘다 잘 해야한다.]


그 수준에서 개발 할 때 '판단'이 가능해짐.


내가 원하는 기능을 xaml로 표현하면 20줄이면 되는데, 코드 비하인드로 한다면 50줄이 필요하다? 그렇다면 xaml로 만든다.


만약 xaml로 50줄이 나오는데 코드 비하인드로 쉽게 10줄이면 구현이 된다? 그렇다면 코드 비하인드.


결국 구현이 편한 쪽을 유연하게(Flexibility)판단할 수 있을 때 선택적으로 개발을 해야 WPF라는 칼을 잘 휘두르는 방법인거임.


검(劍)이란 유검(柔劍)이 강검(剛劍)을 이기는 법임. 이는 무학과도 일치하는 도(道)의 흐름.


내가 전 회사를 퇴사하던 시점에서 무언가 기시감을 느끼던 이유가 바로 그런거였음.

티리엘 과장이 말했던 'MFC는 죽은 툴'이다. 도구는 죽었지만, 강한 기초 언어를 뿌리에 둔다면 풀뿌리를 잡더라도 칼 처럼 휘두를 수 있다..


과연...언제까지 이 풀뿌리를 휘두를 수 있을까....


즉, 그정도 기초(剛)를 쌓았다면 이제는 용기를 내어 갈아탈 준비를 해야 할 시기가 도래 했던거임. 나와 통풍이는 이곳에서 일 없이 허송세월을 보내는 시간을, 강검에서 유검으로 넘어가는 시간으로 사용했음. DI 구조를 돌파하며 아키텍처도 갖추었음.


그런 우리에게 K테크 WPF 코드는 간만에 첫사랑의 '신선함'을 떠오르게 하는 그런 코드였음.

WPF는 MVVM(Model-View-ViewModel)이라는 구조가 권장 됨. 과거 MFC 시절 MVC(Model-View-Controller)와는 다른 구조임. MVC를 대충 말하자면 데이터(Model)은 View인 UI와 강하게 결합되고 그걸 사람이 UI를 직접 조작(Controller)하는 체계를 말함.


UI 프로그램에서는 사용자의 조작이 UI 이벤트를 발생시키고, 프로그램은 그 UI의 상태나 입력값을 직접 읽어 데이터로 취급한 뒤 그 데이터를 기반으로 동작한다.이것이 고전적인 강한 결합식 프로그램구조임.


여기서 WPF는 xaml이라는 UI에 느슨하게 기능을 '붙인다'는 느낌임. 강하게 엮는다기 보다는 언제든 땠다 붙였다 할 수 있는 느슨함이 본질. 그 역할을 하는것이 바로 ViewModel의 개념임.


고전 방식인 UI(View)-Model 의 강한 결합 사이에 UI - ViewModel - Model로 느슨하게 갈라 놓는것. 느슨함은 결국 초식(UI 디자인 및 제어)을 자유롭게 펼쳐도 강한 내공(비지니스 로직과 데이터)은 흔들리지 않는다는 유검(柔劍)의 완성인거임.


그런 개념에서 K테크의 코드는 새로운 패러다임을 선사하였음.


나는 감탄하며 통풍이에게 말했음.


"내 살면서 이렇게 강력하게 결합된 ViewModel은 본 적이 없구만...!"


"이게 실화냐? ㅋㅋㅋㅋ"


그들의 프로젝트 코드에는 아주 명시적으로 이름붙인 'ViewModel' 이라는 클래스가 1개 있었고, 그 1개의 클래스가 모든 UI와 결합이 되어있는 시스템이었음.


뭐라고 해야할까? 저건 "God View Model" 이라고 명명하고 싶었음.

주식으로 친다면 모든 계란을 한바구니에 담아 놓은 상황. 시체골렘? 키메라? 대 자연을 쏟아넣은 일격필살 자연검?!


네 이놈들. 왜 이딴식으로 코드를 짜놓았는가 묻는다면 1초의 고민도 없이 나올 대답.


"하지만 개발속도는 빨랐죠?"


였음...너무나 그 의도가 빤~~~한.


대표가 설레발 치던 말이 떠올랐음.


[코드야 너가 전문가니까 코드보는 정도야 할 수 있잖아?]


그래...이 십장들아...모르기에 그렇게 밝게 말할 수 있단다...


아는 사람들은 알기에 더더욱 겸손해지는거고....ㅠ




[신고하기]

댓글(4)

이전글 목록 다음글

12 3 4 5
제목 내용