안녕하세요.

오늘은 API 대해 포스팅을 하려고 합니다.


먼저, 기획자 신입으로 취직을 한 제 친구가 있습니다.

그 친구는 컴퓨터와 전혀 관련없는 과를 졸업하였구요. 


개발자인 저에게 "API가 뭐야? 이해가 잘안돼" 라고 물었습니다.

저로써는 "아.. API를 같은 종사자라도 잘 모르는 사람도 있겠구나" 싶어서 포스팅하게 되었습니다.


그럼 API가 무엇일까요?


 

 "API"는 Application Program Interface을 의미합니다. 


 약자를 풀어서 해석을 해도 이해가 잘 되지 않으실 껍니다.


 하지만 먼저 약자를 풀어서 의역아닌 해석을 해보자면 '어플리케이션 프로그램 구조?' 정도로 해석하면 될까요?


 일단 흔히 API가 뭐냐고 하면 라이브러리에 접근하기위해 작성된 규칙 정도로 교과서적인 설명이나 글을 볼 수 있을껍니다.


 맞는 말이기도 합니다.


 하지만 더 쉽게 예를들어 설명을 해드리겠습니다.


 구글 지도는 API덩어리라 해도 무방 합니다.

 

 구글지도는 단순히 지도만 보여주고 있지 않습니다. 음식점을 검색했을때 위치와 평점등을 보여주고, 또한 길찾기를 했을때 경로를 알려줍니다.


 하지만 구글 지도를 개발할때 음식점정보를 넣어서 개발한것이 아니라, 외부 음식점 정보 라이브러리를 연결시켜서 정보를 표현해준것 입니다.


 여기까지 말씀드려도 이해를 잘 못하실수 있을수도있습니다.


 더 쉽게 설명하자면, 구글 지도 개발자와 음식점 정보 개발자는 서로다르고 서로다른 프로그램이라고 이해하시면 됩니다.


 즉, 음식점 정보 프로그램에서 구글 지도 프로그램으로 연결시켜줄수있는 연결고리를 API라고 합니다.


 지금은 API방식을 굉장히 많이 사용하고있구요.


 정부에서 제공하는 Open API 도 존재 합니다. 즉 수많은 라이브러리가 많고 이것들을 활용하여 자신만의 프로그램을 개발할수 있는환경 입니다.


 Open API는 특정 서비스를 제공하는 업체가 자신들의 서비스에 접근할 수 있도록 외부에 공개해놓은 라이브러리 입니다.


 즉, 해당서비스로 접근하기 위한 규칙으로 보면 되겠습니다.




* 참고링크

https://terms.naver.com/entry.nhn?docId=4383195&cid=59941&categoryId=59941


반응형


한때 자바 유료화 이슈때문에 Open JDK와 Oracle JDK 논란이 있었는데요.

오늘은 간단히 Open JDK와 Oracle JDK에 대한 차이점을 말씀드리겠습니다.


먼저, JAVA를 실행하기위해서는 JVM(자바가상머신)이 필요합니다.

그리고 자바를 컴파일  하기위해선 JDK가 필요합니다. 보통 JDK와 JVM은 같이 설치가 됩니다.


상업용과 오픈소스기반으로 JDK는 2가지로 나뉩니다. 

이것이 바로 Open과 Oracle JDK의 첫번째의 큰 차이점 입니다.


Open JDK ? 


작년에 JAVA가 유료화된다는 소식을듣고 급하게 찾아본 기억이 있습니다.

JAVA프로그래밍 언어자체는 GPL라이센스로 '무료' 입니다.


하지만, 자바를 컴파일해주고(JDK), 실행시키는것(JVM)을 도와주는것이 구독형 라이센스로 변경이 되면서 논란이 되었습니다.


결론적으로는, Open JDK는 오픈소스 기반으로 '무료' 입니다.


오라클과 레드햇, Azul, AdoptOpenJDK 등의 OpenJDK 바이너리 파일을 제공 받을수 있습니다.


Oracle JDK ?


Oracle JDK 라이센스는 Oracle Binary Code License (BCL) 입니다. 


Open JDK와 달리 소스코드는 역시나 비공개 이며, 2018년 7월부터 구독형으로 지원합니다. (JDK 11부터)


유료인만큼.. Open JDK와 다른 기능과 좋은 피드백이 장점이 될수있다고 생각이 됩니다.


실제 사용자의 의견을 들어봤을때는, Open JDK로도 큰 문제없이 컴파일과 실행이 가능하다고 합니다.

실제로 Oracle JDK에서 제공하는 다른 기능은 쓸일이 잘 없고 대체가 가능한 부분이라고는 하는데, 이건 개인의 차이라고 생각됩니다.


* 참고 링크

https://www.infoworld.com/article/3284164/java/oracle-now-requires-a-subscription-to-use-java-se.html


반응형



OMD는 오픈 마켓 디바이스(Open Market Device) 자급제 단말기를 의미합니다.


해외직구를 통하여 들여온 외산 기기 혹은 통신사를 거치지 않고 기기만 구매한 단말기를 의미합니다.



 "OMD"Open Market Device을 의미합니다. 


 OMD (오픈 마켓 디바이스) 자급제 단말의 경우 제조사의 유통점, 가전제품 매장 혹은 해외직구를 통하여 구입 할 수 있습니다.


 흔히들 자급제기기의 경우 국내에 반입 혹은 구입을 한 후, 희망하는 통신사에서 서비스가 가능한지 확인을 하여야 합니다.


 해외 OMD 단말기의 경우 정식 품질 검증을 거치지 않은 경우가 대부분이기 때문에 일부 통신사 서비스의 이용 제약이 있을수도 있습니다.


 하지만, 최근들어 주요 서비스인 VOLTE(HD Voice Service)서비스를 개인의 패치를 통하여 사용 가능한 방법이 생겨 비교적 저렴한 자급제 단말기를  많이들 이용합니다.


 일반 국내 정식 인증을 받은 기기의 경우는 유심칩을 인식시에 바로 통신사에 해당 모델 코드를 인식하여 서비스를 정상적으로 받을수 있습니다.


 * 현재 구글 픽셀, 혹은 샤오미 자급제 기기들은 VOLTE 패치를 한 후, 희망 통신사에 OMD 등록을 마치면 VOLTE(HD 통화품질)를 사용가능 합니다.


 * 흔히 OMD등록이란 기기의 S/N(시리얼 번호)와 IMEI번호를 등록하는 과정을 의미합니다.



 KT

SKT

LG

 전화, 이메일로 OMD등록 가능

(OMD 등록을 통하여 VOLTE사용가능)

대리점 방문을 통해서만 OMD 등록 가능

(OMD 등록을 통하여 VOLTE사용가능)

OMD 등록을 하지 않아도 VOLTE 가능

(LG는 3G망이 없음)

 * 위 내용과 해당없는 상황이 발생할수도 있습니다. 대부분의 정보를 통하여 기록한 표입니다.

* 희망하는 통신사의 OMD등록을 하지 않아도 3G망을 가지고있는 KT, SKT는 비교적 좋지 않은 통화품질로 기기를 사용 할 수도 있습니다.

* LG의 경우 꼭 VOLTE 패치를 진행하거나, 자급제 기기중에서 간혹 LG를 지원하는 기기에서만 사용 할 수있습니다.


반응형


DRM은 (Digital Rights Management)의 의미로도 사용이 됩니다. 하지만 오늘은 Widevine 의 DRM을 설명드리려합니다.

우선적으로 Digital Rights Management의 경우는 간단하게 설명하자면 디지털 저작권 관리를 의미하는데요.

흔히 다운받는 영화나 동영상이나 제작 콘텐츠 제작물의 경우 정품이아닌 복제가 많은데요. 이 복제하는 경우를 방지해주는 기술을 의미합니다.


이제 Widevine DRM을 본격적으로 설명을 드리겠습니다.



 "Widevine DRM"Widevine DRM을 의미합니다. 


 어쩌면 일반적으로 쓰이는 디지털 저작권 관리의 의미를 비슷하게나마 담고는 있습니다.


 먼저 Widevine(와이드 바인)은 구글이 인수한 회사 입니다. (2010년도 인수)


 와이드바인의 DRM은 와이드바인의 DRM이 적용된 기기의 경우 미디어 재생을 보호하며 배포를 안전하기위한 보안 기술 입니다.


 현재 안드로이드 및 Chromium(크로미움)에서 Widevine DRM 적용 되고있고요.


 적용되고있는 미디어로는 Amazon Video , BBC , Hulu , Netflix 및 Spotify 등이 있습니다.


 그렇다면, 무엇을 정의 하는것일까요?


 간단하게 설명을 하겠습니다.


 Widevine DRM은 시큐리티 레벨로 정의를 합니다.


 L1 > L2 > L3 > 미지원 으로 정의가 됩니다. (변동 될수도 있습니다.)


 만약 자신의 기기의 DRM레벨을 확인하였을때, L1 혹은 L2 라면 넷플릭스, 혹은 구글 무비등 HD화질(720p이상, 1080p, 4K) 을 지원하게됩니다.


 하지만, L3 레벨이라면 HD화질(540p이상)을 지원을 못하게 됩니다.


 Widevine(와이드 바인) DRM은 DRM info 라는 앱을 통하여 현재 보안 레벨을 확인 할 수있습니다. 


 * L1, L2의 경우 Widevine의 기기 등록(인증), 하드웨어적 처리 통하여 가능하다고 합니다.

 * L3는 순전 보안 기술이아닌 기기 성능으로 소프트웨어로 시큐리티레벨을 처리합니다.

 * 자세한 내용은 와이드바인 DRM 아키텍쳐 첨부파일 혹은 아래 이미지를 확인해주세요. (아래 이미지 - 13페이지)





Widevine DRM 아키텍쳐

Widevine_DRM_Architecture_Overview.pdf



* 참고링크

https://en.wikipedia.org/wiki/Widevine


반응형


최근에 샤오미 폰을 사용하면서 안티롤백이라는 개념을 알게되었습니다.

안티롤백이란 휴대폰을 벽돌상태로 만들기도 하는 시스템입니다.



 "ARB"은 Anti-Rollback을 의미합니다. 


 안티롤백은 구글에서 안정성을 위해 부트로더를 다운그레이드를 불가능하게 방지하는 기술 입니다.


 퀄컴 스냅드래곤의 Qfuse가 대표적인데요.


 Qfuse란 부트로더를 언락하게되면 끊어지는 물리적은 퓨즈 입니다.


 참고로 LG와 삼성, 구글 넥서스 휴대폰에는 탑재된 모델이 있습니다. 


 Qfuse라는 기술의 동작 발생의 원인은 제조사에서 부트로더의 업데이트를 수행할때 Qfuse값을 상위 값으로 변경을 한뒤 휴대폰 업데이트를 하고,  임의의 하위버전으로 다운그레이드를 사용자가 시도하였을경우 안티롤백 기술이 적용된 휴대폰의 경우 '하드브릭' 흔히 말하는 벽돌 상태로 빠질  수 도 있습니다.


 벽돌상태는 휴대폰 부팅시 검정색 화면만 나온채 아무것도 할 수 없는것을 의미합니다.


 그렇다면 이를 해결할수있는 방법은? Qfuse는 물리적인 메인보드의 퓨즈를 끊어버리는것이라 메인보드를 교체하지 않는 이상 불가능합니다.


 왜 안티롤백을 사용하는것일까요? 안티롤백을 사용함으로써 커스텀 롬(펌웨어)와 같은 안드로이드 수정행위를 금지시키는것으로 판단 할 수 있습니다.


 실제로 ARB값을 툴로 확인을 할 수 있습니다.


 Qfuse = 0일 경우 ARB 0

 Qfuse = 1일 경우 ARB 1

 Qfuse = 2일 경우 ARB 2

 Qfuse = 3일 경우 ARB 3

 Qfuse = 4일 경우 ARB 4


 위와 같이 해당 값들이 숫자 코드로 정의가 되는데요. 만약 기존 ARB3에서 4로 업데이트 되고나서 ARB3에 해당하는 커스텀 롬이나 부트로더를 다운그레이드를 하게된다면 하드브릭(벽돌)상태가 되어 휴대폰을 사용 할 수 없는 상태가 됩니다.


 * 최근에 국내에 정발된 샤오미 홍미노트5를 특정 업데이트 이후 ARB4로 업데이트되어 기존 ARB3 커스텀롬 이나 정식롬(이전버전)으로 다운그레이드가 불가능한 상태가되어 수 차례 벽돌들이 많이 발생하였습니다.


 자신의 휴대폰도 간단한 검색을 통해 Qfuse적용모델인지를 확인 후 다운그레이드를 선택해주시면 될 것 같습니다.




반응형

'IT > 용어(약어)' 카테고리의 다른 글

OMD 란? (OMD : Open Market Device)  (0) 2018.10.21
Widevine DRM 란? (DRM : Widevine DRM)  (1) 2018.10.21
CDN 란? (CDN : Contents Delivery Network)  (0) 2018.10.04
SOT 란? (SOT : Screen On Time)  (0) 2018.10.04
OTA 란? (OTA : Over The Air)  (0) 2018.09.27


JQurey 라이브러리나, 자바스크립트 라이브러리를 사용할때 간혹 간단히 링크로 로드하는 경우가 있습니다.

이경우를 CDN을 의미합니다.



 "CDN"Contents Delivery Network을 의미합니다. 


 원거리에 있는 참조 리소스에 대해서 비효율적인 요청 거리를 줄이는 서비스 정도로 해석할수있는데요.


 실제 사용하려는 리소스를 직접 다운로드 및 첨부 등의 과정을 생략 후 (비효율적인 과정)


 제공하는 서버에서 실시간으로 바로 사용할수있게 거리를 줄이는 것을 의미합니다.


 하지만, 제공하는 서버쪽에서 문제가 발생하거나 더이상 제공을 하지않게된다면 사용이 불가능합니다.




* 참고링크

https://namu.wiki/w/CDN


반응형


SOT 약자 용어를 잘 접하기는 힘들거 같습니다.

최근에 모바일쪽에 관심있게 보던중 너의 SOT는 얼마정도 되니? 라는 글을 읽었습니다.

그럼 SOT가 무엇일까요?


 

 "SOT"Screen On Time을 의미합니다. 


 안드로이드 폰에서 화면 켜짐 시간 정도로 해석할수있는데요.


 보통은 모바일폰의 배터리 타임을 측정(비교)할때 많이들 묻곤 합니다.


 보통은 설정 -> 배터리 / 전원 메뉴에 들어가보면 확인해볼수 있습니다.


 SOT가 높은폰을 기준으로 배터리가 용량이 양호하다면, 배터리가 좋은폰으로 판단할수있습니다.


 유튜브, 게임, 영화등 비교시간도 측정하여 판단하기도 합니다.




* 참고링크

https://www.gogi.in/screen-on-time-sot.html


반응형


요즘은 남녀노소 누구나, 우리가 대부분 하나씩 다 가지고있는 스마트폰에 대한 용어 입니다.

OTA는 휴대폰 업데이트를 의미하는건데요.

보통은 휴대폰을 사용하다보면 업데이트가 있습니다. 업데이트를 진행하시겠습니까? 묻는것이 OTA입니다.



 "OTA"Over The Air를 의미합니다. 


 해석하자면 "방송으로" 정도로 해석되겠는데요. 무선통신을 의미합니다.


 컴퓨터에 연결하지않고 서버에서 보내주는 업데이트를 정보를 받아 무선으로 업데이트를 진행하는 방식입니다.



* 참고링크

https://namu.wiki/w/OTA




반응형

+ Recent posts