오늘 오랜만에 atom 에디터를 열일이 있어서 실행했는데 열리지가 않았다. 프로그램 재설치도 여러번해봤지만 그래도 실행이 되지 않아 여러가지 원인을 찾다가 겨우 찾았다. 일단 원인은 .atom 폴더 내에 있는 config.cson 파일이었다. 해당 파일을 편집하다가 엉뚱한 내용을 넣어둔 채로 저장했던것 같다. 요즘은 애들도 내 위로 올라와서 키보드를 마구 치다가 간다. 그래서 작업중이던 에디터에도 많은 영향을 주는데 여기 아래에 'runner'라는게 들어있으니 atom이 작업관리자에서 보면 뜨긴 하는데 ui가 보여지지 않는 현상이 발생한다. 이방법으로도 안된다면 .atom 폴더를 아예 날리고 하면 되는데 그랬다간 주요 설정들이 다 날아가니 하나씩 폴더들을 날려보면서 반응을 살펴보는 것이 좋을 것 같다. ..
Java 1) Gc에 대해 달달 외울 정도. 2) 메모리 구조 달달 외우게 Kafka RabbitMQ TDD, CI, CD 애자일 블로킹, 논블로킹 JPA에서 락은? spring 토비 qos 레벨1 레벨2 카프카 웹개발자라면 브라우저 동작 방식은 알아야. 폴리글랏 프로그래밍 - 임백준 객체지향 특징및 설계 jvm(gc 튜닝) jdk8 + (람다 스트림) 스프링 thread safe jpa 쿼리튜닝 캐시(redis) git 브랜치 관리 전략 test 코드 작성 성능 테스트 대용량 처리 선점 이슈(lock - 낙관적 비관적) 기초자료구조 및 시간복잡도 알고리즘 tcp/ip http 동기 비동기 block nonblock msa 리팩토링 기존에 했던 업무 트러블슈팅 시스템 디자인. 기술 면접 대비(포프 유툽 ..
자바를 사용하다보면 System.arraycopy 를 사용하는 곳을 심심치않게 볼 수 있다. 유틸 클래스던 라이브러리던. 뭐 일을 하면서는 실제로 사용할일은 거의 없는듯 하다. 결국 배열을 복사해주는 놈인데 for문을 직접 이용해서 복사해넣는것과 무엇이 빠를까? 1. System.arraycopy vs Array hardcopy 역시나 찾아보니 System.arraycopy는 native 코드를 호출해서 사용해서 그런지 훨씬 더 빠른 결과가 나온다고 한다. https://stackoverflow.com/questions/18638743/is-it-better-to-use-system-arraycopy-than-a-for-loop-for-copying-arrays Is it better to use Sys..
오랜만에 PC에서 예전에 만든 프로젝트를 띄워보려고 최신 톰캣 버전을 다운받은 뒤 ( tomcat 9.0.20 ) 기동을 시키려 했는데 메세지들이 난데없이 한글로 뜨는 거다. 한글로 뜨게 되면 내가 그동안 알고 있었던 영어 메세지가 나와도 모르게 되고 구글에 빌어도 한글로는 검색이 되지 않아 당장 영어로 바꾸도록 설정을 해주었다. 물론 방법이야... jvm 파라미터를 주는 방식이지만... -Duser.language=en -Duser.region=US 요 메세지를 추가해보자. 이클립스에서 톰캣 런타임으로 실행하는거니까 어디에 설정해야 하는지 못찾는 사람도 있을 수 있다. Servers에서 tomcat 9 over view를 띄운 다음에... Open launch configuration 을 선택해서 해당..
요즘 시간이 날때 간단한 코딩을 하고 있다. 실무를 하면서 사실 이런 프로그램을 만들일은 없지만 기록은 그래도 의미가 있다. 두 수 n과 m이 주어졌을 때 두 수의 최대공약수와 최소공배수를 구하는 코드다. 너무 오랜만이라 잠깐 화면을 보고 멍해있었다. ㅎㅎ public static int[] p5(int n, int m) { int min = n > m ? m : n; int[] rtnInt = new int[2]; for(int i = min; i > -1;i--) { if( n % i == 0 && m % i == 0 ) { rtnInt[0] = i; rtnInt[1] = n*m/i; break; } } return rtnInt; } 두 수 중에 작은 수를 기준으로 수를 하나씩 내려가며 나머지를 ..
최근엔 개발하면서 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. 다음 중 애널리틱스 추적 코드로 수집할 수 있는 것은? 브라우저에 설정된 언어 브라우저 유형 사용자의 즐..
1. 보고서에서 두 기간을 비교할 때 사용하는 기능은?정답입니다. 시간 그래프의 시, 일, 주, 월 보기 실시간 보고서 기간 비교 계정 선택기2. '사용자' 측정항목이 측정하는 것은?정답입니다. 웹사이트 총 방문 수 특정 기간에 사이트에서 한 번 이상 세션이 실행된 사용자 웹사이트의 홈페이지에 도달한 사용자 수 웹사이트에서 이메일 뉴스레터에 가입한 사용자3. Google 애널리틱스에서 '이탈률'이란?정답입니다. 특정 기간에 순 사용자가 웹사이트를 재방문한 횟수 사용자가 홈페이지에서 종료한 세션의 비율 총 사이트 종료의 비율 사용자가 웹사이트에 도달한 후 상호작용 없이 이탈한 방문의 비율4. Google 애널리틱스에서 '측정기준'에 해당하는 것은?정답입니다. 특정 기간에 비즈니스가 창출한 총 수익 금액 더..
양재역맛집인데 존나 맛있는 곳이라고 한다. 물론 단골집인데 새로운 메뉴이기도 하고 특징은 음식을 푸짐하게 많이 주면서 국물은 시원하고 담백!, 야채 또한 푸짐하고 싱싱하며, 처음 먹어보는 해물찜인데도 양이 어마어마 하다는 것! 이거 진짜 실화냐를 계속 외칠지도 모르지만 계속 외치게 될것 같고 특징은 탱글한 식감이 일품인 요리다. 그러니 양재동, 양재역에서 일하는 직딩이라면 한번쯤 퇴근후에 들러야 하는 맛집이 아닐까 싶다. 그리고 새로 나온 메뉴인 해물찜에는 아주 꽉 차 있는 게살까지 있으니 이거 더 이상 말해야 무엇하랴.... 또한 마무리는 그 메뉴로 비빈 볶음밥을 먹어야 하고 식사를 따로 할 수 있도록 쾌적하게 흡연실이 따로 마련되어있으니 이거 더이상 말해서 무엇하랴.... 나는 그냥 한 블로거의 맛집..
말 그대로 os x atom-runner 를 사용하고 있는데 NODE_ENV 설정이 제대로 되질 않았다. 암만 터미널에서 export NODE_ENV를 하든 뭘하든 안되는거다. 알고보니 os x 는 터미널과 launchpad에서 실행하는 컨텍스트가 다르면 환경 설정 값도 제대로 물고 갈수 없는 것 같다. 그러니 터미널에서 open -a atom.app으로 실행하게 되면 아주 잘된다. 그러나 매번 터미널에서 실행할수는 없어서 찾아보니 ... 터미널에서 이렇게 입력해주면 된다. $ launchctl setenv NODE_ENV development 이렇게 하고 나서 아톰을 실행해보니 아주 잘된다. 런치패드의 환경 설정을 해주는 명령어다. 참고할 것.
⌘-L cmd + L 이게 뭐라고 블로그에 적고 있냐....