브래드 권


모험과 도전이 없는 삶은 아무것도 아니다.

안녕하세요?

저는 늘 새로운 프로그래밍 지식을 배워가면서 활동하고 있는 소프트웨어 엔지니어입니다. 세상에 존재하는 여러 기술들을 이용해 내가 할 수 있는 일들을 찾고 그런 기술들을 마스터해 나가는 과정에서 기쁨을 발견합니다. 소프트웨어 엔지니어로서 언제나 새로운 기술들을 습득하고 구현해 나가는 게 숙명이라고 생각하고 있습니다.

무언가를 주도적으로 해 나가는 걸 좋아하지만 동시에 매사에 신중하려 하는 스타일이며 일을 어떻게 처리해야 할 지를 알고 맡은 일이 성공적으로 돌아가는 것을 좋아합니다.

여행, 음악, 배움과 웃는 걸 좋아하는 사람이며 매일매일 발전해 나가는 제 모습을 보는 것을 좋아합니다. 그래서 하루하루가 저에게는 늘 새로운 여행입니다.



Career

소프트웨어 엔지니어링 전공으로 학사 학위를 딴 뒤, 계속해서 소프트웨어 엔지니어로 일해오고 있습니다. 미국 로스앤젤레스에서 인턴으로 첫 경력을 시작한 이후로 대부분 서울, 독일 베를린에서 일을 해오고 있습니다.

다른 언어 및 기술들은 어떤지 또 어떻게 사용되는지에 대한 궁금증에 기회가 생길 때마다 새로운 것을 배우고 실전에 적용해 보고 있습니다.

데스크탑 환경에서 비주얼 베이직과 닷넷으로 개발을 시작하였지만 이후 자연스레 웹과 모바일로 넘어오게 되었습니다. 그러면서 자바, 자바스크립트를 배웠고, 지금은 플러터 세상에서 다트와 타입스크립트를 사용하고 있습니다.

데이터베이스는 주로 마이크로소프트 SQL 서버를 많이 다뤄봤으며, 그 외 오라클, 사이베이스, 그리고 모바일 개발을 하면서 Realm, SQLite, Firestore 를 다루고 있습니다.


힐리월드 - 독일 베를린
힐리월드

스킬:
Flutter, Dart, Gitlab, Bluetooth Low Energy, Bitrise, Firebase, Tech Lead

잘 일하고 있습니다. :)
뉴로네이션 - 독일 베를린
뉴로네이션
스킬:
Xamarin, C#, Firebase, Android, iOS, Jenkins, GitHub, Microsoft Azure

담당:
- 뉴로네이션이라는 안드로이드 & iOS 두뇌 훈련 앱 개발.
- 뉴로네이션 MED 라는 안드로이드 & iOS 의료용 두뇌 훈련 앱 개발.

팀 규모:
4명

성과:
- 초기 버그가 많은 앱들을 Crash-free 수준을 안드로이드 99.8%, iOS 99.7% 로 안정화시킴..
- 회사 비즈니스 발전을 위한 외부 라이브러리를 네이티브 바인딩 및 커스터마이징을 활용하여 성공적으로 통합.
- 의료용 버전인 뉴로네이션 MED 앱을 성공적으로 런칭.

안드로이드 앱 링크:
뉴로네이션 안드로이드 앱 뉴로네이션 MED 안드로이드 앱
iOS 앱 링크:
뉴로네이션 iOS 앱 뉴로네이션 MED iOS 앱
MindTags GmbH - 독일 베를린
MindTags

스킬:
Net 4.5+, C#, Xamarin, Android, Realm, Mapbox, Git, GitFlow, GitKraken

담당:
- 실내 네비게이션, 비콘, 지오펜스, 텍스트 음성 변환 및 GPS 를 활용하여 장애인들을 돕는 MindTags 앱의 안드로이드 앱 개발 담당.
- 커스터마이징된 Mapbox 네비게이션을 사용한 조깅 앱의 안드로이드 앱 개발 담당.

팀 규모:
3명

안드로이드 앱 링크:
MindTags 안드로이드 앱
Forever21 한국 지사 - 서울
Forever21
스킬:
Net 4.5+, C#, Dapper, ASP.Net MVC, ASP.Net WebAPI, WinformMVP, WCF, jQuery, Ajax, Json, Bootstrap, VB, Crystal Report, MS Sql Server

담당:
- 공급 체인 시스템의 일부로 여러 매장 POS 관련 멀티 쓰레드 환경 기반 데스크탑 앱 개발.
- ASP.NET MVC 5, 부트스트랩, jQuery 를 활용하여 매장 인트라넷 웹사이트 개발.

팀 규모:
10명

상세설명:

상품 정보를 매장 POS에 업데이트하고 일일 판매 정보를 서버 및 매장 인트라넷으로 전송하는 판매 관리 시스템의 이슈 및 에러 처리를 담당하였고, 해당 시스템의 멀티 쓰레드 환경을 개선하였습니다.

추가적으로, 벤더들을 위한 패킹 정보를 계산, 생성하고 이를 벤더 엑스트라넷으로 전송해주는 패킹 방법 생성 프로그램 개발을 담당하였습니다.

기존 ASP 로 작성되어 있던 매장 인트라넷 시스템을 ASP.NET MVC 5, 부트스트랩, jQuery를 활용한 새로운 시스템으로 재작성하였습니다.

휴메카 정보통신 - 서울
지방자치단체 인터넷 원서접수센터

스킬:
Java, Spring MVC, MyBatis, jQuery, Ajax, Json, SVN, Tomcat, WebLogic, Oracle

담당:
지방자치단체 인터넷원서접수센터 모바일 웹사이트 개발.
- 모바일 웹페이지 개발 담당.
- 공공 I-PIN 및 휴대폰을 통한 본인인증 모듈 연동 담당.
- 정부 공공 정보 공유 센터와 연동된 EDI 모듈 개발 담당.

팀 규모:
8명

상세설명:

자바 스프링 기반 공무원 지방자치단체 인터넷 원서접수센터 시스템 중 모바일 웹 파트, 본인인증 및 EDI 모듈 개발을 담당하였습니다.

EDI 모듈 개발의 경우, 중앙정부의 공공정보 공유 서버와 통신하는 서버를 구축하고 양방향 데이터 전송을 가능케 했습니다.

아래 그림들은 공개된 모바일 웹페이지들입니다.
모바일 사이트

모바일 메인 페이지
모바일 로그인 페이지
모바일 메인, 로그인 페이지

모바일 공공 아이핀 로그인 페이지
모바일 휴대폰 본인인증 페이지
모바일 공공 아이핀 및 휴대폰 본인인증 페이지

H Mart - 미국 뉴욕 퀸즈
CPFR 개요

스킬:
Java, Spring MVC, MyBatis, Kendo UI, jQuery, Ajax, Json, HTML, CSS, MS Sql Server, SVN, Tomcat

담당:
- Kendo UI 를 활용한 자바 스프링 MVC 기반 웹 앱 개발.

팀 규모:
3명

상세설명:

고객사 H Mart 의 공급 체인 시스템의 CPFR 프로세스 중 보충 파트 개발을 담당하였습니다.

풀스택 개발자로 팀 설계자의 설계에 따라 백엔드 및 프론드엔드 개발을 담당하였으며 고객과의 업무 협의도 담당하였습니다.

현대건설 - 서울
현대건설

스킬:
ASP.Net, C#, SmartClient, TFS, jQuery, Ajax, Json, HTML, CSS, Infragistics NetAdvantage, MS Sql Server, IIS 7.0, Crystal Report, OZ Report

담당:
- 윈폼과 스마트 클라이언트 기술을 활용한 ASP.NET 웹폼 기반 건축 자재 관리 시스템 개발.

팀 규모:
3명

상세설명:

ASP.NET 기반 내부용 펀치 컨트롤과 철골 구조 관리 시스템 개발을 담당하였습니다.

웹 UI 컴포넌트로는 ActiveX 의 대체 기술로 알려진 스마트 클라이언트를 사용하였습니다. 스마트 클라이언트는 간단하게 설명하자면 윈폼 컴포넌트를 웹 페이지에서 사용할 수 있게 해주는 기술입니다.

주 단위 미팅에 리드 개발자로 참여하여 고객사에 기술 제안 및 협의를 진행하였습니다.

외환은행 - 서울
외환은행

스킬:
Java, JSP, jQuery, Ajax, Json, HTML, CSS, SVN, VB.Net, VB, Oracle, IBM FileNet API, Xtorm API, JEUS(WAS)

담당:
- 가맹점 신용카드 심사 관리 시스템과 관련된 기업 컨텐츠 관리 솔루션이 활용 VB.NET 데스크탑 앱 개발 및 유지보수.

팀 규모:
4명

상세설명:

내부 신용카드 심사 시스템 개발 및 유지보수를 담당하였습니다.

주요 심사 시스템 외에 이 시스템에 연동되는 다른 프로그램들도 같이 개발 및 유지보수하였습니다. 주요 시스템은 JSP 기반 웹 앱이며 기타 프로그램들은 VB, VB.NET 데스크탑 앱으로 이미지 파일 프로세싱 및 컨텐츠 관리 시스템으로 파일 업로드 기능들로 이루어졌습니다. 모든 시스템은 오라클 데이터베이스와 연동되었습니다.

아래 그림들은 시스템 프로세스를 나타냅니다.

가맹점 신용카드 심사 관리 프로세스 가맹점 신용카드 심사 관리 프로세스

현대건설 - 서울
현대건설

스킬:
ASP.Net, C#, TFS, Javascript, jQuery, Ajax, Json, HTML, CSS, MS-SQL

담당:
- ASP.NET 웹폼 기반 사업 리스트 관리 시스템 개발.

팀 규모:
3명

상세설명:

풀스택 개발자로서 내부 사업 리스크 관리 시스템 개발을 담당하였습니다.

프론트엔드 파트에서 ASP.NET 의 서버 컨트롤들을 사용하지 않고 jQuery, Ajax, Json 을 활용하여 간단하고 가볍고 직관적인 웹페이지를 개발하였습니다.

벡엔드 파트는 RestAPI 를 활용하여 서비스 제공자로 개발하였습니다.

아래 그림들은 시스템 프로세스를 나타냅니다.

사업 리스크 관리 시스템 프로세스 사업 리스크 관리 시스템 프로세스

대한항공 - 서울
대한항공

스킬:
ASP.Net, C#, jQuery, Ajax, Java, RAD, SOAP, SoapUI, WebSphere, Oracle

담당:
- ASP.NET WebForms 와 SOAP 를 활용한 세관 신고 관리 시스템 개발 담당.
- 기존 Pro*C 코드를 자바 SOAP 웹서비스로 대체 작업 담당.

팀 규모:
2명

상세설명:

내부 자바 웹서비스 개발을 3개월 하였고 해당 웹서비스와 연동하는 내부 .NET 기반 세관 신고 시스템을 3개월 동안 개발하였습니다.

자바 개발의 경우, 기존 ProC 로 작성되어 있던 코드를 SOAP 1.1 을 사용한 자바 웹서비스로 재작성하였으며 WSDL, SoapUI 에 대한 지식을 쌓았습니다. 이를 위해 기존 코드를 분석하고 이해하였고 이를 바탕으로 자바로 재작성시 서비스 반응 시간을 두 배 이상 향상시켰습니다.

닷넷 개발의 경우, 내부 기 제공된 자바 웹서비스와 연동을 하였습니다.

아래 그림들은 제 작업의 샘플들입니다.

SoapUI 에서의 웹서비스 테스트 화면 SoapUI 에서의 웹서비스 테스트 화면.

WSDL 샘플 WSDL

RAD 에서의 웹서비스 테스트 페이지 RAD (Rational Application Developer) 에서의 웹서비스 테스트 페이지

씨에스 정보통신 - 서울
NIA

스킬:
JSP, Java, Struts, Javascript, HTML, CSS, WebLogic, Sybase

담당:
- 중앙정부 공공사업 사전협의 시스템 개발 담당.

팀 규모:
3명

상세설명:

세 명의 개발자와 한 명의 프로젝트 매니저로 구성된 팀에서 메인 개발을 담당하였으며 짧은 프로젝트 기간으로 인해 비슷한 타 시스템을 복사하여 커스터마이징을 진행하였습니다. 메인 개발자로서 개발 환경 구축 작업을 같이 담당하였으며 다른 두 신입 개발자들 멘토링도 같이 하였습니다.

아래 그림들은 시스템 프로세스를 보여줍니다.

공공사업 사전협의 시스템 프로세스 공공사업 사전협의 시스템 프로세스

에스엔디컨설팅 - 서울
포트폴리오 관리 시스템

스킬:
C#.Net, Infragistics NetAdvantage, Daishin Securities API, MS-SQL

담당:
- 증권사 실시간 트레이닝 API 연동된 주식 포트폴리오 관리 시스템 개발 담당.

팀 규모:
2명

GS ITM - 서울
uniERP

스킬:
ASP, ASP.Net, C#, VB, JSP, Java, Javascript, HTML, CSS, MS-SQL, Oracle, Tomcat 6

담당:
- uniEPR 솔루션 및 커스터마이징된 ERP 시스템들 개발 및 유지보수 담당.

팀 규모:
4명
Forever21 한국 지사 - 서울
Forever21 본사 - 미국 로스앤젤레스
Forever21 매장 사진
Forever21 창고 그림

스킬:
C#.Net, VB.Net, VB, Farpoint Spread, Label and Tag printer, Wireless PDA, Crystal Report, MS-SQL

담당:
- 구매, 유통 시스템 개발 담당.

팀 규모:
8명

Details:

Forever21 은 패스트 패션 회사로 내부적으로 구매, 유통, 판매를 같이 하는 회사로 라이벌 회사로는 H&M, 자라, 유니클로가 있습니다.

여기서 저는 IT 부서의 구매, 유통팀에서 일했으며 내부 구매 및 물류 시스템 개발을 담당하였습니다. 특히, 구매, 할당, 분배, 물류 파트를 주로 담당했으며 박스 라벨 프린팅, 가격표 프린팅 및 배송 프로그램들도 같이 담당하였습니다. 이 프로그램들은 VB, Farpoint Spread, Crystal Report 와 마이크로소프트 SQL 서버를 사용하였습니다. 그리고, 가격표 및 가격 스티커 프린팅 프로그램과 무선 PDA 스캐너를 이용한 물류창고 스캔 프로그램들을 C# 으로 개발하였습니다. 또한, ASP 기반 매장 인트라넷 개발에도 일부 참여하였습니다.

아래 그림들은 구매,유통 시스템에서 제가 맡았던 업무들과 관련된 그림들입니다.

Forever21 구매, 유통 시스템 프로세스 구매, 유통 시스템 프로세스

가격표 프린터
가격표
가격표 및 Paxar 태그 프린터

Zebra 라벨 프린터
작은 Zebra 라벨 프린터
박스 라벨 프린터들

UPS
UPS 라벨
저울
UPS 배송 라벨과 저울

무선 PDA 스캐너 무선 PDA 스캐너

개인 프로젝트


스킬:
Flutter, Dart, Bloc, AdMob, GitHub, Firebase, CodeMagic

상세설명:

모바일 앱 개발자로 일하면서 직접 만든 앱을 하나 만들고 싶어서 작은 도구 앱을 하나 만들었습니다. 언젠가 아이들이 자기들 한국 용돈이 유로로 얼마냐고 자주 물어봤었는데 그럴때마다 환율을 조회해서 애들한테 알려줬었습니다. 그러다가 문득, 이걸 자동화해서 아이들이 직접 변환된 금액을 확인할 수 있으면 좋겠다고 생각했습니다. 그러면서 아이들이 환율때문에 금액이 매일 바뀐다는 걸 알고 조금이나마 개념을 이해할 수 있으면 좋겠다고 생각했고 여기서 아이디어를 얻었습니다.

이 앱에서는 Frankfurter 서비스 라는 유럽 중앙은행에서 환율 정보를 가져오는 무료 서비스를 사용했습니다. 그리고, 이를 사용한 플러터 패키지를 사용했습니다. 환율은 실시간이 아니며 유럽 중앙은행의 배포일자와 동일하게 휴일을 제외한 매일 CET 오후 4시에 업데이트됩니다.

플러터 상태 관리 라이브러리로는 잘 구조화되어있고 엄격해서 제가 선호하는 Bloc (Business logic component) 을 사용하였습니다.

파이어베이스의 클라우드 메시징, 리모트 설정, 크래쉬틱스 같은 일부 기능들을 사용하였습니다.

또한, 이 앱은 34 언어를 지원하고 있습니다. 제가 모든 언어를 말할 수 있다면 좋겠지만 그렇지 않아서 구글 번역기와 디플을 사용하는 auto_translator 플러터 패키지를 사용하여 쉽게 번역을 할 수 있었습니다.

이 앱을 완성했을 때, 앱 개발 비용도 좀 커버할 수 있으면 좋겠다고 생각해서 구글 애드몹을 사용하여 광고도 추가했습니다. 이 비용을 커버할 수 있을지는 모르겠지만 그렇게 되기를 바랍니다.

이 앱을 개발 및 배포하면서 크로스 플랫폼 모바일 앱 개발의 처음부터 마지막까지를 혼자 힘으로 다 경험할 수 있어서 좋았습니다. 물론, 모바일 개발자로 일하면서 거의 대부분의 부분은 다 경험해 봤지만 일부는 권한 문제때문에 경험할 수 없었는데 마지막 퍼즐이 완성된 것 같아 뿌듯합니다.


App Links:

      Android                  iOS

Android App iOS App

스킬:
Jekyll, GitHub Pages, Bootstrap, Clean Blog Jekyll theme

상세설명:

독일 베를린으로 넘어오면서 더 프로페셔널한 개인 웹사이트를 만들기로 결정하였습니다. 조사 결과 깃헙에서 깃헙 페이지로 데이터베이스 없이 웹사이트를 서비스할 수 있다는 사실을 알고는 충격을 먹었습니다. 심지어, 아주 개발자스러운 무료 도메인과 호스팅까지 제 깃헙 계정으로 운영이 가능했습니다. 그래서 마크다운으로 쉽게 글을 작성할 수 있는 Jekyll 기발 깃헙 페이지 웹사이트를 만들기로 했습니다.

Clean Blog 라는 맘에 드는 테마를 찾았고 이를 기반으로 저만의 블로그를 만들었습니다. 하지만, 기존 테마와 다르게 저는 제 기술 블로그와 개인 블로그를 다 담고 싶었기에 커스터마이징이 필요하였고 다행히 제공되는 플러그인들을 사용해 이를 해결하였습니다.

여러분이 보고 계신 이 블로그가 제 결과물이며 무려 약 2주 정도의 시간으로 이런 블로그를 만들 수 있다는 사실에 최신 기술들을 왜 배워야 하는지 깨닫게 되었습니다.