news logo


이 책을 추천합니다! “실용주의프로그래머”


실용주의 프로그래머는 어떻게 되는 걸까? 프로그래머는 어떻게 되는 걸까? 이 책은 우리가 접하고 있는 OOP, 구조적 프로그래밍, 컴포넌트 기반 개발, 디자인 패턴 등 프로그래밍의 수많은 이론과 방법의 공통 요소에 대해 명쾌한 비유와 설명, 실용적인 예시로 우리의 궁금증을 풀어줍니다. DRY나 직교화 같은 개념을 이해하고 나면 예로 들었던 수많은 방법론들이 어떤 필요성에서 출발해서 왜 이런 형태로 존재하고, 또 앞으로는 어떻게 나아갈 것인지에 대한 포괄적인 이야기를 합니다. 책에서 개발자가 반드시 체크하고 지켜야 할 팁을 70가지를 제공하는데 각 챕터마다 무겁지 않고 재미있는 비유를 통해서 독자에게 재미와 명쾌한 설명을 줍니다. 특히 제공하는 70가지 팁 중에서 강조하는 것은 DRY 원칙과 테스트입니다.

1. DRY 원칙 : "Don't Repeat Yourself" : DRY 원칙은 한마디로 중복을 없애고 반복 작업을 하지 않는 것입니다. 반복적으로 수행해야 하는 일은 모두 자동화하고, 만약 클래스 작성 시 비슷한 코드가 중복되거나 같은 동작을 하는 클래스들이 있으면 서로 합치고 리팩토링을 합니다.

2. 일찍 테스트하고 자주 테스트하라. 자동으로 테스트하라. 모든 테스트가 통과하기 전에 코딩이 다 된 게 아니다. : 매번 빌드 할 때마다 실행되는 테스트가 책꽂이의 테스트 계획보다 훨씬 효과적입니다. 해당 버그를 확인할 수 있게 자동화 테스트를 작성해두고 해당 계속 주시하여야 합니다.

저자가 제공하는 70가지 팁들은 특정 언어나 환경 기술에 얽매이는 것이 아니라 어떤 개발자 건 간에 현실적인 상황에서 쓰는 법을 알려주고 있으며 지루하지 않은 설명으로 서술한 책으로 개발자라면 꼭 읽어야 하는 추천도서에도 많이 언급된 만큼 사우 여러분들도 한 번씩 읽어보면 도움이 될 것 같습니다.

<실용주의 프로그래머 표지>

우리의 삶을 윤택하게 해 주는 가상현실

 

얼마전 스폐인 바르셀로나에서 세계 최대 모바일 전시회인 모바일 월드 콩그레스(MWC)2016 이 열렸습니다. 총 9만8000m² 규모의 전시장에서 나흘간 열리는 행사입니다. MWC에서 가장 돋보였던 주제는 가상현실(VR)이였습니다. 전시장을 가득 메운 업체들은 부스 가운데 가상현실 체험을 제공하는 곳이 다수였습니다. 삼성전자와 엘지전자가 개막 전부터 차기 프리미엄 스마트폰과 가상현실 관련 기기를 선보인 것을 비롯해 노키아, HTC등 에서도 제품을 선보였습니다.

<가상현실을 체험하는 관객들>

가상현실(VR) 기술과 콘텐츠를 기반으로 한 생태계 구축에 업계의 관심이 급증하면서 응용 산업으로도 시선이 쏠리고 있습니다. 전문가들은 향후 10년 동안 VR 기술을 주도할 3대 킬러 콘텐

 


츠로 게임, 스포츠 중계, 그리고 포르노(성인 영상)를 꼽고 있습니다. 글로벌 스마트폰 3위 제조업체인 중국 화웨이의 리처드 유 컨슈머비즈니스그룹 최고경영자(CEO)는 이날 “3년 안에 시장 점유율 2위, 5년 안에 1위로 올라서겠다”고 포부를 밝혔습니다. 올해 화웨이는 VR 헤드셋 등 모바일 생태계를 확장시킬 제품을 대거 내놓을 계획을 가지고 있습니다. ‘왕년의 글로벌 1위’ 노키아도 기자간담회를 열고 스마트폰을 비롯한 디바이스 시장에 다시 도전할 계획이라고 발표했습니다. 이렇게 앞으로의 IT기술을 선도할 VR에 대해서 자세히 알아보겠습니다. VR은 ‘Virtual Reality’의 약자로. 그 사

전적 의미는 ‘컴퓨터의 기술을 응용하여 실제가 아닌 인공적인 환경을 구축하여 그 속에서 인간이 새로운 체험을 하는 새로운 기술’입니다. 사전적인 내용만 보면 AR과 헷갈릴 수도 있는 내용입니다. 하지만 AR과 VR은 확실히 다른 차이가 있습니다. VR(가상현실)은 ‘가상의 공간 속에 구현된 현실’, 즉 가상의 현실을 만들어 사용자가 현실처럼 체험할 수 있게 하는 것이고, AR(증강현실)은 ‘현실 속에 추가된 가상’, 사용자의 현실과 관련한 정보를 이용하여 현실 속에서 가상적 요소를 체험할 수 있게 하는 것에 중점을 두는 것입니다. VR의 경우는

사용자가 가상공간을 현실처럼 느끼게 하는 것이 중요합니다. 이러한 VR은 앞으로 우리 생활에 많은 영향을 줄 것입니다. 모니터를 통해서만 즐길 수 있었던 3D 게임들이 가상 체험을 통해 게임을 할 수 있게 된 것이 그 첫 번째 예입니다. 머리의 움직임을 반영한, VR을 지원하는 기기와 몸의 움직임을 읽어내는 트레이드밀이 결합하여 사용자의 움직임을 게임에 반영할 수 있게 되었기 때문입니다. 한 번쯤은 내가 게임 캐릭터가 되어봤으면 하고 모두 생각해 보셨을 겁니다. 가상현실 기기를 이용하면 사용자가 게임 캐릭터가 되어서 게임 속 공간에서 몬스터와 싸우고, 아이템을 얻을 수 있습니다.


<게임에서 활용되는 가상현실>


두 번째로는 각종 시뮬레이션이 있습니다. 가상현실을 사용자가 직접 체험할 수 있다는 면에서, 모의 체험, 사고 예방 훈련 등에 사용될 수 있습


니다. 지진이나, 해일 등의 자연재해뿐 아니라 화재, 건물 붕괴 등 재난 시를 대비한 비상대처 교육을 보다 쉽게 할 수 있을 것으로 생각합니다. 실제로 세이프텍리서치의 선박 운항 시뮬레이터 시스템 등이 해군의 조함 훈련 등에 사용되고 있습니다. 또 운전면허 시험을 위한 가상 운전체험이 사용되고 있습니다. 미국, 유럽 등에서는 이미 소방훈련이나 군사훈련 등에 VR을 이용하고 있습니다. 이외에도 대학 수업에서의 활용, 의료 수술 사전 연습, 자동차 시승 체험 등에서도 밝은 전망을 보여주고 있습니다.


<실제 가상 소방 훈련 중인 사진>


세 번째로 스포츠의 확장이 있습니다. 평소에 쉽게 도전하기 어려운 익스트림 스포츠, 가상세계에서는 스카이다이빙이나 산악자전거를 위험하지 않게 할 수 있을 것입니다. 쉽게 접할 수 없었


던 어려운 익스트림 스포츠에 입문할 수 있는 계기가 될 수 있을 것으로 예상됩니다. 이렇게 방대한 가능성을 지니고 점차 발전하는 VR, 이에 발맞추어 VR을 지원하는 사이트 역시 점차 많아지고 있습니다. 유튜브의 ‘유튜브360’에 이어 페이스북에서도 360영상을 지원할 계획이라고 합니다.

최근 화제가 되었던 VR 영상을 소개해 보려 합니다. 모바일로 보시는 분들은 영상을 손가락으로 끌거나 기기를 돌려 각도를 변경하시면 되고, PC이신 분들은 웹 브라우저의 최신 버전을 통해 영상을 감상하실 수 있습니다. (VR링크)

 

웹 보안을 위한 이해와 가이드

 

안전한 웹 보안을 위해서는 개발자가 웹 보안 원리에 대해 충분히 이해하고 시스템에 적합한 웹 보안 체계를 구축해야 됩니다. 웹 보안을 위한 방법 중 가장 중요한 서버시스템 보안과 웹 애플리케이션 보안에 대해 설명하겠습니다.

웹 보안을 위해 먼저 서버시스템 보안을 해야 합니다. 서버시스템은 대부분 운영체제와 연관됩니다. Windows, Linux, Unix 등 운영체제에 관련된 개발을 하는 개발자는 주기적인 보안 업데이트 및 패치를 통하여 웹 위협에 대응합니다.

특히 많이 사용하는 리눅스는 새로 설치하게 되면 대부분 기본 값으로 보안설정이 되어있지 않습니다. 그러므로 꼭 서버 운영 시 보안 설정을 해야 합니다. 리눅스의 보안 설정으로 간단히 5가지를 설명하면 아래와 같습니다. 첫 번째, SSH는 아이디/패스워드만 알면 로그인이 가능하므로 root 계정 직접 로그인을 차단해야 합니다. 두 번째, 특정 계정만 su 명령을 사용할 수 있게 해야 합니다. 세 번째, 일반계정 접속 시 홈 디렉토리 이외의 상위 디렉토리를 노출하며 읽기 권한을 갖고 있기 때문에 디렉토리 권한을 변경합니다. 네 번째, 웹 서버를 운영하면 tmp 디렉토리 역할이 중요하므로 tmp 파티션을 따로 설치하는 것이 좋습니다. 마지막으로 리눅스 해킹의 대부분은 SetUID, SetGID을 이용해 이루어지고 있으므로 꾸준히 점검해주는 것이 좋습니다. 다음으로 웹 애플리케이션 보안이 있습니다. 안전한 웹 보안을 구축하기 위해선 안전한 웹 애플리케이션 보안 구축이 필연적입니다. 웹 애플리케이션을 보안하기 위해선 설계 단계부터 보안을 고려하는 코드를 작성하는 시큐어 코딩, 외부 통신을 통하여 잠재적인 취약점이나 설계상의 취약점을 분석하는 웹 스캐너, 웹을 통한 외부의 침입이나 웹 공격을 탐지하고 대응하는 웹 방화벽, 데이터를 암호화하는 데이터 보안,

크로스 도메인 등이 있습니다. 하지만 위와 같은 시스템을 구축한 것만으로는 안전한 웹 보안은 달성할 수는 없습니다. 지속적인 관리를 통해 보안 상태를 확인하고 보완하는 과정이 필수적으로 동반되어야 합니다.

 

[강추기사모음] 이 기사 보셨나요?


이 코너에서는 함께 공유하면 좋을만한 기사들을 선정해 보았습니다. 기사 제목을 선택하시면 해당 페이지로 이동합니다. 잘 알려지지 않은 기사중에서 다른 직원들과 나누고 싶은 정보가 있다면 뉴스레터 편집실로 알려 주세요.

 

[컴퍼니 리뷰]<9>아틀라시안(Atlassian) (출처:전자신문/2016.1.24)

 

개발자를 위한 아는 척 매뉴얼

(출처:ZDNet Korea/2016.2.1)

 

추억의 도스게임 2천600개 무료로 제공 (출처:ZDNet Korea/2016.2.15)

 

<웹진 163호 : 공학 트렌드> 프로젝트 수행 - 팀 구성 편 (출처:SW공학센터/2016.2.13.)

 

 

 

개발자를 위한 10가지 철학

(출처:ZDNet Korea/2016.2.22)

 

연봉 인상을 노린다면... '핫' IT 스킬 20선

(출처:CIO Korea/2016.2.19)

 

함수 언어 : 3대 함수 언어 전문가가 말하는 정체와 역할

(출처:IT World/2016.2.20)

 

“세상을 프로그래밍하라” 사물 인터넷 시대의 필수 개발 기술 12가지

(출처:IT World/2016.2.20)

 

토픽 브리핑 | 인기 최정점에 선 머신러닝에 대해 알아보자

(출처:IT World/2016.2.12)