Korea Evangelist

Developer & Platform Evangelism, Microsoft Korea

  • Korea Evangelist

    클라우드 모바일 서비스 서버 로직을 .NET으로! - Microsoft Azure Mobile Service의 .NET backend (1)

    • 0 Comments

    안녕하세요, 김대우입니다.

    이번에 소개해 드릴 내용은 Azure 모바일 서비스의 .NET 백엔드 입니다.

    클라우드 모바일 서비스 서버 로직을 .NET으로! - Microsoft Azure Mobile Service의 .NET backend (1)
    클라우드 모바일 서비스 서버 로직을 .NET으로! - Visual Studio로 개발과 배포를 한방에! (2)

    클라우드 모바일 서비스 서버 로직을 .NET으로!–한걸음 더, .NET으로 암호화 루틴 추가해 보기 (3)

    Microsoft Azure Mobile Service는 소개해 드렸던 것처럼, Android 앱, Windows 8 스토어 앱, Windows Phone 8 앱은 물론, iOS와 같은 모바일 앱을 위한 서버 측 서비스를 단 몇 분만에 쉽게 구축 가능하도록 돕는 클라우드 서비스 입니다.

    기억 하실지 모르겠습니다. 본 내용은 예전에도 소개해 드렸던, 동영상 강좌 부분이에요.

    [안드로이드 앱을 위한 모바일 서비스]

    안드로이드 개발자를 위한 Windows Azure Mobile Service 소개 (1/6)

    안드로이드 개발자를 위한 Windows Azure Mobile Service를 이용한 백엔드 데이터 처리 (2/6)

    안드로이드 개발자를 위한 Windows Azure Mobile Service 서버 스크립트 (3/6)

    안드로이드 개발자를 위한 Windows Azure Mobile Service를 이용한 페이징 처리 구현 (4/6)

    안드로이드 개발자를 위한 Windows Azure Mobile Service로 구축하는 인증(Authentication) 서비스 - Microsoft id, Facebook id, Twitter id, Google id (5/6)

    안드로이드 개발자를 위한 Windows Azure Mobile Service 푸쉬 알림(Push Notification) 서비스 구축 - WNS(WPNS), APNS, GCM (6/6)

    [윈도8 스토어앱을 위한 모바일 서비스]

    Windows Azure Mobile Service 소개 (1/7)

    Windows Azure Mobile Service를 이용한 백엔드 데이터 처리 (2/7)

    Windows Azure Mobile Service 서버 스크립트 (3/7)

    Windows Azure Mobile Service를 이용한 페이징 처리 구현 (4/7)

    Windows Azure Mobile Service로 구축하는 인증(Authentication) 서비스 - Microsoft id, Facebook id, Twitter id, Google id (5/7)

    Windows Azure Mobile Service 푸쉬 알림(Push Notification) 서비스 구축 - WNS(WPNS), APNS, GCM (6/7)

    Windows Azure Mobile Service 의 서비스 확장(Scale)과 분석 및 모니터링 (7/7)

    이번에 소개해 드릴 내용은 클라우드 서비스측의 처리 부분이 Javascript로 구성되어 있었는데요, 이 서버 로직 부분을 바로 .NET으로 처리 가능하다는 의미 입니다.

    Azure_Mobile_Service_backend01_thumb.png

    기존 Javascript를 이용해 브라우저에서 서버 로직을 구성하는 화면

    Javascript로 서버 로직을 처리할 경우에도 물론 장점이 있고, .NET으로 할 경우 역시 장점이 있습니다.

    이번 시간에는 조금 더 깊게 .NET 백엔드의 장점에 대해서 알아 볼 예정이에요.

    .NET 백엔드에는 과연 어떤 장점이 있을까요?

    Microsoft Azure Mobile Service의 .NET backend의 장점


    - 백엔드 로직을 .NET Web API로 처리

    기존 Javascript로 처리하는 방식은 브라우저 상에서 스크립트로 구성하는 형태였죠. 디버깅의 어려움도 있었고, 스크립트 오류에 대한 처리도 쉽지 않았습니다. 이번에 추가된 .NET 백엔드를 이용하실 경우에 .NET의 강점을 살려서 Visual Studio로 개발/디버깅/API 루틴화가 가능합니다.

    - 데이터 처리 암호화 및 쿼리, 페이징 등 다양한 구조의 서비스 통합
    .NET의 장점을 살린 부분이지요. Javascript로 물론 암호화 처리 등이 안되거나 페이징이 안되는 것은 아닙니다. 얼마나 더 쉽게, 얼마나 더 높은 생산성을 제공 가능한가가 우리의 관심사겠지요. .NET 벡엔드를 이용하신다면? 아주 쉽고 빠른 서비스 통합을 구현 가능합니다.

    - Azure Active Directory 사용

    LOB 앱을 구성하실 경우 AAD 인증이 필요할 수 있습니다. .NET 백엔드를 이용하시면 이 과정을 구현 가능합니다.(현재 Javascript로는 구현이 불가능합니다.)

    - 오프라인 앱 기능 지원

    모바일 앱의 특징인 오프라인시에도 이용 가능하도록 오프라인 기능을 .NET 백엔드로 쉽게 구현 가능해요. 이 내용도 역시 추후에 포스팅을 통해 풀어 보도록 하겠습니다.

    - 로컬 디버깅(Visual Studio)

    개인적으로, 가장 큰 이유가 아닐까 합니다. Visual Studio 디버깅이 가능하기 때문에 개발 과정에서의 디버깅은 물론, Azure에서 실 서비스 중에서도 디버거를 붙여(attach) 디버깅을 하실 수 있습니다. .NET에 익숙하신 분들이라면 이게 얼마나 큰 혜택인지 아실거에요.

    - .NET의 강점을 살린 유연한 데이터 모델

    EF 등의 다양한 데이터 처리 루틴을 이용해 Azure SQL Database나 저장소 등의 연동 처리를 쉽게 구현 가능합니다. 물론 PG사 연동이나 우리 서비스에 꼭 필요한 타사 제공 API 서비스와의 연동도 더 쉽고 빠르게 구현 가능하실 거에요.

    대략 느낌을 받으시는 것처럼, ASP.NET이나 ASP.NET Web API를 사용해본 경험이 있으시다면 느낌이 빡! 오실거에요. 그냥 ASP.NET Web API를 모바일 서비스에 철커덩 붙인 그느낌 그대로 입니다.

    하지만, 클라우드 기반 모바일 서비스의 특화된 기능들 모두 그대로 이용하면서 .NET으로 처리가 가능하다는건 크나큰 혜택이겠죠.

    Azure_Mobile_Service_backend02_thumb.png

    Azure Mobile Service 구성도 

    자 이렇게 해서 간단히 Microsoft Azure Mobile Service의 .NET backend를 사용하는 이유에 대해서 알아 보았습니다. 다음 시간에는 실제로 구현하는 과정을 알아보고, 이어서 암호화 처리 루틴을 .NET 백엔드로 실제 구현하는 예제도 말씀 드리도록 할게요. 감사합니다.

    클라우드 모바일 서비스 서버 로직을 .NET으로! - Microsoft Azure Mobile Service의 .NET backend (1)
    클라우드 모바일 서비스 서버 로직을 .NET으로! - Visual Studio로 개발과 배포를 한방에! (2)

    클라우드 모바일 서비스 서버 로직을 .NET으로!–한걸음 더, .NET으로 암호화 루틴 추가해 보기 (3)

    [참고링크]

    안드로이드 개발자를 위한 Windows Azure Mobile Service 소개 (1/6)

    안드로이드 개발자를 위한 Windows Azure Mobile Service를 이용한 백엔드 데이터 처리 (2/6)

    안드로이드 개발자를 위한 Windows Azure Mobile Service 서버 스크립트 (3/6)

    안드로이드 개발자를 위한 Windows Azure Mobile Service를 이용한 페이징 처리 구현 (4/6)

    안드로이드 개발자를 위한 Windows Azure Mobile Service로 구축하는 인증(Authentication) 서비스 - Microsoft id, Facebook id, Twitter id, Google id (5/6)

    안드로이드 개발자를 위한 Windows Azure Mobile Service 푸쉬 알림(Push Notification) 서비스 구축 - WNS(WPNS), APNS, GCM (6/6)

    Windows Azure Mobile Service 소개 (1/7)

    Windows Azure Mobile Service를 이용한 백엔드 데이터 처리 (2/7)

    Windows Azure Mobile Service 서버 스크립트 (3/7)

    Windows Azure Mobile Service를 이용한 페이징 처리 구현 (4/7)

    Windows Azure Mobile Service로 구축하는 인증(Authentication) 서비스 - Microsoft id, Facebook id, Twitter id, Google id (5/7)

    Windows Azure Mobile Service 푸쉬 알림(Push Notification) 서비스 구축 - WNS(WPNS), APNS, GCM (6/7)

    Windows Azure Mobile Service 의 서비스 확장(Scale)과 분석 및 모니터링 (7/7)

    Windows Azure 90일 무료 평가판 - Windows Azure Mobile Service도 사용 가능

    Windows Azure Mobile Service 공식사이트 - Android, iOS, Windows 8, Windows Phone 8

    Windows Azure 공식 웹사이트

    Windows Azure Mobile Service 튜토리얼 웹사이트

    [동영상 강좌] (1) Windows Azure 개요
    [동영상 강좌] (2) Windows Azure 웹 사이트
    [동영상 강좌] (3) Azure에서 실행되는 ASP.NET 웹 사이트 만들기
    [동영상 강좌] (4) Windows Azure 클라우드 서비스
    [동영상 강좌] (5) Cloud Service 프로젝트 처음 만들어보기
    [동영상 강좌] (6) 기존 ASP.NET 웹 사이트를 Windows Azure로 옮기기
    [동영상 강좌] (7) Windows Azure 가상 컴퓨터
    [동영상 강좌] (8) Windows 가상 컴퓨터 소개
    [동영상 강좌] (9) SQL 데이터베이스 소개
    [동영상 강좌] (10) SQL 데이터베이스 실습하기
    [동영상 강좌] (11) Windows Azure 저장소
    [동영상 강좌] (12) Windows Azure 저장소 실전 예제 살펴보기
    [동영상 강좌] (13) Windows Azure 서비스 버스
    [동영상 강좌] (14) 서비스버스 Queue와 Topic
    [동영상 강좌] (15) 클레임 기반 인증 구현하기
    [동영상 강좌] (16) 확장성 전역성 높은 가용성을 지닌 앱 만들기
    [동영상 강좌] (17) 캐시 클러스터를 이용하여 신축성있는 클라우드 서비스 만들기
    [동영상 강좌] (18) 트래픽 관리자를 이용한 24x365 글로벌 서비스 구축하기
    [동영상 강좌] (19) WPNS와 Windows Azure로 알림 서비스 구현하기
    [동영상 강좌] (20) Windows Azure 미디어 서비스 API 활용하기

  • Korea Evangelist

    앱 개발 모임 시즌4 에피소드 6

    • 0 Comments

    WP_20140724_21_31_17_Pro

    앱 개발 모임 시즌4의 6번째 모임 후기입니다. (지난 5번째 모임은 제가 출장 관계로 불참해서 후기를 올리지 못 했습니다.)

    원래는 2주 전에 모임을 하려고 했는데 MVP 행사와 겹치는 일정이 되어서 한달 만에 모임을 갖게 되었습니다. 앱 개발 모임에서 4명이 신규로 MVP가 되었고 기존 MVP 분들 중에도 참석하시는 분들이 있어서요.

    왼쪽부터 김영재 MVP, 이종인 MVP, 박문찬 MVP(유영천 MVP는 사진 누락)

    이번 모임은 4주 만에 하는 모임인데다 비도 오고 해서 출석율이 약간 낮았던 것 같습니다. 피자를 먹으면서 늦게 오시는 분들을 기다리며 각자 앱 개발도 하고 여러 가지 정보를 공유했습니다.

    예를 들면, 앱 아이콘을 만들어 주는 로고 메이커가 아쉽게도 윈폰8.1은 아직 지원하지 않아 아쉽다라던지, 윈폰8.1의 ListView에서 좌측 끝을 터치하면 나오는 선택 메뉴 기능 등을 공유했습니다.

    WP_20140724_21_31_24_Pro

    그리고 각자 진행 중인 앱 개발 프로젝트를 공유했습니다.

    DesignMe / 이종인님 – 현재 유니버설 앱 프로젝트로 스킨 개인화/언어 변경/화면 전환 등의 기능을 구현

    MoneyBook / 강한별님 – 기존에 윈폰8로 되있던 프로젝트를 윈폰8.1로 새롭게 구현. 가계부의 수입/지출 기능 및 기본 적인 UI 구현 완료

    WP_20140724_21_31_40_Pro    

    MarkPad / 김영재님 – 오픈소스 마크다운 에디터인 MarkPad를 수정하여 링크를 IE에서 오픈할 수 있도록 수정. 그 밖에 3D Printer WPF 앱 포팅 중

    ProjectD / 유영천님 – DirectX 기반에서 만든 3D MMORPG 게임을 윈폰으로 포팅 중. 게임 화면에 진입하여 UI 및 기본 조작 가능하도록 하고 게임 플레이 가능한 수준까지 성공

    ScreenShot Autocut / 박문찬님 – 기존에 업로드한 디아블로 스크린샷 자동 자르기 앱을 기능 추가 업데이트 중

    마지막으로 한가지 놀라운 소식인데 앱 개발 모임의 회원인 이준열님께서 앱 개발 컨테스트에 응모하여 윈도우8.1 개인부분에 선정되었다고 합니다. 시크릿 앨범 앱으로 수상을 하였고, 보상으로 미국에서 열리는 F1 포뮬러 경기를 보러 간다고 해요.

    image

    image

    윈도우 앱 개발을 열심히 하면 이런 일도 생긴답니다. 경사네요. (그나저나 다음 모임에서 한턱 쏘신다고 하니 꼭 참석해야 겠네요…)

  • Korea Evangelist

    앱 개발 모임 시즌4 에피소드4

    • 2 Comments

    10452360_771374619574226_559842894757059932_n

    앱 개발 모임 시즌4의 4번째 모임 후기입니다.

    앱 개발 모임이 현재 변화를 고민하고 있습니다. 이번 모임에서는 앞으로 앱 개발 모임을 어떻게 확대해 나가면 좋을지에 대한 토론을 했습니다

    새로 참가하는 분들이 매 모임에서 더 많은 것을 배워가고, 더 많은 사람들이 참여하기 위한 형식을 찾기 위해서요. 디자이너도 참여한다 던지 중급 개발자도 참여할 수 있는 방안을 고민 중인데, 좀 더 구체화가 되면 자세히 말씀 드릴게요. :)

    10366159_771374536240901_7141592659852127229_n

    토론을 하고 나서는 항상 그러하듯 개인 프로젝트 공유시간을 가졌습니다. 일단 제가 먼저 기획과 디자인에 도움이 될만한 정보를 공유 드렸어요.

    10291224_771374696240885_418874020254148038_n

    특히 PowerPoint+Visual Studio 조합에서 사용할 수 있는 Storyboarding이라는 기능을 기획할 때 사용할 수 있다고 소개시켜드렸는데 다들 좋아하시더라고요.

    다음으로는 지난 모임에 처음 참석하셨던 송형근님이 앞으로 만들고 싶은 게임 앱을 잠깐 소개해 주셨습니다.

    10462938_771374866240868_593256301865960022_n

    기존에 아이폰 용으로 만든 것이 있는데 이걸 윈폰용으로도 만들어 보고 싶다고요. 하지만 OpenGL을 지원하지 않아서 DirectX를 사용해야 할까 고민 중이라고 하네요. 저희 모임의 DirectX 장인 유영철 님이 계셔서 어려운 부분이 있어도 해결할 수 있지 않을까 싶어요.

    다음은 이종인님이 현재 진행 중인 DesignMe 신버전의 디자인 과정을 소개해 주셨습니다.

    WP_20140612_20_03_29_Pro

    Adobe의 InDesign 툴을 이용해서 디자인을 진행하는 과정이 신선했습니다. 개발 부분은 소셜 네트워크 인증을 붙이는 것을 진행하였는데 Windows Runtime API가 잘 되어 있어서 쉽게 할 수 있었다고 합니다.

    다음은 역시 신입 회원인 강한별님이 현재 제작 중(60% 개발)인 가계부 앱을 공유해 주셨습니다.

    WP_20140612_20_16_20_Pro

    현재 소프트웨어 공학 전공의 대학생이고 처음 윈폰 앱을 개발해 보고 있는데, 학교에서는 자바를 주로 가르치지만 본인은 C#과 윈폰이 적성에 맞는 것 같다고 하네요.

    마지막으로 DirectX 장인 유영천님이 직접 개발하신 3D MMORPG 엔진 기반의 게임을 유니버설 앱으로 포팅하고 있는 이야기를 들려주셨습니다.

    10411972_771374802907541_8234954560064438037_n

    게임 엔진도 직접 만들다 보니 포팅 해야 하는 dll이 무척 많아서 이 작업을 하는데 무려 3일이나 걸렸다고 합니다. 포팅 과정에서 렌더링을 제외하면 코드 수정이 많지는 않았고, 결과적으로 게임을 실행시키는데 성공해서 사용자 입력을 처리하는 부분만 해결하면 된다고 하네요. 사실, MMORPG 게임이라 윈폰에서 터치로 하기에는 불편하겠지만 개발자의 도전 정신으로 어떻게든 Windows와 Windows Phone 스토어에 꼭 올려 보는 것이 목표라고 해요. 참고로 이 프로젝트를 위해서 Nokia 1520 디바이스를 60여 만원을 주고 개인적으로 구입했다고 합니다. 대단한 열정이죠.

    이번 모임에서 발표하신 분들 중에 지난 주에 비해 가장 많은 발전이 있었던 유영천님과 이종인님께 유료앱을 구매할 수 있는 기프트 카드를 드리기로 했습니다.

    개인 프로젝트 공유 시간이 끝나고 소그룹 모임을 진행했습니다.

    텔레그램 소그룹은 저와 문찬 님만 참석을 하셔서 온라인에 공유한 것(프로토콜 문서 번역 / UI 구조 살펴보기)으로 대체하고 영천님과 국내 개발자의 DirectX 기피증에 대해서 잠깐 토론을 했네요.

    image

    점프스타트 소그룹은 지난 주에 전달한 자료의 숙제 검사(?)를 하고 새로운 실습자료를 전달했습니다. 50%의 참석자가 숙제를 마치셨다고 해요. 앱 개발 모임의 GitHub 그룹 저장소에 실습 자료가 실시간으로 공개되어 있으니 참고하세요.

    _989

    오늘은 비교적 일찍 9시 10분에 모임을 마치고 새로온 분들과 친해질 수 있는 치맥 뒷풀이를 진행했습니다. 앱 개발을 하면서 고민하는 여러 가지 이슈들로 의견을 나누는 즐거운 시간이었습니다.

    이번 후기는 여기서 마치겠습니다. 앱 개발 모임에 참여하시고 싶으신 분은 언제든지 환영입니다. 자세한 내용은 앱 개발 안내서를 참고하세요.

  • Korea Evangelist

    테크데이즈 미니 토요세미나 발표자이신 김희준님을 미리 만나 보았습니다.

    • 0 Comments

    오늘은 카카오에서 PC용 카카오톡 개발자로 근무하고 계신 김희준님을 만나 보았습니다.

    김명신: 안녕하세요. 오랜만에 뵙습니다. 모르시는 분들을 위해서 간단히 본인 소개를 부탁 드려도 될까요?

    김희준: 네, 저는 현재 카카오에서 PC 버전의 카카오톡헤이리북카페을 개발하고 있는 김희준이라고 합니다. 카카오에 합류한지는 6개월 정도 되었고요, 이전에는 마이크로소프트에서 핵심 개발자 지원 팀에 3년간 김명신 부장님과 같이 있었고, 그 이전에는 윈도우 Device Driver를 개발하는 회사에서 근무하였습니다. 2000년부터 개발을 시작했고, 중간에 학교에 다녀온 것을 제외하면 10년차 개발자라고 말씀드릴 수 있을 것 같네요.

    김명신: 무엇보다 이번 테크데이즈 미니 토요세미나에 모실 수 있게 되어서 영광입니다. C++11이다 C++14이다 하여 전 세계적으로 C++ 커뮤니티에서는 C++이라는 언어가 새롭게 조명되고 있음에도 불구하고 국내에서는 개발자를 위한 이렇다 할 자리가 없었는데, 테크데이즈 미니 토요세미나를 통해서 C++ 이야기를 전달할 수 있어서 얼마나 다행이지 모르겠습니다. 먼저 간단한 질문을 하나 드려 보고 싶습니다. 도대체 C++이라는 언어는 어떤 장점이 있을지요?

    김희준: 사실 C++을 사용하는 많은 개발자들이 동의하시겠지만 C++ 언어의 최고의 장점은 역시 성능입니다. 다른 언어에 비해서 컴퓨터와 가장 지근거리에 있는 언어이고, C++을 사용하였을 때 컴퓨팅 파워를 최대한으로 끌어 낼 수 있다는 것이 가장 매력적인 부분이라고 생각합니다. 최근 마이크로소프트가 주최하는 GoingNative라는 행사에서도 Hurb Sutter가 유사한 질문을 한적이 있었어요. 그 때도 역시 C++을 사용하였을 때 얻을 수 있는 최고의 장점은 Performance가 아니겠는가라는 대체적인 공감이 있었지요. 하지만 그 외에도 C++은 상당히 스펙트럼이 넓은 언어입니다. 국내에서는 주로 게임 분야에서 많이 사용되고 있는 것이 사실이지만 전세계적으로 살펴보면 게임뿐 아니라 의료, 공학, 엔터테인먼트, e-commerce 등 다양한 분야에서 C++ 언어가 사용됨을 알 수 있습니다. 그리고 최근 모바일 분야를 필두로한 플랫폼의 다양화가 IT분야의 큰 화두인데요, 역설적일지 모르겠으나 C++은 이처럼 다양한 플랫폼이 상존하는 상황에서 Portability를 고려할 때 최상의 언어입니다. 상용 플랫폼들 중에 C++을 지원하지 않은 플랫폼은 거의 없기 때문이지요. 게다가 최근 C++98/03에 머물러 있는 표준 규격이 C++11으로 완전히 재편 되었을 뿐 아니라 C++14 규격도 상당부문 표준화가 진척된 것으로 알고 있습니다. 기존에 C++ 언어가 가지는 단점 중에 하나로 다양한 라이브러리나 프레임워크 등의 부족을 꼽는 부분이 있었는데요, 최근 C++ 표준화 기구의 움직임을 보면 정말 다양한 라이브러리가 지원될 것으로 보입니다. 이렇게 되면 Cross Platform을 지원하는 가장 강력한 언어가 될 수 있으리라 봅니다.

    김명신: 일부 개발자들 사이에서는 C++ 언어는 배우기 어려운 언어다. 그리고 시대에 뒤쳐진 언어다라는 이야기가 있습니다. C++ 언어가 너무 복잡해서 그런 것은 아닐까요?

    김희준: C++은 매우 강력한 기능들을 갖추고 있고, 다양한 형태로 활용할 수 있기 때문에, 이런 부분이 잘못 비추어진 것은 아닐까 합니다. 게다가 C++의 문법이나 구현 방식들을 교묘하고 현학적으로 사용하는 경우가 간혹 있는데 이는 C++의 강력함을 과도하게 사용한 결과입니다. 실제로 C++ 언어의 규격을 설명하고 있는 문서의 분량은 Java나 C# 규격 문서와 거의 유사합니다. 규격 문서가 언어의 모든 내용을 정밀하게 나타내고 있음을 고려할 때, 다른 언어에 비해서 과도하게 복잡하다거나 사용하기 어렵다는 측면에서는 동의하기 어렵습니다. 물론 스크립트 언어에 비해서는 상대적으로 복잡해 보일 수 있겠으나, 활용도 측면에서 고려해 본다면 반드시 그런 것은 아니지요.

    김명신: 기존 C++언어에 비해서 C++11/14는 어떤 부분이 개선되거나 변경되었을까요?

    김희준: 워낙 많이 변해서 어떤 부분을 꼬집어 말씀 드리기에는 어려움이 있습니다. 개인적으로는 달라진 기능 모두가 다 중요한 것 같습니다. C++ 전문가들 사이에는 완전히 새로운 언어로 탈바꿈 하였다는 평가를 하기도 합니다. 저 또한 유사한 느낌을 많이 받습니다. 이전의 C++가 마치 C언어의 수퍼셋처럼 비추어졌다면 C++11이나 14이 지향하는 방향성은 이와는 전혀 다르다고 평가할 수 있을 것 같습니다.

    김명신: 국내에서는 특히나 게임 산업이 발달해서인지 C++ 개발자의 비중이 높은 편입니다. C++ 개발자로서 계속 C++만 하면 될까요? 아니면 여러 가지 다른 언어들도 같이 살피는 것이 좋을까요?

    이태리우피치희준: 저는 개인적으로 C++ 언어를 많이 쓰고, 좋아하는 언어이지만, JavaScript나 Python과 같은 언어도 비교적 즐겨 쓰는 편입니다. 이러한 스크립트 언어들을 익혀두면, 특정분야에서 상당한 생산성 향상 효과를 볼 수 있습니다. 특정 언어 하나를 고집하기 보다는 수행해야 하는 업무에 맞추어서 여러 언어들을 사용할 수 있다면 좋지 않을까 생각합니다.

    김명신: 그렇군요. 하지만 여러 언어들을 능통하게 잘 구현할 수 있다는 것은 쉽지 않은 일임에 분명한 것 같습니다. 계속해서 새로운 기술을 익혀야 하는 것이 개발자로서 주어진 숙명 같은 것은 아닐까 생각도 드는데요, 개발자가 가져야 하는 기본 소양이랄까 자질이나 능력 같은 것에는 어떤 것이 있을까요?

    김희준: 개발자에게 가장 중요한 것은 원리를 알고자 하는 호기심이 아닐까 합니다. 호기심이 없으면 깊이 있게 살펴볼 수 없고, 결국은 수박 겉핥기 식의 공부가 될 수 밖에 없습니다. 넓게 아는 것도 좋지만 개발자라면 기본적으로 깊이 있는 공부가 필수라고 생각하는데, 원리를 찾고자 하는 호기심 어린 시각이 없이는 깊이 있는 공부를 하기란 쉽지 않을 것 같습니다. 개인적으로 초보 개발자 분들에게는 디버깅을 깊이 있게 공부하라고 조언을 많이 하는 편입니다. 디버깅이라는 것이 단순히 버그를 찾고 수정하기 위한 절차일 뿐 아니라, 결국 코드의 동작원리를 규명하고 그것을 따라 갈 수 있는 가장 좋은 도구이기 때문입니다. 이를 통해서 하나를 깊이 있게 살펴보다 보면 다른 것들도 크게 다르지 않다는 기본적인 원리를 찾아내곤 하지요.

    김명신: C++ 코드를 접하다 보면 과도하게 복잡하게 작성된 코드들을 자주 보게 됩니다. 물론 말씀해 주신 것처럼 디버깅을 통해서 그 원리를 알고 따라갈 수는 있겠습니다만, 항상 그런 여유가 주어지는 것은 아닌 것 같아요. 개인적으로 선호하는 코드 작성 원리랄까 스타일 등이 있을까요?

    김희준: 그 점에 대해서는 저도 개발을 하면서 많이 바뀌었는데요, 처음 개발을 시작할 때에는 우습게도 어려운 코드가 좋다고 생각했습니다. 멋있게 보이기도 하였고요. 하지만 시간이 지나면서 이런 시각은 상당히 많이 바뀌었습니다. 지금 생각에는 “자가설명적(self-describing) 코드”를 작성할 수 있다면 좋지 않을까 생각합니다. 추가적인 문서가 없이도 코드만 살펴보아도 코드의 작성 의도가 한눈에 읽히는 그런 코드가 좋은 것 같아요. 물론 이렇게 작성하는 것이 쉬운 것은 아니겠지요. 말을 잘 하는 사람이란, 쉬운 단어로 정확히 내용을 전달하는 사람이라 하더군요. 저는 소스 코드 또한 그래야 한다고 생각합니다. 현학적인 코드 보다는 쉬운 코드가 훨씬 더 낫다고 생각합니다.

    김명신: 쉬운 코드가 좋다라는 의견에는 저도 상당부문 동의하는 부분입니다. 하지만 실제로 다양한 분야의 개발자 분들을 만나 보면, IT의 활용도만큼이나 개발 자체를 바라보는 시각도 다양한 것 같습니다. 국내 개발자 분들에게 전하고 싶은 말씀이 있으실까요?

    김희준: 저도 개발을 바라보는 다양한 시각이 있다는 것을 알고 있습니다. 실제로 최근에 어떤 모임에 참가하여 중견 개발자분이 하시는 이야기를 듣고 깜짝 놀란��이 있는데요. 코드는 지금 당장 돌아갈 수 있도록 짜면 그만이다라고 말씀하시더라고요. 저는 이러한 시각에는 동의할 수 없습니다. 국내 솔루션들이 대부분 버전 1.0이 나오고는 발전하는 못하는 이유가 당면한 문제 해결을 위해서 단기적인 시각으로 문제를 바라보기 때문이 아닐까 합니다. 문제 해결의 방법은 상당히 다양할 수 있기 때문에, 여러 가능성을 열어두고, 장/단기1적인 대응 방안을 비교 분석하여 올바른 방향성을 모색해야 한다고 생각합니다. 단기적인 처방만으로는 발전을 도모하기 어렵다고 생각합니다.

    김명신: 오늘 말씀 감사합니다. 인터뷰를 하다 보니, 발표하실 세션이 더욱 기대가 되는군요.

    김희준: 제 세션에서는 C++11의 새로운 규격을 설명하기 보다는, 그러한 규격을 어떻게 활용할 수 있는가에 대한 실용적인 측면을 다루고자 합니다. 아직 준비가 많이 부족합니다. 열심히 준비해야 할 것 같습니다.

    김명신: 감사합니다. 수고 많으셨습니다.

    테크데이즈 미니 토요세미나 안내

  • Korea Evangelist

    앱 개발 모임 시즌4 에피소드 3

    • 0 Comments

    10341720_763014493743572_8683753348026380742_n

    앱 개발 모임의 시즌4 3번째 모임을 진행했습니다. 앞으로는 방송이나 드라마에서 흔히 사용하는 시즌/에피소드로 구분하여 후기를 남겨볼까 합니다.

    이번 모임은 꽤 많은 18명이 참석했습니다. 새로 오신 분도 3분이 있었고, 야근 때문에 못 오신다고 하셨던 분들도 4~5분 계셨는데도 많은 분이 참석하셨네요.

    10345809_763036537074701_3266975260189169001_n

    이번 모임 부터는 아래와 같은 시간표로 진행을 했습니다.

    7:00 ~ 7:30 네트워킹, 신규회원 소개, 모임 소식

    7:30 ~ 8:30 저녁식사 & 개인 프로젝트 공유

    8:30 ~ 9:30 소그룹 미팅

    10365852_763015263743495_5876254591513196232_n

    시즌4가 시작한지 벌써 1개월 반이 지났는데, 언제까지 시즌4를 할 것인가를 정했습니다. 기존에 2~3개월은 앱 개발하기에 너무 촉박해서 앞으로는 4개월씩 끊어서 진행하기로 했습니다. 또한, 시즌 사이에 새로운 앱을 기획하고 새 시즌을 준비하는 시간이 필요해서 최대 2개월 정도는 프리 시즌을 진행하기로 했습니다.

    프리 시즌 시즌4 프리 시즌 시즌5
    2개월 4개월 2개월 4개월

    아직 시즌4에 어떤 프로그램을 진행할지 정하지 못 해서 일단은 정식 시즌을 2~4주 후에 진행하기로 했습니다. 프리 시즌 기간에도 격주로 진행하는 정기 모임은 계속 진행하고요.

    10363744_763015517076803_1573402402896241432_n

    개인 프로젝트 공유 시간에는 현재 개발 중인 앱들의 진척 상황을 공유 했습니다. 문찬님은 디자이너 한나님과 Screenshot AutoCut의 다음 업데이트를 준비 중인데 Share/폴더 등의 기능을 추가하신 것을 보여주셨습니다.

    10333569_763033073741714_1688360647816670750_o

    종인님은 Design Me ver.2 개발에 착수했고, 영천님은 ProjectD의 윈폰 포팅을 계획 중이라고 합니다. 윈도우의 경우 키보드/마우스를 동시에 지원해야 하는 요구사항이 없어졌는데 이번 모임에서 알게 되서 다시 도전해 보실 것 같아요. 개인적으로 필요해서 개발 중이신 원드라이브 미디어 스트리밍 앱인 OneDrvPlayer도 조만간 출시될 것 같습니다.

    10329306_763015417076813_5715035471858283791_n 

    새로 오신 한별님은 MoneyBook이라는 윈폰용 가계부 앱이 60% 진행됐다고 공유해주셨고, 또 다른 가계부 앱을 개발 중이신 윤진님도 Pisa라는 프로젝트의 개발이 완료되어 디자이너에게 작업 요청을 했다고 했습니다. 영재님은 라이브보드의 네트워크 버전과 Markdown 에디터를 만들려고 준비 중이라고 합니다.

    10325521_763015520410136_2509324819622457265_n

    개인 프로젝트 공유는 못 했지만 참가하신 분들이 꽤 많아서 앞으로 각자 진행할 앱들이 결정되면 좀 더 많은 공유가 가능할 것 같습니다. ^^

    이후에는 소그룹 미팅을 진행했습니다. 새로 윈도우/윈도우폰 앱 개발을 공부하시는 분들은 JumpStart 소그룹으로, 공동 오픈 소스 프로젝트를 진행해보고자 하시는 분들은 Telegram 소그룹으로 나누어서 진행했습니다.

    10380240_763034790408209_3638970948638969479_o

    JumpStart 소그룹은 인기가 많아서 1/2 이상의 분들이 참가 중이고, 친절한 최한홍 에반젤리스트가 직접 작성한 튜토리얼 문서를 가지고 진행하고 있어요. GitHub에 공유가 되고 있기 때문에 누구나 다운받아서 자습이 가능합니다.

    10363455_763035757074779_604143216888689233_o

    Telegram 소그룹은 윈폰용 오픈소스 클라이언트인 Kilogram을 분석하는 단계에 있습니다. 다음 모임까지 프로토콜과 앱 구조를 분석해서 공유하기로 했습니다.

    10150663_763015407076814_8217633766075006745_n

    그 밖에 어느 소그룹에도 속하지 않은 분들도 조용한 방에서 각자의 프로젝트를 진행하는 뜻깊은(?) 시간을 가졌습니다.

    다음 모임은 6월 13일 목요일 저녁 7시에 진행될 예정입니다. 이번 후기는 여기까지 ���치겠습니다.

    앱 개발 모임에 참석을 원하시는 분은 안내서를 참고하세요. 현재 많은 앱을 개발하셨던 경험 있는 앱 개발자 분들이 앱 개발 모임에서 여러분을 기다리고 있습니다. ^^

Page 8 of 129 (642 items) «678910»