Friday, August 23, 2019

Interview review: Software Quality Assurance (SQA) and Unit test

최근에 QA 분 인터뷰를 하고 든 생각을 정리해 봤다.
(인터뷰==면접)

QA 분야로만 10년 넘게 활동하면서 여러 대기업 프로젝트 및 서비스 프로젝트에 대한 QA를 주도적으로 진행하신 분과 인터뷰를 했다. 다른 부서의 다른 분야다 보니 내가 알고 있는 부분에서의 교차 검증 까지는 어렵거나 모를거라 판단해서 쉬운 질문부터 하기 시작해 봤다.

"수십개의 프로젝트 QA를 진행하시면서 Unit test를 잘 진행하는 개발자들이 얼마나 있나요?"

라고 물어봤는데 대답이 매우 현실적이라고 해야 하나 충격적이라고 해야 하나 그런 경우는 거의 없다고 했다.

없는 건 둘째치고 해야 한다고 가이드를 주고 교육도 하는데도 기능 구현하기 바빠서 결국 하는둥 마는둥 하다가 안하는 케이스가 많다는 것이다. 그런데 QA에서는 통합 테스트 과정에서 꼭 필하기도 하고 각종 인증 시험에도 결과 보고서에 필요한 프로세스이기도 하니 최소 10개 아니면 1개 만이라도 만들어서 로그인 기능이라도 테스트 코드 통과시키게 한다고 한다. 더 놀라운건 개발자들이 알아서 하는게 아니라 QA팀에서 시켜서 한다는 것이다.

또 다른 질문을 했다.

"그건 단기 프로젝트 수주 받아서 진행한거라 일정 문제 때문에 그럴 수 있다고 보는데, XXXXX 회사에도 다녀 보셨으니 서비스나 솔루션 제품, 앱에 대한 QA는 다르지 않던가요?"

에 대한 질문도 마찬가지였다고 한다. 즉 개발문화가 그런 걸 하는 문화라면 QA가 매끄럽게 진행이 될텐데 아무것도 모르고 안하는 개발 문화라면 가이드 주고 교육시키는 것 부터가 일이라고 하니 좋은 개발문화가 있는 회사를 만나는 것도 쉽지 않겠구나 하는 생각이 많이 들게 되었다.

이 얘기를 듣고 인터넷 커뮤니티 등에서 주장하고 있는 unit test에 대한 내용이 현실에서는 아직까지는 많이 확산되지 않나 싶은 생각이 들게 됐다. 물론 최근에 좋은 개발문화를 가진 스타트업이나 다른 회사들은 개발자들이 자발적으로 하면서 진행하는 경우도 있긴 하겠지만 QA만 10년 넘게 전문적으로 하시고 대기업 부터 스타트업까지 수십개의 프로젝트를 진행하시는 분에게 얘기를 직접 들어보니 아직까지 좋은 개발문화가 자리잡기까지는 쉽지 않겠구나 라는 생각이 많이 들었다.

우리 회사에 아직 QA 프로세스가 있는 건 아니고, 일부 솔루션 사업부쪽에서는 QA를 자체적으로 진행하고 있기는 하지만 여전히 유닛 테스트나 DevOps는 일부 과제에서 제한적으로 진행하다 보니 꼭 남탓할 일은 아니라고 본다.

그래도 할 생각이 있어서 하는 것과 해야 하니까 하는 것과는 큰 차이가 있고 그게 개발 문화라고 생각하기 때문에 나도 그 분과 인터뷰 후에 내 스스로도 반성하는 계기가 되지 않았나 싶다.

나 역시도 연구과제 여러개 진행하고 있어서 하면 좋은 것들에 대한 일이 진행이 되지 않고 있는 데 그 중에 하나가 DevOps여서 만약 이 분이 회사에 오게 된다면 우리팀 DevOps를 진행하는데 탄력을 받지 않을까 생각해 본다.

Thursday, August 8, 2019

Machine Learning

작년부터 해서 머신러닝, 딥러닝에 대한 관심도가 높아짐에 따라 제대로 하지는 않고 이리 저리 알아만 보고 있었다. 책도 몇 권 보고, 스터디 모임도 참석해 보고 했지만 사실 내가 원하는 책이나 스터디 모임은 없었던 것 같다.

"뭔가 제대로 폭넓게 알 수 있는 방법"

이라는게 필요했다.

얼핏 보면 수학에 대한 이해도 필요해 보이고 data, visualization 라이브러리 사용법도 알아야 할 거 같은 이 분야에 대한 이해도는 상당히 부족한 상태였다.

그러다가 구글 스터디 잼에서 코세라 강의를 좀 맛본터라, 이렇게 시작하면 될 것 같다는 느낌이 들 때 쯤. 머신 러닝하면 한번쯤 이 강의를 들어야 한다는 인터넷 글이 많아서 바로 수강신청하고 보게 됐다.

https://www.coursera.org/learn/machine-learning

앤드류 응 교수의 강의인데 옛날에 만든 거라 영상과 음성 퀄리티가 썩 좋지는 않다. 그래도 듣다 보니 천천히 이해를 하고 진행할 수 있는 수준인 거 같아서 부지런히 공부 중이다.

사실 1주일에 3~4시간 정도만 투자해도 주당 강의 스케줄을 따라갈 수 있는데 그 시간을 내지 못해 강의 스케줄 따라가는게 쉽지 않다. 스터디 잼 때도 느꼈지만 주당 5시간 이상을 투자해서 뭔가 공부한다는게 쉬운 일이 아님을 다시 한번 느낀다.

어쨌든 코세라 강의를 통해 머신 러닝 공부도 하고, 인공지능이라는 타이틀이 붙은 개발자들과 대화가 가능한 수준으로 진행해 보려 한다.

자료는 github에 올려 놓고 링크를 걸어둘 예정이다.
사실 코세라 등록하고 보면 다 볼 수 있는데, 나중에 찾아볼 때 좀 쉽게 찾아보려고 하는 것도 있다.

Tuesday, August 6, 2019

WPF combobox background changes not work, apply combobox style windows 8 or later

combobox background 변경 시 변경 안되는 문제점에 대한 내용

https://blog.magnusmontin.net/2014/04/30/changing-the-background-colour-of-a-combobox-in-wpf-on-windows-8/

위 링크에 상세하게 설명이 되어 있는데 대충 내용을 얘기해 보면
Windows7 이전에는
  • SystemColors.WindowBrushKey
  • SystemColors.HighlightBrushKey
요 두 개의 key를 가진 resource로 background color가 변경 되었는데
Windows8 이후에는 이게 동작이 안되기 때문에 다른 방법을 써야 한다는 것이다.

내가 진행하고 있는 공기업 과제의 개발 환경은 아래와 같다.

  • Windows 10, 10.0.18362
  • .NET Core 3.0.100-preview7-012821
이 환경에서 WPF 앱을 만들어서 진행하고 있는데
Combobox 역시 background 변경을 위해 실행해 보면 색이 변하지 않는 동일한 현상이 일어나는 걸 알 수 있다.

아마 Windows8 이상 부터는 WPF에서 지원되지 않게 SystemColors key 값을 바꿔 놓은 듯 하다.

따라서 ComboboxItem style과 template을 새로 정의한 후에 SolidBrushColor의 값들을 ComboboxItem의 key 값으로 변경해서 적용해야 한다.

적용 방법은 처음에 링크에 잘 나와 있다. 그리고 조금만 검색해서 찾아보면 결국 처음의 저 링크의 해결 방법으로 모인다는 사실을 알게 된다. 심지어 "wpf combobox background" 까지만 쳐도 "wpf combobox background color not working"으로 자동완성 되는 문장까지 볼 수 있다.

해결할 수는 있는데 쉽게 해결할 수 있는 문제는 아니다. style과 template을 다시 지정해 줘야 하니까. 이왕 시작한 .net core multi platform 작업에 이 부분을 추가해서 다시 예전처럼 SystemColors 값으로 쉽게 바꿀 수 있게 해줬으면 좋겠다. To microsoft developers.