본문 바로가기

Software

(79)
DSP란 무엇인가? 해당 글은 : http://digicon.egloos.com/107093#comment_107093 에서 정리되었습니다. DSP란 무엇인가? DSP는 약자로서, Digital Signal Processing 혹은 Digital Signal Processor를 의미한다. 이 글에서는 특별한 구분이 없는 한 Digital Signal Processor를 가리키는 것으로 한다. 그렇다면, Digital Signal Processor는 무엇인가? 우리말로 옮겨 보자면, '디지털 신호 처리를 행하는 무엇' 이라고 할 수 있다. 이 무엇은 사람이 될 수도 있고, 시스템이 될 수도 있으며, 집적회로가 될 수도 있다. 이 글에서는 범위를 한정시켜 집적회로만을 지칭하는 것으로 한다. '디지털 신호처리용 집적회로'라고 옮..
(중급) Embedded Linux System - 1일차 (중급) Embedded Linux System - 1일차개발 환경설정 NEXUS Series 개발장비는 Embedded Linux System에서 공부를 하기에 최적의 교구제이다.벤더 입장에서 여러가지 테스트를해 볼 수 있으며, 해당 디바이스에 대하여 최신 버전까지도 지원해 주고 있다.또한 중고 가격이 저렴하기 때문에 장비 구매에 있어서 부담이 적다. * 라즈베리파이 또한 개발 장비로 훌륭하다. 안드로이드에서 사용되는 C/C++ 라이브러리는 리눅스기반의 C 프로그램이므로, 윈도우에서 C/C++ 라이브러리를 만들려면 리눅스 버추얼 머신이 필요하다.VMWare 나 Virtual-Box 같은 프로그램을 사용하여 리눅스를 설치하고, 해당 리눅스 환경에서 Android NDK를 설치하여 프로그램을 개발하는 방향..
Concurrency Programming Guide 요약 해당 글은 https://byunsooblog.wordpress.com/2013/03/26/concurrency-programming-guide-요약/ 에서 작성되었습니다.Concurrency Programming Guideconcurrency and application design예전에는 일하는 시간이 CPU의 clock 속도로 결정이 됐었다. 칩의 효율이 점점 발전하니까 다른 성능을 발전시킬 방법이 없나 찾게됬고, 결국 해결방법은 각 칩의 프로세서 코어의 숫자를 늘리는 것. 이제 속도는 빨라지게 됬지만, 신경써야 할 점은 어떻게 추가된 코어의 이점을 이용할 것인가가 되었다. 여러개의 코어의 이점을 얻기 위해서는 소프트웨어가 여러가지 일을 동시에 하도록 만들어져야 한다. 여러개의 코어를 사용하는 방법..
[JavaScript] - ICE Breaking(3) Javascript ICE Breaking 세번째 - Function - No Return Type(함수 정의시 린턴 타입에 대한 구분을 하지 않는다.)- Optinal Argument List(동적으로 변경가능한 인자값의 갯수)- Arguments.length function a(arg1, arg2) { arg1; //a arg2; //undefined{ //a('a') function b() { arguments[0]; //a arguments[1]; //b arguments.length //2} //b('a', 'b') function c(arg1, arg2) { arg1; //a arg2; //b arguments[2]; //c arguments[3]; //d argumnets.length; //..
[JavaScript] - ICE Breaking(2) Javascript ICE Breaking 두번째 - Statement Statement문장에 끝은 세미콜론(;)으로 마친다생략가능 - 개행 문자를 만나면 문장의 끝으로 판단 - ASI(Auto Semicolon Insertion) 메커니즘 - 오류를 발생할 위험이 매우 높음 if() - else, switch() - Case, for(), while() 에 대한 구문을 설명은 생략. (다른 언어와 동일) For - inloop each properties in a object배열에는 사용하지 말 것var obj = { name : 'lee', age : 20} for(var i in obj) { console.log(i + ": " + obj[i]);} Throw함수의 정상 결과는 return 문함수의..
[JavaScript] - ICE Breaking(1) ICE Breaking 최근 NodeJs 강의를 듣게 되었으며, 약 5년전에 잠시 해보았던 JavaScript에 대하여 다시 한번 돌아보는 시간을 가지게 되었다. 약 5년전 Smart TV에 구동되는 Web Application 개발을 하면서 JavaScript에 대하여 공부를 했었고 알고 있다고 생각 했었으나, 다시 한번 강의를 들어보니 나에게 JavaScript는 생소한 언어가 되어 있었다. 긴 시간을 거슬러 다시 한번 되돌아보자는 마음으로 해당 언어에 대하여 정리를 해보고자 한다.(기본적인 C or Java 언어의 문법을 알고 있다는 가정하에 정리) Syntex Naming Convention- 변수, 함수 : 소문자, 두 번째 단어부터 첫 글자 대문자.(카멜 표기법(CamelCase)을 따른다.)..
Device Discovery Protocol - mDNS(Multicast DNS) Multicast DNS 1. 소개 Multicast Domain Name System(mDNS)는 로컬 네트워크 영역에서 설정없이(zero configuration) 호스트 이름을 찾기 위해서 사용하는 서비스이다. Unicast Domain Name System(DNS)와 유사한 프로그래밍 인터페이스 그리고 패킷을 사용한다. 소형 네트워크 환경에서 별도의 네임서버를 사용하지 않고 호스트를 찾을 수 있다. mDNS는 멀티캐스트 기술을 이용한다. 애플의 Bonjour와 리눅스의 nss-mdns 서비스가 mDNS를 이용한다. 2. 프로토콜 개요 mDNS 클라이언트는 호스트 이름을 알아야 할 경우 IP 멀티캐스트 쿼리 메시지를 전송한다. 이때 자신의 호스트 이름과 IP 주소 등, 자신을 확인할 수 있는 정보들..
Device Discovery Protocol - SSDP(Simple Service Discovery Protocol) 해당 글은 http://www.joinc.co.kr/w/Site/IOT/Discovery 에서 정리 되었습니다. 1. 소개 근거리 네트워크에서 기기를 찾기 위한 방법을 알아보자. 기기를 근거리에서 연결하던, 인터넷에 연결하는 방법을 사용하던 일단 Discovery(발견 : 탐색)을 해야 한다. 기기를 Discover 하지 않더라도 유저가 직접 기기 앞에서 - NFC, Bluetooth 혹은 기기를 wifi-AP로 설정하여 등록하는 방법이 있겠으나, 사용성을 높이기 위해서는 알아서 주변의 기기를 찾아주는것이 좋다. 이런 일을 위한 Discovery 프로토콜이 몇 개 있는데 이들 프로토콜을 살펴보고, 이들 프로토콜을 이용하여 어떻게 기기를 자동으로 찾아서 등록할 수 있을지에 대하여 고민해 보려고 한다. 2...