최근엔 개발하면서 UTF8로 통일해서 쓰지만 십년 전 정도에는 euc-kr로 구성된 시스템이 많아서 이기종 간 데이터 통신 시에 문자 인코딩 방식이 달라서 애를 먹은 적이 많다. 실제 개발할 때 이기종 간 맞춰보지 않다가 개발이 완료된 후 테스트 단계에서 발견되는 경우가 많았는데 그러다 보니 남은 일정 내에 이슈를 대응하기가 어려운 경우가 많았던 거다. 심지어 영문으로만 테스트된 경우엔 운영 상태에서 문제가 발생할 수도 있다. ( 테스트 시에 'abcd' 이런 식으로 구겨 넣다가... ) 서론이 길었다. UTF8과 UTF16에 대해서 알아보자. UTF (Universal Coded Character Set + Transformation Format – N-bit, Unicode Transformation..
1) 릿코드(leetcode.com) 간략 소개 릿코드(leetcode.com)는 여러가지 코딩 언어로 1,000가지가 넘는 알고리즘 문제를 풀어볼 수 있는 알고리즘 풀이 사이트라고 할 수 있다. 문제도 계속해서 추가되고 있다. LeetCode - The World's Leading Online Programming Learning Platform Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 문제의 양이 방대하고 종류가 많아서 개발자가 되기 위한, 혹은 이직을 하려는 개발자가..
ios 애플 앱을 개발, 운영하다보면 앱을 업데이트 할 일이 여러가지로 많은데요. 앱을 강제로 업데이트 하거나 버전 별로 프로세스, 로직 분기를 태울만한 일들도 발생합니다. 이걸 위해 별도의 디비를 만들기에는 좀 귀찮은거 같기도 하고요. 아주 크리티컬하지 않고 몇시간의 텀 정도는 괜찮다고 한다면 아이튠즈에서 지원해주는 api를 이용하면 쉽게 체크 가능합니다. 타입은 json 타입이고요. http://itunes.apple.com/lookup?bundleId=[앱 번들 아이디] 예시 ) http://itunes.apple.com/lookup?bundleId=com.yelp.yelpiphone { "resultCount":1, "results": [ {"appletvScreenshotUrls":[], "sc..
IT 일을 하다보면 빅엔디안 vs 리틀엔디안 심심치 않게 들을 수 있어서 그리고 저도 이기종 통신간에 가끔 접하는 문제라서 오늘은 블로그에 정리를 해봅니다. 먼저 엔디안에 대해서 알아봅시다. 먼저 엔디안의 뜻과 빅엔디안과 리틀엔디안의 차이에 대해서 알아보겠습니다. 1. 엔디안(Endian)의 정의? 데이터를 저장하기 위해서 메모리에 바이트를 저장하게 되는데 이 바이트를 저장하는 배열 방법, 즉 배열 순서를 뜻합니다. 그러니까 바이트 순서라고 할 수 있습니다. 엔디언은 조너선 스위프트 걸리버 여행기 소설에 나오는 소인국 릴리퍼트 이야기에서 달걀을 깰 때 뭉툭한 쪽을 먼저 깨는 사람들(빅 엔디언)과 뾰족한 쪽(little-end)을 먼저 깨는 사람들(리틀 엔디언) 사이에 격론이 벌어진 데서 따온 것입니다. ..
기본 맥북에 설치된 파이썬 2 버전이 아닌 3버전을 이용하기 위해서 파이썬3 버전을 설치를 시도했고 Error: An unexpected error occurred during the `brew link` step 위와 같은 에러 메세지를 만나게 되었다. 구글링을 해보니... https://github.com/jakubroztocil/httpie/issues/645 해당 링크에 이미 깃헙 이슈가 있었다. 설치 에러가 발생한 직후 brew doctor 명령어를 이용해보니 아래와 같은 방법을 알려주었다. Please note that these warnings are just used to help the Homebrew maintainerswith debugging if you file an issue. ..
오늘 구글 관리자에 들어갈 일이 생겨서 접속해봤더니 왠걸... 뻘겋게 경고 메세지가 떠있었다. 이 앱은 SMS 및 CALL_LOG 권한 사용에 적용되는 Google Play 정책 변경사항의 영향을 받습니다. 정책을 준수하지 않는 앱은 2019년 1월 9일에 Google Play에서 삭제될 수 있습니다. SMS와 CALL 관련 권한을 사용하는 부분을 모두 허용하지 않기로 한거 같다. 구글의 권한 관련 정책은 점점 빡세지고 있다. '해결 방법'을 눌러 좀 더 자세히 보기로 했다. SMS 또는 통화 기록 권한 그룹 사용Google Play에서는 SMS 또는 통화 기록 권한 그룹을 비롯하여 위험성이 높거나 민감한 권한의 사용을 제한합니다. 앱에서 통화 기록 또는 SMS 권한에 액세스할 필요가 없다면 앱의 매니페..
구글 애널리틱스 아카데미 시험 문제를 모아놓았습니다. 빠르게 Ctrl + F로 문제를 찾아서 밑줄이 그어진 문제를 답으로 맞추면 됩니다. 혹시 오답이 있으면 댓글로 알려주시기 바랍니다~. 감사합니다. 1. Google 애널리틱스에서 추적 코드를 사용하여 데이터를 보고할 수 있는 시스템은? 전자상거래 플랫폼 모바일 애플리케이션 온라인 판매 시점 시스템 인터넷에 연결되지 않은 시스템 2. Google 애널리틱스로 웹사이트 데이터를 수집하기 위해 완료해야 할 단계는? Google 애널리틱스 데스크톱 소프트웨어 설치 애널리틱스 계정 생성 애널리틱스 추적 코드를 각 웹페이지에 추가 애널리틱스 앱 다운로드 3. 다음 중 애널리틱스 추적 코드로 수집할 수 있는 것은? 브라우저에 설정된 언어 브라우저 유형 사용자의 즐..
말 그대로 os x atom-runner 를 사용하고 있는데 NODE_ENV 설정이 제대로 되질 않았다. 암만 터미널에서 export NODE_ENV를 하든 뭘하든 안되는거다. 알고보니 os x 는 터미널과 launchpad에서 실행하는 컨텍스트가 다르면 환경 설정 값도 제대로 물고 갈수 없는 것 같다. 그러니 터미널에서 open -a atom.app으로 실행하게 되면 아주 잘된다. 그러나 매번 터미널에서 실행할수는 없어서 찾아보니 ... 터미널에서 이렇게 입력해주면 된다. $ launchctl setenv NODE_ENV development 이렇게 하고 나서 아톰을 실행해보니 아주 잘된다. 런치패드의 환경 설정을 해주는 명령어다. 참고할 것.
얼마 전 설치했던 fibers나 synchronize 모듈의 경우에는 git에서 직접 소스를 공수해와 수동 빌드만이 성공하고 npm install 로 인한 타 패키지 설치 후 전체 빌드 시에는 실패하게 되는데 이때 package.json에 옵션을 지정하여 해당 패키지 빌드 실패하여도 새로운 패키지는 설치하도록 할 수 있다. 바로 optionalDependencies 옵션을 추가하면 되는데 필자의 경우 아래처럼 추가했다. "optionalDependencies": { "fibers": "^2.0.0", "synchronize": "^2.0.0" } 그리고 다시 설치하고 싶었던 패키지를 인스톨 시키니 성공했다.
자바 언어로 프로그래밍을 하다보면 가장 자주 만나는 오류 중에 하나가 이 널포인트 익스셉션(NullPointerException)일거다. 일단 왜 발생하는지 원인에 대해 알아보자. 일단 Exception도 클래스기 때문에 공식 api 문서를 보고 판단해보자. https://docs.oracle.com/javase/10/docs/api/index.html?overview-summary.html 여기서 NullPointerException을 찾아보면...내가 영어를 무지 못하긴 하지만 번역기와 그간의 짬으로 약간은 이해한다. 한번 해석해보도록 하자. Thrown when an application attempts to use null in a case where an object is required. Th..
얼마전까지 윈도우에서 개발했던 node 프로젝트를 mac os에 세팅할 일이 생겨 git으로 되어있던 프로젝트를 clone하고 npm install을 해서 node modules를 모두 설치하였으나 node-gyp는 설치를 실패했다. 이전 윈도우에서도 설치하느라 꽤나 애먹었던 기억이 난다. 오늘 mac에도 설치를 해보면서 기록을 남겨보고자 한다. 우선 node-gyp 패키지 사이트를 참고해보면 ( https://www.npmjs.com/package/node-gyp ) python 2.7이 있는지 묻는다. mac은 기본적으로 파이썬이 설치되어있는 것 같다 버전을 확인해봤다. 터미널에서 xcode-select -install 명령어로 cli를 설치해준다. 그리고 나서 npm i node-gyp 하게 되면 ..
node-gyp + synchronize 설치 오류(install error) 시 조치방법 먼저 종속된 npm 모듈들을 수기로 설치해줘야 한다.gyp 모듈은 말 그대로 네이티브 모듈을 컴파일하기 위한 모듈이다. 사전에 필요한게 꽤 많다. 파이썬도 있어야되고, 윈도우 build tool도 있어야 한다. 하나씩 설치해보자. 나같은 경우는 node.js에서 synchronize, fibers를 사용하기 위해 node-gyp가 필요하게 되었다. 문득 gyp의 약자가 궁금해서 검색해봤더니 ( Generate Your Projects ) 였다. 1. windows-build-tools 모듈을 설치해준다. npm install --global --production windows-build-tools 참고 기다리면 ..
git add -Agit stashgit pull