안녕하세요! 공대남 입니다. 오늘은 아두이노를 활용한 다양한 프로젝트 사례들을 소개해보겠습니다.

아두이노에 대해서 알고계십니까? 아두이노는 간단히 말하자면 다양한 센서들과 제어를 할 수 있는 컨트롤러와

코딩을 할 수 있는 소프트웨어 모든 것을 갖추고 있는 하드웨어 + 소프트웨어 입니다.

이것을 이용하면 생각하는 것 무엇이든지 만들 수 있습니다. 저도 이번에 아두이노 프로젝트를 하게되었습니다. 

아두이노에 대하여 간단하게 알아보고 다양한 프로젝트 사례들을 알아보겠습니다.

차례

1. 아두이노란 ?

2. 아두이노 활용 사례

1. 아두이노란 ?

아두이노는 마이크로컨트롤러 입니다. 즉, 어떤 값을 인식하고 판단하여 

제어하고 원하는 출력(동작)을 수행할 수 있는 임베디드 시스템을 갖추고 있습니다.

그래서 아두이노에너느 다양한 센서나 부품들이 포함되어 있고 이를 직접 연결할 수 있습니다.

그리고 직접 코딩하여 원하는 프로그램을 코딩하고 오픈소스를 이용하여

많은 사람들이 손쉽게 코딩정보를 교환할 수 있도록 했습니다.

그렇게하여 공학도도 접근이 쉽지 않은 마이크로 컨트롤러를 일반인들에게도 쉽게 다가갈 수 있었습니다.

가격이 저렴하고 배우기 쉬워 교육용, 또 취미용으로도 많이 쓰이고 있습니다.

-

2. 아두이노 활용 사례

(1) 아두이노 드론

아두이노를 이용하여 만든 드론입니다.

실제로도 난이도가 그렇게 어렵지 않아서 아두이노로 드론 만드는 분들이 많습니다.

구글에 아두이노 드론만 검색해봐도 엄청나게 많이 보실 수 있습니다.

또, 아두이노를 제어할 수 있는 어플리케이션을 만드는 툴도 따로있기 때문에

제어할 수 있는 어플을 만드는 것도 편리합니다.


(2) 모션 카피 로봇

이분은 기울기 센서와 같은 것들을 이용해서 사람의 움직임을 카피하는 로봇 팔을 만들었습니다.

저도 되게 관심있게 봤습니다. 정말 활용 분야가 넓다고도 생각이 들었습니다.

또 아두이노와 그 외에 부품들을 결합해서도 만들 수 있습니다.


(3) 아두이노 도형기

아두이노를 활용해서 plotter 머신을 만든 분 입니다.

이것도 많은 분들이 만들었습니다. 입력한 값대로 글이나 그림을 프린팅하는 프로세스입니다.


(4) 3D 프린터

이건 정말 대단한 것 같습니다. 아두이노를 이용해서 홈 메이드 3d 프린터를 만들었습니다.

3d 프린터를 만드는 것 자체도 힘들지만 아두이노로 만들어 보겠다는 생각도 대단한 것 같습니다.

이렇게 보면 아두이노의 한계가 어디인지 정말 궁금합니다.


(5) 지능 로봇

이분은 거미 로봇을 만들었습니다. 아두이노를 많이 해보신 분들은 로봇이나 4륜 구동기가 같은 것들을 만들어 보셨을 겁니다.

좀 더 나아가 균형로봇이라 던지 많은 분야에 적용한 로봇들이 아두이노로 만들어 지고 있습니다.

-

오늘은 아두이노가 뭔지 간단히 알아보고, 다양한 프로젝트 사례들을 알아 보았습니다.

저도 아두이노 프로젝트를 준비하고 있는 입장으로써 많은 도움이 됐습니다.

다음에는 좀더 유용하고 좋은글로 찾아오겠습니다. 감사합니다!

안녕하세요! 공대남입니다. 오늘은 무선통신 종류에 대하여 알아보겠습니다.

현재 저희는 엄청나게 많은 무선통신 기술 속에서 생활하고 있습니다. 매일 하는 전화부터

스마트폰의 와이파이, 블루투스 키보드나 마우스, GPS기능 등 무수히 많습니다.

요즘은 무선충전기도 거의 상용화되었습니다. 이렇듯 만약 무선통신 기술이 없다면

지금생활이 거의 불가능할 것 입니다. 그럼 관심을 가져서 무선통신들의 종류와 원리에 대하여 알아보도록하겠습니다.

차례

1. RFID ( Radio Frequency Identification )

2. NFC ( Near Field Communication )

3. MST ( Magnetic Secure  Transmission )

4. NFMI ( Near Field Magnetic Induction )

1. RFID ( Radio Frequency Identification )

RFID는 단말기가 전원을 필요하냐 안하냐에 따라 액티브형, 패시브형으로 나눌 수 있습니다.

전원이 필요없는 경우 패시브형의 대표적인 예 : 교통카드, 출입 증

전원이 필요한 경우 액티브형의 대표적인 예 : 하이패스

패시브형의 RFID의 원리는 전원이 존재하는 리더기의 주파수를 이용해 태그에 접속하여 정보를 가져오는 방법입니다.

액티브형의 경우 단말기가 필요한 전력을 줄일 수 있고 태그 자체에 전원이 있기 때문에 접속 거리를

줄일 수 있는 이점이 있습니다. 하지만 전원이 필요하기 때문에 작동시간에 제한을 받으며

패시브형보다 고가 입니다. 반면 패시브형은 반영구적으로 사용가능하고 가격이 저렴합니다.

2. NFC ( Near Field Communication )

00페이 라고 광고에서 보셨거나 직접 쓰시는 ~페이가 있으실 겁니다. 이런 것들의 원리가 NFC입니다.

NFC는 근거리 통신 기술인데, 통신거리가 짧고 보안이 꽤나 우수하고 가격이 저렴하다는 점에서 우수성을 띄고 있습니다.

그리고 NFC는 블루투스와 비슷하지만, 블루투스 처럼 기기간의 연결 과정이 없어서 훨씬 편리합니다.

-

3. MST ( Magnetic Secure  Transmission )

MST 무선통신 기술의 대표적인 예는 삼성페이 입니다. 일반단말기에 스마폰을 이용하여 결제할 수 있는 기술입니다.

이것은 마그네틱이라는 단어에서 옅볼 수 있는데, 자기장을 이용한 기술입니다. 스마트폰에 카드의 마그네틱 선에서

발생하는 고유의 자기장 패턴을 복제해서 일반 단말기에서 스마트폰으로 결제가 가능하도록 하는 기술입니다.

4. NFMI ( Near Field Magnetic Induction )

무선 이어폰이나 헤드셋에 많이 사용되는 기술입니다. 전기장과 자기장이 교차로 전파되는 전자기파를 이용하여

아날로그 신호를 자기유도하는 방식으로 신호를 송수신하는 방식입니다.

멀리 전파되는 성질이 없기때문에 근거리용입니다.

-

이번 글을 통해서 주요한 무선통신 기술의 종류와 원리의 대하여 간단하게 정리해봤습니다.

이것들 이외에도 많은 무선통신 기술이 있습니다. 이러한 것들이 저희의 생활을 좀 더 윤택하게 만들어주고 있습니다.

무선통신 기술이 발전할수록 새로운 제품이들도 많이 나오고있습니다. 공학도분들은 잘 알아두시면 매우 유용하실거 같습니다.

오늘은 여기까지 쓰겠습니다. 다음번에는 더 유익하고 좋은 글로 찾아뵙겠습니다. 

안녕하세요! 공대남입니다. 오늘은 정보은닉 ( information hiding )에 대하여 알아보도록 하겠습니다.

정보은닉은 쉽게 말 하자면 변수를 초기화할 때 제한을 두는 겁니다.

예를 들자면 자연수만을 입력 받아야 할 때 음의 값을 입력받게 되면 안됩니다.

그래서 선언된 변수에 값을 입력할 때 자연수만 입력되도록 제한을 두는 겁니다. 그럼 자세히 알아보겠습니다.

차례

1. 정보은닉의 이해

2. 정보은닉을 이용한 프로그래밍 예시

1. 정보은닉의 이해

일단, 간단한 예시 코드를 보겠습니다.

naturalNumber (자연수)라는 클래스를 선언하고 private 부분에 정수형 변수를 선언했습니다.

변수가 private로 선언되어 있기 때문에 public의 init 함수에서 접근해서 값을 할당합니다.

하지만 코드를 보시면 

void Init(int n)

{           

      num = n;

... }

값을 할당하는데 어떠한 조건도 없기 때문에 할당되는 값이 자연수 인지 아닌지 구분하지 못합니다.

그렇게 때문에 main함수에서 n.Init(-2)로 -2값을 보내면 그대로 할당됩니다.

이를 방지하기 위해, 변수가 선언될 때 함수를 별도로 정의해서 안전한 형태로 변수의 접근을 유도하는 것이 정보은닉 입니다.

그럼 이를 정보은닉을 올바르게 사용해서 고친 코드를 보겠습니다.

-

2. 정보은닉을 이용한 프로그래밍 예시

위의 코드를 보시면 void Init 의 if문을 추가하여 자연수 인지 아닌지를 판별하게 했습니다.

if (n > 0) 에 의해서 함수에서 전달된 인수 값이 양수인지 음수인지 판단하게 됩니다.

그리고 자연수일 경우에 num = n; 으로 값을 할당하고 그 값을 출력하도록 했습니다.

그리고 그 밖의 값 즉, 음수 일때는 자연수가 아니라는 문구를 출력하도록 했습니다.

이것을 컴파일 하게 되면

5를 입력했기 때문에 Init 함수의 if,else 문에 의해서 값을 판별하고 입력이 되었습니다.

하지만, 다른 음수를 넣게 되면

자연수가 아니라는 문구가 출력됩니다.

이렇게 자연수만 입력되도록 변수 입력을 유도하는것이 정보은닉입니다.

-

오늘은 정보은닉에 대해서 아주 간단하게 코드를 짜서 알려드렸습니다. 정리하자면 정보은닉이란

제한된 방법으로의 접근만 허용을 해서 잘못된 값이 저장되지 않도록 돕고, 실수를 했을 때는 쉽게 발견되도록 하는 것입니다.

정보은닉이 잘 쓰인 프로그램일 수록 좀 더 안정적이고 정교합니다. 그렇기 때문에 필수적으로 쓰입니다.

처음엔 이해하기 힘들수도 있지만, 잘 알아두시면 좋습니다.

오늘 준비한 글은 여기까지입니다. 다음번에는 좀 더 유익할 정보와 글로 찾아뵙겠습니다. 감사합니다!

안녕하세요. 공대남입니다! 오늘은 크라우드펀딩의 뜻과 종류가 어떤 것이 있는지에대해 알아보도록하겠습니다.

크라우드펀딩은 Crowd Funding 인데, Crowd는 아시겠지만 사람들, 군중이라는 뜻입니다.

간단히 말하자면 많은 사람들에게서 투자받는 것인데 이는 '티끌모아 태산'의 원리입니다.

그리고 그 종류는 크게 리워드형, 투자형, 대출형이 있습니다. 자세히 알아보겠습니다.

차례

1. 크라우드 펀딩의 뜻

2. 크라우드 펀딩 종류

- 리워드형

- 투자형

- 대출형

3. 정리

1. 크라우드 펀딩 뜻

크라우드 펀딩의 시초는 2008년 외국기업인 '인디고고'로 부터 시작되었습니다.

쉽게 설명하자면 많은 사람들로부터 자금을 마련 받는 것인데, 밑에 그림으로 구체적으로 보겠습니다.

 다음과 같습니다. 아이디어를 가진 모금자가 크라우드 펀딩 플랫폼에 등록을 하면 다른 많은 후원자로부터

( 여기서 후원자들이 '크라우드' ) 자금을 마련 (펀딩)을 받습니다. 

크라우드 펀딩은 좋은 아이디어를 가지고 있지만, 제품을 개발하거나 어떤 컨텐츠를 개발하는데 비용이 클 때

이를 해소하기 위한 방안으로 생겨났고, 이 문제를 정확히 해결해주고 있습니다.

그런데 크라우드 펀딩도 한가지가 아닙니다. 크게 3가지로 나뉘는데 자세히 알아보겠습니다.

-

2. 크라우드 펀딩 종류

크라우드 펀딩 종류는 크게 3가지로 나눌 수 있습니다.

'리워드형', '투자형', '대출형' 입니다. 자세히 알아보도록 하겠습니다.

첫번째. 리워드형

투자 대상 : 특정 제품, 특정 서비스

투자에 대한 보상 : 제품이나 서비스

리워드형의 경우에는 투자자가 특정 프로젝트에 투자를 하게 된다면 프로젝트가 끝나고

투자한 제품을 받거나 서비스를 보상으로 받게 됩니다. 이때 장점은 그 제품을 다른 사람들 보다 먼저 쓸 수 있고

실제 유통되기 전보다 싼 가격으로 받을 수 있습니다. 하지만 목표 투자 금액에 달성하지 못할 시 프로젝트니 실패하게되고

투자한 돈 만큼 다시 받게됩니다.

두번째. 투자형(지분형)

투자 대상 : 특정회사, 프로젝트 (영화 등)

투자에 대한 보상 : 비상장 주식, 채권

투자형의 경우에는 스타트업 회사 또는 비상장 중소기업이나, 어떤 영화제작 프로젝트에 투자를 하게됩니다.

그리고 일정기간 후 상장이 되거나 채권이 만기되면 투자금을 회수하는 방식입니다.

세번째 : 대출형

투자 대상 : 특정 회사, 개인, 소상공인

투자에 대한 보상 : 투자금에 대한 이자

대출형은 프로젝트 기획자와 투자자들이 직접적으로 계약자, 당사자가 되는 것이 아닙니다.

크라우드 펀딩 사이트에서 거래를 하게되고 일정기간 후 이자를 받는 형식입니다.

대출에 대한 위험을 투자자들이 부담하는 형식입니다.

-

3. 정리 및 요약

크라우드 펀딩은 좋은 프로젝트를 실행하는데 자금 마련이라는 문제점을 해결하기 위해서

여러사람으로부터 투자를 받는 것이 핵심입니다.

그 방법으로는 리워드형, 투자형, 대출형이 있습니다. 리워드형은 제품이나 서비스를 보상으로 받고

투자는 채권, 대출형은 이자금으로 보상받습니다.

크라우드 펀딩의 뜻과 종류에 대해서 설명했는데, 도움이 되었다면 좋겠습니다.

다음번에는 좀 더 유용하고 좋은 글로 찾아뵙겠습니다. 감사합니다!

안녕하세요! 공대남입니다. C언어부터 공부하시고 C++를 하시는 분들은 클래스를 처음 접하실 것 입니다.

(객체지향언어를 처음 하신다면) 객체지향언어에서는 클래스와 객체가 중요한 개념입니다.

오늘은 클래스의 정의에 대해 알아보고 구조체와 어떤 차이점이 있는지 알아보겠습니다.

차례

1. 클래스의 정의

2. 접근제어 지시자

3. 구조체와 클래스의 차이점

1. 클래스의 정의

클래스의 정의를 설명하기 앞서 간단한 구조체의 코드를 예를 보겠습니다.

2차원 좌표계 데이터를 구조체를 통해서 만들었습니다. 메인함수에서 p1을 선언하고 구조체를 초기화해주면 됩니다.

구조체와 클래스 둘 다 연관 있는 데이터를 묶을 수 있는 문법적 장치입니다.

여기서 클래스로 바꾸고싶다면, struct를 지우고 class를 써주면 됩니다.

그런데 그대로 컴파일을 한다면 오류가 발생합니다.

그러면 둘 다 데이터를 묶는 문법적 장치이고 선언하는 법도 같은데 왜 이런 오류가 발생할까요?

그 이유는 바로 접근법의 차이입니다. 이 차이가 클래스와 구조체의 차이입니다.

이 차이는 접근제어 지시자를 설명하며 구체적으로 설명하겠습니다.

-

2. 접근제어 지시자

C++ 접근제어 지시자는 다음과 같이 총 세가지가 존재합니다.

public : 어디서든 접근허용

protected : 상속관계에 놓여있을 때, 유도 클래스에서의 접근허용

private : 클래스 내(클래스 내에 정의된 함수)에서만 접근허용

다음과 같이 정의 됩니다. 그럼 여기서 위에서 왜 오류가 났는지 설명이 됩니다.

구조체의 경우 접근제어 지시자를 따로 선언하지 않는다면 모든 변수와 함수는 public으로 선언됩니다.

그래서 어디서든 접근이 가능해서 main함수에서의 초기화가 가능했습니다.

반면, class의 경우 접근제어 지시자를 따로 선언하지 않는다면 모든 변수와 함수는 private로 선언됩니다.

그렇기 때문에 main함수에서 초기화가 불가능했습니다.

 그래서 다음과 같이 코딩을 해보겠습니다.

좌표 x, y의 데이터를 private로 선언합니다. main에서 이 객체로 직접적으로 접근이 불가능합니다.

그리고 초기화 함수를 class 안에 public으로 정의합니다.

이 클래스의 함수를 public으로 정의했기 때문에 메인함수에서 접근이 가능합니다.

Init() 이라는 함수는 Point2D라는 클래스 안에 있기 때문에 좌표 x, y 의 데이터의 접근이 가능합니다.

그렇기 때문에 메인함수에서 클래스 함수를 호출하여 초기화가 가능합니다.

-

3. 구조체와 클래스의 차이점

마무리로 정리하자면 클래스와 구조체의 역할은 큰 차이는 없습니다.

둘 다 객체를 묶는 문법적인 역할을 합니다. 이 둘을 가르는 차이는 선언에 따른 차이 입니다.

즉, 구조체는 접근제어 지시자를 선언하지않으면 public 으로

클래스는 private로 선언된다는 것 입니다.

안녕하세요? 공대남입니다. 오늘은 IOT 전망에 대해서 알아보겠습니다.

4차 산업혁명이 진행되고, 인공지능이 발달하고 그 지능이 사물에 연결되기 시작했습니다.

그로인해 좀 더 편리하고 제품을 유용하게 사용할 수 있습니다. 인공지능 스피커가 대표적인 예입니다.

그러면 자세히 알아보도록 하겠습니다.

차례

1. IOT ( internet of things ) 뜻

2. IOT 전망

1. IOT ( internet of things ) 뜻

IOT는 internet of things 의 약자입니다. 즉, 사물인터넷이라는 뜻입니다. 지능을 가진 사물이라고 할 수 있습니다.

그렇기때문에 사물들이 서로 데이터를 주고 받을 수 있으며, 학습과 판단을 합니다.

여기서 사물이란 가전제품 부터 웨어러블 제품, 컴퓨터 등이 있습니다.

이러한 사물들이 인간의 개입없이 자율적으로 정보를 처리하고 가공합니다.

블루투스나 근거리통신망(NFC), 센서데이터, 네트워크가 자율적인 소통 기술의 기반이 됩니다.

iot제품을 오늘 처음 들으셨다면, 감이 잘 안오실 수도 있습니다. 하지만, 여러분들은 많은 iot제품과 생활하고 있습니다.

iot제품은 우리 주변에도 쉽게 찾아볼 수 있습니다. 웨어러블 시계와 같이 운동할 때 도움을 주는 제품, 건강관리용 팔찌,

 스마트폰을 갖다대면 상태를 확인할 수 있는 NFC칩을 활용한 세탁기 부터 다양합니다.

온도를 감지해 자동으로 끄고 켜서 최대한 절약을 하게 해주는 난방 시스템 또한 사물인터넷입니다.

-

2. IOT 전망

LG, 삼성 등 의 대기업들이 iot제품을 많이 출시하고 있고, 아마존의 드론 운송서비스, 카카오나 네이버의 인공지능 허브와 같이

다양한 국내외 기업들이 많은 iot제품을 개발하고 있습니다. 저희의 가정 깊숙히 파고들어 일상을 바꾸고 있습니다.

사물인터넷 제품 수는 향후 빠른속도로 증가할 것으로 예측됩니다.

무려 iot 제품은 모든 분야에 관여합니다. 시장 규모만 생각했을때는 매우 긍정적입니다.

iot의 기술적 측면에서 보면, 제품들은 매우 큰 양의 데이터를 수집하고 처리하기 때문에 이를 제대로 활용하려면

이러한 빅데이터를 효율적으로 분석하고 처리할 수 있는 기술이 요구됩니다.

[ 빅데이터 관련 글 ! ]

-

지금 까지 iot 뜻과 전망에 대해서 간단하게 알아보았습니다.

정리하자면, 지능을 가진 제품들이 센서와 무선통신기술을 이용해 데이터를 자율적으로 처리를하며

수많은 분야에 영향을 줄 것이며 시장규모의 파이 커질 전망입니다.

또, 이로인한 빅데이터를 처리해야할 필요성이 있으며, 빅데이터의 기술과 전문가의 수요도 생길 전망입니다.

유익한 정보가 되었기를 바랍니다. 감사합니다!



안녕하세요! 대남이 입니다. 오늘은 블루투스의 원리에 대하여 알아보도록 하겠습니다.

블루투스를 이용 안하여 보신 분은 없으시겠죠? 그만큼 저희 생활에 긴밀하게 연결되어 많이 사용합니다.

휴대폰, 무드등, 이어폰, 스피커 등 많은 제품과 연결되어 있는데, IOT제품이 많아지며 블루투스 사용이 잦아졌습니다.

모두가 알고는 있지만, 그 원리에 대해서는 잘 모릅니다. 자세히 알아보도록 하겠습니다.

차례

1. 블루투스의 역사

2. 블루투스의 원리

3. 블루투스의 장점

1. 블루투스의 역사

블루투스 장치는 인텔, 에릭슨, 애플 등 선 통신 표준화를 위해 SIG(special interest group)이라는 그룹을 설립하고

개발하는 과정에서 한 개발원이 자신이 읽은 소설에 나오는 국왕 헤럴드 블루투스의 이름에 대해 제안했고

스칸디나비아와 덴마크를 통일한 블루투스 처럼 무선통신 또한 통일하자는 의미로 채택되었습니다.

예상하셨겠지만, 위에 남자분이 블루투스입니다.

-

2. 블루투스의 원리

블루투스의 무선시스템은 'ISM' 이라는 방식으로써 2402 ~ 2480 MHz의 총 79개의 채널을 사용합니다.

ISM(Industrial Scietific Medical) : 공업용, 과학용, 의료용등에 사용되는 고주파 설비로써 저전력의 전파를 발산하여 사용하고

전파사용에대한 허가를 받을 필요가 없습니다.

79개의 주파수 대역을 사용하기 때문에 서로 간섭하여 충돌하는 현상이 일어날 수 있는데 이를 방지하기 위하여

블루투스는 '주파수 호핑 방식'을 사용 합니다.

주파수 호핑이란, 많은 채널을 특정 패턴에 따라 이동하여 패킷을 조금씩 전송하는 기법입니다.

여기에서 블루투스는 할당된 79개 채널을 1초당 1600번 호핑합니다.

모두가 블루투스를 한번 사용해보셔서 아시겠지만, 보통 제품의 전원을 키고 스마트폰으로 제품과 블루투스 연동을 시킵니다.

여기서 어느정도 감이 오시나요? 블루투스는 마스터기기와 슬레이브기기가 필요합니다.

예를 들자면, 보통 스마트폰이 마스터기기이고 스피커, 헤드셋등이 슬레이브기기가 됩니다.

그렇게 연결이 되면 두 기기간에 앞서 말한 주파수 호핑 방법으로 서로가 데이터를 주고 받습니다.

하나의 마스터기기에는 최대 7개 까지의 슬레이브기기가 연결된다고합니다.

-

3. 블루투스의 장점

앞서말한 것들을 토대로 장점을 알아보겠습니다.

1. ISM 방식으로써 저전력으로 운용이 가능합니다.

2. 주파수 대역이 다양해 데이터 분할 전송 할 수 있어서 좋습니다.

3. 무선통신의 표준이기 때문에 전 세계 어디에서도 사용가능합니다.

-

이상 블루투스에 대하여 알아보았습니다. 블루투스의 유래와 원리 그리고 장점을 알아보았습니다.

모두 이름은 알고 사용은 다 해보았는데, 원리는 잘 모르고있습니다.

한번쯤 궁금하셨을텐데, 유용한 정보가 되었길 바라겠습니다. 감사합니다! 

안녕하세요? 공대남입니다. 오늘은 빅데이터의 뜻과 특성, 관련 직업이 어떤 것이 있는지에 대하여 알아보도록 하겠습니다.

정보화 시대를 거치고, 4차 산업혁명이 진행되고 있는 가운데 온라인상에서는 엄청난 정보들이 흘러 넘칩니다.

그래서 이러한 정보를 가공하고 처리하는 데이터 관련 신 직업이 생겨나고있습니다.

그 중에서도 꽤나 유명한 빅데이터, 이것이 무엇인지 지금부터 알아보겠습니다.

차례

1. 빅데이터의 정의와 특성

2. 빅데이터 활용 사례

3. 빅데이터 관련 직업

1. 빅데이터의 정의와 특성

빅데이터란 쉽게 풀어 생각해보면 큰 정보입니다. 말 그대로 입니다. 지금 온라인상 넘쳐나는 이러한 정보들을 일컫는데요.

이는 기존 관리 도구의 능력을 넘어설 정도의 정보를 의미합니다. 현재 제가 쓰는 글을 합하여 지금 이 순간에도 엄창나게 많은

사진과 동영상들이 업로드되고 많은 정보들이 업데이트 됩니다. 이러한 엄청난 양의 정보를 의미하는 것이 빅데이터입니다.

빅데이터가 가지는 특성이 3가지 있습니다. 3V라고 합니다.

3가지 특성은, 크기(volume), 다양성(variety), 속도(velocity) 입니다.

앞서 제가 말한 특성들이 모두 포함됩니다. 온라인상 데이터는 2ZB(제타바이트)에 달한다고 하는데 이는 미국 학술 도서관의 정보량의

50만배 달하는 크기라고 합니다. 이렇게 들으신다면 조금은 와닿을 것 입니다. 이러한 것들이 빅데이터의 특성이고 뜻 입니다.

-

2. 빅데이터 활용 사례

혹시 웹서핑을 하시다가 몇일 전 보았던 쇼핑몰의 광고가 뜨거나 찾아봤었던 제품의 광고를 다시 본 적 있나요?

아마도 100% 있을 겁니다. 모르신다면 인지를 못하셨을 겁니다. 이것이 빅데이터를 이용한 마케팅입니다.

이는 SNS나 쇼핑몰, 검색기록을 분석하여 이용자에게 맞춤형 광고를 제공하는 것 입니다.

즉 이런 가공하기 어려운 '사용의 기호'를 빅데이터화 시켜 활용한 것 입니다.

이외에도 선거운동도 국민여론과 다양한 정보를 파악하여 맞춤 선거운동 방식을 제공한다고 합니다.

-

3. 빅데이터 관련 직업

< 빅데이터 전문가 >

'빅데이터 전문가'란 위에서 말한 빅데이터, 다양한 정보들을 사용할 수 있도록 알맞은 정보를 찾아내고 가공합니다.

이러한 다양한 데이터를 분석하고 활용하는 것입니다. 정보들이 아무리 많아 봤자 활용하지 못하면 쓸모가 없습니다.

빅데이터 전문가가 하는 주요 업무

고객 분석

정보를 이용한 새로운 시장 개척

제품 연구 개발

프로그램개발 등 다양한 업무를 합니다.

-

빅데이터의 정의와 특성, 관련 직업에 대하여 알아보았습니다. 도움이 되셨는지 모르겠습니다.

언제나 유용하고 더 좋은 글을 쓰기 위해 노력하겠습니다. 감사합니다!

안녕하세요? 공대남 입니다. 오늘은 C++ 참조자에 관하여 알아보겠습니다.

참조자는 포인터와 비슷한 성격을 띄지만 다른 개념입니다.

그리고 포인터와 참조자의 차이점에 대해서도 알아보도록하겠습니다.

C언어에서는 다루지 않았기 때문에, 처음 접하시면 햇갈리실 수도 있습니다.

차례

1. 참조자의 개념

2. 참조자와 포인터의 차이

1. 참조자의 개념

변수는 할당된 메모리 공간에 붙여진 이름입니다.

num1 = 10; 과 같습니다.

여기에 이름을 더 부여할 수 있습니다.

참조자는 자신이 참조하는 변수를 대신할 수 있는 또 하나의 이름입니다.

간단히 말하면 별칭같은 것 입니다.

위의 코드를 보겠습니다.

참조자는 & 을 이용하여 선언합니다

이미 선언된 변수의 앞에 이 연산자가 오면 주소 값의 반환을 명령하는 뜻이지만,

새로 선언되는 변수의 이름 앞에 오면 참조자의 선언을 뜻하게 됩니다.

그래서 int &num2 = num1; 과 같이 선언합니다.

num1에 num2라는 참조자를 선언했습니다. 이 코드를 실행해보겠습니다.

num2에 다가 10을 더해 줬기 때문에 num1도 20으로 출력됩니다.

num2가 num1의 다른이름이라고 생각하시면 좀 더 잘 이해가됩니다.

즉 num2는 num1의 다른이름이고 num2를 변화시키는 것은 num1을 변화 시키는 것 입니다.

또 레퍼런스는 하나의 변수에 다수의 참조자를 선언할 수 있습니다.

int &num2 = num1;

int &num3 = num1;

int &num4 = num1;

다음과 같이 선언하면 하나의 변수에 다향한 레퍼런스를 선언할 수 있습니다.

-

2. 참조자와 포인터의 차이

(1) 포인터는 NULL 값이 있지만, 참조나는 NULL 값이 없다.

NULL값이란, 결정되지 않거나 모르는 값을 의미합니다.

하지만 참조자는 선언시 바로 초기화 해주어야 합니다.

(2) 참조자는 변수를 입력 받고 포인터는 주소값을 입력 받는다.

(3) 참조자는 한번 지정한 객체를 변경할 수 없지만, 포인터는 가능하다.

참조자는 한번 객체를 정하면 바꿀 수 없습니다.

하지만 포인터의 경우 주소값을 변경하여 바꿀 수 있습니다.

다음과 같은 차이점이 있습니다.

공통점은 둘 다 다른 객체(변수)를 간접적으로 참조한다는 것 입니다.

처음 참조자를 접하신다면 햇갈리실테니 차이점을 숙지하고 계시면 쉽게 이해가 될 것입니다.

-

간단하게 레퍼런스의 개념과 레퍼런스와 참조자의 차이점과 공통점에 대해서 알아보았습니다.

저는 C언어의 포인터와 개념이 비슷해서 처음에 햇갈렸지만, 차이점을 알고나니 잘 이해가 되었습니다.

이번 정보는 유용하셨나요? 다음번 강의에는 좀 더 유용하고 좋은글로 찾아 뵙도록하겠습니다. 감사합니다!


안녕하세요? 공대남입니다. 오늘은 이름공간에 대하여 알아보도록 하겠습니다.

namespace 같은 경우는 함수의 이름이 겹칠 때 사용하게 됩니다.

이전에 배웠던 함수 오버로딩은 매개변수의 형식이나 수가 다를 때 자동으로 구분되지만

매개변수 형식이나 수도 같다면 함수를 구분할 수 없습니다.

여기서 함수 이름과 매개변수 형식도 같을 때 구분할 수 도 있도록 해주는것이

'이름공간(namespace)' 입니다.

차례

1. namespace

2. using 을 통한 명시

1. namespace

쉽게 설명하기 위해 예를들어 보겠습니다.

A,B라는 회사에서 프로그래밍 대형화를 위해 서로가 시스템을 개발하는데 참가했습니다.

그리고 서로의 코드를 비교해보니 상당 부분 함수가 겹치는 것입니다.

이럴 때는 두 회사 중 하나가 바꾸어야 하지만, 서로가 좀 처럼 양보하기 싫은겁니다.

그럴 때 이름공간이 유용합니다. 이름공간의 함수 호출법은 다음과 같습니다

만약 Func1 이라는 함수가 겹친다면 namespace 를 이용하여 호출하면

A회사의 Func1을 호출해라 ! 이처럼 됩니다.

다음 코드의 예시를 보겠습니다.

namespace를 이용해 각각 Acom, Bcom를 명시하고 함수를 그 안에 적습니다.

(함수를 먼저 선언하고 정의해도 됩니다.)

그리고 main 함수에서 Acom::Func1(); , Bcom::Func1(); 로 각각 호출을 합니다.

여기서 :: 은 범위지정 연산자 입니다. 즉, 이름공간을 지정할 때 사용합니다.

그러면 다음과 같이 출력됩니다.

함수의 이름과 매개변수의 형식이 같더라도 namespace를 사용하여

얼마든지 구별하여 사용할 수 있습니다.

그러면 여기서 앞서 입출력 코드로써 std::cout , std::cin , std::endl을 사용했는데,

이것도 namespace의 사용과 유사하다고 느끼셨을 것 입니다.

그렇습니다. cout, cin, endl은 std안에 선언되어있고 그것을 사용하던 것이 였습니다.

-

2. using을 이용한 명시

cout, cin, endl이 std에 선언된 함수라는 것은 알았는데

이를 사용할 때 마다 std:: 을 붙여주기에는 귀찮으실 수도 있습니다.

이를 위해 using을 사용하면 생략하고 사용 가능합니다.

다음과 값이 using을 통해 선언하면

cout, cin, endl을 std의 이름공간에서 찾으라고 하는 것과 같습니다.

그렇게하면 std를 생략하고 코드를 사용할 수 있습니다.

만약 일일히 std::cout, std::cin, std::endl을 선언하시는게 귀찮으시다면

using namespace std; 을 선언함으로써

름공간 std 에 있는 모든 것에 대해 이름공간 지정을 생략할 수 있습니다.

하지만 프로그램이 복잡해지고 커진다면 오류가 생길 확률도 커집니다.

-

이상 오늘은 namespace에 대하여 알아보았습니다. 도움이 되셨는지요?

다음 c++강의에서는 좀 더 유익하고 좋은 글로 찾아뵙겠습니다. 감사합니다!

+ Recent posts