Project.다원 Ensemble_기능검토(2)_Protocol Buffers


오늘은 피곤해서 좀 쉬려했는데, 아무래도 또 머리를 안굴리니 심심하기도하고, '조금이라도 글쓰면서 공부나하자' 라는생각에 컴퓨터를 켰습니다. ㅎㅎ;;;;;

오늘은 컨디션 고려해서 개발은 진행하지 않았고, 그냥 기능검토나 살짝 해볼까 합니다.

 

예~전 프로젝트 진행중에 잠시마나마 Google Protocol Buffers를 사용한적이 있었습니다.

이때 많은량의 데이터처리를 할때 패킷을 조금이나마 줄여 좀 더 빠른 속도 낼 수 있었던걸로 알고 있는데, (오래전기억이라 가물가물) 지금 사용할 장비관리쪽에서는 패킷이 많을리는 없겠지만, 추후 제가 생각하는 기능 중 이 Protocol Buffers가 있으면 좋을 것 같아서 미리 구현을 해둘까 합니다.

 


우선 Protocol Buffers가 무엇인지에 대해서 시작하도록 하겠습니다.

 

Protocol Buffers?

프로토콜 버퍼(Protocol Buffers)는 구조화된 데이터를 직렬화하는 방식이다. 유선이나 데이터 저장을 목적으로 서로 통신할 프로그램을 개발할 때 유용하다. (출처 : 위키백과 _ 링크)


위 설명을 토대로 조금 덧붙여보자면 Rest API 등의 통신시 전달할 VO(Value-Object)의 직렬화를 통해 더 적고(패킷), 빠르고(속도), 심플하게 통신을 할 수 있는 용도로 사용할 수 있다고 생각하면 될 것 같습니다. (제가 생각하기로는)

 

프로세스적인 측면에서는 일단 심플하게나마 정리를 해두자면 아마도.. (Rest API 기준 - back->front)

Back-End -> 통신 -> Front-End
VO -> Proto 변환 -> 데이터 전송 ->  값의 json 변환 -> json

대략 이런 느낌이었을 겁니다. (오래되서 찾아보기는 했으나, 간략화된 순서도라던가는 보이지않아 제 기억을 토대로 작성했습니다. 혹시 더 좋은 자료나, 틀린부분 있으면 지적해주시면 수정토록하겠습니다.)

front->back은 반대로 생각하시면 될 것 같습니다.[ json->proto->전송->proto의 vo변환->vo ] 이런 느낌.

 

Protocol Buffers의 License

저는 이런 기술들을 도입함에 있어 License의 체크는 가장 중요합니다.

일개 개발자가 여러 기술들 사용해서 프로그램을 만드는건 좋지만, License가 위반되어 사용하기 힘든경우가 발생하면.. 슬프잖아요..?ㅠㅠ

우선 Protocol Buffers의 License는 BSD입니다.

저는 GPL License의 경우 조금 사용하기 꺼려하다보니 GPL은 기피하는 현상이 있지만,

Protocol Buffers는 GPL보다 좀 더 개방적인 License다보니.. 사용함에 있어서도 크게 문제 없으리라 판단이 되었습니다.

(뭐.. 제가 지금 개발중인 해당 시스템에는 GPL License는 없다보니.. MariaDB Connector가 LGPL정도..?)

 

Protocol Buffers를 사용함으로써 얻는 이점?

중점은 이거입니다. 패킷이 적어지고 빨라지고 심플해져서 좋은데 왜 쓸거냐? 도입하는 이유가 뭐냐?

음.. 사실 이유로서는 바로 위에서 언급한 패킷이 적어지고 빨라지고 심플해지는걸로도 충분하리라 생각합니다.

다만, 제가 추후 장비관리쪽에 재미있는 기능을 하나 붙이려고 생각중인데, 그 기능을 사용하기 위해서는 Protocol Buffers의 도입이 필수라고 생각했습니다. (이는 모바일 어플의 연동과는 전혀 다른 기능입니다.)

아마 생각하건데 추가적인 이점도 존재하리라 봅니다.

보안적으로 좀 더 나은 방향으로 제시해주지 않을까 싶네요.

데이터를 직렬화를 함으로써 아마 사람이 보기는 힘든 형태의 패킷 데이터를 전송하지 않을까 합니다. (이부분은 나중에 연동작업하면서 까볼수 있으면 까봐야겠네요. (???))

또 한가지 흥미로운 부분은 Protocol Buffers를 사용함으로 인해 통신에 있어 송수신 측의 언어적 제약이 많이 사라지게 됩니다.

이게 무슨말이냐 하면 Proto3의 지원 언어목록만 봐도 C++, 자바, 파이썬, Go, 루비, Objective-C, C#을 지원하다보니,

이정도면 뭐.. 제가 추후 제작할 어플만 생각하더라도 Server단에서 Android, iOS로의 통신이 좀 더 쉬워지지 않을까 합니다.

좀더 쉽게말하자면 Server(Java) -데이터 전송-> iOS / Android의 형식이 쉬워질거라는 생각입니다. (아마 개발하면 또 달라질 수 있겠지만..)

마지막으로는 사용자에게 조금이나마 편리한 기능을 생각하고 있는 만큼 이 기능 저 기능 사용해서 좀 더 나은 서비스가 이루어진다면 그걸로 충분하다고 생각하기 때문에 괜찮은 기술이라면 한번 도입해서 사용하게끔 만들어주고싶습니다.

 

Protocol Buffers를 사용함으로써 생기는 단점?

흠.. 장점이 있다면 단점 또한 존재하겠죠?

단점은 뭐.. 아무래도 개발자인 제가 귀찮아질.... (하.하.하.)


사실 그렇게 꼭 필요하다 싶은 기능까지는 아니지만,

도입해서 나쁠것도 없고 나름 재밌는 공부도 될 듯 싶어서 나름 즐거워 하고 있습니다. (진지)

그나저나 문제는 템플릿을 밑바닥부터 해야하다보니 아무래도 시간이 걸릴 것 같다는 점이네요.

그냥 공짜템플릿 어디서 구해볼까 싶기는 하지만.. 아무래도 라이센스가 복잡하다보니..ㅠㅠ

그리고 이왕하는거 공들여서 깔끔하게 만들어봐야죠!

 

오늘은 이제 12시가 지났으니 월요일이네요. (내일이라고 하려다가 시간을 보니 마침 12시가 지났..)

많이들 피곤하시겠지만, 활기찬 한주가 되기를 바랍니다!

 

그럼 오늘도 화이팅!

 

Ref

https://ko.wikipedia.org/wiki/%ED%94%84%EB%A1%9C%ED%86%A0%EC%BD%9C_%EB%B2%84%ED%8D%BC

 

프로토콜 버퍼 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 프로토콜 버퍼(Protocol Buffers)는 구조화된 데이터를 직렬화하는 방식이다. 유선이나 데이터 저장을 목적으로 서로 통신할 프로그램을 개발할 때 유용하다. //polyl

ko.wikipedia.org

 

버전정보 (v1.0)

 - v1.0 2020.07.20 배포

 

 

* 저작권에 위반될 수 있는 컨텐츠(이미지, 동영상 등)나 게시글은 삭제되거나 수정될 수 있습니다.

* 문제의 여지가 될 수 있는 컨텐츠의 경우 댓글 달아 주시면 빠른 시일 내에 조치하도록 하겠습니다.

* Karzin은 항상 공부중입니다. 설명이 틀리거나 잘못된 부분이 있다면 의견내주시는대로 수정하도록 하겠습니다.

 

Project.다원은 개인(karzin)이 기획, 분석, 설계, 디자인, 개발, 유지보수 등

모든 부분을 혼자 맡아 진행하는 개인 프로젝트입니다.

Project.다원 Ensemble

Karzin

abbeea@naver.com



드디어 한국어 지원!

구글 홈 미니 사용기

(글로벌판)



[이미지 출처 : 직접 촬영(촬영 장비 : 갤럭시 S8+)]


* 개봉을 이미 해둔 상태이기 때문에 개봉기는 작성하지 않습니다.

* 한국판이 아닙니다.


- 구글 홈 미니


[이미지 출처 : 직접 촬영(촬영 장비 : 갤럭시 S8+)]


저는 약 두달? 한달? 전쯤 구글 홈 미니를 직구로 구입했었습니다.


시대에 맞춰 나도 저런 제품 한개쯤 사용하고 싶다! 라는 생각에 구입을 했었지요.

(사실은 그냥 흥미 위주...)


가격이 저렴한 편들이 아니어서 그나마 저렴한 구글 홈 미니를 구입하게 되었네요.

(정확히는 가격, 부피, 성능에 중점을 두고 고민한 결과였습니다.)



처음 구입했을때는 한국어를 지원하지 않는 상태였고, 저는 일본어와 영어를 선택하여 사용하고 있었습니다.

(영어는 저의 딱딱한 혓바닥탓에 인식을 잘 못하는 모양이었지만_아님 의식한 나머지 너무 굴렸을 지도.., 일본어는 인식이 잘되더라구요.)


지금은 한국어 / 일본어로 설정을 해두었는데, 이게 재밌는 점은 한국어로 질문을 하면 한국어로 대답을 하고, 일본어로 질문을 하면 일본어로 대답을 합니다.

한국어는 남성의 목소리, 일본어는 여성의 목소리로 대답을 하더라구요.

(설정을 통해 변경이 가능한지는 확인해봐야겠습니다.)


- 구글 홈 미니 구성품


[이미지 출처 : 직접 촬영(촬영 장비 : 갤럭시 S8+)]


구성품은 위 이미지처럼 단순한 설명서와 전원연결선, 본체가 끝입니다.


다만 전원연결선은 글로벌제품인 만큼 한국식 돼지코 변환 어댑터가 필요하나... 저는 쓰질 않고 있네요. (집에 삼성 충전기가 많이 굴러다녀서 그거 쓰는중 입니다.)


설명서에는 그냥 별거 안적혀 있더라구요.


- 구글 홈 미니 사용법




사용법은 생각보다 심플합니다.


OK Google!(오케이 구글!)이라고 말하면 이 후 말하는 내용을 인식하기 시작합니다.


인식이 완료되면 홈 미니가 답변을 해주는 형식이구요.


다만 음악에 관해서는 유튜브 구독권(프리미엄)을 가지고 있거나, 구글 홈 어플에서 음악서비스업체를 바꿔줘야합니다.


- 나만의 구글 홈 미니 활용법?


[이미지 출처 : 직접 촬영(촬영 장비 : 갤럭시 S8+)]


흥미위주로 구입한거 치고는 생각보다 활용을 잘 하고 있습니다.


주로 음악감상 위주로 활용을 하고 있죠.


여기서 아쉬운점이 음악을 듣기위해서는 유튜브 프리미엄을 구독해야한다는 점입니다.

(혹은 음악 서비스 업체를 변경해야하지만, 제가 사용중인 네이버 뮤직은 없더라구요.)


구독하는건 생각보다 저렴한편이라 괜찮지만, 

저는 이미 네이버 뮤직을 이용해 음원을 구입하고 있기에..

중복으로 돈을 낸다는 느낌이 들어 구독은 미루고 있네요.


그래도 네이버뮤직과 홈 미니를 연동하여 구입한 음원 혹은 폰에 소유중인 음원을 재생할 수 있어 그나마 위안으로 삼고 있습니다. 


물론 음질도 엄청 나쁜편은 아니여서(그냥 들어줄만 함) 요즘 퇴근하면 홈 미니를 이용해 음악타임을 갖곤 합니다. 



날씨를 묻는다거나 몇몇 쉬운 질문을 제외하고는 컴퓨터로 검색하여 직접보는게 더 편리하게 느껴버려서 그럴진 모르겠지만 아직까지는 검색기능을 잘 활용하지 못하겠더라구요.

(말이 다다다닥 나오는게 생각보다 놓치는 부분들이..)


그래도 굉장히 만족하고 있습니다.

(누군가는 돈이 아깝다고 말은 하지만..ㅠㅠ)



[비교]

영화 vod 어디서 보세요?



휴일이 되면 날씨가 좋으면 자전거를 타고 여기저기 다녀보다가 집에오면 영화를 보는게 일상이 되어가고 있습니다.


주마다 한편씩 챙겨보는 영화의 재미에 푹 빠져버렸네요.


요즘엔 이번주엔 뭘 챙겨볼까 하며 고민하는 재미또한 쏠쏠하기만 합니다.



저는 영화, 드라마, 음악 등등 보고 듣는 컨텐츠에 있어서는 결제하고 보는 편입니다.


어떤분들은 아직도 토렌트에 의존하시는 분들이 많더라구요..ㅠㅠ


영화를 구입해서 보면 나름 모으는 재미도 있고, 이런걸 봤다는 등의 정리도 가능해서 괜찮다고 생각합니다.


또 뿌듯합니다! (중요)



그래서 오늘은 이런 주제를 들고 왔습니다.


영화 vod 어디서 보세요?!!! * 지극히 개인적인 취향과 생각입니다.



저는 지금까지 영화를 세 군대에서 다운(스트리밍)받아 보고 있습니다.


1. 네이버 vod (네이버 N스토어) [과거]

2. 카카오 페이지 [과거]

3. 유튜브 [현재 진행형]



1, 2, 3 순서대로 사용중에 있고, 1, 2는 현재 사용하지 않습니다.


그 이유를 차근차근 작성해 나가도록 하겠습니다.



1. 네이버 vod (네이버 N스토어)


네이버 vod는 네이버 n pay를 이용해서 보기 딱 좋아서 사용하게 되었습니다.


특히 쌓여가는 네이버 페이 포인트를 사용하기 위함이었었는데, 아쉽게도 사용하지 않게 된 이유는


가격에 비해 사용성이 떨어진다는 생각에 였습니다.


무슨 의미인지 갸웃거리시는 분들이 많을 것 같은데,


무제한으로 구입을 하였더라도 PC 2대, 스마트폰 3대에서 사용하고나면 무제한이 무제한이 아니라는 겁니다.


제가 가진 PC만 노트북 4대에 본체 2대이고, 스마트폰만 집에서 게임용으로 사용하는 폰까지 합치면 5대가 되는데.. 


PC 2대, 스마트폰 3대에 설치했거나 스트리밍을 했으면 설치하거나 스트리밍한 PC 혹은 스마트폰에서만 무제한으로 볼 수 있다는 문제가 생기게 되는거죠.


즉 본체 2대에 영화를 다운받았으면 제 노트북 4대에서는 더 이상 다운(스트리밍)받을 수 없다는 거죠..


무제한인듯 아닌듯.. 느낌이 확 들고, 포멧하면 관람도 못할 영상들이 되어버리기에 돈이 아깝다는 생각이 들게 되었습니다.


제가 실험한 바로는 다운로드한 vod를 외장하드로 옮겨 다른 PC에서도 보지 못하는걸로 알고 있습니다. 

(지금은 어떨지 모르겠습니다.)


(분명 신작영화도 꽤 받았는데도 이런 이유때문인지 정이 안가더라구요..)



2. 카카오 페이지


네이버 vod의 대용을 찾던 중! 카카오 페이지를 찾게 되었습니다.


물론 사전조사를 안한것도 문제긴 하겠지만;


웹서비스가 아직까진 많이 부족한 것 같더라구요..


그래도 스마트폰에서 사용한다면 부족함 없이 사용이 가능한 것 같고, 할인을 자주해줘 좋았었습니다.


문제는 큰 화면으로 컴퓨터에 담아 보고 싶었던 저는 웹서비스가 지원되지 않아 아쉽기만 하더라구요..


특히 윈도우 태블릿에서는 사용을 못하다보니..

(윈도우 태블릿은 2대나 있는데 정말 활용가치가 너무 떨어짐;;)



3. 유튜브


그런 대안으로 마지막으로 유튜브로 넘어가게 되었습니다.


그냥 제가 원하는 서비스를 다 만족하기도하고, 아직까지는 아쉬움이 없었던 거죠.


또 어떤 아쉬운 점이 생긴다면 다음은 어떤걸로 넘어갈까 하며 검색을 하겠지만, 아직까지는 아쉬운 점이 없어서


계속해서 사용하고 있습니다.


현재는 네이버 vod에서 구입한 영상들(어차피 PC, 폰 사용가능 횟수를 전부다 채워서 다시 구입해야하네요.)


카카오 페이지에서 구입한 영상들(실제로는 3개밖에 안됩니다. 블랙팬서 등등 - PC의 큰 화면이 지원안되서..ㅠ)


다시 구매하려고 하고 있습니다.

(정확히는 조금 더 사용해가며 눈치를 보는중이죠)



 

 네이버 vod

카카오 페이지 

 유튜브

 장점

 - 네이버 페이 포인트 사용 가능

 - PC, 스마트폰 지원

 - 이벤트가 좋음

 - 상대적으로 할인을 많이해주는 느낌

 - 바로 다른 컨텐츠 이용이 용이

 - PC, 스마트폰 지원

 - 무제한

 단점

 - 무제한이 무제한이 아닌 느낌

 - 각 플랫폼(PC, 스마트폰)마다 한계가 있음

 - 외장하드로 옮겨 다른 PC로 재생 불가

 - 아직까지는 스마트폰에서만 지원

 - 재생 한도는 없는 모양

  - 아직까지 불편한 점은 보이지 않음.



아직까지는 국내에서 서비스하는 vod 서비스들은 아쉬운점이 많이 있는 것 같아요.


저는 보고싶을 때 (출장갈때 등등) 언제든지 보고싶은 주의라 영화는 무제한으로 구입해서 보는 스타일이라


아! 특히 재탕하는걸 무척 좋아합니다. 에피소드가 많은 영화들을 보고 또보고 하는걸 좋아하는데


제약이 걸려있으면 괜히 신경쓰게되고.. 그런점을 싫어하다보니 계속 갈아타게되네요.



사용자마다의 생각이 다 다르다보니 어떨진 모르겠습니다.


다만 유튜브의 경우 제가 스트리밍을 주로 이용중인데,


집에서 사용중인 wifi도 wifi이지만, 스마트폰 요금제를 무제한 데이터 요금제를 사용하다보니


거리낌없이 사용중인것도 이유 중 하나가 될 것같네요.



그러고보니 유튜브에서 구입한 영화가 다운로드가 되는지는 확인해보지는 못했네요.


아직까진 스트리밍으로 충분하다보니..


다음에 기회가 되면 실험해봐야겠습니다.

+ Recent posts