Programming(199)
-
GLib을 이용해서 문자열 나누기(g_strsplit)
C에서 문자열을 조작하는 것은 생각보다 짜증나는 일이다. GLib을 사용하면 문자열 조작을 수월하게 할 수 있는데, 문서만 잘 읽어보면 어렵지 않게 활용할 수 있다. 일단 GLib이 포함되어있고, 문자열을 조작할 일이 생겼다면 이 글을 읽기보다 String Utility Functions: GLib Reference을 보도록 하자. 훨씬 도움될 것이다. 문자열을 자르거나 붙이는 등, 대부분의 것들은 문서에 포함되어있다. Reference에 없는 함수로 부족한 경우에는, strlib.h의 내용으로 구현 가능한 경우가 대부분이다. 내 경우에는 이 Reference 중 g_strsplit을 자주 사용하며, 이 글을 작성하는 이유도 사실 g_strsplit에 대한 내용을 정리하기 위함이다. 특정 토큰을 이용해서..
2019.04.17 -
구 버전의 NDK 설치(NDK 아카이브)
기존 프로젝트에서 NDK v14버전을 사용하고 있었는데, 별 생각없이 Android Studio를 켜서 YES를 누르다보니 빌드가 되지 않는다. 빌드 에러를 천천히 읽어보니 Gradle v3.3.1에서는 NDK v14를 지원하지 않으니, NDK를 업데이트 하라는 내용이었다. 별 생각없이 업데이트하고 났는데 왠걸. Gradle v3.3.1로 업데이트하고나니 Samsung에서 출시된 5.X버전의 안드로이드 기기에서 문제가 발생했다. KISA에서 배포하는 SEED CBC 암호화를 적용할 경우, 앞에서 몇 글자가 깨지는 문제였다. 뭐가 원인인지 한참을 찾다가 Gradle v3.2.1의 최소 targetSDKVersion은 28이기 때문에, 25로 지정된 targetSDKVersion은 무시된다는 내용이었다. d..
2019.04.12 -
[GCM to FCM Migration 삽질기 #1] 기존에 사용하던 GCM 코드 확인
2019/04/29 - [Programming/Android] - GCM to FCM Migration 정리 이 글은 GCM을 사용해서 푸쉬알람을 띄우던 기존의 Legacy코드를 FCM으로 통합할 때 작성하기 시작한 글로, 작업이 완료된 시점에 다시 작성한 글은 위를 참조해주세요. :) GCM to FCM Migration 정리 이전 글 보기 [GCM to FCM Migration #1] 기존에 사용하던 GCM 코드 확인 [GCM to FCM Migration #2] Migration 시작 [GCM to FCM Migration #3] Legacy 코드를 제거하자! GCM to FCM을 검색해보면 보다 많고 자세.. zerodice0.tistory.com GCM을 사용하여 메시지를 받는 구조로 작성된 기..
2019.04.08 -
오픈소스 차트 라이브러리, nWagon (Vanilla JS+SVG)
최근의 웹 트랜드를 놓고 비교해봤을 때, 우리의 웹 어플리케이션은 살짝 뒤쳐져있다. 10여년간 자바스크립트와 jQuery를 사용해서 만들어놓은 레거시 시스템을 갈아엎기위해, angularJS를 도입하여 신규 웹 어플리케이션을 몇년간 개발하긴 했다. 다만 오랫동안 판매된 장비들의 후방호환성을 지원해야 했기 때문에 여러모로 문제가 많았다. IE8을 지원해야했는데 angularJS는 업데이트를 통해 ‘더 이상 IE8을 지원하지 않겠다’라고 밝혀 업그레이드를 포기해야했고, 장비에서 스트리밍하는 영상의 헤더가 커스터마이징 되어있어 ActiveX를 사용하지 않을 수 없었다. 그러던 와중에 차트를 사용하는 기능을 구현해야했고, 다른 작업을 하는 동안 직장동료가 nWagon을 찾아냈다. 오픈소스 차트 라이브러리, nW..
2019.03.26 -
[BootStrap] 탭 내용 전환하기 전에 다이얼로그를 띄우기
탭을 변경했을 때 데이터를 비교하여, 값을 서버로 전송해야 할 경우가 발생했다. BootStrap의 탭을 이용해서 UI를 그리고, 탭을 이동할 때 select로 함수를 바인딩한 후 Modal을 출력했다. 클릭한 탭이 표시된 상태로 Modal이 표시되고 있었다. Modal로 confirm을 구현하고나니 더더욱 이상해졌다. 탭을 변경하기 전에 데이터를 저장해야합니다. 변경된 데이터를 저장하시겠습니까? (Y/N)이라는 내용의 Modal이 화면상에 떠 있는데, 어둡게 표시된 화면의 저 편에 클릭한 탭의 내용이 표시되고 있다. 이러한 경유로 탭을 클릭하면 사용자에게 탭 이동여부를 묻고, 사용자의 선택에 따라 클릭한 탭의 내용을 표시하는 UI가 필요했다. 사용자가 OK를 눌렀을 때 Confirm Modal을 띄워봤..
2019.03.19 -
[C/C++] 문자열 타입의 MAC ADDRESS 포멧 확인 (sscanf)
Front-end에서 MAC ADDRESS를 전달하는 경우 값이 변경될 수 있으므로, 최소한 전달받은 문자열이 MAC ADDRESS양식에 맞는지는 확인할 필요가 있었다. 특히 MAC ADDRESS를 문자열 형태로 저장할 때는 더더욱이나. 검색하면 어렵지 않게 찾을 수 있는 내용이지만, 업무가 바빠서 사이드 프로젝트를 못하니 뭐라도 정리하기로 했다. #include int sscanf(const char *buffer, const char *format, argument-list); sscanf는 buffer에 저장된 데이터를 지정된 format에 맞는 형식으로 읽어들이며, 성공적으로 변환된 필드 수를 리턴한다. 따라서 00:00:00:00:00:00과 같은 형식으로 문자열을 전달받았을 때, sscanf를..
2019.03.19