<img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=1387208918241112&ev=PageView&noscript=1"/>

뉴스센터 목록으로 돌아가기

'아두이노(Arduino)'란? 5분만에 쉽게 알아보기

위시켓 | 2020.08.18.

안녕하세요? 위시켓입니다.

혹시 여러분은 최근에 아두이노(Arduino)라고 부르는 것에 대해 들어본 적이 있으신가요? 아니면 아두이노를 프로젝트에서 사용하려고 생각 중인데, 그게 과연 좋은지 확신이 들지 않으시나요? 아마 흔히들 사용하는 아두이노를 보며, 왜 그렇게 인기가 많은 지에 대해서 궁금증을 가지셨을 거라고 생각합니다.

​이번 시간, 위시켓은 아두이노가 정확히 무엇인지, 왜 그렇게 유명한지, 여러분의 프로젝트에 과연 아두이노를 쓰는 것이 적합할지 알려드리는 시간을 갖고자 합니다. 그동안 아두이노(Arduino)에 대해서 궁금한 게 있으셨다면, 오늘 글을 통해 한 번에 해결해보세요:)

​*잠깐, 위시켓은 2019년 시밀러웹 방문자 수 기준, 국내 1위 IT아웃소싱 플랫폼입니다. 현재 8만 개 이상의 개발 업체가 활동 중이며, 무료로 프로젝트 등록이 가능합니다. 프로젝트 등록 한 번으로 여러 개발 업체의 견적/ 예상 기간/ 포트폴리오를 한 번에 알아보세요!

아두이노(Arduino) 개념 먼저 알아보기.

아두이노는 간단히 말해, 전자기기를 제어하는 도구입니다. 연필을 떠올려보세요. 연필은 무언가를 적을 수 있게 도와주는 도구입니다. 뭔가를 적을 필요가 있을 때, 여러분은 연필을 쥐고 쓸 수 있습니다. 아두이노도 마찬가지 개념입니다. 아두이노가 전자기기를 제어하는 도구라는 점만 다를 뿐이죠. 만약 여러분이 전자기기 같은 걸 제어해야 한다면, 연필이 아니라 아두이노를 잡으면 됩니다. 너무 어렵게 생각하지 마세요.

​자, 이제 '전자기기 같은 것'을 크게 두 종류로 나누어 보겠습니다. 하나는 입력(input)을 하는 것으로, 정보를 모으는 전자기기가 이런 종류입니다. 그리고 출력(inout)도 있는데, 뭔가를 수행하는 전자기기들을 말하는 것입니다.



(아두이노 입력)


이런 센서들을 입력 장치라고 생각하세요. 아두이노 보드에서는 이런 종류의 센서들에서 정보를 읽어들일 수 있습니다.


(아두이노 출력)


출력은 직류(DC) 모터, 스테퍼(stpper) 모터, 서보(servo) 모터, 솔레노이드(solenoid), LCD 디스플레이, LEF 표시등, 스피커 그리고 세상에 존재하는 다양한 장치들을 말합니다.

​아두이노에서는 입력을 읽어들여서 출력을 조절할 수 있습니다. 이런 게 아두이노가 하는 일이죠. 그렇다면 아두이노는 어떻게 작동하는 것일까요? 우리가 아두이노에 대해서 이야기할 때, 실제로는 아두이노 하드웨어, 아두이노 통합개발환경(IDE), 아두이노 코드, 이렇게 세 가지를 말하는 것입니다. 자세히 한 번 알아보시죠.


아두이노 하드웨어


먼저, 아두이노 보드(board)라고 하는 물질적인 컴포넌트가 있습니다. 아두이노 보드는 다양한 종류가 있는데요. 누군가 아두이노 보드라고 말한다면, 그것은 상황에 따라 전혀 다른 것을 의미할 수도 있죠. 인기가 아주 많은 보드 중의 하나는 바로 아두이노 우노(Arduino UNO)라고 하는 것입니다.

(아두이노 우노보드)


아두이노 보드는 모두 한 가지의 공통점을 가지고 있습니다. 바로 그 위에 마이크로컨트롤러(microcontroller)를 갖고 있다는 것이죠. 마이크로컨트롤러는 기본적으로 아주 작은 컴퓨터라고 할 수 있습니다. 그래서 아두이노 사용법을 배운다는 것은 마이크로컨트롤러의 사용법을 배우는 것과 마찬가지입니다. 마이크로컨트롤러는 우리가 다양한 입력을 읽을 수 있게 해주고, 다양한 출력들을 조절할 수 있게 해줍니다.


아두이노 소프트웨어


아두이노는 하드웨어에 불과한 게 아니라, 소프트웨어이기도 합니다. 아두이노 IDE(통합개발환경)이라고 부르는 것이 있습니다. 이것은 여러분의 컴퓨터에 다운로드할 수 있는 소프트웨어 애플리케이션이며, 아두이노 보드에서의 프로그래밍을 하기 위한 용도로 사용할 수 있습니다.


(아두이노 IDE)


이는 완벽히 무료 소프트웨어이며, 사용법도 상당히 쉽습니다. 메모장과 상당히 비슷하게 생겼죠. 아두이노 IDE를 이용하면, 직접 코드를 작성해서 그것을 아두이노 보드에 실제로 업로드 할 수 있습니다.


아두이노 코드


아두이노 3인방 중에서 세번째 파트는 바로 아두이노 코드입니다. 아두이노 IDE 내부에서 작성한 코드는 결국엔 아두이노 보드에 있는 마이크로컨트롤러에 업로드하게 됩니다. 여러분이 작성하는 아두이노 코드는 스케치(sketch)라고 부릅니다. 아두이노 코드는 기본적으로 C 계열의 프로그래밍 언어이기는 하지만, 아두이노만이 가지고 있는 함수(function)와 구조들도 있습니다. 그래서 아두이노 프로그래밍을 하는 것은 기본적으로 C나 C++ 언어로 프로그래밍 하는 것과 비슷합니다.

​지금까지 살펴본 것이 바로 '아두이노'라는 것을 이루는 세 가지의 구성요소들이며, 그것들이 각각 무엇을 하는지에 대해서도 간단하게 설명을 했습니다.


아두이노는 왜 그렇게 인기가 많을까?

아두이노 보드에서 핵심적인 컴포넌트가 바로 마이크로컨트롤러라고 했던 것을 떠올려 보세요. 일반적으로 마이크로컨트롤러는 사용하기가 상당히 복잡합니다. 마이크로컨트롤러 하나에 대한 사용자 매뉴얼만 해도 300페이지가 넘으며, 엄청나게 많은 전문적인 기술용어들로 가득 차있습니다.


(아두이노 마이크로컨트롤러 매뉴얼)


아두이노를 처음 만든 사람들은 이러한 마이크로컨트롤러를 가능한 쉽게 사용할 수 있게 했습니다. 그래서 굳이 전자공학 엔지니어나 컴퓨터 과학자가 아니라고 하더라도, 누구나 쉽게 손으로 뭔가를 만들 수 있죠. 그렇다면 어떻게 해서 마이크로컨트롤러를 사용하기 쉽게 만들 수 있었을까요?

​첫째, 아두이노 보드가 원래부터 사용하기 쉽게 설계되었습니다. 일반적으로 마이크로컨트롤러에 연결할 때 필요한 특수한 케이블이 아니라, 단순한 USB 케이블만으로도 컴퓨터에 연결할 수 있습니다.


(아두이노 USB 연결)


아두이노 보드를 이용하면 다른 전기 부품과 마이크로컨트롤러를 연결하는 것도 아주 쉽습니다. 아두이노 보드에는 이렇게 주위를 따라서 플라스틱 구멍들이 있기 때문입니다. 이 구멍들은 헤더(header)라고 부르며, 전기 부품을 마이크로컨트롤러에 연결하려면 그 부품을 구멍 안쪽에 꽂아 넣기만 하면 되기 때문에, 정말 간단합니다.


(아두이노 헤더)


그리고 아두이노에는 외부 전원 연결 잭(jack)이 내장되어 있어서, 컴퓨터에 연결되어 있지 않더라도, 건전지에 연결해서 전원을 공급받을 수 있습니다.


(아두이노 배터리 잭)


세상에는 수많은 통합개발환경(IDE)이 있지만, 아두이노 IDE는 단순함을 염두에 두고 만들어졌습니다. 여기에는 사용하기 어렵게 만드는 거추장스러운 요소들이 전혀 없으며, 코드를 적을 수 있는 창 하나만이 있습니다. 그리고 아두이노 IDE에서 작성한 코드를 업로드하려면, 간단하게 버튼 하나만 누르면 업로드됩니다.


(아두이노 업로드 버튼)


마지막으로, 아두이노 코드 자체에는 특별히 입력 읽기와 출력 조절을 위한 함수(function)들이 있습니다. 만약 마이크로컨트롤러를 직접 다루는 프로그래밍을 하고자 한다면, 사용자 매뉴얼을 계속해서 참조하면서, 다양하게 제어하는 경우에 대한 아주 상세한 정보를 찾을 수 있습니다.


(아두이노 코드 레퍼런스)


아두이노 언어는 여러분이 사용할 수 있는 프로그래밍 함수들을 간단하게 만들어서, 복잡한 일들을 크게 줄였습니다. 여러분이 설치해서 사용할 수 있는 아두이노 코드 라이브러리가 많이 있으며, 이러한 라이브러리는 다양한 센서들과 상호작용하는 것에서부터 수없이 많은 출력을 제어하는 것에 이르기까지 온갖 종류의 컴포넌트 사용을 간단하게 만들어줍니다. 이렇게 아두이노 하드웨어는 쉽고, 아두이노 IDE는 간단하며, 코드는 (기존의 마이크로컨트롤러를 프로그래밍하는 것에 비해서) 상당히 이해하기 쉽습니다. 이런 점이 아두이노의 인기가 이렇게 많은 이유입니다.

아두이노의 인기가 많은 또 하나의 이유는 이것을 사용하는 사람이 상당히 많다는 것인데, 이 말은 여러분이 참고할 수 있는 예제들이 아주 많다는 것을 의미합니다. 아두이노 보드 자체는 오픈소스 하드웨어입니다. 즉, 아두이노 보드를 만들고 아두이노 IDE를 지원하는 아두이노라는 이름을 가진 기업이 있기는 하지만, 아두이노 IDE에서 프로그래밍 되어서 아두이노와 호환되는 보드를 만들고 있는 다른 기업들도 아주 많다는 것을 의미하죠. 여러분이 사용할 수 있는 하드웨어와 코드 생태계는 매우 거대하다고 말할 수 있습니다.


(아두이노 오픈소스 하드웨어)


마지막으로, 아두이노 하드웨어는 일반적으로 상당히 저렴한 편이기 때문에, 이 점 역시도 인기를 유지시켜주는 부분입니다.


여러분의 프로젝트에는 과연, 아두이노가 적합할까요?

여러분의 프로젝트에 입력과 출력이 있고, 둘 사이를 이어주는 간단한 논리가 필요하신가요? 예를 들어서, 여러분의 프로젝트에 온도 센서(입력)가 있고, 온도센서에서 특정한 수준 이상을 읽어 들이면(논리), 냉각 팬을 켜는 것(출력)을 원하는 것이 될 수 있습니다.

그리고 입력과 출력이 여러 개 있을 수도 있습니다. 예를 들자면, 이런 걸 만들 수 있습니다.

​'만약 온도가 이 범위 안에 있고, 시간도 그 범위에 있는데, 태양이 비치고 있지 않다면, 무선으로 전등 스위치를 켠 다음에 그 스위치를 원래 위치에 돌려놓는다.'

​그래서 만약 여러분의 프로젝트가 이런 기본적인 아이디어를 따르고 있고, 입력과 출력이 있으며, 그것들을 제어할 필요가 있다면, 아다모 아두이노가 좋은 선택이 될 것입니다.


(아두이노의 다양한 입력과 출력)


지금까지 아두이노가 마이크로컨트롤러를 사용한다고 언급했습니다. 마이크로컨트롤러는 작은 컴퓨터와 같습니다. 그래서 만약 여러분의 프로젝트에서 동영상 녹화나 거대한 연산과 같은 거대한 입력을 필요로 한다면, 아마도 아두이노가 적합하지는 않을 것입니다. 이런 유형의 애플리케이션에서 아두이노를 잠정적으로 사용할 수 있을까요? 물론 그럴 수도 있겠지만, 아마도 그런 종류의 프로젝트에서는 보다 적합한 기술이 있을 겁니다.


아두이노 프로젝트, 위시켓에서 시작하세요!

모든 비즈니스의 핵심은 '타이밍'입니다. 여러 개의 개발업체를 일일이 알아보는 것은 번거롭고, 너무나도 많은 시간이 듭니다. 위시켓어서 하루 평균 5개 개발업체의 지원을 받고, 아두이노 프로젝트에 성공해보세요. 지금, 무료로 프로젝트를 등록해 주시면 2만 건의 데이터를 바탕으로 가장 합리적인 견적을 찾아드립니다.


> 이 글은 'WHAT IS ARDUINO AND CAN I USE IT FOR MY PROJECT?'를 각색하여 작성되었습니다.

위시켓 | 2020.08.18.

'뉴스센터'의 다른 글 보기

[업데이트] ‘미팅 신청’ 기능으로, 미팅 조율이 더욱 빠르고 편리해졌습니다.

놓치면 후회하는, 2020년 에듀테크 트렌드 총정리

'아두이노(Arduino)'란? 5분만에 쉽게 알아보기

페북부터 우버이츠, 에어비앤비까지? '리액트 네이티브'로 대박난 앱

고객의 마음을 읽는 독심술, '고객여정지도' 만들기

뉴스센터 더 보기 >