aws 기본 구성 요소

image

aws iot core ( iot 기기에 대한 기본 작업)

image
image
image

image


aws iot 1 click (원 클릭에 대응하는 기기에 대한 서비스)

image


aws iot device defender (iot 기기에 대한 authorization, authentication 작업 제공)

image

aws green grass

개념이해를 위한 비디오 (local network단위내에서 기기간 서로 상호작용하고 또 이것이 외부 클라우드 서비스와도 상호작용하는 기능을 제공하는 듯)

https://youtu.be/1rLxPOxVJoQ

TCP / UDP 설명

Native App,Web App,Hybrid App 설명 및 동작 원리 구조 비교 :: 개굴개굴’s Blog

FullText 의 개념
mysql 메뉴얼을 읽어보면 알 수있듯이
FullText 검색 기능의 개념 자체는 작은 규모가 아닌 큰 규모의 
문자열 집합을(Large collections) 대상으로 빠르게 해당 검색어를 
검색하기 위해서 만들어진 것입니다.
그리고, 이것은 ‘Like’ 문 기능과는 다르고,
‘Where 필드 = 검색문자열’ 문과도 (어떻게 만드느냐에 따라서) 다를 수 있습니다.
큰 규모라고 하면, 웹 검색엔진을(the Internet with a search engine) 
상상해보시면 될겁니다. 구글(Google)의 경우 30억개 이상의 웹페이지를 
대상으로 검색할 수 있다고 사이트에 명시하고 있습니다. DB 개념으로 
이해하자면, 웹페이지와 같은 큰 문자열을 각각 지니고 있는 30억개 
이상의 레코드들을 검색한다는 것입니다.
이런 방대한 자료에서 어떤 문자열 하나를 찾기위해서 ‘Like’ 문을 쓴다고 상상해보세요.
여기에, 전 세계적으로 엄청난 동시 사용자들을 감안한다면, ‘Like’ 문같은 검색은 
쓸 수가 없겠죠. 실제로 구글에서 여러가지 문자열을 가지고 테스트 
해보시면, 절대 Like 검색방식으로 처리가 되고있지 않다는 것을 알 수 
있습니다.
그리고, ‘Where 필드 = 검색문자열’과 같은 것은, FullText 검색기능을 
내부적으로 어느 정도선까지 지원하도록 개발하느냐에 따라서 틀려질 수 
있습니다.
 
단어를 포함하는 모든 자료를 가져올지, 아니면 단어들중 의미 
있다고 판단되는 단어만을 포함하는 자료를 가져올지 등등… 구글은 
전자의 형태로 개발된 것 같습니다.
당장, ‘a’, ‘are’, ‘this’라는 단어로 검색해보면 엄청난 수의 검색결과를 볼 수 있습니다. MySQL의 FullText 검색은 보통 후자를 택하고 있고,
일종의 자연어 검색(Natural Language Search)을 한다고 밝히고 있습니다.
(단, Boolean Mode도 따로 제공하고 있습니다.)
 
* ‘자연어 검색’에 대해서는 잘 모르지만, 그것과는 별개로, MySQL이 
채택한 검색방식의 핵심을 이해하기 위해서는, 해당부분 MySQL 메뉴얼에서 
자주 쓰인 ‘적절성 값(Revelence Value)’라는 말을 이해해야 될겁니다.
‘적절성 값(Revelence Value)’의 뜻은, 레코드에 포함되어있는 문자열과 
검색하려는 검색어가 얼마나 유사성(Similarity)을 갖고 있는지를 측정한 
것이라고 합니다.(여기에서의 유사성은 단어중 몇글자가 같냐는 식으로 
판단되는 것은 아닙니다.) 그리고, 이 값은 다음과 같은 것들을 계산해서 
나온다고 합니다.
 
레코드안에 들어있는 단어들의 수 
(the number of words in the row) 
그 레코드 안에서 유일한 단어들의 수 
(the number of unique words in that row) 
그 집합 안에서 단어들의  총 갯수 
(the total number of words in the collection) 
특별한 단어를 포함하고 있는 문서들(레코드들)의 수 
(the number of documents (rows) that contain a particular word)
 
‘유사성’이라는 말을 염두에 둔다면, 대충 Revelence Value가 어떻게 계산 
되는지를 유추해볼 수는 있을겁니다. 예를 들어, 검색어로 5개의 단어를 
입력했다면, 5개의 단어들중 각각의 레코드가 몇개의 단어를 포함하고 
있는지, 5개 각각의 단어들이 몇개씩 포함하고 있는지 등에 따라서 
유사성이 틀려질 수 있겠지요. 이 값이 0이면, 유사성이 전혀 없다는 것을 
의미합니다. (Zero relevance means no similarity.)
fulltext 를 이용한 검색 기능 구현 방식은 아래와 같습니다.
 
1. 테이블 생성시에 검색할 필드를 전부 fulltext() 로 잡습니다.
fulltext ( name, subject, contents )
2. 검색 쿼리
select * from table match(name,subject, contents ) against(’“검색단어”’ in boolean mode);
3. 쿼리시 주의점
in boolean mode 선언이 반드시 필요하며, match()의 필드는 fulltext() 에서 선언된 그대로 넣어야합니다.
 
against 에서는 작은따옴표 안에 큰따옴표를 사용해야 온전한 글로 인식되어 검색됩니다.
따옴표가 하나밖에 없다면, or 검색이 되어 원치 않는 결과가 나옵니다
4. 필드 추가시
alter table ‘해당테이블’ add fulltext(‘추가필드’)
인터넷 홈페이지를 두 개 이상 제작하여 운용하다보면 하나의 도메인뿐아니라 여러개의 도메인을 셋팅하여 하나의 홈페이지가 뜨도록해야할 필요성을 느낄때가 있습니다.

처음 가입시에는 하나의 도메인에 하나의 홈페이지를 운영하는 것이 가장 일반적이나 이용도중 필요에 의해서 다수개의 도메인을 가지게 될 때가 있으며 이때에 이들 도메인을 나름대로 활용할 방안을 찾게됩니다.

이런 필요에 의해서 나온 것이 멀티도메인이란 개념이며 이와 유사한 개념으로 서브도메인, 가상도메인등이 있습니다.

우선 이런 도메인에 관련된 용어부터 정의를 해보겠습니다. 

  • 기본도메인 : 처음에 신청했던 도메인으로 홈페이지를 운용하고 있는 도메인
  • 멀티도메인 : 기본도메인에 호스트이름만 다르게붙여서 사용하는 여러개의 도메인
  • 서브도메인 : 멀티도메인과 거의 같은 개념
  • 가상도메인 : 기본도메인외에 별도의 도메인으로 기본도메인과 같은 홈페이지에 연결된 도메인 

 

여기서 우리는 일반적으로 도메인이라하면 www.superuser.co.kr이라고 여기는 경우가 많은데 사실 엄격히 말씀드려서 호스트명과 도메인은 구분이 되어야합니다.

이의 이해를 돕기 위해서 다음의 FQDN(Fully Qualified Domain Name)이란 용어를 먼저 이해하시기 바랍니다. 

FQDN(Fully Qualified Domain Name)

FQDN이란 용어를 이해하기 전에 우리가 사용하는 도메인에 대한 분명한 이해가 필요할 것 같습니다. www.superuser.co.kr이란 웹사이트주소를 예로 들어보면 www는 호스트이름이며 
superuser.co.kr은 도메인을 의미하는 것입니다.

또한 bbs.superuser.co.kr에서도 bbs는 호스트이름을 의미하며 superuser.co.kr은 도메인을 의미하는 것입니다.

따라서 우리가 무심코 사용하는 도메인이라는 것은 엄격히 구분하여 ‘호스트이름+도메인’으로 이루어져 있습니다.  

FQDN이란 호스트이름과 도메인을 함께 표기한 것을 의미하는 것입니다.

위의 예에서 www와 bbs는 일종의 호스트이름이며superuser.co.kr은 도메인이며 www.superuser.co.kr과bbs.superuser.co.kr은 FQDN이 되는 것입니다.

image 

FQDN(Fully Qualified Domain Name)

FQDN이란 용어를 이해하기 전에 우리가 사용하는 도메인에 대한 분명한 이해가 필요할 것 같습니다.

www.superuser.co.kr이란 웹사이트주소를 예로 들어보면 www는 호스트이름이며 superuser.co.kr은 도메인을 의미하는 것입니다.

또한 bbs.superuser.co.kr에서도 bbs는 호스트이름을 의미하며 superuser.co.kr은 도메인을 의미하는 것입니다.

따라서 우리가 무심코 사용하는 도메인이라는 것은 엄격히 구분하여 ‘호스트이름+도메인’으로 이루어져 있습니다.

FQDN이란 호스트이름과 도메인을 함께 표기한 것을 의미하는 것입니다.

위의 예에서 www와 bbs는 일종의 호스트이름이며 superuser.co.kr은 도메인이며 www.superuser.co.kr과 bbs.superuser.co.kr은 FQDN이 되는 것입니다. 

처음 신청한 도메인(기본도메인)이 www.superuser.co.kr이라고 한다면 멀티도메인은 superuser.co.kr이라는 도메인에서 www라는 호스트이름만을 달리하여 만들어지는 도메인이 멀티도메인입니다.

예를 든다면 다음과 같은 도메인이 www.superuser.co.kr의 멀티도메인이 되는 것입니다.

image

등과 같이 개수에 제한없이 호스트이름만을 붙여서 원하는 멀티도메인을 얼마든지 사용가능합니다.

물론, KRNIC이나 INTERNIC에 새롭게 등록할 필요없이 그냥사용이 가능합니다.

단지 저희 웹호스팅에 원하는 멀티도메인을 사용하겠다고 셋팅을 요청만을 하면됩니다. 

그렇다면 가상도메인이란 무엇일까요? 

가상도메인이란 기본도메인과는 전혀다른 도메인으로 같은 홈페이지에 연결되어있는 도메인을 말합니다.

위의 예와 마찬가지로 기본으로 사용하고있던 도메인이 www.superuser.co.kr이고 이 도메인을 클릭했을 때 뜨는 홈페이지가 A라는 홈페이지라고 했을경우에는 다음과 가상도메인은 기본도메인(www.superuser.co.kr)과 같은 홈페이지(A)에 연결되어 있는 다음과 같은 도메인들을 말하는 것입니다. 

image

image

가상도메인은 멀티도메인과 달리 기본도메인과 전혀다른 도메인이기 때문에 사용하기 위해서는 KRNIC이나 INTERNIC에 등록을 해야합니다. 

이런 가상도메인과 멀티도메인을 고객께서 사용하기위해서는 저희에게 요청을 해야합니다.

고객께서 달리 셋팅해줘야하는 것은 없으며 저희가 웹서버나 도메인포워딩과 같은 것으로 셋팅을 해주면됩니다.

지금껏 설명한 멀티도메인, 가상도메인외에 서버도메인이란 개념을 사용하는 곳이 있습니다.

이는 멀티도메인과 거의 같은 개념이지만 다음과 같은 점이 강조된 것입니다. 

  • 기본도메인 : www.superuser.co.kr
  • 멀티도메인1 : bbs.superuser.co.kr
  • 멀티도메인2 : board.superuser.co.kr 
  • 서브도메인1 : friend.bbs.superuser.co.kr
  • 서브도메인2 : love.bbs.superuser.co.kr
  • 서브도메인3 : 20age.love.bbs.superuser.co.kr 

일반적인 도메인은 www.superuser.co.kr이나 www.kornet.net등과 같이 사용하는 것이 일반적이며 위의 서브도메인1, 2, 3과 같이 도메인앞에 여러개의 호스트이름을 붙여서 사용할 수 있습니다.

도메인명으로 사용할 수 있는 문자의 개수내에서 원하는 만큼의 호스트이름을 얼마든지 붙여서 사용할 수가 있습니다. 

즉, 서브도메인이란 멀티도메인과 같이 같은 도메인을 사용하면서 다른 호스트이름을 붙여서 사용한다는 것은 같으나 서브도메인은 위의 서브도메인1, 2, 3과 같이 2개이상의 호스트이름을 사용하는 점을 강조하는 것입니다. 

그리고, 도메인추가란 위의 여러 가지 경우를 통틀어서 일컫는 말입니다.

저희 웹호스팅에서는 도메인추가서비스에는 위에서 설명드린 멀티도메인, 가상도메인, 서브도메인등을 추가하는 경우를 일컫는 말입니다. 

참고로 도메인파킹(Domain Parking)이란 용어에 대해서 간단히 설명을 드리겠습니다. 

홈페이지를 만들지않고 네임서비스만 제공되는 도메인을 의미하는 것으로 한국인터넷정보센터(KRNIC)에서는 도메인을 등록한후에 3개월내에 반드시 등록한 도메인은 네임서비스를 받도록 하고 있습니다.

네임서비스란 해당도메인이 위치한 주소를 찾을 수있게 제공되는 서비스를 말합니다.

네임서비스를 받기위해서는 1차네임서버와 2차네임서버가 반드시 지정이되어야하는데 웹호스팅업체에서는 홈페이지를 만들지 않은 도메인에 대해서 네임서버등록을 할 수 있도록 하고 있는데 이서비스가 도메인파킹(Domain Parking)서비스입니다. 

이상으로 도메인에 대한 일반적인 용어의 개념들에 대해서 알아보았습니다.

http://blog.daum.net/_blog/BlogTypeView.do?blogid=04e5P&articleno=15119107&categoryId=119422&regdt=20080708111959 에서 참조

What does “GPL” stands for?

“GPL” stands for “General Public License”. The most widespread such lince is the GNU

General Public License, or GNU GPL for short. This can be further shortened to “GLP”,

when it is understood that the GNU GPL is the one intended.

 

Does free software mean using the GPL?

Not at all?there are many other free software licenses. We have an   incomplete list.

Any license that provides the user certain specific freedoms is a free software license.

Why should I use the GNU GPL rather than other free software licenses?

Using the GNU GPL will require that all the released improved versions be free software.

This means you can avoid the risk of having to compete with a proprietary  modified

version of your own work. However, in some special situations it can be better to use

a more permissive license.

자유 소프트웨어니 오픈 소스니 하는 말들이 요즘 너무 많이 쓰이고 있는 것 같습니다. 웹서핑을 하던중 이런 저런 글들을 읽어보다가 글을 남깁니다. GPL 라이센스에 있는 소스를 이용해 내가 제품을 하나 만들었다면 그래서 그 제품을 상용으로 팔았어도 아무런 문제가 없는거 맞죠.? -> 네 그러나 소스코드를 제공해야합니다.
다만 그 제품을 산 사람에게 소스만 공개 하면 되는거죠.? -> 네.
다른 어느곳에도 소스 공개를 하지 않아도 되는 거죠.? -> 물론 GPL 프로그램 B와 링크하여 상용프로그램을 A를 만들면 A는 GPL입니다. 하지만 GPL 을 만들었다고 해서 다른 누군가가 제작자에게 A를 내놓으라고 요구할 수는 없습니다.
근데 그 제품을 산 사람도 결국 소스를 얻은 사람도 소스 재배포가 가능 하지 않나요.? -> 네. 맞습니다. 산 사람은 또 팔아도 되고, 마구 뿌려도 되죠. 수정해도 되죠.
비록 돈주고 샀다고 하더라도 그 사람이 세상 만 천하에 공개를 하면 어떻게 되는거죠.? -> 그게 GPL의 핵심입니다. 수정과 배포.
그렇다면 그 제품을 산 사람은 GPL 라이센스의 제품을 샀고 소스도 제공 받았는데 재 배포는 못하는 건가요.? -> 재배포 할 수 있습니다.
요약하면, 1) GPL에 대한 modification은 가능하고 이를 공개하지 않아도 된다. 2) 팔아도 되지만, 소스를 건네줘야한다. 그리고 이를 구입한자는 공짜로    (또는 유료로) 재배포 가능하다. 3) 내가 수정을 했을 경우, 나의 프로그램은 자동으로 GPL이 된다. 4) 내가 링크할 경우 나의 프로그램은 GPL이 된다. 5) 내가 플러그인을 만들 경우 내 프로그램이 fork/exec를 하면 GPL이 아니다.    내가 플러그인을 만들었는데 그게 아니라 다이나믹 링킹이면 GPL이 된다. 입니다…
그래서, GPL 인 상용 소프트웨어를 돈받고 파는건 힘들죠… 어떤 종류의 유지보수라던가 하는 개념이 들어가서 거기에 요금을 부과하지 않는한요…