Offcanvas
Some text as placeholder. In real life you can have the elements you have chosen. Like, text, images, lists, etc.
Offcanvas
1111Some text as placeholder. In real life you can have the elements you have chosen. Like, text, images, lists, etc.

코딩

‘자바스크립트의 아버지’ 브렌던 아이크가 전하는 코딩·웹3·암호화폐의 미래 

브렌던 아이크는 자바스크립트 프로그래밍 언어를 처음 창시한 사람으로 유명하다. 지금 브레이브 소프트웨어(Brave Software)의 창업자이자 CEO로 활동하면서, 브레이브 브라우저와 베이직 어텐션 토큰(Basic Attention Token)의 기술을 개발하고 있다. 한때는 모질라 CTO로 일하며 모질라 웹 브라우저를 암흑기에서 건져내는 데 일조하기도 했다. 인포월드는 최근 아이크를 만나 대형 IT 기업의 죄악과 웹 광고 모델의 실패, 브레이브와 베이직 어텐션 토큰의 정책에 대해 대화를 나눴다. 또한 암호화폐 거품, 웹3의 혼란, 블록체인의 비전, 그리고 기업 CEO가 코딩하지 않는 이유에 대해서도 이야기를 나눴다.   매튜 타이슨 : 일단 자바스크립트를 만들어줘서 고맙다는 말부터 해야겠다. 자바스크립트는 웹의 토대 역할을 했고 많은 이들을 프로그래밍 세계로 이끌었다. 그와 별개로 비효율성과 개인정보 보호 실패로 점철된 웹 광고 세계를 개선하기 위해 브레이브 브라우저와 베이직 어텐션 토큰을 만든 것으로 알고 있다. 브레이브는 베이직 어텐션 토큰을 통해 광고 수익을 양도한다고 하는데, 무슨 말인지 자세히 설명을 부탁한다. 브렌던 아이크 : 온라인 광고는 감시 시스템으로 전락했다. 이 감시 시스템은 사용자의 관심으로부터 가치를 훔치고 높은 수수료와 불투명함 시스템을 통해 퍼블리셔를 약탈하고 나아가 광고 사기를 적극적으로 조장한다. 거기다 광고를 교환하는 과정에서 맬웨어를 퍼뜨리기도 한다. 나와 내 동료가 90년대 넷스케이프(Netscape)에서 쿠키와 자바스크립트를 개발할 때만 해도 이런 결과를 의도하지 않았다. 브레이브는 이런 문제를 없애기 위해 사용자를 우선시하고 크롬에서 가장 명확히 볼 수 있는, 에이전트와 주 이해관계의 충돌을 없애려고 한다. 기본적으로 크롬은 사용자가 한 탭에서 구글 계정에 로그인하면 모든 탭과 창에 걸쳐 사용자를 추적한다. 또한 크롬은 기본적으로 추적을 차단하지 않는다. 구글의 비즈니스 모델을 감안하면 당...

자바스크립트 브렌던아이크 코딩 6일 전

"공정 사용 논란에도⋯" 깃허브, AI 코딩 비서 '코파일럿' 출시

깃허브가 (아직 논란의 여지가 있긴 하지만) AI 기반 코딩 비서 ‘코파일럿’을 GA(Generally Available) 버전으로 출시했다. 깃허브 코파일럿의 비용은 월 10달러 또는 연간 100달러다. 하지만 인기 있는 오픈소스 프로젝트의 유지관리자와 학생에게는 무료로 제공되고 60일 무료 평가판도 있다.  2021년까지 기술 프리뷰 상태였던 이 도구는 사용자의 프로그래밍 편집기에 연결해 현재 맥락을 기반으로 코드와 함수를 제안한다. 업체에 따르면 코파일럿은 완전한 메소드, 상용구 코드, 단위 테스트, 심지어는 복잡한 알고리즘까지 제안할 수 있다. 이 ‘AI 페어 프로그래머’ 도구는 깃허브의 퍼블릭 리포지토리에 있는 코드를 포함해 공개적으로 사용 가능한 수십억 줄의 소스코드와 자연어를 학습한 언어 모델 오픈AI 코덱스(OpenAI Codex)를 기반으로 한다. 한편 자유 소프트웨어 재단(Free Software Foundation)은 코파일럿에 대해 “용납할 수 없고 부당하다”라고 지적했다. 재단은 무료 라이선스 소스코드로 AI 모델을 학습시킨 것이 공정 사용에 해당하는지 의문을 표했으며, 해당 도구를 쓰려면 무료가 아닌 소프트웨어를 실행해야 하기 때문에 “소프트웨어 대체 서비스”라고 비판했다.  편집기 확장 프로그램인 코파일럿은 네오빔(Neovim), 비주얼 스튜디오(Visual Studio), 비주얼 스튜디오 코드(Visual Studio Code), 젯브레인 IDE(JetBrains IDE)를 비롯한 편집기와 통합된다. 기술 프리뷰에는 지난 12개월 동안 120만 명의 개발자가 참여했다. 깃허브는 AI 기반 코딩이 개발자로 하여금 코드를 더 쉽게 작성할 수 있도록 해 소프트웨어 개발의 성격을 근본적으로 바꿀 것이라고 주장했다. ciokr@idg.co.kr

깃허브 AI 코딩 비서 코딩 2022.06.23

"이번엔 성공할까" 구글, 로우코드 플랫폼 '버텍스 AI' 업데이트

로우코드/노코드 플랫폼에 대한 관심 증가에 따라 구글이 ‘버텍스 AI(Vertex AI)’ 플랫폼을 업데이트했다. 약 1년 전, 구글은 ‘버텍스 AI’를 출시하면서 로우코드 및 노코드 소프트웨어 개발에 큰 베팅을 했다. 한편 업계 애널리스트들은 인터넷 업계의 거물이 새로운 릴리즈를 통해 이 경쟁이 치열한 시장에서 새로운 입지를 확보할 수 있을 것으로 예상했다.    지난 목요일 ‘어플라이드 ML 서밋(Applied ML Summit)’에서 구글 클라우드가 학습 단축 서버(Training Reduction Server), 테이블 형식의 워크플로우(Tabular Workflow), 예제 기반 설명(Example-Based Explanations) 등을 포함해 버텍스 AI의 새로운 기능을 발표했다. 이는 고객들이 머신러닝 모델을 제대로 활용하고, 숙련된 전문가 의존도를 낮추는 것을 목표로 한다.  “성능 테스트 결과 2021년 버텍스 AI 및 빅쿼리를 통해 생성된 ML 예측 (모델) 수가 2.5배 증가했고, 지난 6개월 동안 버텍스 AI 워크벤치(Vertex AI Workbench)의 활성 고객이 25배 늘어났다. 고객들은 관리형 및 통합형 ML 플랫폼이 프로덕션 환경에서 ML 배포를 가속하는 데 중요하다는 점을 분명하게 알고 있다”라고 회사 측은 밝혔다.  구글은 2020년 초 (당시 8년 된 회사였던) 앱시트(AppSheet)를 인수하면서 로우코드/노코드 시장에 뛰어들었다. 하지만 해당 인수에도 불구하고 이 회사는 로우코드/노코드 시장에서 아직은 강력한 경쟁상대로 여겨지진 않고 있다. 애널리스트들은 버텍스가 구글에게 로우코드/노코드 소프트웨어 개발 시장에서의 영향력을 넓힐 기회를 제공할 수 있다고 봤다. 파릭 컨설팅(Pareekh Consulting)의 설립자 파릭 자인은 “사용자 정의 라이브러리로 모델을 학습시키는 데 다른 플랫폼보다 코드 요건이 80% 더 적은 버텍스 AI는 로우코드/노코드 시장에서 구글의...

구글 로우코드 노코드 2022.06.14

개발자가 알아야 할 클라우드 비용 절감 팁 12가지

일부 개발자는 컴퓨팅 비용의 관리를 데브옵스팀의 책임이라고 생각한다. 소프트웨어를 코딩하고 배포하지만 비용은 걱정하지 않는 것이다. 잘못된 생각이다. 현명한 개발자는 자신의 코딩 결과물이 회사의 재무에 큰 차이를 만든다는 사실을 알고 있다. 용량이 큰 코드는 더 느리고 실행할 때 더 많은 클라우드 자원을 요구한다. 우수한 알고리즘을 선택하고 간결한 코드를 작성하는 일은 단순히 속도 이상의 의미를 가진다. 적절히 쓰여진 코드는 실행하는 데 비용이 덜 든다. 그러나 개발자가 비용을 계속 생각하기란 어렵다. 자신의 디바이스에서 코드를 작성하기는 쉽다. 디바이스를 구매할 때 RAM과 추가 디스크 공간도 같이 결제됐다. 디스크 공간이 2TB 정도라면, 코드가 얼마나 많은 공간을 소비하는 지 알아차리지 못할 수 있다. 새 알고리즘이 실행되는 데 2배 더 오랜 시간이 걸리더라도 자신의 디바이스에는 아무 영향도 없을 것이다. 몇 ms가 더 걸린다고 해도 누가 이를 감지할 수 있겠는가? 그러나 연산을 2배로 늘리면 클라우드 요금만큼은 확실히 더 늘어난다. 클라우드 개발자는 코드를 작성할 때 현명한 결정을 내릴 역량이 있음을 알고 있다. 프로파일러를 실행해 느린 부분을 식별하거나 불필요한 데이터 스토리지를 회피하며 메모리 풋프린트를 줄이는 것처럼 단순한 작업일 수도 있다. 코드를 간소화시켜 빠르면서도 비용을 줄이게 하는 12가지 방법을 소개한다.    더 빠른 코드의 작성  대다수 개발자는 코드를 최적화하는 데 그렇게 많은 시간을 쓰지 않는다. 자신의 노트북에서 순식간에 실행되기 때문이다. 시간이 지나면서 20%, 30%, 심지어 300% 더 느려지는 것을 실감하지 못한다. 프로그램은 여전히 빠르게 반응하는 것처럼 보인다.  그러나 서버 상에서 수백만 번 실행되면, 차이가 누적된다. 세심한 프로파일링은 느린 부분을 파악할 수 있다. 이들을 다시 작성하면 애플리케이션에 필요한 인스턴스의 수를 줄일 수 있다. RAM 풋프린...

클라우드 비용 코딩 프로그래머 2022.06.09

"코드 맥락에 따라 함수 자동 제안"…‘깃허브 코파일럿’, 올여름 나온다

마이크로소프트가 5월 24일(현지 시각) 연례 빌드 개발자 컨퍼런스에서 코드 편집기에 입력한 내용에 따라 코드 또는 함수를 제안하는 AI 기반 코딩 어시스턴트 ‘깃허브 코파일럿(GitHub Copilot)’이 올여름 출시될 예정이라고 발표했다. 아울러 클라우드 기반 데브 박스(Dev Box) 워크스페이스, 파워 페이지(Power Pages) 로우코드 웹 개발, 애저 컨테이너 앱(Azure Container Apps) 등도 공개됐다.    연례 빌드 컨퍼런스에서 마이크로소프트는 깃허브 코파일럿이 올여름 GA 버전으로 전환된다는 소식을 알렸다. 깃허브 코파일럿은 비주얼 스튜디오 코드(Visual Studio Code), 네오빔(Neovim), 젯브레인 IDE(JetBrains IDEs)의 확장 프로그램으로 사용할 수 있다. 마이크로소프트는 깃허브의 모회사다.  깃허브 코파일럿은 공개적으로 사용 가능한 수십억 줄의 소스코드와 자연어를 학습한 AI 시스템 ‘오픈AI 코덱스(OpenAI Codex)’를 기반으로 한다. 반면 작업 중인 코드의 맥락을 활용하는 이 도구와 관련해 자유 소프트웨어 재단(Free Software Foundation)은 무료 라이선스 소스코드 사용의 합법성과 윤리에 의문을 제기해왔다.    깃허브 코파일럿 외에 빌드 개발자 컨퍼런스에서 발표된 다른 제품과 서비스는 다음과 같다.    ‘마이크로소프트 데브 박스(Microsoft Dev Box)’는 모든 규모의 하이브리드 팀을 지원하기 위해 안전하고, 즉시 코딩할 수 있는 워크스테이션을 제공하는 클라우드 서비스다. 팀은 특정 프로젝트 및 작업을 위해 데브 박스를 미리 구성할 수 있다. IT 부서는 윈도우 365(Windows 365)를 통해 통합 관리, 보안, 컴플라이언스를 유지관리할 수 있다. 현재 비공개 미리보기에 등록해 사용해볼 수 있다.  안전한 로우코드 웹페이지를 구축하는 도구인 ‘마이...

마이크로소프트 깃허브 깃허브 코파일럿 2022.05.26

에어태그를 '악성코드 배포기'로 만든 치명적인 코딩 오류

2021년 모바일 IT의 무서운 진실 가운데 하나는 애플 워치, 에어태그, 건강 상태를 추적하는 링, 스마트 헤드폰 등 소형 기기의 단순성과 편의가 지나치게 유혹적이라는 점이다. 노트북이나 데스크톱과 비교했을 때 이들 기기에서는 URL에 문제가 없는지, 스팸, 악성코드 문자, 이메일이 열리지는 않는지, 직원이 IT 부서가 요청한 최소한의 사이버보안 예방 조치를 따르고 있는지 확인하기가 지극히 어렵다. 에를 들어 데스크톱 이메일에는 극도의 주의를 기울이는 사람이 애플 워치를 통해 유입되는 메시지에는 별 생각 없이 경계를 푸는 경우가 많다.   더구나 사소한 프로그래밍 오류는 쉽게 일어나고 그냥 지나치는 경우가 많다. 하지만 이 사소한 오류가 거대한 보안 허점이 될 수 있다. 애플과 에어태그의 사례를 살펴보자. 한 보안 연구자가 전화번호를 입력하는 필드가 의도치 않게 에어태그를 악성 코드 범죄자를 위한 '신의 선물'로 만들었음을 발견했다.   아스 테크니카(Ars Technica)는 "보안 컨설턴트이자 침투 테스터인 보비 로치가 애플의 에어태크, 즉 노트북, 전화기, 자동차 열쇠 등 자주 분실하는 물품에 부착될 수 있는 소형 기기를 분석한 결과 이용자가 입력한 정보를 삭제하지 않는다는 사실을 알아냈다. 이는 에어태그가 드롭 공격에 이용될 여지를 있음을 의미한다. 노리는 사람의 차가 주차된 곳에 악성코드가 담긴 USB 드라이브를 뿌리는 대신, 준비된 에어태그를 투하할 수 있게 됐다"라고 보도했다.   보도에 따르면, 이런 종류의 공격은 고도의 전문 지식이 필요 없다. 공격자는 단순히 에어태그의 전화번호 필드에 정당한 XSS를 입력한 후 에어태그를 ‘분실’ 모드에 두고 표적이 이를 발견한만한 장소에 두면 된다. 이론적으로, 분실된 에어태그를 스캔하는 일은 안전한 행동이다. https://found.apple.com 웹페이지를 열도록 되어 있을 뿐이다. 문제는 found.apple.com 웹사이트가 피해자의 브라우저에 표시된 대로 ...

에어태그 악성코드 코딩 2021.10.07

'SW 협업의 진화' 실시간 코딩 툴과 서비스 7가지

소프트웨어 프로젝트에서 협업이란, 대부분의 경우 깃(Git) 같은 툴을 사용해 각자 차례로 수정한 다음 최종 산출물을 하나의 코드 베이스로 합치는 것을 의미한다.   그러나 최근 몇 년 사이 코드를 사용한 라이브 협업, 즉 2명 이상이 실시간으로 같은 파일을 다루는 협업 툴이 크게 발전했다. 최종 코드를 확정하는 책임자는 여전히 1명이어야 하지만, 다른 이의 편집 내용을 실시간으로 볼 수 있어, 원격 교육이나 긴급한 작업 등에서 매우 요긴하다. 웹 기반 서비스, 코드 편집기의 추가 기능 등 다양한 형태로 팀 동료와 실시간 협업하는 7가지 툴을 소개한다.   AWS 클라우드 9 AWS 클라우드 9(AWS Cloud 9)는 아마존이 인수한 서드파티 제품으로, 40여 개 프로그래밍 언어를 다양한 수준의 툴과 함께 지원하는 브라우저 기반 개발 환경이다. 여러 개발자가 공유 환경을 사용해, 클라우드에 호스팅되는 단일 프로젝트에서 실시간 협업할 수 있다. 각자 다른 사람이 작성하는 내용을 보고(누가 어떤 코드를 썼는지 시각적으로 표시된다) IDE 내에서 채팅 창으로 대화도 할 수 있다. 프로젝트 관리자는 협업 참여자에게 읽기/쓰기 또는 읽기 전용 권한을 부여할 수 있다. 가격 : 모든 EC2 인스턴스에 기본적으로 포함되므로, 인스턴스 비용만 내면 된다.   코드애니웨어 코드애니웨어(Codeanywhere)가 주로 내세우는 것은 이동 코딩 환경이다. 브라우저, 태블릿, 스마트폰 편집기를 통해 75개 언어를 지원하며, 그 중 상당수가 클라우드 환경이다. 이 툴에는 여러 가지 실시간 코드 공유, 협업 기능도 있다. 링크를 통해 프로젝트를 다른 사람과 공유하거나, 실시간 협업을 설정해 자신의 편집기에서 자신의 파일을 다른 사람이 편집하도록 허용할 수 있다. 또한 다른 사용자에게 프로젝트에 대한 SSH 액세스도 제공할 수 있다. 가격 : 무료 7일 평가판을 제공한다. 가장 저렴한 요금제는 사용자당 월 3달러다.   코드샌드박스 ...

코딩 협업 개발자 2020.04.06

“아폴로 11호 vs. 모바일 앱” 옛날처럼 코딩할 수 없는 이유 5가지

미국 아이오와 민주당 코커스(당원대회) 투표 결과를 집계하는 모바일 앱이 오류를 일으키면서 벌어진 대소동은 상황이 얼마나 악화될 수 있는지를 프로그래머에게 일깨워 주는 사건이었다. 그리 많지도 않은 투표수를 세는 것은 자율 주행 자동차를 만들거나, 영화를 추천하도록 AI를 훈련하거나, 은행 데이터베이스를 안전하게 업데이트하는 것만큼 복잡하지 않다. 하지만 프로그래머는 개표를 집계하는 간단한 작업조차 해낼 수 없었다. 한 트윗에서는 “인간의 기술력으로 달에 갔었다는 사실을 믿기 어렵다”고 빈정댔다.    문제는 달까지 날아가는 것과의 비교가 실제로 공평하지 않다는 것이다. 아폴로 착륙선을 달로 안내하는 것이 수천 개의 투표를 집계하는 것보다 훨씬 어려워 보인다. 하지만 실제로는 투표 집계가 이를 둘러싼 모든 추가 작업 때문에 훨씬 더 복잡하다. 물론, 쉬워지는 부분도 있다. 소위 새로운 “서버리스(serverless)” 옵션은 가장 필수적인 로직만 작성하면 완성할 수 있다고 약속하지만, 아직은 기술이 더 발전해야 한다. 함수 작성은 더 간단해졌지만, 나머지 시간엔 환경 구성과 씨름하고 있다. 몇 시간 동안 수백 줄의 YAML과 의사 결정문을 작성하지만, 어떤 이유에서인지 코딩으로 생각되지 않는다.  코딩이든 아니든, 그 이유는 다음의 5가지로 설명할 수 있다. 프로그래머가 아니라면 이해할 수 없겠지만, 제시하는 이유를 변명이 아닌 설명으로 이해하면 좋겠다. 소프트웨어 개발은 현재 훨씬 어렵고 복잡하다.      아폴로 11호의 코드가 더 단순했다 미 항공우주국(NASA)이 하는 일이 무엇일지 감을 잡을 수 있는 방법의 하나는 현재 깃허브 저장소에 길이 남아 전해온 코드 중 일부를 읽어보는 것이다. 파일을 무작위로 선택한다. 예를 들어 GROUND_TRACKING_DETERMINATION_PROGRAM.agc는 204줄로 작성됐고, 이 중 85줄이 주석이다. 여러 가지 옵션의 연산 수십 개를 한 줄로 할...

어셈블리 함수 nasa 2020.02.20

리뷰 | PC나 스마트폰 없는 아동용 코딩 교육 키트, 킨더랩 로보틱 키보

코딩 교육을 위해 설계된 아동용 앱은 많지만, 대부분 컴퓨터 화면을 봐야 한다는 것이 문제다. 하지만 부모라면 누구나 자녀가 화면을 보는 시간이 늘어나지 않길 바랄 것이다. 킨더랩(KinderLabs Robotics)이 개발한 키보(Kibo)는 스팀(STEAM: Science, Technology, Engineering, Arts & Mathematics의 약칭으로 과학·기술·공학·예술·수학의 융합 교육 방식)형 로봇 키트다. 모터, 센서, 모듈, 스캐너 그리고 (매우 흥미롭게도) 빌딩 블록을 사용해 아동의 코딩 입문을 돕는다. PC, 태블릿, 스마트폰 등이 필요 없다.  필자의 7살짜리 딸과 친구들은 몇 달째 키보 키트로 코딩을 하고 있다. 재미에 흠뻑 빠져 나무 코딩 블록을 다양하게 배치하는데 열심이다. 소리와 빛 센서를 톡톡 건드려보고, 프로그래밍과 고무 밴드로 작동하는 로봇 팔로 탁구공을 던질 때는 신중하다.    키트 선택 킨더랩 로보틱스 키보 로봇 키트에 대해 우선 알아야 할 사항은, 저렴하지 않은 가격이다. 최소 구성인 10개 블록의 키보 10 키트가 199 달러다. 15개 블록 세트는 기본 센서와 “출력”을 갖췄고 299달러, 18개 블록 세트는 빛과 거리 센서, “if”와 “when” 조건문 설정이 가능한 블록 구성으로 399달러다. 21개 블록 키보 키트는 사운드 플레이어가 포함됐고 무려 499달러에 달한다.  가격대별 차이가 큰 점을 감안하면, 1,230 달러부터 시작하는 대형 세트를 수용할 수 있는 학교가 킨더랩 키보 로봇 키트의 주요 시장이라는 사실이 놀랍지 않다. 가파르게 올라가는 가격대를 역으로 생각해보면, 작은 키트로 시작해서 아이가 흥미를 보일 때 블록, 모듈, 엑세서리를 킨더랩 로보틱스 웹사이트에서 추가 구매하는 방법도 있다.     코딩 시작하기 키보 프로그래밍 블록으로 코딩하는 과정은 매우 간단해서 필자의 딸이 거의 즉시 이해했을 정도다. 언뜻 보기에 프로그래...

It교육 어린이 코딩 2019.12.27

마르시스, 코딩 교구 ‘샘랩·마이크로비트’ 공식 판매 발표

코딩 교육 전문 기업인 마르시스는 디지털과 세상을 연결하는 스마트 블록 샘랩(SAM Labs)과 무한한 확장 가능성을 가진 마이크로비트(Micro:bit)를 공식 판매한다고 밝혔다. 샘랩은 개별 블루투스 기능을 가진 모듈형 코딩 교구로, 이미 영국과 미국, 중국의 많은 학교에서 STEAM 교육의 코딩 도구로 활발하게 활용되고 있다. LED, 센서, 모터 등 다양한 블록을 연결해 상상 속 아이디어를 코딩하여 실제로 움직이는 장치를 메이킹할 수 있는 샘랩은 개별 배터리와 블루투스로 각각의 모듈을 선없이 연결해 자유로운 메이킹 활동이 가능하다.  또한 자체 개발 앱인 샘 스페이스(SAM Space)로 아이콘을 서로 연결하기만 하면 완성되는 직관적인 코딩이 가능하고, 구글 워크 벤치(Google Workbench) 플랫폼을 통해 마이크로비트 등 다른 코딩 교구를 활용한 블록 코딩을 할 수 있다. 마이크로비트는 코딩을 쉽게 배우고 가르칠 수 있는 코딩 교구로, 영국 BBC가 출시한 교육용 보드이다. LED와 버튼, 센서, 소리, 무선 통신 등을 통해 게임은 물론, 악기와 로봇까지 다양한 프로젝트 구현이 가능해 전 세계적으로 코딩 교육에 많이 활용되고 있다. 또한 블록 코딩은 물론 텍스트 코딩까지 가능해 기초부터 난이도별로 수업이 가능하다. 마르시스는 소프트웨어에서 하드웨어까지 교사와 학생이 샘랩과 마이크로비트로 하는 코딩 활동을 쉽고 재미있게 즐길 수 있도록, 한국 교육 실정에 맞는 체계적인 커리큘럼을 준비 중이라고 밝혔다.  또한 언플러그드 활동에서 블록 코딩, 텍스트 코딩까지 난이도가 다른 수준별 커리큘럼을 구성하고, 과학, 수학, 음악 등 STEAM 콘텐츠를 중점으로 교과 연계와 창의적인 메이킹 활동을 더해 컴퓨팅 사고력과 문제 해결 능력에 창의력까지 키울 수 있는 커리큘럼을 제공할 계획이다. editor@itworld.co.kr

코딩 마르시스 2019.10.29

"개발자라면 누구나" 한번쯤 빠져 보는 10가지 소프트웨어 '종파'

개발자라면 누구나 알 것이다. 코드 몇 줄을 쓰고 테스트하고 리포지토리에 체크인한다. 이제 일을 멈추고 휴식을 취할 시간이다. 코드의 장엄함에 대해 돌아보기도 한다. 그리고 최근에 집착하는 프로그래머 신조에 대한 생각으로 돌아간다.   이번 가을부터 프로그래밍 강좌를 처음 수강할 사람이든 앨테어(Altair) 시절부터 비트 뱅잉 코드를 써온 베테랑이든 마찬가지다. 올바름 또는 정확함 등의 일상적인 것들에 대한 이야기에 푹 빠진다. 코드가 사양을 충족하는지에 대해 이야기하는 것은 고객뿐이다. 진짜 아드레날린은 시인처럼 황야를 떠돌면서 코드 작성 기술의 섬세한 부분에 고뇌하고 괴로워하는 데 있다. 변수와 함수를 연결하는 작업은 지루하다. 흐름에 동참하고, 카리스마 넘치는 천재를 따라 줄을 서고, 컴퓨터에 대한 지시의 세세한 부분을 두고 벌이는 격렬한 논쟁에 동참할 때, 삶에서 비로소 살 만한 가치를 느낄 수 있다.   프로그래머들이 도취되기 쉬운 10가지 달콤한 음료수를 소개한다.   마술 같은 공백 가장 격렬한 논쟁 중 하나부터 시작해 보자. 관건은 코드에서 공백의 구조를 어떻게 설계하느냐다. 말 그대로 눈에 보이지도 않고, 많은 경우 코드에 아무런 영향조차 없는 주제에 관한 논쟁이다. 그러나 아무리 쓸데없다 해도 상관없다. 프로그래머들은 코드에서 탭을 사용하느냐 스페이스를 사용하느냐를 두고, 심지어 라인 내에 공백을 포함하는 방법을 두고 몇 시간이고 논쟁을 벌일 수 있기 때문이다.   한 코드 리뷰어가 프로젝트 관리자에게 필자의 코드가 기준에 한참 미달이라서 화면에 코드를 띄우자마자 심각한 결함을 볼 수 있을 정도라고 말했다. 그 “기준”이란 것은 악명 높은 에어비엔비(Airbnb) 스타일 가이드의 19.4번 기준이었다. 이 스타일 가이드는 에어비엔비가 선호하는 자바스크립트 서식을 기술한 문서다. 필자의 실수는 등호의 양쪽 모두에 공백을 넣지 않은 것이었다. (필자는 이 일을 아직도 부끄럽게 생각한다. 공개적인 수치심 고백...

프로그래밍언어 코딩 개발자 2019.10.04

프로그래머블 네트워크 시대의 과제 “네트워크 전문가와 데브옵스”

수십 년 동안 네트워크 전문가는 라우터 프로토콜과 명령줄 인터페이스를 알아야만 했다. 하지만 프로그래머블 네트워크가 부상하면서 네트워크 전문가도 경력을 개발하기 위해서는 코드를 작성하는 훈련을 해야만 할지도 모른다. 네트워크 설계자, 엔지니어, 관리자를 불문하고 네트워크 전문가의 길을 걷고 있는 사람도 이제는 본인 스스로와 소소고 회사를 위해 프로그래밍 및 기타 데브옵스 기술을 익혀 보유한 스킬셋의 범위를 더 넓혀야 할까? 얼마만큼의 데브옵스 기술이 필요한지는 누구에게 물어 보느냐에 따라 다르지만 미래에도 유능한 네트워크 전문가로 일하고 싶다면 전통적인 역할 이상으로 업무의 범위를 확대해야 할 필요성만큼은 확실히 있다. 시스코 데이터센터 비즈니스 부문 선임 부사장 겸 총괄 책임자인 롤랜드 애크라는 “지금의 분위기는 네트워킹과 보안에 익숙한 기존 인력을 대상으로 교육을 통해 데이터와 코딩 관련 역량을 높이지 않으면 다른 데브옵스 작업을 하는 외부 데이터 전문가를 영입할 수 없다는 것”이라면서 “시스코는 네트워킹 분야에서 유능한 인재를 풍부하게 보유하고 있으며, 이 중에서 미래의 코더와 데이터 전문가를 육성해야 한다”고 말했다. 애크라는 예전에는 네트워크 프로토콜에 대해 잘 알고 명령줄 인터페이스(CLI)를 사용해서 스크립트를 쓰는 법을 알면 됐지만, 이제 네트워크 전문가는 기업에서 생성되는 모든 네트워킹 데이터가 가진 잠재력을 완전히 활용하기 위해서는 프로그래밍 실력도 갖춰야 하는 상황이라고 설명했다. 이러한 프로그래밍의 변화를 보여주는 사례로, 약 2년 전 가트너는 CLI를 주 인터페이스로 사용하는 네트워크 운영 팀의 비율이 2016년 85%에서 2020년에는 30%까지 축소될 것으로 전망했다. 가트너는 텍스트 기반 CLI가 지난 15~20년 동안 네트워크 운영 팀의 주 운영 툴로 사용됐다고 설명했다. 시스코와 주니퍼, 아리스타 등 주요 네트워크 솔루션 업체는 미래 넷데브옵스(NetD...

코딩 데브옵스 CLI 2018.10.16

”AI와 제조, 3D 프린팅의 만남” 미래의 코딩은 실물 제작 작업

블록체인과 비트코인이 세상에 미치는 영향은 3D 프린팅과 AI와 비교하면 보잘것 없을 것이다. 특히 개발자에게는 차이가 크다. 개발자들은 무수히 많은 ‘비트’를 인터넷을 통해 보내고 돈을 받지만, 궁극적으로 사람들은 이들 ‘비트’가 실제 사물로 이어지기를 바란다. AI와 제조가 3D 프린팅을 통해 결합되면서 앞으로 프로그래머는 실제로 사물이 만들어지는 방법과 과정을 책임지게 될 것이다. 사실 이런 일은 이미 일어나고 있다. 몇 가지 예를 들어보자. - 테스트 : GE는 3D 프린팅된 부품을 조립하기 전에 컴퓨터 비전을 사용해 결함을 탐지한다. - 모형 수정 : 대부분 모형은 CAD 소프트웨어나 절단 기계용 벡터 명령을 사용해 검사하거나 제작한다. 머신러닝을 사용하면, 좀 더 정확하고 효율적인 모형을 만들거나 재료를 출력하거나 절단하기 전에 정확한 명령을 내릴 수 있다. - 3D 추천 : 많은 사람이 CAD가 아니라 손으로 스케치를 하며, 세상에는 3D 모델보다는 2D 스케치가 훨씬 많다. 머신러닝을 이용하면 2D 스케치에서 3D 모형을 추론해 낼 수 있다. - 분말 재료의 사전 분류 : 대부분 3D 프린팅은 재료 분말을 녹이는 첨가 공정이다. 금속 부품에는 금속 가루가 사용된다. 세상에 완벽한 것은 없지만, 재료 분말은 정확한 품질이 필요하며, 특히 의료기기나 다른 중요한 디바이스를 만든다면 더욱 그렇다. 컴퓨터 비전은 재료 분말이 부품이 되기 전에 원료를 거르는 데 사용된다. - 음성 검색 : 많은 사람이 스케치하는 것보다 말하는 것을 더 잘한다. 음성과 검색의 결합은 사람들이 자신들이 3D 프린터에 원하는 것을 더 잘 묘사할 수 있도록 해준다. 그렇다면, 개발자는 이런 변화에 어떻게 대응해야 하는가? 3D 프린터를 마련해 어떻게 사용하는지를 알아가는 것이 좋은 출발점이다. 3D 스캐너 역시 도움이 되겠지만, 지금은 품질은 조금 떨어져도 같은 기능을 하는 앱들이 있다. 다음 단계는...

프로그래머 AI 코딩 2018.01.26

토픽 브리핑 | 디지털 기술과 어린이의 공존을 위한 방법들

요즘의 부모들에게 스마트폰과 태블릿은 애증의 존재다. 식당에서 소리 지르고 뛰어다니는 아이들을 진정시키기 위해서 불편한 마음으로 들게 되는 것이 바로 스마트폰이나 태블릿이기 때문이다. 그러나 아무리 디지털 매체에 대한 접근을 차단하더라도 아이들은 성장하면서 자연스럽게 이런 디바이스들을 접할 수밖에 없고, 안전을 위해서라도 스마트폰을 손에 쥐여줘야 하는 날이 온다. 이런 상황을 생각하면, 이제는 어느 정도 현실을 인정하고 스마트 디바이스들보다 더 스마트하게 아이들의 디지털 디바이스 접근을 관리할 방법을 고민해야 할 때다. 아이들은 우리가 생각했던 것보다 빠르게 스마트폰 및 앱 조작법을 익힌다. 37개월 된 필자의 아들은 가르쳐 준 적도 없는데 어느새 유튜브 키즈 앱의 마이크 아이콘을 눌러 ‘헬로카봇’이라고 말하고 원하는 것을 찾아보는 수준이다. 우리도 알지 못하는 사이에 이렇게 자유롭게 디지털 세계를 돌아다니게 된 아이들을 스마트하게 관리할 수 있는 여러 방법이 나와 있다. “아이가 좋아하는” 유튜브, 조금 더 안전하게 보여주는 법은? 대표적인 것이 유튜브 키즈 앱이다. 어린이용 콘텐츠가 많이 있는 유튜브 앱은 아이들이 가장 빠르게 접하는 앱 중 하나다. 하지만 일반 유튜브에는 어린이들에겐 노출되어선 안 되는 성인용 콘텐츠가 너무도 많다. 영상 하나가 끝나면 나오는 관련 영상 목록에 낯뜨거운 썸네일들이 떠서 당황한 적이 한번쯤 있을 것이다. 아이와 함께 유튜브를 보고 싶다면, 일반 유튜브가 아닌 유튜브 키즈 앱을 사용하자. 유튜브 키즈 앱에도 몇 가지 유해 콘텐츠 이슈가 있긴 하지만 어느 수준까지는 유해 콘텐츠 노출을 차단할 수 있다. 게다가 시청 시간 설정 같은 스스로 통제가 안 되는 아이들이 직접 유튜브를 종료할 수 있도록 유도하는 기능도 아주 유용하다. 업데이트 : 안드로이드와 iOS 기기를 어린이의 손으로부터 보호하는 두 가지 방법 구형 아이폰 또는 아이패드를 아이에게 물려주기...

유튜브 교육 어린이 2017.12.08

12가지 필수적인 소프트웨어 개발 원칙과 개념

업계에 처음 발을 들여놓는 젊은 개발자들은 한꺼번에 많은 원칙과 개념에 대한 이야기를 듣게 된다. 관리자로 올라서는 경력 개발자는 그동안 피해 왔지만, 기술적인 측면에 폭넓은 영향을 미치는 비즈니스 개념에 대한 이야기를 듣게 된다. 다음은 지난 20년 동안 소프트웨어, 그리고 소프트웨어 비즈니스에 있어 가장 중요한 12가지 개념이다. 1. 권한 없는 책임 경력이 어느 정도 된다면 권한 없는 책임을 접해봤을 것이다. 극단적인 사례를 들면 경비원에게 분기별 수익 책임을 지우는 것이다. 경비원이 아무리 노력해도 회사의 수익성을 높일 수는 없다. 경비원이 영업 회의에 참석한다 해도 신참 영업 사원이 전화를 더 많이 걸도록 유도할 수는 없다. 영업 사원을 움직일 영향력이 없기 때문이다. 마케팅 회의에 참석해봤자 마케팅 부서에서 새로운 캠페인을 구상하도록 이끌 수도 없다. 물론 극단적인 예다. 그러나 짊어지는 책임과 실제 행사할 수 있는 영향력 사이의 격차는 그 정도가 얼만큼이든 스트레스의 원천이다. 권한 없는 책임은 조직적인 기능 장애를 나타내는 징후이며(모든 조직에 어느 정도는 있음), 해결책은 권한을 높이거나 책임을 낮추는 것밖에 없다. 2. 반복하지 말 것  “반복하지 말 것” 원칙은 시스템에서 표현은 명확하게, 한 번만 해야 한다는 것이다. 코드 한 블록을 잘라내서 여러 곳에 붙여 넣을 경우 그 설계에는 결함이 발생한다. 그 결함을 가장 먼저 수정해야 한다. 이 원칙을 위반할 경우 시간을 낭비할 뿐만 아니라 유지보수 문제도 발생한다. 여러 지점에서 잘라내서 붙여넣기한 버그를 모두 찾아 수정해야 한다. 또한 보안 결함이 복제되는 경우를 상상해 보라. 이 문제를 수정하는 방법은 전체 아키텍처를 수정하는 것부터 코드 생성기, 종속성 주입에 이르기까지 많지만 어떤 방법을 사용하든 일단 수정해야 한다! 3. 필요할 일이 없다 앞으로 필요할 것 같아서가 아니라, 지금 필요한 기능을 구현하...

소프트웨어 프로그래밍 버그 2017.10.23

숙련된 개발자도 저지르는 15가지 초보적 실수

코더는 코딩을 하고 초보자는 초보자다운 실수를 한다. 그러나 가끔은 경험이 풍부한 코더도 초보적인 실수를 한다. 필자는 20년 동안 코딩을 하면서 온갖 실수를 봤지만 대체로 몇 가지 실수가 반복된다. 이런 흔한 실수는 실무에서 다양하게 나타난다. 리비전 제어와 같은 적절한 위생(hygiene) 작업도 필요하지만 그렇게 해도 다른 실무적 실수를 저지르고 그 결과로 힘든 시간을 보낼 수 있다. 초보적 실수 1 : Make 또는 Shell을 빌드 툴로 사용 C 또는 C++로 코딩하지 않는 사람은 Make에 친숙하지 않을 수 있다. Make는 각 파일에 대한 다른 컴파일러 프로세스를 실행한다. 대부분의 현대적 언어는 각 파일에 대해 별도의 프로세스를 시작하도록 설계되지 않는다. 또한 자바와 같은 언어에서 Make를 사용해 종속성을 해결하기란 거의 불가능하다. 필자는 전에 대형 네트워크 장비 업체에서 일하면서 빌드를 앤트(Ant, 자바 빌드 툴, 당시엔 최신이었음)로 변환하는 것으로 빌드 프로세스 시간을 3시간에서 20초로 단축한 적이 있다. 셸 스크립트 역시 좋지 않은 결과를 초래하는 경우가 많다. 필자는 최근 한 실험용으로 셸 빌드 하나를 만들었다. 작은 실험 하나를 실행하자고 모든 사람들이 자바 툴셋 전체를 다운로드해야 하는 것은 비효율적이라고 여겼기 때문이다. 필자는 그게 좋은 방법이라고 생각했지만 사실은 (늘 그렇듯이) 초보적 실수였다. 이 빌드가 종속되는 소프트웨어가 다음 버전으로 올라가면서 (늘 그렇듯이) 모든 것이 뒤엉켰기 때문이다. 그 점을 생각하고 현대적 빌드 툴을 제공했더라면 종속성을 업데이트할 수 있었을 것이다. 초보적 실수 2 : IDE를 빌드 툴로 사용하기 대부분의 IDE에는 빌드/배포와 관련된 편의 기능이 있다. 처음에는 좋아 보이고, 실제로 간단한 코드를 테스트하는 용도로는 훌륭하다. 그러나 결국 종속성이 발생하고 다른 사람들이 내 코드에 손을 대고 작업을 하게 된다. 그러다 보면 한 시스템에서는 빌드가...

프로그래밍 함수 초보자 2017.08.28

Node.js 앱 구조 설계를 위한 7가지 핵심 사항

Node.js가 새로운 웹 애플리케이션 개발을 위한 언어로 자바, 루비, 파이썬, 닷넷을 빠른 속도로 따라잡는 중이다. Node.js 팀은 하루가 다르게 자바스크립트 런타임을 더 빠르게, 더 견고하게 만들고 있다. 사용자 커뮤니티도 하루가 다르게 성장 중이다. 도입이 늘어남에 따라 점점 더 많은 개발자들이 Node.js를 배우면서 비슷한 문제에 직면하고 비슷한 기능을 코딩한다. 좋은 점은 Node.js 커뮤니티를 통해 일반적인 문제 해결뿐만 아니라 애플리케이션 설계에도 도움이 되는 프레임워크와 설계 패턴을 구할 수 있다는 것이다. 프레임워크는 일반적으로 MVC(모델-뷰-컨트롤러), MVVM(모델-뷰-뷰모델), MVP(모델-뷰-프리젠터) 또는 단순히 MV와 같은 MV 패턴을 구현한다. 또한 프레임워크는 모델, 뷰, 컨트롤러를 위한 코드가 있어야 할 위치, route가 있어야 할 위치, 구성을 추가해야 할 위치도 알려준다. 하지만 많은 수의 경험이 부족한 개발자와 Node.js 애호가가 설계 패턴 또는 OOP(객체 지향 프로그래밍) 다이어그램이 애플리케이션의 코드 라인과 구조에 어떻게 매핑되는지 제대로 이해하지 못하는 경우가 많다. Express.js, Sails.js와 같은 Node.js 프레임워크의 용도가 바로 거기에 있다. 이 두 가지를 비롯해 신속하게 웹 애플리케이션 개발을 시작하는 데 도움이 되는 여러 가지 프레임워크가 있다. 어느 프레임워크를 사용하든 앱을 설계할 때는 몇 가지 사항을 염두에 두어야 한다. Node.js 애플리케이션 개발에 착수하기 전에 생각해야 할 7가지 핵심 사항은 다음과 같다. 1. 애플리케이션에 적합한 디렉토리 구조 앱의 디렉토리 구조를 결정할 때는 자신이 선택한 설계 패턴을 고려해야 한다. 그러면 코드를 찾고 온보딩하고 신속하게 문제를 격리하는 데 도움이 된다. 개인적으로는 Node.js 앱을 설계할 때 MVC 패턴을 선호한다. 장점은 많지만 몇 가지만 나열하자면 개발 속도를 높이는 데 도움이 되고 ...

아키텍처 코딩 Node.js 2017.07.05

회사명 : 한국IDG | 제호: ITWorld | 주소 : 서울시 중구 세종대로 23, 4층 우)04512
| 등록번호 : 서울 아00743 등록일자 : 2009년 01월 19일

발행인 : 박형미 | 편집인 : 박재곤 | 청소년보호책임자 : 한정규
| 사업자 등록번호 : 214-87-22467 Tel : 02-558-6950

Copyright © 2022 International Data Group. All rights reserved.