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.
TOPIC

개발자

예측 수치만으로 SW 엔지니어링을 통제하면 안 되는 이유

대다수의 소프트웨어 엔지니어링 예측은 무가치하다. 기업이 잘못된 방법이나 툴을 사용하기 때문이 아니다. 작업 분석 구조 또는 유추 기반? 기계적 또는 판단적 조합? 기능, 이용 사례, 또는 스토리 포인트? SEER-SEM, WMFP, 또는 와이드밴드 델파이? 툴은 어떤 것이든 좋다.   대다수의 예측이 의미 없는 이유는 이런 예측이 양질의 소프트웨어가 어떻게 만들어지는지에 근본적으로 잘못 이해하고 있기 때문이다. 그 피해는 단순히 비용을 초과하거나 데드라인 지키지 못하는 정도가 아니다. 실질적인 비즈니스 가치를 전달하는 대신 무의미한 지표를 중요시하면서 틀린 행동을 강요한다.   잡음과 비-결정주의는 소프트웨어 엔지니어링에 필연적 애자일 환경에서 예측은 흔히 스토리 포인트와 속도를 근거로 한다. 솔루션의 개별 부분을 제작하는 것이 얼마나 복잡한가, 이 복잡성 스토리를 완료하기까지 시간이 보통 얼마나 걸리는가 같은 것이다. 그러나 우리는 이런 식으로 예측해도 모든 것이 계획대로 되지는 않을 것임을 알고 있다. 그런데도 대부분 예측의 기저에는 이런 불확실성마저 수량화해 예측에 반영할 수 있다는 위험한 전제가 깔려 있다. 낙관적인 엔지니어가 일정 작업에 걸리는 시간을 15% 과소하게 추정하는 경향이 있다면 이런 점까지 고려해 예측을 개선한다는 것이다. 사전에 전체 프로세스를 구체화하고 측정하려는 이 강박은 엔지니어를 예측 가능한 작업 산물을 파이프라인에 꾸준히 집어넣는 기계로 바라보는 시스템에 그대로 이어진다. 즉, 소프트웨어 개발 과정의 비유는 마치 실제적인 것으로 취급되고, 허울뿐인 허상의 기능에 수량적 정당성을 덧씌우는 수학적 계산으로 변환된다. 그러나 다행히도 인간은 기계가 아니다. 그리고 약간 덜 명백하긴 하지만 사소하지만은 않은 소프트웨어 엔지니어링 작업의 복잡성은 사전에 정확히 예측하기가 거의 불가능하다. 엔지니어링 분야는 매우 새롭고 급속히 변화한다. 따라서 지난주의 성과를 바탕으로 다음 주의 속도를 예측하기가 쉽지 않다. 우...

엔지니어링 예측 2022.06.17

“LAMP를 뛰어넘을까?” 차세대 웹 개발 철학 잼스택 안내서

잼스택(Jamstack)은 점점 인기가 높아지고 있는 웹 개발 방식으로, 웹 개발 및 웹 페이지의 다운로드 속도를 높이기 위해 주로 사용된다. 데브옵스와 CI/CD에서 파생된 잼스택은 인터랙티브 웹 페이지 구축의 오랜 전통을 뒤집었다는 점에서 주목받고 있다. 그중 핵심은 로드 타임 코드 실행을 웹 서버가 아닌 브라우저 내 자바스크립트나 API로 접근할 수 있는 외부 서비스에서 진행하는 부분이다. 이는 매우 개발자 친화적인 방식으로, 궁극적으로 렌더링 속도를 높이고 여러 플랫폼에 맞춤화할 수 있는 정적 웹사이트를 구축할 때 사용된다.    잼스택과 LAMP 스택의 차이 잼스택은 자바스크립트, API, 마크업(Markup)이라는 세 가지 축을 기반으로 하는 웹 애플리케이션 아키텍처다. JAM이라는 단어도 이 세 기술의 앞 자에서 따왔다. 잼스택을 추구하는 웹 페이지는 표준 마크업 언어로 구성돼서, 애플리케이션 서버 또는 노드JS와 같은 서버 사이드 기술에 의존하지 않고 어디서나 빌드하고 테스트할 수 있다. 이때 인터랙티브 기능은 표준 브라우저에서 실행되는 자바스크립트 코드로 제공된다. 이 코드는 HTTPS를 통해 재사용할 수 있는 API를 호출하며, 해당 호출은 다시 웹페이지에 넣을 수 없는 외부 데이터 및 다른 기능에 액세스하기 위해 사용된다.  잼스택이 왜 혁신적인지 알아보려면 일단 LAMP(Linux Apache MySQL PHP) 스택부터 살펴봐야 한다. LAMP 스택은 지난 15년간 웹 개발자가 선택하는 대표적인 개발 방식이었다. LAMP는 리눅스(웹 서버를 구동하는 OS), 아파치(리눅스 시스템에서 실행되는 서버 소프트웨어), MySQL(웹 애플리케이션 데이터가 저장되는 데이터베이스), PHP/펄/파이썬(서버 사이드 작성 언어)의 각 첫 글자를 따와 만든 단어다. LAMP 기반 웹사이트를 방문하면 웹 서버는 서버 사이드 코드를 실행하며, 이 코드는 필요할 때마다 MySQL 데이터베이스에서 데이터를 가져와 웹 페이...

잼스택 JAM LAMP 2022.06.16

"새로운 개발자 경험이 온다" 2022년 SW 트렌드 총정리

전 세계적으로 사회의 양상을 근본적으로 바꿔버린 바이러스 대유행 사태가 잦아든 지금 우리는 2022년 중반에 와 있다. 지난 2년의 변화 중에서 가장 주목할 만한 것은 디지털 인프라의 필요성이 높아지고 이에 크게 의존했다는 점이다. 시스템 관리자가 새로운 작업 방식을 만들어 내느라 고전하는 와중에도 시스템 자체는 훌륭하게 견뎌 주었다.   우리는 웹이 PPE(Personal Protective Equipment)에서 가상 결혼식까지 모든 것을 제공할 수 있음을 알게 되었다. 달리 위안을 주는 것이 없을 때면 많은 사람이 디지털 보호막 속으로 더 침잠해 들어갔다. 이처럼 웹 사용량이 급증하면서 새로운 문제와 개선할 부분이 발견됐다. 이제 온라인 경험을 기반으로 이를 업그레이드할 새로운 기술의 물결이 떠오르고 있다. 기존의 인터넷을 새로 구축하려는 노력이 진행 중인 가운데 이와 관련된 여러 가지 트렌드를 정리했다.   재미와 수익을 위한 코딩 소프트웨어 개발자라면 방금 개발한 프로그램도 "충분히 좋으냐"고 물으면 "개선의 여지가 있다"고 답하는 경우가 대부분이다. 뮤지션이 아직 미완성 상태라고 생각하는 데도 결국 앨범을 그냥 발표하는 것과 비슷하다. 존 레넌은 비틀즈의 명반을 두고 “재녹음하고 싶지 않은 것은 하나도 없다”라고 말하기도 했다. 이를 통해 우리는 지속적인 개선을 이끄는 중요한 동기부여 요소를 이해할 수 있다. 소프트웨어 엔지니어는 예술혼 비슷한 것에 이끌린다. 뭔가 멋진 것을 개발하지 않고는 못 배기는 것이다. 그렇게 개발된 최첨단 기술을 ‘예술’의 경지라고 표현한다. 코드 가독성과 유지 가능성이 제일 중요하다고 하지만 내재적으로 가치 있는 무언가를 만들고자 하는 타고난 갈망이 동기를 부여하는 경우도 많다. 물론 우수성만이 아니라 수익도 동기부여 요소다. 혁신이 성공할 확률은 벼락에 맞을 확률만큼이나 낮지만 일단 성공하면 금전적 이익이 엄청나다. (합치기 어려운 것으로 악명 높지만) 코더의 사고방식과 사업적 감각을 한데 모은...

소프트웨어 트렌드 개발자 2022.06.16

몽고DB, '몽고DB 월드 2022'서 개발자 데이터 플랫폼을 위한 새로운 기능 발표

몽고DB가 연례 컨퍼런스인 ‘몽고DB 월드 2022(MongoDB World 2022)’에서 개발자 데이터 플랫폼의 새로운 비전을 발표했다.  몽고DB 데브 이티체리아 CEO는 “몽고DB의 비전은 현대적이며 유려한 개발자 경험을 제공하고 다양한 사용 사례를 지원하며 까다로운 요구 사항을 해결하는 데 필요한 성능과 규모를 갖춘 개발자 데이터 플랫폼을 제공하는 것”이라고 설명했다. 몽고DB는 개발자가 보다 쉽게 인앱 분석을 구축하고 풍부한 애플리케이션 경험을 누릴 수 있도록 지원하는 다양한 기능을 발표했다. 올해 하반기에 출시될 예정인 컬럼 인덱싱(Column store indexing)은 문서 구조를 변경하거나 데이터를 다른 시스템으로 옮기지 않고도 여러 일반 분석 쿼리를 빠르게 처리하도록 목적 기반(purpose-built) 인덱스를 만들고 유지할 수 있는 기능이다. 또한 팀이 분석 노드를 개별적으로 확장해 운영 및 분석 쿼리의 성능을 자체 조정할 수 있도록 업데이트됐다. 몽고DB의 시계열 데이터 수집은 물리적 시스템의 모니터링이나 자산 추적, 재무 데이터 처리를 위한 애플리케이션을 더욱 쉽고 빠르게 낮은 비용으로 구축할 수 있도록 지원한다. 출시될 몽고DB 6.0에서는 측정을 위한 부차적인 인덱스를 제공하고 시간 단위 데이터를 빠르게 분류하기 위한 읽기 성능 개선 및 최적화 기능을 제공한다. 관련성 기반 검색 기능을 애플리케이션에 빠르고 쉽게 구축하는 아틀라스 서치(Atlas Search)에 도입된 검색 패싯(Search Facets) 기능으로 엔드 유저가 한층 원활하게 탐색하고 검색 결과를 구체화할 수 있다. 몽고DB는 개발자 데이터 플랫폼 아틀라스(Atlas)에서 개발 팀이 더 나은 데이터 분석과 변환, 이동을 경험하는 한편, 지연을 야기하고 생산성을 낮추며 비용을 증가시키는 일괄 처리(batch process) 및 ETL(추출, 변환, 적재) 작업에 대한 의존도를 낮출 수 있는 새로운 제품과 기능을 발표했다. 아틀라스 데이터레이크(...

몽고DB 데이터 2022.06.15

IAR 시스템즈, Arm용 IAR 임베디드 워크벤치 최신 버전 발표

IAR 시스템즈는 Arm용 IAR 임베디드 워크벤치(IAR Embedded Workbench for Arm)의 최신 버전을 발표했다. 새로운 버전 9.30은 최신 고성능 Arm 코어텍스-M85 프로세서에 대한 지원을 추가함으로써 Arm 코어 지원 범위를 더욱 확장했다. Arm의 모하메드 아와드 부사장은 “개발자는 이제 Arm의 코어텍스-M 프로세서를 Arm 가상 하드웨어 상에서 활용할 수 있게 됐으며, IAR 시스템즈의 최신 툴킷 같은 제품들과 함께 사용함으로써 개발 주기를 간소화 및 가속화할 수 있다”고 말했다. IAR 시스템즈의 앤더스 홈버그 CTO는 “Arm과의 긴밀한 협력 덕분에 우리는 새로운 코어텍스-M85 프로세서를 조기에 적용함으로써 엔드포인트에서 AI를 사용하는 미래 임베디드 애플리케이션을 위한 흥미로운 활용 사례를 제시할 수 있게 되었다”고 밝혔다.  Arm용 IAR 임베디드 워크벤치는 개발자에게 최적화된 임베디드 소프트웨어 개발 솔루션이다. 코드 최적화 기능을 통해 개발자는 자신이 선택한 MCU의 성능을 최대한 활용함과 동시에 애플리케이션을 가능한 한 전력 효율적으로 유지할 수 있다고 업체 측은 설명했다.  이 솔루션은 또한 정적 및 런타임 분석 도구, 복잡한 코드와 데이터 중단점, 런타임 스택 분석, 호출 스택 시각화, 코드 적용 범위 분석, 그리고 전력 소비의 통합 모니터링 등 광범위한 디버깅 및 분석 가능성을 제공한다. 최신 버전의 툴은 Arm 코어텍스-M 맞춤형 명령도 지원한다. 효율적인 자동화 워크플로를 위해 Arm용 IAR 빌드 툴을 사용하면 크로스 플랫폼 기반 프레임워크와 핵심 소프트웨어의 대규모 구축 및 테스트가 가능하다. editor@itworld.co.kr

IAR 시스템즈 Arm 2022.06.14

키사이트, 싱가포르 양자 엔지니어링 프로그램과 MOU 체결..."양자 기술 연구 및 교육 가속화"

키사이트테크놀로지스가 싱가포르 양자 엔지니어링 프로그램(이하 QEP)과 양자 기술 관련 연구 개발과 교육을 가속화하기 위한 양해각서(MOU)를 체결했다고 밝혔다.    QEP는 양자 기술 연구 및 생태계 구축 지원을 목표로 2018년 싱가포르 국립 연구 재단(NRF)이 시작했으며 싱가포르 국립 대학(NUS)이 주관하고 있다. 이 프로그램은 양자 컴퓨팅, 양자 통신 및 보안, 양자 센싱 등 실제 사용이 기대되고 있는 양자 파운드리 프로젝트를 지원하고 있다. 키사이트는 첨단 측정 장비, 큐비트 제어 솔루션 및 정밀 계측기술에 대한 전문성을 바탕으로 확장성 있는 모듈식 양자 제어 시스템을 제공해, 연구원들이 양자 컴퓨팅과 기타 양자 디바이스의 강력한 장점을 활용해 차세대 시스템을 엔지니어링하고 확장할 수 있도록 지원하게 된다. 이번 MOU 체결로 QEP와 키사이트는 확장성 있고 현실성 있는 양자 시스템을 구축할 수 있도록 지원하는 기술과 양자 장비 패키지 개발을 위해 협력하게 된다. 또한 QEP에 참여하는 연구원들이 다양한 키사이트 소프트웨어 설계 도구와 고급 테스트 및 측정 장비에 쉽게 접근할 수 있도록 관련 프로그램(Quantum Joint Innovation Accelerator)이 시작된다. 연구원들은 신청 절차를 거쳐 자신의 실험실에서 키사이트 측정 도구를 평가할 수 있고, 싱가포르 키사이트 시설에 있는 장비에 접근할 수도 있다. 키사이트 범용전자측정 솔루션 부문 부사장 겸 총괄 관리자인 비제이 탄은 “키사이트와 QEP는 새로운 양자 기술 생태계에서 연구 개발을 가속화할 수 있는 협력적 프레임워크를 만들어 나갈 것”이라며 “이번 연구 파트너십을 통해 향후 수년 동안 산업 혁신을 촉진하게 될 개발을 새롭게 진행할 것”이라고 밝혔다.  editor@itworld.co.kr

키사이트 2022.06.14

API 디자인, 개발, 테스트를 위한 무료 도구 12선

RESTful API의 인기가 높아지자 API를 생성하고 테스트하고 관리하는 도구도 점점 많이 나오고 있다. 이런 도구는 API를 처음 접하는 초보자부터 마감에 시달리는 전문가까지 쉽게 API를 살펴보고 테스트할 수 있게 도와준다.  다음은 API 작업 시 유용한 서비스를 따로 선정한 것이다. 일부는 API를 구성하거나 테스트할 때 쓸 수 있으며, 입문자에게 적합한 서비스도 포함됐다. 전문적인 API 관리 기능을 제공하기 때문에 일단 평가판으로 이용해보고, 필요한 경우 더 높은 수준의 (유료) 서비스로 전환해보자.     아마존 API 게이트웨이(Amazon API Gateway) AWS의 무료 평가판을 이용하면 아마존 API 게이트웨이를 포함해 AWS가 제공하는 대부분 서비스를 무료로 이용할 수 있다. 무료 아마존 API 게이트웨이는 1년 동안 월 최대 100만 번의 API 호출을 처리할 수 있다는 제한이 있지만, 입문자에게는 괜찮은 처리량이다.  아마존 API 게이트웨이를 유료로 이용하면, 트래픽 관리, API 버전 제어 및 모니터링과 같은 메타 도구를 사용해 아마존 EC2, AWS 람다(Lambda) 위에 구축된 애플리케이션을 위한 프론트 엔드 API를 구축할 수 있다. API메트릭스(APImetrics) API메트릭스는 API 모니터링 및 알림 시스템으로, 시각적인 API 제작 도구와 REST 및 SOAP API를 지원한다. 또한 여러 개의 API 호출을 순서대로 실행할 수 있는 워크플로우 시스템, 문제 사항을 파악할 수 있는 대시보드도 함께 제공한다. 무료 상품은 따로 없으며, 14일 체험판을 통해 여러 서비스를 살펴볼 수 있다. 가장 저렴한 상품에선 월 최대 2만 회 호출을 허용하며, 모든 호출 결과는 제한 없이 계속 저장된다. 따라서 데이터 보관을 위해 별도의 비용을 내지 않아도 된다는 장점이 있다. 어써터블(Assertible) 어써터블은 실제 서비스에 배치된 API를 모니터링 하기 위한 테스트나 어써...

API 과부하 테스트 2022.06.14

자바ㆍ자바스크립트용 풀 스택 프레임워크, 제이힙스터의 이해

제이힙스터(JHipster)는 리액티브 프론트 엔드를 사용한 풀 스택 자바 애플리케이션 개발을 쉽게 한다는 원대한 목표로 오래 전에 시작된 자바/자바스크립트 하이브리드 프로젝트다. 제이힙스터 개발팀은 업계의 변화에 보조를 맞춰 꾸준히 새 버전을 내놨는데, 여기서는 간단한 애플리케이션을 만들면서 이 프레임워크로 무엇을 할 수 있는지 알아보자.    제이힙스터란 기본적으로 제이힙스터(JHipster)는 프론트 엔드용 리액트(React), 뷰(Vue), 앵귤러(Angular)를 지원하며 스벨트(Svelte)를 비롯한 다른 프레임워크는 블루프린트(blueprints)라는 플러그인을 통해 지원한다. 백엔드의 경우 스프링 부트(Spring Boot)의 비중이 크다. 힐라(Hilla) 프레임워크와 비슷하지만, 광범위한 프론트 엔드 스택을 지원한다는 더 큰 목표를 갖고 있다. 기본적으로 제이힙스터는 자바 및 자바스크립트 빌드 툴체인을 통합하고 그 위에 다양한 관리 기능을 덧씌우는 고급 빌드 툴이다.  제이힙스터는 풀 스택 애플리케이션 외에 마이크로서비스 구성요소를 지원하며 JPA 기반 관계형 데이터베이스와 몽고DB(MongoDB), 카산드라(Cassandra) 같은 NoSQL 데이터스토어를 위한 골격을 제공한다. 로깅과 분석을 위한 기능도 있다.  제이힙스터의 툴셋에는 명령줄 및 도메인별 언어(DSL)와 시각적 데이터 모델러 및 웹 기반 생성자(constructor)가 포함된다(스프링 이니셜라이저(Spring Initializr)의 강화된 형태라고 보면 된다). 여기서는 명령줄을 사용해 시작한다. 참고로 비교적 최신 자바, Node.js, 깃 버전이 설치된 시스템이 필요하다.    제이힙스터 예제 애플리케이션  제이힙스터 퀵스타트에 따라 generator-jhipster NPM 패키지를 설치하고 생성기를 실행할 새 디렉터리를 만든다. <화면 1>과 비슷한 인터랙티브 프롬프트가 표시될 것이다.&nbs...

제이힙스터 JHipster 2022.06.14

"이번엔 성공할까" 구글, 로우코드 플랫폼 '버텍스 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

로지텍-우아한형제들, 개발자 대상 브랜드 콜라보 진행

로지텍 코리아가 배달의민족 운영사인 우아한형제들의 기술조직을 알리는 ‘우아한테크’와 브랜드 콜라보를 진행한다고 밝혔다.   콜라보의 시작으로 지난 7일 우아한형제들의 ‘테크살롱’에 로지텍의 신제품 체험존을 열었다. 테크살롱은 우아한형제들이 개발자들을 위해 지난 2월 선릉역 인근에 오픈한 공간으로, 우아한형제들의 개발자뿐 아니라 여러 기업의 개발자, 취업 준비생, 학생이 함께할 수 있는 네트워킹의 장으로 운영될 예정이다. 테크살롱 내 로지텍 체험존에서는 로지텍이 최근 출시한 MX 메커니컬(Mechanical) 무선 기계식 키보드와 MX 마스터(Master) 3S 무선 마우스 제품을 체험할 수 있다. 체험존 운영과 함께 우수 개발자를 위한 시상식도 진행된다. 우아한형제들 기술조직에서 운영하는 개발자 대상 프로그램에서 우수 참여자를 선정해 로지텍 MX 메커니컬과 MX 마스터 3S 제품을 증정하는 ‘우아한 X 로지텍 MX 어워드’를 수여할 계획이다. 이와 더불어, 개발자들을 대상으로 한 로지텍 신제품 테스트 또한 실시한다. 우아한형제들 소속 내부 개발자들을 대상으로 MX 메커니컬과 MX 마스터 3S 제품에 대한 필드 테스트를 진행하고, 피드백 수렴 과정을 거쳐 전문 개발자들의 니즈를 정확하게 파악해 향후 로지텍의 개발자 관련 제품군 출시에 참고할 예정이다. 또한 이번 콜라보를 기점으로 로지텍과 우아한형제들은 앞으로도 개발자 관련 행사 부문에서의 지속적인 마케팅 파트너십을 이어 나갈 계획이다. 로지텍 코리아 조정훈 지사장은 “개발자 양성에 아낌 없는 관심과 지원을 쏟고 있는 우아한형제들과 함께할 기회를 마련하게 되어 영광”이라며 “앞으로 전문 개발자를 꿈꾸는 이들 모두가 로지텍의 MX 메커니컬, MX 마스터 3S와 함께 원하는 목표를 달성하길 바란다”고 말했다.  editor@itworld.co.kr

로지텍 우아한형제들 배달의민족 2022.06.13

"너무 복잡해" 클라우드 앱 개발 문제⋯그래프QLㆍ슈퍼그래프로 해법 찾는다

우리는 클라우드 컴퓨팅의 황금시대에 살고 있다. 사용자에겐 경이롭다. 그러나 개발자에게는 총체적 난국이다.   전통적인 모놀리식(monolithic) 애플리케이션 아키텍처는 문제가 많은 대신 비교적 간단하다. 앱 서버와 데이터베이스를 브라우저 인터페이스에 연결하면 된다. 반면 오늘날의 애플리케이션은 이렇게 간단하지 않다. 백엔드 마이크로서비스, 퍼스트파티와 서드파티 API, 데이터베이스는 변화무쌍하고 브라우저, 셋톱 박스, 모바일 앱별로 해당 데이터를 위한 다양한 프론트엔드 랜딩존(landing zone)을 사용한다. 리액트(React)를 비롯한 여러 프론트엔드 프레임워크 덕분에 개발이 다소 쉬워졌지만, 혼란스러운 백엔드 복잡성을 프론트엔드 경험에 연결하는 일은 오히려 더 어려워졌다. 그래프QL(GraphQL)에 고마움(?)을 표시해야 하는 것도 이 때문이다. 2015년 페이스북이 공개한 그래프QL은 API를 위한 유연한 질의 언어 역할을 한다. 관계형 데이터베이스 질의에 사용하는 SQL과 달리, 그래프QL은 개발자가 다양한 데이터 소스를 질의할 수 있으며 클라이언트(프론트엔드 개발)와 서버(백엔드 개발)를 분리한다. 단, 이처럼 멋진 그래프QL도 슈퍼그래프(supergraph) 없이는 불완전하다. 아폴로 그래프QL(Apollo GraphQL) CTO 맷 드버갈리스에 따르면, 슈퍼그래프는 한 기업의 데이터, 마이크로서비스, 디지털 기능을 통합해 전체 조직의 ‘구성 계층’ 역할을 하는 네트워크다. 아폴로 그래프QL의 CEO 제오프 슈미트는 한 인터뷰에서 슈퍼그래프를 '살아 숨 쉬는 것'으로 표현하면서 “슈퍼그래프를 통해 기업은 계속 변화하는 요건에 맞게 인프라를 단계적으로 개선할 수 있다. 또한, 그린필드(greenfield, ​​완전히 새로운 설정이나 환경을 위한 시스템을 만드는 것) 같은 것이 없어 그 새로운 인프라를 구형 인프라와 연결할 수도 있다”라고 말했다.   슈퍼그래프와 그린필드에 대한 오해 잠시 슈미트의 말을 짚고...

그래프QL 슈퍼그래프 2022.06.10

웹 앱 프레임워크 ‘앵귤러 14’ 출시⋯“형식화된 폼과 독립형 요소 지원”

구글에서 개발한 타입스크립트(TypeScript) 기반 웹 애플리케이션 프레임워크의 최신 버전 ‘앵귤러 14(Angular 14)’가 출시됐다. 최신 프레임워크는 독립 실행형 구성 요소의 개발자 미리보기와 형식화된 폼 등을 제공한다.    개발팀에 따르면 독립실행형 구성 요소는 NgModules의 필요성을 줄여 앵귤러 애플리케이션 개발을 간소화한다. 독립실행형 구성 요소, 명령어, 파이프와 함께 standalone: true 플래그를 사용하면 @NgModule() 없이 @component()에 직접 가져오기를 추가할 수 있다. 현재 이 구성 요소는 안정적인 API가 아니며, 앵귤러의 일반적인 하위 호환성 모델 외부에서 변경될 수 있기 때문에 테스트 용도로만 활용해야 한다고 개발팀은 덧붙였다.  또 지난 6월 2일(현지 시각) 공개된 앵귤러 14에서는 반응형 폼이 엄격하게 입력된다. 형식화된 폼은 폼 컨트롤, 그룹, 배열 내부 값이 전체 API 표면에서 타입 세이프 하도록 하여, 특히 깊게 중첩된 복잡한 케이스에서 안전한 폼을 가능하게 한다. 업데이트된 스키매틱을 사용하면 형식화된 폼으로 점진적 마이그레이션을 할 수 있다. 즉, 개발자는 하위 호환성을 갖춘 기존 폼에 점진적으로 입력을 추가할 수 있다. 아울러 ng udpate는 모든 폼 클래스를 형식이 지정되지 않은 버전으로 대체해 개발자가 원하는 대로 타입을 활성화할 수 있도록 지원한다.  새로운 타이핑 지원을 사용하려면 Untyped 폼 컨트롤 인스턴스를 검색하고, 가능하다면 새로운 형식화된 폼 API 표면으로 마이그레이션하라고 앵귤러 개발팀은 권장했다. 한편 앵귤러 설정 지침은 이곳에서 확인할 수 있다. 이 밖에 앵귤러 14의 새로운 기능 및 개선사항은 다음과 같다.    최신 타입스크립트 4.7 릴리즈를 지원한다. 앵귤러 14는 기본적으로 ES2020을 대상으로 하기 때문에 CLI에서 다운레벨을 수행할 필요 없이 더 작은 코드를 제...

구글 타입스크립트 프레임워크 2022.06.10

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

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

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

슬랙∙깃허브∙구글 드라이브를 따로 검색하는 데 지쳤다면? "SQL로 한꺼번에"

누구나 항상 겪는 일이다. 찾는 단어가 도대체 어디에 있는지 알 수 없어서 슬랙, 깃허브, 구글 드라이브, 구글 시트, 젠데스크 등 다양한 서비스를 일일이 다 뒤져 보는 일이다. 이때 스팀파이프(Steampipe) 대시보드를 사용하면 이 과정을 매끄럽게 실행할 수 있다. 이번이 첫 시도는 아니다. 필자는 1996년에 이 여정을 시작했고 이후 주기적으로 아이디어를 다듬었다. 2018년에는 실제 기능할 수 있는 가장 단순한 버전에 관한 기사를 썼다. 다양한 서비스에 대한 검색 URL을 몰아넣은 다음 각각의 자체 탭에서 각 서비스를 방문하는 형태의 웹 페이지다. 바보 같은 생각처럼 들릴 수도 있지만 도움이 되는 부분도 있어서 필자 외에도 사용하는 사람들이 생겼다.   물론 필자는 기반 API를 사용하고 결과를 정규화하고 이를 하나의 공통적인 뷰로 병합하고자 했다. 하지만 이렇게 하기 위해 온갖 API와 씨름해야 했는데 프로젝트가 가진 가치에 비해 난관이 너무 많았다. 이와 같은 작업을 해본 사람은 알겠지만 대부분의 서비스는 내가 선호하는 프로그래밍 언어를 위한 어댑터와 함께 검색 API를 제공한다. 그러나 각 서비스마다 API를 호출하고 결과를 페이지로 나누고 서식을 적용하는 각자의 방식이 있다. 이와 같은 차이점으로 인해 마찰이 발생한다. 결과를 일관적으로 다루기 위해서는 이 마찰을 극복해야 한다. API 작업이 마찰 없이 된다면 많은 것이 가능해진다. 효과적인 메타검색이 그 중 하나다. 스팀파이프는 API 호출, 결과 페이지 구분, JSON 객체 압축 해제와 같은 작업에서 벗어날 수 있게 해준다. API를 대신 호출해주고 결과를 데이터베이스 테이블로 스트리밍해주므로 데이터 작업에만 온전히 집중할 수 있다. 즉, 메타검색 대시보드를 만들 때 직면하는 가장 큰 문제가 해결된다.   스키마로 수렴 다음 과제는 검색 결과를 공통된 스키마에 바인딩하는 것이다. SQL은 이를 위한 훌륭한 환경이다. 스크린캐스트의 대시보드를 만든 쿼리에는 SQL에 ...

SQL 슬랙 깃허브 2022.06.09

머신러닝 라이브러리 대표주자, 텐서플로우의 이해

머신러닝은 복잡한 분야지만 머신러닝 모델을 구현하는 과정은 데이터 수집, 모델 교육, 예측 수행, 이후 결과 조정 과정을 쉽게 해주는 구글 텐서플로우(TensorFlow)와 같은 머신러닝 프레임워크 덕분에 과거에 비해 훨씬 더 간편해졌다.   구글 브레인(Brain) 팀이 개발해 2015년에 처음 공개한 텐서플로우는 수치 계산과 대규모 머신러닝을 위한 오픈소스 라이브러리다. 텐서플로우는 다양한 머신러닝 및 딥러닝 모델과 알고리즘(신경망)을 묶어 공통 프로그래밍 메타포를 통해 사용할 수 있도록 한다. 파이썬 또는 자바스크립트를 사용해 애플리케이션을 구축하기 위한 편리한 프론트엔드 API를 제공하며 애플리케이션을 실행하는 데는 고성능 C++를 사용한다. 파이토치(PyTorch), 아파치 MX넷(MXNet) 등의 프레임워크와 경쟁하는 텐서플로우는 수기 숫자 분류, 이미지 인식, 단어 임베딩, 순환 신경망, 기계 번역을 위한 시퀀스-시퀀스 모델, 자연어 처리 및 편미분방정식(PDE)을 위한 심층 신경망을 학습시키고 실행할 수 있다. 무엇보다 텐서플로우는 학습에 사용한 것과 같은 모델로 대규모 프로덕션 예측을 지원한다. 또한 텐서플로우에는 프로젝트에 사용 가능한 사전 학습된 모델 라이브러리가 풍부하다. 텐서플로우 모델 가든(Model Garden)의 코드를 모델 학습 예제로 사용할 수도 있다.   텐서플로우의 작동 방식 텐서플로우에서 개발자는 데이터가 그래프 또는 일련의 처리 노드를 어떻게 이동하는지를 설명하는 구조인 데이터플로우 그래프를 만들 수 있다. 그래프의 각 노드는 수학 연산을 나타내며 노드 간의 각 연결 또는 가장자리가 바로 다차원 데이터 배열 즉 텐서(tensor)다. 텐서플로우 애플리케이션은 로컬 머신, 클라우드의 클러스터, iOS, 안드로이드 기기, CPU, GPU 등 거의 모든 타깃에서 실행이 가능하다. 구글 클라우드를 사용한다면 구글의 맞춤형 텐서플로우 프로세싱 유닛(TPU) 실리콘에서 텐서플로우를 실행해 더 빠른 속도를 얻...

텐서플로우 TensorFlow 2022.06.09

깃허브, 러스트 언어용 공급망 보안 도구 추가

깃허브의 여러 공급망 보안 기능을 러스트 카고(Rust Cargo) 파일에 사용할 수 있게 됐다. 자문 데이터베이스(Advisory Database), 디펜더봇 경보(Dependabot Alerts), 디펜던시 그래프(Dependency Graph) 등의 활용처가 넓어진 셈이다.   깃허브가 러스트(Rust) 언어를 위한 일련의 공급망 보안 기능을 추가했다. 요즘 성장세를 타고 있는 러스트 개발자가 보안 취약성을 발견하고 예방할 수 있도록 지원하기 위해서다. 여기에는 깃허브 자문 데이터베이스가 포함된다. 이 데이터베이스는 400개 이상의 러스트 보안 권고 사항, 디펜더봇 경보 및 업데이트, 디펜던시 그래프를 지원하며, 러스트 카고 패키지 파일의 취약한 의존성에 대한 경고를 제공한다. 깃허브 자문 데이터베이스는 개발자가 조치를 취할 수 있는 취약점 정보를 제공하는 보안 데이터베이스이다. 데이터베이스에 기재된 취약점 대부분은 러스트 라이브러리와 관련된 보안 권고 사항을 게재하는 러스트섹(RustSec)에서 제공한다. 러스트 패키지 메인테이너는 보안 권고 사항을 참고해 취약점을 공개적으로 발표하기 전에 제보자와 협력한 뒤 서로 논의을 거쳐 취약점을 수정할 수 있다. 개발자는 커뮤니티 기여를 통해 러스트 취약점을 CVE(Common Vulnerabilities and Exposures)로 보고할 수 있다.  깃허브 디펜던시 그래프는 저장소의 Cargo.toml 및 Cargo.lock 파일을 분석해 프로젝트의 의존관계를 판단한다. 디펜더봇은 이 디펜던시 그래프를 이용해 개발자에게 알려진 취약성을 경고하고 풀 요청(pull request)을 생성해 영향을 받는 의존성을 업데이트한다. 디펜던시 그래프는 공용 저장소에서 사용하도록 기본 설정되지만, 개인 저장소에서 사용하려면 따로 설정해야 한다.  깃허브는 공용 저장소의 디펜던시 그래프가 아직 업데이트되지 않았다면 곧 업데이트되는 모습을 확인할 수 있을 것이라고 밝혔다....

러스트 깃허브 자문데이터베이스 2022.06.09

“자바가 더 좋아지는 방법” JDK 개선 제안 프로세스와 최신 JEP

자바는 널리 사용되며 많은 요소가 자바에 의존하는 만큼 소프트웨어 인프라의 중요한 한 부분이다. 이 때문에 자바 플랫폼은 안정성을 중시하지만, 한편으로는 변화하는 환경에 적극적으로 대응하고 있다. 자바를 사용하는 사람들의 창의성도 이런 변화에 한몫한다. 이때문에 자바에는 높은 수준의 안정성을 달성하면서 변화를 수용하기 위해 공식적인 프로세스가 있다. 여기서는 자바 플랫폼이 어떤 방식으로 향상되는지를 대략적으로 알아보고, 앞으로 적용될 가장 중요한 새로운 기능에 대해서도 살펴본다.      자바 커뮤니티 프로세스  오랜 경력의 자바 개발자라 해도 자바 플랫폼이 개발, 유지되는 방식에 대해서는 잘 모를 수 있다. 큰 그림으로 들어가기 전에 자바 프로세스가 어떻게 동작하는지부터 알아보자. 핵심은 자바가 실질적으로 오픈소스라는 데 있다. 즉, 마음만 먹으면 자바에 기여할 수 있다. 기여자에게 말하고 그룹에 가입하고 제안을 제출하고 버그를 수정하면 된다.  자바 개발의 뿌리는 자바 커뮤니티 프로세스(Java Community Process, JCP)다. JCP는 수정 사항을 자바 플랫폼에 적용하는 방법을 정의하고, 이 프로세스 자체의 수정도 허용하는 일종의 자기인식적 문서라고 할 수 있다. JCP 최신 버전은 2019년에 채택된 2.11이다.  JCP는 사람들이 맡을 수 있는 다양한 역할에 대한 정의를 포함해서 자바의 새로운 기능과 변경(즉, 기술 사양)을 제안, 검토, 승인하는 방식을 공식화한다. 이와 같은 역할은 자바 사용자 커뮤니티가 플랫폼 관리에 참여할 수 있는 환경을 제공하는 데 도움이 된다.    자바 사양 요청  JCP는 새로운 기능과 변경 제안을 위해 자바 사양 요청(Java Specification Request, JSR)을 사용한다. JSR은 표준화된 양식을 통해 만들 수 있으며, 양식을 사용하려면 무료 JCP 계정을 만들어야 한다.  짐작할 수 있겠지...

자바 JDK 오픈소스 2022.06.08

IDG 설문조사

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

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

Copyright © 2022 International Data Group. All rights reserved.