Offcanvas

���������������

자연어 처리(NLP)가 필요하다면?··· 추천 파이썬 라이브러리 8종

파이썬에는 NLP 관련 도구가 정말이지 많다. 원하는 텍스트 분석 작업에 적절한 파이썬 라이브러리는 어떻게 찾을 수 있을까? 용도별 추천 라이브러리와 장단점을 살펴본다.  NLP는 ‘음성 및 텍스트를 위한 AI’라고 말할 수 있다. 음성 명령, 음성 및 텍스트 번역, 감성 분석, 텍스트 요약, 언어와 관련된 여타 많은 애플리케이션은 그 동안 크게 개선됐다. 분석에 사용되는 NLP의 성능 또한 딥러닝을 통해 획기적으로 향상됐다. 파이썬 언어는 NLP를 포함한 모든 종류의 머신러닝에 유용한 프론트-엔드를 제공한다. 하지만 파이썬 생태계에는 고를 NLP가 너무 많아 당황스러운 것도 사실이다. 이번 기사는 파이썬용 라이브러리 각각에 관해 소개한다. 각각의 유즈 케이스와 장점, 단점 그리고 인기도를 살펴보도록 한다.   CoreNLP 스탠포드 대학(Stanford University)이 만든 CoreNLP 라이브러리는 NLP 예측 및 분석 작업을 대규모로 수행할 수 있게 해주는 실용 단계의 NLP 솔루션이다. CoreNLP는 자바(Java)로 작성됐지만, 이를 위한 API와 여러 파이썬 패키지가 등장해 있는 상태다. Stanza로 불리는 네이티브 NLP 라이브러리가 그 중 하나다. 문법 태깅, 명명 엔티티 인식, 파싱, 구문 분석, 감성 분석 등 많은 언어 관련 도구들이 CoreNLP에 포함되어 있다. 언어별 특성을 차지 않도록 고안되어 있으며, 현재 영어에 더해 아랍어, 중국어, 프랑스어, 독일어, 스페인어(써드파티를 통해 러시아어 및 스웨덴어, 덴마크어)를 지원한다. CoreNLP에는 간편하게 예측을 하는 기능을 제공하는 웹 API 서버도 포함되어 있다. CoreNLP의 파이썬 래퍼(Python wrappers)를 이용해 시작하기 좋은 출발점은 스탠포드 NLP 그룹이 만든 참조 구현체인 Stanza이다. Stanza는 문서화가 잘 되어 있고, 정기적으로 유지 관리되는 것이 장점이다. 다른 CoreNLP 파이썬 라이브러리 가운데 상당수는 ...

파이썬 자연어 처리 NLP 라이브러리

2021.03.22

파이썬에는 NLP 관련 도구가 정말이지 많다. 원하는 텍스트 분석 작업에 적절한 파이썬 라이브러리는 어떻게 찾을 수 있을까? 용도별 추천 라이브러리와 장단점을 살펴본다.  NLP는 ‘음성 및 텍스트를 위한 AI’라고 말할 수 있다. 음성 명령, 음성 및 텍스트 번역, 감성 분석, 텍스트 요약, 언어와 관련된 여타 많은 애플리케이션은 그 동안 크게 개선됐다. 분석에 사용되는 NLP의 성능 또한 딥러닝을 통해 획기적으로 향상됐다. 파이썬 언어는 NLP를 포함한 모든 종류의 머신러닝에 유용한 프론트-엔드를 제공한다. 하지만 파이썬 생태계에는 고를 NLP가 너무 많아 당황스러운 것도 사실이다. 이번 기사는 파이썬용 라이브러리 각각에 관해 소개한다. 각각의 유즈 케이스와 장점, 단점 그리고 인기도를 살펴보도록 한다.   CoreNLP 스탠포드 대학(Stanford University)이 만든 CoreNLP 라이브러리는 NLP 예측 및 분석 작업을 대규모로 수행할 수 있게 해주는 실용 단계의 NLP 솔루션이다. CoreNLP는 자바(Java)로 작성됐지만, 이를 위한 API와 여러 파이썬 패키지가 등장해 있는 상태다. Stanza로 불리는 네이티브 NLP 라이브러리가 그 중 하나다. 문법 태깅, 명명 엔티티 인식, 파싱, 구문 분석, 감성 분석 등 많은 언어 관련 도구들이 CoreNLP에 포함되어 있다. 언어별 특성을 차지 않도록 고안되어 있으며, 현재 영어에 더해 아랍어, 중국어, 프랑스어, 독일어, 스페인어(써드파티를 통해 러시아어 및 스웨덴어, 덴마크어)를 지원한다. CoreNLP에는 간편하게 예측을 하는 기능을 제공하는 웹 API 서버도 포함되어 있다. CoreNLP의 파이썬 래퍼(Python wrappers)를 이용해 시작하기 좋은 출발점은 스탠포드 NLP 그룹이 만든 참조 구현체인 Stanza이다. Stanza는 문서화가 잘 되어 있고, 정기적으로 유지 관리되는 것이 장점이다. 다른 CoreNLP 파이썬 라이브러리 가운데 상당수는 ...

2021.03.22

MS, “서드파티 닷넷 라이브러리를 신뢰하도록 장려할 계획”

마이크로소프트가 서드파티 닷넷 라이브러리 개발자들과 협력해 품질을 향상시킬 계획이라고 발표했다. 오픈소스 닷넷(.NET) 에코시스템이 그다지 강력하지 않다는 판단에서다.  지난 14일(현지 시각) 마이크로소프트가 기트허브에 ‘닷넷 에코시스템 발전(Growing the .NET ecosystem)’이라는 문서를 업로드했다. MS 측은 해당 문서에서 “닷넷 커뮤니티의 많은 개발자가 마이크로소프트에서 구축하지 않은 라이브러리 사용을 꺼린다”라고 언급하면서, “닷넷 개발자가 서드파티에서 구축한 라이브러리를 신뢰하도록 뒷받침할 계획”이라고 밝혔다.    마이크로소프트 닷넷 프레임워크(.NET Framework) 팀의 프로그램 매니저 이모 랜드워스는 “그동안 우리는 고객들에게 모든 기능이 마이크로소프트를 통해 제공될 것이라고 말해 왔다. 하지만 마이크로소프트가 특히, 다른 오픈소스(OSS) 에코시스템이 발전하는 속도로 모든 것을 구축할 순 없다. 따라서 신뢰할 수 있는 닷넷용 라이브러리 세트는 마이크로소프트를 넘어서 발전해야 한다”라고 설명했다.  이어서 그는 “애플리케이션 개발자가 서드파티 라이브러리를 사용할 수 있는 관행을 표준화해야 한다”라면서, “이를 위해서는 마이크로소프트의 문화 변화가 필요하다”라고 덧붙였다.  따라서 지난 10월 출시된 닷넷 5에 이어, 내년 6월 공개될 ‘닷넷 6(.NET 6)’에서는 서드파티 라이브러리를 신뢰할 수 있도록 하는 목표가 포함될 것으로 전망된다.  랜드워스는 “다른 생태계, 구체적으로 말하자면 자바, 자바스크립트, 파이썬은 더 많은 기술적 다양성을 확보하고 있기 때문에 전반적으로 더욱더 강력한 오픈소스 생태계라는 인식이 있다”라면서, “반면에 마이크로소프트는 닷넷 에코시스템의 ‘분위기를 가라앉힌다(sucks the air)’라는 인식이 있다. 마이크로소프트 솔루션이 플랫폼에 엄격하게 통합돼 기존 솔루션의 매력을 떨어뜨리기 때문이다”라고 언급했다.  이러...

마이크로소프트 닷넷 라이브러리 서드파티 기트허브 자바 파이썬 자바스크립트

2020.12.18

마이크로소프트가 서드파티 닷넷 라이브러리 개발자들과 협력해 품질을 향상시킬 계획이라고 발표했다. 오픈소스 닷넷(.NET) 에코시스템이 그다지 강력하지 않다는 판단에서다.  지난 14일(현지 시각) 마이크로소프트가 기트허브에 ‘닷넷 에코시스템 발전(Growing the .NET ecosystem)’이라는 문서를 업로드했다. MS 측은 해당 문서에서 “닷넷 커뮤니티의 많은 개발자가 마이크로소프트에서 구축하지 않은 라이브러리 사용을 꺼린다”라고 언급하면서, “닷넷 개발자가 서드파티에서 구축한 라이브러리를 신뢰하도록 뒷받침할 계획”이라고 밝혔다.    마이크로소프트 닷넷 프레임워크(.NET Framework) 팀의 프로그램 매니저 이모 랜드워스는 “그동안 우리는 고객들에게 모든 기능이 마이크로소프트를 통해 제공될 것이라고 말해 왔다. 하지만 마이크로소프트가 특히, 다른 오픈소스(OSS) 에코시스템이 발전하는 속도로 모든 것을 구축할 순 없다. 따라서 신뢰할 수 있는 닷넷용 라이브러리 세트는 마이크로소프트를 넘어서 발전해야 한다”라고 설명했다.  이어서 그는 “애플리케이션 개발자가 서드파티 라이브러리를 사용할 수 있는 관행을 표준화해야 한다”라면서, “이를 위해서는 마이크로소프트의 문화 변화가 필요하다”라고 덧붙였다.  따라서 지난 10월 출시된 닷넷 5에 이어, 내년 6월 공개될 ‘닷넷 6(.NET 6)’에서는 서드파티 라이브러리를 신뢰할 수 있도록 하는 목표가 포함될 것으로 전망된다.  랜드워스는 “다른 생태계, 구체적으로 말하자면 자바, 자바스크립트, 파이썬은 더 많은 기술적 다양성을 확보하고 있기 때문에 전반적으로 더욱더 강력한 오픈소스 생태계라는 인식이 있다”라면서, “반면에 마이크로소프트는 닷넷 에코시스템의 ‘분위기를 가라앉힌다(sucks the air)’라는 인식이 있다. 마이크로소프트 솔루션이 플랫폼에 엄격하게 통합돼 기존 솔루션의 매력을 떨어뜨리기 때문이다”라고 언급했다.  이러...

2020.12.18

퀀텀, 스칼라 테이프 라이브러리에 ‘다중 인증’ 추가  

퀀텀코리아가 랜섬웨어 공격으로부터 오프라인 데이터를 보호하고자 스칼라 i3(Scalar i3) 및 i6 테이프 라이브러리에 새로운 다중-요소 인증(Multi-Factor Authentication) 소프트웨어를 추가했다고 밝혔다.  이는 테이프에 저장된 데이터의 보안 수준을 높여 무단 액세스를 차단하고, 귀중한 고객 데이터를 보존, 보호하기 위함이라고 업체 측은 설명했다.  회사에 따르면 다중요소 인증(multi-factor authentication)은 액티브 볼트(Active Vault) 기능을 기반으로, 퀀텀의 스칼라(Scalar) 테이프 라이브러리에서만 사용할 수 있는 새 기능이다. 본질적으로 안전한 테이프의 오프라인 특성을 기반으로 액티브 볼트는 라이브러리 내에 완전한 ‘에어-갭(air-gapped)’ 볼트를 생성한다.  관리자는 백업 애플리케이션-연결 파티션으로부터 네트워크 연결이 없거나 네트워크 연결 장치가 없는 라이브러리의 로지컬 영역인 액티브 볼트 파티션으로 테이프를 이동시키는 정책을 설정할 수 있다. 퀀텀 스칼라 테이프 라이브러리는 다중요소 인증(multi-factor authentication) 보안 계층을 추가해 오프라인 온-프레미스 볼트에 데이터를 안전하게 저장할 수 있는 핸즈프리 옵션이다. 중요한 오프라인 데이터를 보호할 수 있는 퀀텀 랜섬웨어 보호 팩(Quantum Ransomware Protection Pack)은 다양한 기술을 ‘구입’과 ‘구축’이 용이한 솔루션으로 묶은 다양한(소, 중, 대규모) 구성으로 제공된다. 스칼라 테이프 라이브러리에서 사용할 수 있는 랜섬웨어 보호 팩은 사전 정의된(pre-defined) 각 보호팩에는 랜섬웨어 위협에 필수적인 모든 보안 기능이 포함되어 있으며, 9,999달러부터 구매할 수 있다.  랜섬웨어 보호팩은 액티브 볼트(unique Active Vault) 기능과 WORM(Write Once Read Many) 기술, 군사 등급의 AES 256-b...

퀀텀 스칼라 테이프 라이브러리 다중 인증

2020.07.30

퀀텀코리아가 랜섬웨어 공격으로부터 오프라인 데이터를 보호하고자 스칼라 i3(Scalar i3) 및 i6 테이프 라이브러리에 새로운 다중-요소 인증(Multi-Factor Authentication) 소프트웨어를 추가했다고 밝혔다.  이는 테이프에 저장된 데이터의 보안 수준을 높여 무단 액세스를 차단하고, 귀중한 고객 데이터를 보존, 보호하기 위함이라고 업체 측은 설명했다.  회사에 따르면 다중요소 인증(multi-factor authentication)은 액티브 볼트(Active Vault) 기능을 기반으로, 퀀텀의 스칼라(Scalar) 테이프 라이브러리에서만 사용할 수 있는 새 기능이다. 본질적으로 안전한 테이프의 오프라인 특성을 기반으로 액티브 볼트는 라이브러리 내에 완전한 ‘에어-갭(air-gapped)’ 볼트를 생성한다.  관리자는 백업 애플리케이션-연결 파티션으로부터 네트워크 연결이 없거나 네트워크 연결 장치가 없는 라이브러리의 로지컬 영역인 액티브 볼트 파티션으로 테이프를 이동시키는 정책을 설정할 수 있다. 퀀텀 스칼라 테이프 라이브러리는 다중요소 인증(multi-factor authentication) 보안 계층을 추가해 오프라인 온-프레미스 볼트에 데이터를 안전하게 저장할 수 있는 핸즈프리 옵션이다. 중요한 오프라인 데이터를 보호할 수 있는 퀀텀 랜섬웨어 보호 팩(Quantum Ransomware Protection Pack)은 다양한 기술을 ‘구입’과 ‘구축’이 용이한 솔루션으로 묶은 다양한(소, 중, 대규모) 구성으로 제공된다. 스칼라 테이프 라이브러리에서 사용할 수 있는 랜섬웨어 보호 팩은 사전 정의된(pre-defined) 각 보호팩에는 랜섬웨어 위협에 필수적인 모든 보안 기능이 포함되어 있으며, 9,999달러부터 구매할 수 있다.  랜섬웨어 보호팩은 액티브 볼트(unique Active Vault) 기능과 WORM(Write Once Read Many) 기술, 군사 등급의 AES 256-b...

2020.07.30

C++ 프로그래밍의 감초··· ‘인기 라이브러리 8선’

C++ 개발자들은 윈도우 앱, 모바일 앱, 머신러닝(ML) 및 과학 앱 등을 개발할 때 아래와 같은 라이브러리를 애용한다. 범용 시스템 프로그래밍 언어인 C++은 1979년에 설계됐다. 이제 40살도 넘었다. 그래도 열기가 식기는커녕 여전히 여러 프로그래밍 인기 지수에서 정상에 가까운 자리를 차지하고 있다. C++ 문턱이 낮은 데에는 이유가 있다. IDE 제작자, 편집자, 컴파일러, 테스트 프레임워크, 코드 품질, 기타 도구 등에 광범위하게 지원된다. 아울러 소프트웨어 개발자들은  C++ 애플리케이션 구축에 도움이 되는 훌륭한 라이브러리도 많이 이용할 수 있다. C++ 개발자들이 필수적으로 활용하는 8가지 라이브러리를 소개한다.    액티브 템플릿 라이브러리 마이크로소프트에서 나온 액티브 템플릿 라이브러리(ATL)는 COM(Common Object Model) 개체 구축을 위한 C++ 클래스 모음이다. 이중 인터페이스, 표준 COM 계산자 인터페이스, 연결점, 액티브엑스(ActiveX) 컨트롤과 같은 COM 기능을 지원한다. 비주얼 스튜디오 IDE와 함께 이용 가능한 ATL은 싱글 스레드 개체와 아파트 모델 개체, 프리 스레드 모델 개체 구축에 사용할 수 있다. 아니면, 프리 스레드 개체와 아파트 모델 개체를 둘 다 구축할 때 사용할 수 있다. Asio C++ 라이브러리 Asio C++ 라이브러리는 네트워크 및 로우레벨 I/O 프로그래밍에 사용되며 일관된 비동기 모델을 제공한다. 동시성과 C++ 네트워킹, 그리고 다른 종류의 I/O를 위한 기본 구성요소를 제공하는 Asio는 스마트폰 앱에서부터 게임, 고도의 쌍방향 웹사이트와 실시간 거래 시스템에 이르기까지 다양한 애플리케이션에 사용되어 왔다.  Asio를 사용하는 프로젝트로는 WebSocketPP 라이브러리와 루아(Lua) 언어용 DDT3 원격 디버거 등이 있다. Asio는 부스트 소프트웨어 라이센스 하에 무료 오픈 소스로 이용 가능하며 리눅스, 윈도우, 맥OS,...

C++ 언어 라이브러리

2020.07.16

C++ 개발자들은 윈도우 앱, 모바일 앱, 머신러닝(ML) 및 과학 앱 등을 개발할 때 아래와 같은 라이브러리를 애용한다. 범용 시스템 프로그래밍 언어인 C++은 1979년에 설계됐다. 이제 40살도 넘었다. 그래도 열기가 식기는커녕 여전히 여러 프로그래밍 인기 지수에서 정상에 가까운 자리를 차지하고 있다. C++ 문턱이 낮은 데에는 이유가 있다. IDE 제작자, 편집자, 컴파일러, 테스트 프레임워크, 코드 품질, 기타 도구 등에 광범위하게 지원된다. 아울러 소프트웨어 개발자들은  C++ 애플리케이션 구축에 도움이 되는 훌륭한 라이브러리도 많이 이용할 수 있다. C++ 개발자들이 필수적으로 활용하는 8가지 라이브러리를 소개한다.    액티브 템플릿 라이브러리 마이크로소프트에서 나온 액티브 템플릿 라이브러리(ATL)는 COM(Common Object Model) 개체 구축을 위한 C++ 클래스 모음이다. 이중 인터페이스, 표준 COM 계산자 인터페이스, 연결점, 액티브엑스(ActiveX) 컨트롤과 같은 COM 기능을 지원한다. 비주얼 스튜디오 IDE와 함께 이용 가능한 ATL은 싱글 스레드 개체와 아파트 모델 개체, 프리 스레드 모델 개체 구축에 사용할 수 있다. 아니면, 프리 스레드 개체와 아파트 모델 개체를 둘 다 구축할 때 사용할 수 있다. Asio C++ 라이브러리 Asio C++ 라이브러리는 네트워크 및 로우레벨 I/O 프로그래밍에 사용되며 일관된 비동기 모델을 제공한다. 동시성과 C++ 네트워킹, 그리고 다른 종류의 I/O를 위한 기본 구성요소를 제공하는 Asio는 스마트폰 앱에서부터 게임, 고도의 쌍방향 웹사이트와 실시간 거래 시스템에 이르기까지 다양한 애플리케이션에 사용되어 왔다.  Asio를 사용하는 프로젝트로는 WebSocketPP 라이브러리와 루아(Lua) 언어용 DDT3 원격 디버거 등이 있다. Asio는 부스트 소프트웨어 라이센스 하에 무료 오픈 소스로 이용 가능하며 리눅스, 윈도우, 맥OS,...

2020.07.16

'속도를 높이는' 병렬 처리를 위한 6가지 파이썬 라이브러리

파이썬(Python)은 편의성과 프로그래머 친화성으로 유명하지만 속도 측면에서는 크게 내세울 것이 없는 프로그래밍 언어다. 파이썬의 속도 제약은 기본 구현인 c파이썬(cPython)이 싱글 스레드라는 점에도 일부 기인한다. 즉, c파이썬은 한번에 2개 이상의 하드웨어 스레드를 사용하지 않는다.   파이썬에 내장된 threading 모듈을 사용해 속도를 높일 수 있지만, threading은 병렬성(parallelism)이 아니라 동시성(concurrency)을 제공할 뿐이다. CPU에 종속되지 않는 여러 작업을 실행하는 용도로는 효과적이지만 각각 전체 CPU를 요구하는 여러 작업의 속도를 높이는 데는 아무 효과가 없다. 그러나 파이썬에도 여러 CPU에 걸쳐 파이썬 워크로드를 실행하기 위한 본연의 방법이 포함돼 있다. multiprocessing 모듈은 각각 별도의 코어에서 여러 개의 파이썬 인터프리터를 구동하며 여러 코어에 걸쳐 작업을 분할하기 위한 프리미티브를 제공한다. 그러나 multiprocessing으로도 충분하지 않을 때가 있다. 여러 코어뿐만 아니라 여러 머신으로 작업을 분산해야 하는 경우도 있는데, 이런 경우 유용한 6개 파이썬 라이브러리와 프레임워크가 있다. 이번 기사에서 소개하는 파이썬 툴킷 6개는 모두 기존 파이썬 애플리케이션에서 여러 코어, 여러 머신으로 작업을 분산시킬 수 있다. 레이(Ray) 미국 캘리포니아 버클리 대학 연구팀이 개발한 레이는 다수의 분산 머신러닝 라이브러리를 보강한다. 레이의 원래 사용사례는 머신러닝이지만 그 외의 용도로도 사용할 수 있다. 레이를 사용하면 많은 파이썬 작업을 분할해 여러 시스템으로 분산할 수 있다. 레이의 구문은 최소화하기 때문에 기존 앱의 많은 부분을 재작업하지 않고도 병렬화가 가능하다. @ray.remote 데코레이터는 해당 함수를 레이 클러스터의 가용 노드 전반으로 분산할 수 있으며, 사용할 CPU 또는 GPU의 수를 나타내는 매개변수를 옵션으로 지정할 수 있다. 각 분산 함수의...

병렬처리 파이썬 라이브러리 Ray Dask Dispy Pandaral·lel Ipyparallel Joblib

2020.05.21

파이썬(Python)은 편의성과 프로그래머 친화성으로 유명하지만 속도 측면에서는 크게 내세울 것이 없는 프로그래밍 언어다. 파이썬의 속도 제약은 기본 구현인 c파이썬(cPython)이 싱글 스레드라는 점에도 일부 기인한다. 즉, c파이썬은 한번에 2개 이상의 하드웨어 스레드를 사용하지 않는다.   파이썬에 내장된 threading 모듈을 사용해 속도를 높일 수 있지만, threading은 병렬성(parallelism)이 아니라 동시성(concurrency)을 제공할 뿐이다. CPU에 종속되지 않는 여러 작업을 실행하는 용도로는 효과적이지만 각각 전체 CPU를 요구하는 여러 작업의 속도를 높이는 데는 아무 효과가 없다. 그러나 파이썬에도 여러 CPU에 걸쳐 파이썬 워크로드를 실행하기 위한 본연의 방법이 포함돼 있다. multiprocessing 모듈은 각각 별도의 코어에서 여러 개의 파이썬 인터프리터를 구동하며 여러 코어에 걸쳐 작업을 분할하기 위한 프리미티브를 제공한다. 그러나 multiprocessing으로도 충분하지 않을 때가 있다. 여러 코어뿐만 아니라 여러 머신으로 작업을 분산해야 하는 경우도 있는데, 이런 경우 유용한 6개 파이썬 라이브러리와 프레임워크가 있다. 이번 기사에서 소개하는 파이썬 툴킷 6개는 모두 기존 파이썬 애플리케이션에서 여러 코어, 여러 머신으로 작업을 분산시킬 수 있다. 레이(Ray) 미국 캘리포니아 버클리 대학 연구팀이 개발한 레이는 다수의 분산 머신러닝 라이브러리를 보강한다. 레이의 원래 사용사례는 머신러닝이지만 그 외의 용도로도 사용할 수 있다. 레이를 사용하면 많은 파이썬 작업을 분할해 여러 시스템으로 분산할 수 있다. 레이의 구문은 최소화하기 때문에 기존 앱의 많은 부분을 재작업하지 않고도 병렬화가 가능하다. @ray.remote 데코레이터는 해당 함수를 레이 클러스터의 가용 노드 전반으로 분산할 수 있으며, 사용할 CPU 또는 GPU의 수를 나타내는 매개변수를 옵션으로 지정할 수 있다. 각 분산 함수의...

2020.05.21

C++ 프로그래밍에 요긴한 라이브러리 7종

C++ 개발자가 윈도우 앱, 모바일, 머신러닝 및 여타 앱을 개발할 때 이용할 만한 라이브러리를 정리했다.    C++는 범용 시스템 프로그래밍 언어이다. 1979년 만들어진, 역사가 40년이 넘는 언어이다. 하지만 여전히 인기가 높다. 여러 프로그래밍 언어 인기 측정 지수에서 상위권에 속한다. C++가 널리 사용되는 이유 중 하나는 여러 다양한 IDE와 에디터, 컴파일러, 테스트 프레임워크, 코드 품질 도구 등 수많은 도구가 이 언어를 지원하고 있기 때문이다. 또한, 소프트웨어 개발자의 C++ 애플리케이션 개발에 도움을 주는 훌륭한 라이브러리들이 많다. 이 가운데 7가지를 소개한다.  Active Template Library 마이크로소프트의 Active Template Library는 이중 인터페이스, 표준 COM 열거자 인터페이스, 연결점, ActiveX 컨트롤 같은 COM 기능을 지원하는 COM(Common Object Model) 개체를 구현할 수 있는 C++ 클래스 세트이다. Visual Studio IDE에서 지원하는 ATL을 사용해 단일 스레드 개체, 아파트 모델 개체, 빈 스레드 모델 개체, 빈 스레드와 아파트 모델 개체를 만들 수 있다. Asio C++ 라이브러리 Asio C++ 라이브러리는 견고한 비동기화 모델을 제공하며, 네트워크 및 저수준 I/O 프로그래밍에 사용된다. Aiso는 동시성 모델과 C++ 네트워킹, 기타 종류의 I/O에 필요한 기본 구성요소를 제공하며, 스마트폰 앱과 게임부터 고수준의 인터랙티브 웹사이트, 실시간 트랜젝션 시스템 같은 애플리케이션에도 사용되고 있다.  Asio를 사용하는 프로젝트로는 WebSocketPP 라이브러리 및 Lua 언어용 DDT3 원격 디버거를 예로 들 수 있다. 또한, Boost Software License 아래 무료 오픈소스로 사용할 수 있으며, 리눅스와 윈도우, 맥OS, 프리BSD에서도 지원을 한다. Eigen Eigen은 행렬과 벡터, 숫자 ...

C++ 라이브러리 Active Template Library Asio C++ Eigen OpenCV Poco C++

2020.01.31

C++ 개발자가 윈도우 앱, 모바일, 머신러닝 및 여타 앱을 개발할 때 이용할 만한 라이브러리를 정리했다.    C++는 범용 시스템 프로그래밍 언어이다. 1979년 만들어진, 역사가 40년이 넘는 언어이다. 하지만 여전히 인기가 높다. 여러 프로그래밍 언어 인기 측정 지수에서 상위권에 속한다. C++가 널리 사용되는 이유 중 하나는 여러 다양한 IDE와 에디터, 컴파일러, 테스트 프레임워크, 코드 품질 도구 등 수많은 도구가 이 언어를 지원하고 있기 때문이다. 또한, 소프트웨어 개발자의 C++ 애플리케이션 개발에 도움을 주는 훌륭한 라이브러리들이 많다. 이 가운데 7가지를 소개한다.  Active Template Library 마이크로소프트의 Active Template Library는 이중 인터페이스, 표준 COM 열거자 인터페이스, 연결점, ActiveX 컨트롤 같은 COM 기능을 지원하는 COM(Common Object Model) 개체를 구현할 수 있는 C++ 클래스 세트이다. Visual Studio IDE에서 지원하는 ATL을 사용해 단일 스레드 개체, 아파트 모델 개체, 빈 스레드 모델 개체, 빈 스레드와 아파트 모델 개체를 만들 수 있다. Asio C++ 라이브러리 Asio C++ 라이브러리는 견고한 비동기화 모델을 제공하며, 네트워크 및 저수준 I/O 프로그래밍에 사용된다. Aiso는 동시성 모델과 C++ 네트워킹, 기타 종류의 I/O에 필요한 기본 구성요소를 제공하며, 스마트폰 앱과 게임부터 고수준의 인터랙티브 웹사이트, 실시간 트랜젝션 시스템 같은 애플리케이션에도 사용되고 있다.  Asio를 사용하는 프로젝트로는 WebSocketPP 라이브러리 및 Lua 언어용 DDT3 원격 디버거를 예로 들 수 있다. 또한, Boost Software License 아래 무료 오픈소스로 사용할 수 있으며, 리눅스와 윈도우, 맥OS, 프리BSD에서도 지원을 한다. Eigen Eigen은 행렬과 벡터, 숫자 ...

2020.01.31

AWS, 클라우드 개발자 지원 강화··· 자바 라이브러리 ‘앰플리파이’ 공개

아마존 웹 서비스(AWS)가 자바스크립트 라이브러리 ‘AWS 앰플리파이(AWS Amplify)’를 공개했다. 이를 이용하면 개별적으로 클라우드에 서비스에 접속하지 않고 클라우드 서비스 카테고리를 통해 클라우드 기반 애플리케이션을 만들 수 있다. AWS 앰플리파이는 다음과 같은 기능을 지원한다. - 인증: 인증 API와 관련 기능을 제공하는 모듈이다. 웹과 모바일 앱용 아마존 코그니토(Amazon Cognito) 사인-인 서비스를 통해 계정 정보를 AWS 시그니처 버전 4(AWS Signature Version 4) 서명 프로세스와 토큰에 제공한다. - 분석: 아마존 핀포인트(Amazon Pinpoint) 트래킹 애플리케이션에서 사용자를 추적한다. 핀포인트는 타깃 마케팅 툴이다. - 스토리지: 아마존 S3 클라우드 스토리지 서비스에서 업로드, 다운로드, 리스트 콘텐트 관련 명령을 지원한다. - LRU: 웹과 리액트 네이티브(React Native) 애플리케이션 전반에 걸친 LRU(least recently used) 캐시 인터페이스이다. - i18n과 로깅: 국제화와 지역화를 위한 지원이다. 또한, 아마존은 AWS 모바일 CLI도 지원한다. 프론트-엔드 자바 개발자를 위한 커맨드라인 기능이다. 이를 이용하면 백-엔드 리소스를 모바일 앱에 통합할 수 있다. AWS 람다(Lambda) 서비스를 이용해 클라우드 기능을 프로젝트에 추가하고 서버 없이 백-엔드를 구축하는 것도 가능하다. 앰플리파이는 이 과정에서 코드 라인을 통해 일반 설정에 접근할 수 있도록 지원한다. 기본 앰플리파이 설정은 AWS 클라우드 리소스와 함께 동작하지만 이 라이브러리는 다른 클라우드 서비스에도 플러그 리소스로 연동해 사용할 수 있다. AWS 앰플리파이를 내려받는 방법 AWS 앰플리파이는 NPM 패키지로 내려받을 수 있다. 현재 리액트 네이티브 라이브러리를 사용하고 있다면 NPM 대신 aws-amplify-react-native 패키지를 ...

클라우드 AWS 자바스크립트 라이브러리 앰플리파이

2017.11.29

아마존 웹 서비스(AWS)가 자바스크립트 라이브러리 ‘AWS 앰플리파이(AWS Amplify)’를 공개했다. 이를 이용하면 개별적으로 클라우드에 서비스에 접속하지 않고 클라우드 서비스 카테고리를 통해 클라우드 기반 애플리케이션을 만들 수 있다. AWS 앰플리파이는 다음과 같은 기능을 지원한다. - 인증: 인증 API와 관련 기능을 제공하는 모듈이다. 웹과 모바일 앱용 아마존 코그니토(Amazon Cognito) 사인-인 서비스를 통해 계정 정보를 AWS 시그니처 버전 4(AWS Signature Version 4) 서명 프로세스와 토큰에 제공한다. - 분석: 아마존 핀포인트(Amazon Pinpoint) 트래킹 애플리케이션에서 사용자를 추적한다. 핀포인트는 타깃 마케팅 툴이다. - 스토리지: 아마존 S3 클라우드 스토리지 서비스에서 업로드, 다운로드, 리스트 콘텐트 관련 명령을 지원한다. - LRU: 웹과 리액트 네이티브(React Native) 애플리케이션 전반에 걸친 LRU(least recently used) 캐시 인터페이스이다. - i18n과 로깅: 국제화와 지역화를 위한 지원이다. 또한, 아마존은 AWS 모바일 CLI도 지원한다. 프론트-엔드 자바 개발자를 위한 커맨드라인 기능이다. 이를 이용하면 백-엔드 리소스를 모바일 앱에 통합할 수 있다. AWS 람다(Lambda) 서비스를 이용해 클라우드 기능을 프로젝트에 추가하고 서버 없이 백-엔드를 구축하는 것도 가능하다. 앰플리파이는 이 과정에서 코드 라인을 통해 일반 설정에 접근할 수 있도록 지원한다. 기본 앰플리파이 설정은 AWS 클라우드 리소스와 함께 동작하지만 이 라이브러리는 다른 클라우드 서비스에도 플러그 리소스로 연동해 사용할 수 있다. AWS 앰플리파이를 내려받는 방법 AWS 앰플리파이는 NPM 패키지로 내려받을 수 있다. 현재 리액트 네이티브 라이브러리를 사용하고 있다면 NPM 대신 aws-amplify-react-native 패키지를 ...

2017.11.29

'더 쉽게, 더 강력하게 개발한다' 머신러닝 프레임워크 13종

작년 한 해 동안, 머신러닝은 성공적으로 주류로 부상했다. 머신러닝의 갑작스러운 도래가 저렴한 클라우드 환경과 예전에 비해 더욱 강력해진 GPU 하드웨어 덕분이라고만 치부될 수는 없다. 이는 머신러닝의 가장 까다로운 부분들을 추상화하고 각종 기법들을 폭넓은 개발자들이 사용할 수 있게 해주도록 설계된 오픈소스 프레임워크의 폭발 덕분이기도 하다. 작년 한 해 동안 갓 만들어지거나 개정된 13가지 머신러닝 프레임워크를 소개한다. 이들은 각 툴의 유래, 문제 영역에 대한 참신한 단순성, 머신러닝과 관련된 특정 과제에 대한 해결 방안, 또는 이 모든 사항들로 주목을 받았다. editor@itworld.co.kr

인공지능 프레임워크 라이브러리 딥러닝 개발자.

2017.08.24

작년 한 해 동안, 머신러닝은 성공적으로 주류로 부상했다. 머신러닝의 갑작스러운 도래가 저렴한 클라우드 환경과 예전에 비해 더욱 강력해진 GPU 하드웨어 덕분이라고만 치부될 수는 없다. 이는 머신러닝의 가장 까다로운 부분들을 추상화하고 각종 기법들을 폭넓은 개발자들이 사용할 수 있게 해주도록 설계된 오픈소스 프레임워크의 폭발 덕분이기도 하다. 작년 한 해 동안 갓 만들어지거나 개정된 13가지 머신러닝 프레임워크를 소개한다. 이들은 각 툴의 유래, 문제 영역에 대한 참신한 단순성, 머신러닝과 관련된 특정 과제에 대한 해결 방안, 또는 이 모든 사항들로 주목을 받았다. editor@itworld.co.kr

2017.08.24

상전벽해··· 소프트웨어 개발의 본질을 바꾸는 21가지 기술

아주 오래 전에 개발자들은 빠르고 가벼운 어셈블리 언어로 개발했다. 단순 작업을 위해 사람을 고용할 수 있을 정도로 예산이 많은 적도 있었고, 상황이 좋지 않을 때는 개발자가 직접 그 일을 했다. 복잡할 것이 전혀 없었다. 당시의 소프트웨어는 메모리에서 데이터를 읽어 들여 약간의 연산을 한 뒤 결과물을 내놓는 것이 전부였다. 오늘날의 개발자는 전 세계 출신의 다양한 언어를 구사하는, 무엇보다 제각기 다른 버전의 컴파일러를 사용하는 팀원들과 함께 일해야만 한다. 게다가 어떤 코드는 새로 개발된 것이고, 어떤 코드는 소스 코드가 제공되지 않는, 10년도 넘은 라이브러리를 활용한 것일 수도 있다. 오늘날 개발자가 되기 위해서는 협동심과 인내력부터 키워야 한다. 불과 5년 전과 비교하더라도 컴퓨터에 작업을 지시하는 것에는 대단한 차이가 있다. 지난 10년 동안 영화 ‘올드보이’의 오대수처럼 어딘가에 납치됐다 풀려난 개발자가 있다면, 오늘날의 컴퓨팅 세계에서 아무것도 할 수 없을지도 모른다. 모든 것이 그 어느 때보다 빠르게 변하고 있다. 프로그래밍의 본성을 바꾸어 놓는 21가지 기술을 살펴본다. 이 기술들로 인해 개발자의 협업 방식, 고객 지원 방식, 코딩 방식이 바뀌고 있다. 개발자라면 정신을 바짝 차리기 바란다. 지속적인 통합(Continuous Integration) 과거에는 리포지토리(Repository)에 코드를 커밋하고 나면 보통 커피를 마시며 한숨 돌리거나 점심을 먹을 여유가 있었다. 하지만 더 이상은 아니다. 오늘날의 리포지토리는 지속적인 빌드 시스템과 밀접하게 연결되어 있기 때문이다. 지속적인 빌드 시스템은 코드를 다시 컴파일하고, 아키텍처를 검사하고, 코드에 수백 가지 테스트를 수행해 오류의 가능성을 표시해 준다. 이 때문에 개발자는 지속적인 빌드 시스템이 보내는 작업 수정 요청 메일과 문자 메시지 때문에 책상에서 한치도 벗어나기 어렵다. 지속적인 빌드 시스템은 개발자에게 늘 새로운 일...

데이터베이스 통합 개발언어 API 프레임워크 데브옵스 라이브러리 전처리기 트랜스파일러

2017.08.08

아주 오래 전에 개발자들은 빠르고 가벼운 어셈블리 언어로 개발했다. 단순 작업을 위해 사람을 고용할 수 있을 정도로 예산이 많은 적도 있었고, 상황이 좋지 않을 때는 개발자가 직접 그 일을 했다. 복잡할 것이 전혀 없었다. 당시의 소프트웨어는 메모리에서 데이터를 읽어 들여 약간의 연산을 한 뒤 결과물을 내놓는 것이 전부였다. 오늘날의 개발자는 전 세계 출신의 다양한 언어를 구사하는, 무엇보다 제각기 다른 버전의 컴파일러를 사용하는 팀원들과 함께 일해야만 한다. 게다가 어떤 코드는 새로 개발된 것이고, 어떤 코드는 소스 코드가 제공되지 않는, 10년도 넘은 라이브러리를 활용한 것일 수도 있다. 오늘날 개발자가 되기 위해서는 협동심과 인내력부터 키워야 한다. 불과 5년 전과 비교하더라도 컴퓨터에 작업을 지시하는 것에는 대단한 차이가 있다. 지난 10년 동안 영화 ‘올드보이’의 오대수처럼 어딘가에 납치됐다 풀려난 개발자가 있다면, 오늘날의 컴퓨팅 세계에서 아무것도 할 수 없을지도 모른다. 모든 것이 그 어느 때보다 빠르게 변하고 있다. 프로그래밍의 본성을 바꾸어 놓는 21가지 기술을 살펴본다. 이 기술들로 인해 개발자의 협업 방식, 고객 지원 방식, 코딩 방식이 바뀌고 있다. 개발자라면 정신을 바짝 차리기 바란다. 지속적인 통합(Continuous Integration) 과거에는 리포지토리(Repository)에 코드를 커밋하고 나면 보통 커피를 마시며 한숨 돌리거나 점심을 먹을 여유가 있었다. 하지만 더 이상은 아니다. 오늘날의 리포지토리는 지속적인 빌드 시스템과 밀접하게 연결되어 있기 때문이다. 지속적인 빌드 시스템은 코드를 다시 컴파일하고, 아키텍처를 검사하고, 코드에 수백 가지 테스트를 수행해 오류의 가능성을 표시해 준다. 이 때문에 개발자는 지속적인 빌드 시스템이 보내는 작업 수정 요청 메일과 문자 메시지 때문에 책상에서 한치도 벗어나기 어렵다. 지속적인 빌드 시스템은 개발자에게 늘 새로운 일...

2017.08.08

"트럼프 불안해"··· 인터넷 아카이브, 대안 사이트 구축 검토

웹 등의 출처로부터 생성된 데이터를 보관하는 비영리 재단 인터넷 아카이브(Internet Archive)가 캐나다에 보관용 라이브러리 구축을 검토하고 있다. 도널트 트럼프가 미 대통령에 당선된 이후 데이터를 좀더 안전하게 필요가 증대됐다는 설명이다. 인터넷 아카이브 설립자 브루스터 케일은 블로그 포스트를 통해 "올해 새로운 목표를 설정했다. 인터넷 아카이브 디지털 데이터 복사본을 다른 국가에 마련하는 것이다. 캐나다에도 인터넷 아카이브를 구축하고 있다. LOCKSS의 동료 말을 인용하자면 '복사물 다수를 안전하게 보관'하기 위해서다"라고 밝혔다. LOCKSS는, 라이브러리들이 웹 기반 데이터를 수집하고 공유하도록 돕는 오픈소스, 피어투피어 네트워크다. 카일은 이어 캐나다의 인터넷 아카이브가 데이터를 안전하면서도 영구적으로 접근 가능하도록 하도록 하는데 일조할 것이라고 기대했다. 그는 "웹에 각종 제한이 취해질 수 있다. 각국의 정부가 감시를 강화할 수도 있다. 그러한 행위들이 더욱 극심해질 수 있다. 끔찍한 프라이버시 침해에 맞서 싸워온 라이브러리들을 역사에서 찾아볼 수 있다. 우리 또한 디지털 세상 속에서 우리 독자들의 프라이버시를 위해 싸우고 있다"라고 전했다. 카일은 이어 "11월 9일 미국은 급격한 변화를 예고하는 지도자를 선출했다. 그의 당선은 우리와 같은 기관이 변화에 대응하는 장기적 방안을 마련해야 할 필요성을 뚜렷이 상기시켰다"라고 말했다. 인터넷 아카이브는 현재 캘리포니아에 소재한 데이터센터에 약 15페타바이트(150만 기가바이트) 이상의 역사적 온라인 데이터를 보관하고 있다.1996년부터 만들어진 웹 페이지 1,500개를 비롯해 각종 소프트웨어, 사진, 영화, 오디오 클립, 서적 등의 데이터 등이다. 특정 사이트의 도메인을 입력하면 해당 사이트가 과거에 어떤 모습이었는 보여주는 '웨이백머신' 서비스를 제공하며, 작년에는 도스용 고...

캐나다 역사 인터넷 아카이브 라이브러리 트럼프 보관

2016.11.30

웹 등의 출처로부터 생성된 데이터를 보관하는 비영리 재단 인터넷 아카이브(Internet Archive)가 캐나다에 보관용 라이브러리 구축을 검토하고 있다. 도널트 트럼프가 미 대통령에 당선된 이후 데이터를 좀더 안전하게 필요가 증대됐다는 설명이다. 인터넷 아카이브 설립자 브루스터 케일은 블로그 포스트를 통해 "올해 새로운 목표를 설정했다. 인터넷 아카이브 디지털 데이터 복사본을 다른 국가에 마련하는 것이다. 캐나다에도 인터넷 아카이브를 구축하고 있다. LOCKSS의 동료 말을 인용하자면 '복사물 다수를 안전하게 보관'하기 위해서다"라고 밝혔다. LOCKSS는, 라이브러리들이 웹 기반 데이터를 수집하고 공유하도록 돕는 오픈소스, 피어투피어 네트워크다. 카일은 이어 캐나다의 인터넷 아카이브가 데이터를 안전하면서도 영구적으로 접근 가능하도록 하도록 하는데 일조할 것이라고 기대했다. 그는 "웹에 각종 제한이 취해질 수 있다. 각국의 정부가 감시를 강화할 수도 있다. 그러한 행위들이 더욱 극심해질 수 있다. 끔찍한 프라이버시 침해에 맞서 싸워온 라이브러리들을 역사에서 찾아볼 수 있다. 우리 또한 디지털 세상 속에서 우리 독자들의 프라이버시를 위해 싸우고 있다"라고 전했다. 카일은 이어 "11월 9일 미국은 급격한 변화를 예고하는 지도자를 선출했다. 그의 당선은 우리와 같은 기관이 변화에 대응하는 장기적 방안을 마련해야 할 필요성을 뚜렷이 상기시켰다"라고 말했다. 인터넷 아카이브는 현재 캘리포니아에 소재한 데이터센터에 약 15페타바이트(150만 기가바이트) 이상의 역사적 온라인 데이터를 보관하고 있다.1996년부터 만들어진 웹 페이지 1,500개를 비롯해 각종 소프트웨어, 사진, 영화, 오디오 클립, 서적 등의 데이터 등이다. 특정 사이트의 도메인을 입력하면 해당 사이트가 과거에 어떤 모습이었는 보여주는 '웨이백머신' 서비스를 제공하며, 작년에는 도스용 고...

2016.11.30

"인기 압축파일 라이브러리에서 취약점 발견··· 수많은 SW 유관"

기존 써드파티 코드를 일부 이용하는 소프트웨어 개발 프로젝트를 진행할 때, 오픈소스 라이브러리 내 취약점을 발견하고 패치하는 작업은 필수적이다. 시스코 시스템의 탈로스 그룹 연구진이 최근 보고한 라이버카이브(libarchive) 내 3개의 주요 결함은 이런 측면에서 특히 눈길을 끈다. 이들이 보고한 결함은 수많은 소프트웨어 제품의 안정성과 직결되기 때문이다. 라이버카이브(libarchive)는 프리BSD를 위해 처음 개발된 오픈소스 라이브러리다. 이후 각종 주요 운영체체용으로 포팅됐다. 이 라이브러리가 제공하는 기능은 tar, pax, cpio, ISO9660, zip, lha/lzh, rar, cab,77-Zip 등 다양한 알고리즘으로 압축된 파일에 실시간으로 접근할 수 있도록 하는 것이다. 오늘날 수많은 리눅스 및 BSD 시스템 내에 포함된 파일 및 패키지 매니저들이 이 라이브러리를 이용하고 있으며, OS X과 크롬 OS 내 각종 도구 및 콤포넌트들도 이를 내장하고 있다. 아울러 이 라이브러리는 애플리케이션 개발 시점에 코드로 삽입될 수 있다. 얼마나 많은 애플리케이션이나 펌웨어에 이 라이브러리가 내장됐는지 추적하기도 힘든 상황인 셈이다. 시스코 탈로스 연구진은 7-ZIP과 mtree, rar 파일을 처리하는 라이버카이브 코드에서 인티저 오버플로우(integer overflow), 버퍼 오버플로우(buffer overflow), 힙 오버플로어(heap overflow) 결함을 최근 발견했다. 원격지에서 임의의 코드를 실행할 수 있도록 허용할 수 있는 메모리 오염 오류에 해당하는 것이다. 탈로스 연구진은 21일 블로그 포스트를 통해 "라이버카이브와 같은 소프트웨어 조각에서 결함이 발견되면, 이를 이용하는 수많은 써드파티 프로그램에 영향을 미친다. 공격자들이 이를 악용할 수 있기에 관련 프로그램을 모두 파악해 가급적 빨리 패치할 필요가 있다"라고 밝혔다. 그러나 소프트웨어 개발자들은 대개 과거 이용했던 써드파티...

시스코 라이브러리 탈로스 라이버카이브 오버플로우

2016.06.23

기존 써드파티 코드를 일부 이용하는 소프트웨어 개발 프로젝트를 진행할 때, 오픈소스 라이브러리 내 취약점을 발견하고 패치하는 작업은 필수적이다. 시스코 시스템의 탈로스 그룹 연구진이 최근 보고한 라이버카이브(libarchive) 내 3개의 주요 결함은 이런 측면에서 특히 눈길을 끈다. 이들이 보고한 결함은 수많은 소프트웨어 제품의 안정성과 직결되기 때문이다. 라이버카이브(libarchive)는 프리BSD를 위해 처음 개발된 오픈소스 라이브러리다. 이후 각종 주요 운영체체용으로 포팅됐다. 이 라이브러리가 제공하는 기능은 tar, pax, cpio, ISO9660, zip, lha/lzh, rar, cab,77-Zip 등 다양한 알고리즘으로 압축된 파일에 실시간으로 접근할 수 있도록 하는 것이다. 오늘날 수많은 리눅스 및 BSD 시스템 내에 포함된 파일 및 패키지 매니저들이 이 라이브러리를 이용하고 있으며, OS X과 크롬 OS 내 각종 도구 및 콤포넌트들도 이를 내장하고 있다. 아울러 이 라이브러리는 애플리케이션 개발 시점에 코드로 삽입될 수 있다. 얼마나 많은 애플리케이션이나 펌웨어에 이 라이브러리가 내장됐는지 추적하기도 힘든 상황인 셈이다. 시스코 탈로스 연구진은 7-ZIP과 mtree, rar 파일을 처리하는 라이버카이브 코드에서 인티저 오버플로우(integer overflow), 버퍼 오버플로우(buffer overflow), 힙 오버플로어(heap overflow) 결함을 최근 발견했다. 원격지에서 임의의 코드를 실행할 수 있도록 허용할 수 있는 메모리 오염 오류에 해당하는 것이다. 탈로스 연구진은 21일 블로그 포스트를 통해 "라이버카이브와 같은 소프트웨어 조각에서 결함이 발견되면, 이를 이용하는 수많은 써드파티 프로그램에 영향을 미친다. 공격자들이 이를 악용할 수 있기에 관련 프로그램을 모두 파악해 가급적 빨리 패치할 필요가 있다"라고 밝혔다. 그러나 소프트웨어 개발자들은 대개 과거 이용했던 써드파티...

2016.06.23

'사랑하지만, 그래도' 자바스크립트의 싫은 부분 10가지

우리는 자바스크립트를 좋아한다. 1992년에는 정적 웹 페이지가 보기 좋았지만, 지금의 웹 페이지들은 노래하고 춤추거나 기타 자바스크립트로 작성된 매혹적인 코드로 사용자들을 유혹한다. 우리는 매일, 거의 모든 플랫폼에서, 거의 모든 목적으로 자바스크립트를 쓰지만, 그렇다고 자바스크립트의 모든 면을 좋아한다는 뜻은 아니다. 여기서는 웹의 오랜 언어인 자바스크립트에 대해 우리가 싫어하는 10가지를 살펴보자. 물론 싫다고 해도 서버에 루트킷으로 침투해 엄청난 양의 스팸 메시지를 보내는 사람에 대해 느끼는 적개심만큼은 아니다. 어쩌면 단순한 불평 정도일 것이다. 판단은 여러분 스스로 하기 바란다. editor@itworld.co.kr

개발자 브라우저 자바스크립트 함수 DOM 라이브러리

2014.04.08

우리는 자바스크립트를 좋아한다. 1992년에는 정적 웹 페이지가 보기 좋았지만, 지금의 웹 페이지들은 노래하고 춤추거나 기타 자바스크립트로 작성된 매혹적인 코드로 사용자들을 유혹한다. 우리는 매일, 거의 모든 플랫폼에서, 거의 모든 목적으로 자바스크립트를 쓰지만, 그렇다고 자바스크립트의 모든 면을 좋아한다는 뜻은 아니다. 여기서는 웹의 오랜 언어인 자바스크립트에 대해 우리가 싫어하는 10가지를 살펴보자. 물론 싫다고 해도 서버에 루트킷으로 침투해 엄청난 양의 스팸 메시지를 보내는 사람에 대해 느끼는 적개심만큼은 아니다. 어쩌면 단순한 불평 정도일 것이다. 판단은 여러분 스스로 하기 바란다. editor@itworld.co.kr

2014.04.08

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

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

Copyright © 2022 International Data Group. All rights reserved.

10.5.0.8