자바로 짜는 List
19 April 2018 | Comment
이번엔 List를 짜보았다. Java에는 ArrayList라는 훌륭한 API를 제공해주고 있어서 실제로 이렇게 짜서 하는 경우는 없지만 어떻게 돌아가는지 알려면 한번쯤 짜봐야 한다고 생각했다. List와 지금까지 해봤던 Stack과 Queue의 다른 점은 List는 각 아이템마다 position이 있어서, get(int position) 함수를 사용하여 해당 순서의 아이템을 바로 뽑을 수 있다. 해당 position의 아이템을 삭제하면 해당 뒷 노드 앞 노드가 알아서 합쳐지는 등 연결리스트 개념을 알고리즘으로 풀어낸 것이라고 볼 수 있다.
read more자바로 짜는 Queue
12 April 2018 | Comment
지난번의 Stack에 이어 이번엔 Queue를 짜보았다. Queue는 선입선출 구조를 가지고 있으며 Stack을 손에 쥔 닭꼬치에 비유하자면 Queue는 놀이공원 대기줄이다. 선착순으로 먼저온 사람부터 차례차례 빠져 나간다. 물론 새치기는 예외 C언어로 배웠던 시절처럼 배열을 써볼까 했는데, Queue의 최대 크기가 제한되어버리는 데다가 dequeue할때 밀어주기 방식을 해야하기도 하고 뭔가 Java스럽지 않은것 같기도(?)해서 Stack을 구현할때와 유사하게 객체를 참조하는 구조로 짜 보았다. 대신 Queue는 맨 처음 Node와 맨 끝 Node를 특정해야 빼는 작업을 할 수 있으므로 Node 객체에 next 프로퍼티가 추가되었고 Queue 클래스에 frontNode, rearNode가 사용되었다. 뭐, 다 구현하고 나서 보니 연결리스트랑 다를바 없어 보인다.
read more자바로 짜는 Stack
10 April 2018 | Comment
복습도 할겸 Stack을 Java로 다시 짜보았다. Stack은 후입선출(Last in First out) 구조의 특징을 가지고 있는데 비유를 하자면 닭꼬치를 예로 들 수 있겠다. 닭꼬치는 꼬치에 꾀어 있기 때문에 가장 마지막에 들어간 고기부터 빼내어 먹을 수밖에 없다. 생뚱맞은 비유지만 요즘 잘 쓰지않는 CD 보관케이스 이런것보단 쉽게 이해가 가지 않을까 싶다.
read moreTelegram Instant View 지원하기
03 April 2018 | Comment
Instant View는 사실 제작년에 나온 Telegram 신기능인데, 블로그도 열었을겸 한번 해보고 싶었다. 이게 무엇이냐 간단히 얘기를 하자면 페이지를 저장해놓고 빨리 불러오는 기능이라고 보면 되겠다.
read more네이버 웹마스터 수집 오류 해결법
27 March 2018 | Comment
네이버는 국내 포털 사이트 중 상당히 많은 사용자를 보유하고 있습니다. 그렇기에 검색으로 유입되는 사용자가 많은 블로그 특성상 네이버의 검색 반영은 굉장히 중요한 요소입니다. 검색을 해도 포스트가 뜨지 않으면 사용자가 들어올리 만무하니까요. 네이버 검색결과에 반영되기 위해선 검색엔진 최적화 작업을 해줘야하는데 네이버는 독자적으로 네이버 웹마스터 도구 를 제공해주고 사용하길 권장하고 있습니다. 실제로 블로거가 아무리 최적화 작업을 해봤자 웹마스터 도구를 사용하지 않으면 검색 결과 반영에 한계가 있기 때문에 쓸 수 밖에 없는 현실이기도 합니다.
read moreGoogle Assistant 앱 만들기
23 March 2018 | Comment
3월 22일의 GoogleAppExcellence에서는 이제부터 세미나에서 섹션을 교육적인거 하나 협력사 발표 하나 형식으로 바꿔서 체계적으로 세미나가 진행될것이라고 발표하였다. 협력사 발표 섹션은 Snow의 Foodie 성공기가 다뤄졌는데 "대충했는데 운이 좋아서 성공했어요" 라는 전혀 쓸모없는 내용이었기 때문에 따로 포스팅을 하지 않을 생각이고 교육적인 섹션에서 다뤄졌던 Google Assistant 에 대한 내용을 이번 포스팅에 다뤄볼 생각이다.
read moreGooglePlay 유사한 콘텐츠 표시 기준
22 March 2018 | Comment
3월 22일에 진행된 GoogleAppExcellence 세미나에서는 짤막하게 새로 개정된 정책에 대해서 발표하는 시간을 가졌다. 구체적으로는 Android Vitals에 관한 내용이었는데 GooglePlay 유사한 콘텐츠에 관련된 내용인터라 따로 정리한다.
read moreJekyll 네이버 신디케이션 핑 보내기
22 March 2018 | Comment
네이버 웹마스터 도구를 사용하면 사이트맵, RSS 이외에도 신디케이션 핑이라는 도구가 있다. 신디케이션은 웹사이트가 보유한 콘텐츠를 다른 웹사이트가 이용할 수 있게 하는 방식이라고 적혀있는데, 그냥 쉽게 말해서 다른 방식의 사이트맵이라고 생각하면 될 것 같다.
read moreHTML5 어플리케이션 캐시 사용하기
20 March 2018 | Comment
웹브라우저는 페이지 로딩 속도를 줄이기 위해 독자적인 캐시 작업을 수행한다. 캐시 작업이란 웹사이트에서 다운할 리소스들을 미리 다운받아놓고 재방문때엔 다운안하고 로컬 파일을 쓰겠다는건데 브라우저 입장에선 어떠한 파일이 중요한지 파악할 수 없으므로 그냥 모든 파일을 전부 한다. 이렇게 되면 당연히 웹을 서핑할수록 데이터가 쌓여가고 결국 일정 시간이 지나면 저장한 캐시데이터를 전부 삭제해버린다. 이는 웹사이트를 운영하는 입장에서는 살짝 아쉬운 부분이다. 최대한 고객에게 빠른 응답속도를 제공해줘야 하는데 캐시 데이터가 날라갈 경우 다시 리소스를 받아야되기 때문에 로딩이 느리기 때문이다. 이 아쉬운 점을 보완한것이 Application Cache 이다.
read moreAndroid 액티비티 스택 확인하기
19 March 2018 | Comment
개발을 하다 보면 설계한 Activity가 제대로 동작하는지 확인해야 할 때가 있다. Android OS에서 Activity Stack을 관리하는 만큼 개발자가 제대로 짜놓지 않으면 흐름이 꼬여버리고 BackButton을 여러번 눌러야 종료되는등 문제가 생기기 때문에 의도한대로 Stack에 Activity가 제대로 남아있는지 모니터링 해줘야 한다.
read more웹표준에 맞게 메타데이터 반영하기
12 March 2018 | Comment
블로그를 시작한지가 딱 한달 되어가는데 이제서야 메타 데이터 쪽이 정리가 된듯하다. 단순히 HTML5 뿐만 아니라 페이스북의 오픈그래프, 트위터의 메타 태그하며 신경써야 할게 한 두 가지가 아니다. 그리고 의외였던 것은 평소에 무시하고 있었던 네이버가 메타데이터 처리만 잘 해주면 의외로 수집을 잘 해간다는거다. 오히려 구글 쪽이 반영을 겁나게 안해주는데 하라는거 다 해줘도 색인을 안만들어준다.
read more추가 용량 없이 Android 폰트 사용하기
08 March 2018 | Comment
프로젝트에서 앱의 용량은 골칫거리이다. 국내에서야 용량이 커도 네트워크 망이 워낙 잘되있으니 괜찮지만 해외에서는 사정이 좋지 않기 때문에 용량이 좀 크다 싶으면 설치도 하지 않는다. 아니 엄밀히 말하자면, 설치를 못하는것이다 앱 하나 좀 해볼려고 했더니 다운로드가 반나절 걸리면 대체 누가 설치를 할 수 있겠는가. 그래서인지 Google에서 준 글로벌 공략 가이드 책에서도 용량을 신경써야 할 중요한 요소로 보고 있다.
read moreUnity 최적화 Tips
06 March 2018 | Comment
2월 26일에는 구글 캠퍼스에서 진행된 Unity 워크샵의 두번째 세션인 Unity를 최적화 하기 위한 팁들이다. 발표 내용은 굉장히 짧게 느껴졌지만 내용들은 쓸모있는 것들만 가득 차있어서 받아적는데 정신이 없을 지경이었다. 간단한 방법부터 시작해서 기존 프로젝트를 아예 새로 만드는게 나을 정도로 프로젝트 내에 긴밀하게 연결되어 있는 부분부터 여러가지 최적화 방법이 있으니 가장 빨리 할 수 있는 것부터 차근차근 진행하는게 올바른 방법이다.
read more웹표준에 맞게 Favicon 만들기
06 March 2018 | Comment
모바일 기기가 많이 보급되면서 인터넷 익스플로어로 독점화되던 브라우저 시장이 다양화되었다. 그 말인 즉슨 개발자가 고려해야 되는 플랫폼이 많아졌다는 뜻이고 그것은 할 일이 늘어났다는 것을 의미한다. 대표적으로 Favicon은 한 사이트를 대표하는 아이콘으로 사용되는데 앞서 말한 파편화때문에 사용하는 플랫폼에 따라 모양이 죄다 제각각이 되었고 그렇기 때문에 각 플랫폼 마다 적합한 여러가지 모양으로 제공해주어야 유저에게 동일한 UX를 가져다줄 수 있다. 하나하나 손수 만들면 제일 좋겠지만 한시가 아까운 사람들을 위해 몇 분만에 만들수 있는 방법을 포스팅하려고 한다.
read moreUnity 2D의 새로운 기능
05 March 2018 | Comment
2월 26일에는 이례적으로 구글 캠퍼스에서 Unity 워크샵이 진행되었는데 아무래도 이제 접수를 시작한 Google Play 인디 게임 페스티벌에 맞춰 퀄리티 높은 결과물을 얻기 위해서인듯 하다. Unity사의 직원이 직접 발표를 하는 만큼 개발자에게는 놓쳐서는 안될 내용들만 가득이었고 내가 평소에 궁금했었던 Unity 개발에서의 최적화 부분에서도 당장 적용해 볼 수 있을 것 같은 방법을 착착 얻어낼 수 있었다. 발표내용은 총 4개의 세션으로 진행되었고 이번 포스팅은 첫번째 세션이었던 Unity 2D의 신기능에 대해서 정리를 하려고 한다.
read moreUnity Ads 수익화
05 March 2018 | Comment
2월 26일에는 구글 캠퍼스에서 진행된 Unity 워크샵의 네번째 세션이다. 이번 세션은 Unity에서 제공하는 광고에 대한 내용을 다루었는데, 사실 제공하는 기능은 앱에서의 광고 표출과 크게 다르지 않다. 앱과 마찬가지로 광고 표출로 수익을 얻어낼 수 있고 인앱결제를 통하여 수익을 얻어낼 수 있다(소위 말하는 DLC). 구독 기능은 아직 Unity에서 제공하지 않는데 이 부분도 머지않아 제공하지 않을까싶다.
read moreBest Practice on Android Instant Apps
04 March 2018 | Comment
17년도 Google App Excellence 세미나가 마무리 되는 도중 18년에도 진행한다는 말이 없었고 세미나 자체도 이벤트성에 가깝다고 생각하여 18년에는 진행하지 않을 줄 알았으나, 18년도 세미나 진행에 대한 공지가 내려왔다. 사정이 있어 1월 세미나엔 참석을 하지 못했지만 대충 아젠다를 보니 스터디 팀을 재정비하고 앞으로 세미나 진행에 대한 브리핑을 한 모양이다. 직접 듣지는 못했지만 발표자료를 토대로 포스팅을 진행해보려고 한다.
read moreUAC 인앱 액션을 활용한 ROI 개선 전략
04 March 2018 | Comment
드디어 밀린 포스팅을 끝내고 최신이라고 할만한 글을 작성할 수 있게 된듯하다. 무려 23일에 진행된 세미나로 일주일 정도 밖에 지나지 않았다! 이만 감회는 접어두고 세미나에 대한 내용을 해보자면 두 세션으로 이루어졌는데 첫번째 세션은 용사는 진행중을 개발한 BuffStudio의 생존기(?) 그리고 두번째 세션은 UAC에 대한 내용이 다시금 발표되었다. 전자의 경우 포스팅을 할까 말까 고민중이라서 일단 두번째 세션 내용부터 적어볼까한다.
read moreUAC를 활용하여 효과적으로 앱 마케팅하기
03 March 2018 | Comment
이번 세미나는 어떻게 보면 가장 중요한, 돈버는 방법에 대한 내용이 주가 되어 진행이 되었다. 여기서 말하는 돈버는 방법이라 함은 광고 혹은 홍보를 하여 결제를 촉진시키거나 앱의 설치 수를 늘리는 방법이다. 구글의 마케팅 솔루션인 UAC를 활용하여 앱의 설치를 극대화 하거나 인앱 결제를 촉진 시킬 수있고 Google의 애드몹이나 애드센스를 사용하여 광고 수익을 얻어 낼수도 있고 앱을 지불하고 사는걸 기피하는 사용자를 위하여 구독 기능을 만들어 수익을 얻어낼 수도 있다. 방법이야 여러가지 많지만 자기 앱에 최적인 방법을 찾아내서 적용하는게 제일 중요할듯 하다. 하단의 내용은 첫번째 세션인 UAC를 활용한 앱 마케팅 방법이다.
read more광고를 통한 앱 수익화 전략
03 March 2018 | Comment
Google App Excellence 10월 내용 중 두번째 세션인 광고를 사용한 수익화 전략에 대한 내용이다.
read more구글 플레이 구독 기능으로 수익에 날개 달기
03 March 2018 | Comment
Google App Excellence 10월 내용 중 세번째 세션인 구독을 사용한 수익화 전략에 대한 내용이다.
read moreColorFil 글로벌 마켓 시장 도전기 Yea Studio
02 March 2018 | Comment
Google App Excellence 10월 내용 중 Yea Studio가 진행한 두번째 세션이다.
read moreMachine Learning Material Design 적용 Mathpresso
02 March 2018 | Comment
10월 세미나는 지금까지 발표되었던 세미나 내용을 실전에 적용한 상용 앱들과 적용하는 과정에서 겪었던 어려운점 그리고 성과에 관한 내용이 주가 되었다. 총 3개의 개발사가 나와서 발표하였고 각자 여러가지 관점에서 기술을 도입하여 괄목할만한 성장을 이룬듯하다. MathPresso 회사가 발표한 첫번째 세션이다.
read moreStore Listing Experiment Delight Room
02 March 2018 | Comment
Google App Excellence 10월 내용 중 Delight Room가 진행한 세번째 세션이다.
read moreAndroid O에 추가된 기능
01 March 2018 | Comment
2017년 8월 22일에 Android O가 공개되었고, 그에 따라 9월 세미나는 Android O의 업데이트된 기능과 버전 업에 따른 조치 사항에 대한 내용이 주를 이뤘다. 그리고 특히나 가장 충격적이었던 점은 이번 세미나에서 Google이 Android OS는 쓰면 쓸수록 느려진다 라는 점을 공식적으로 언급한것이다. 더불어 해당 문제점을 해결하기 위해 Background Process에 제한사항을 엄청 추가했다고 하는데, TargetSDK가 Android O가 아님에도 사용자에 의해서 제한을 걸 수 있다고 하니 필히 눈여겨 봐야할 부분이다. 다음은 첫번째 세션인 Android O에 추가된 기능이다.
read moreAndroid Security Features Update
01 March 2018 | Comment
Google App Excellence 8월 세미나 내용 중 두번째 섹션인 Android Security Features Update이다.
read moreAndroid 백그라운드 실행 및 위치제한 소개
01 March 2018 | Comment
Google App Excellence 9월 세미나의 두번째 섹션인 백그라운드 실행 제한에 관한 부분이다. 기존 체제 와는 다르게 제한이 많아져서 정상적으로 동작하고 있는 앱들도 이번 업데이트로 제재를 먹고 앱 사용을 제대로 못할 수 있으니 반드시 챙겨봐야할듯 하다.
read moreSafetyNet으로 보안 위협으로부터 보호하기
01 March 2018 | Comment
7월 세미나는 진행되지 않았고 2일에 Google I/O Extended in Seoul이 진행되었으므로 8월에 진행된 세미나 내용을 정리하려고 한다. 8월에는 쉽게 접할수 없는 Android 보안에 관한 내용이 다뤄졌다. 기본으로 고려해야 될 사항임에도 불구하고 보안 쪽은 적용하기가 까다로운 부분이니 도움이 될만한 자료가 될것 같다.
read moreAndroid Instant App
28 February 2018 | Comment
6월 GoogleAppExcellence 세미나가 진행되었던 시기에 2017년 Google I/O Recap이 진행됐고 Google의 새로운 API 및 Android O에 대한 내용이 다수 다뤄졌는데, 이번 세미나에서는 Recap에서 진행된 내용 중 유익한 내용을 추려내어 진행하는 방향으로 결정되었다. 업데이트에 따라 개발 툴인 Android Studio 사용 방법의 달라진 부분도 다수 있으니 확인해보고 적용해보면 좋을 듯하다. 첫번째 섹션은 Android Instant App에 관한 내용이다.
read moreGoogle 클라우드 머신러닝과 응용
28 February 2018 | Comment
Google App Excellence 4월 세미나는 머신 러닝 이론에 대해서 다루었다. 이는 두번째 섹션인 Google 클라우드 머신러닝과 응용 편이다.
read moreWhat's new in Android
28 February 2018 | Comment
Google App Excellence 6월 세미나 내용 중 두번째 섹션인 What’s new in Android이다.
read moreWhat's new in Firebase
28 February 2018 | Comment
Google App Excellence 6월 세미나 내용 중 세번째 섹션인 What’s new in Firebase이다.
read more머신 러닝 이론 기초
28 February 2018 | Comment
Google App Excellence 4월 세미나는 머신 러닝 이론에 대해서 다루었다. 발표하시는 분은 친절하게도 쉽게 쉽게 설명해주신 것 같지만.. 무지무지 어려웠다! 실제 실무자가 상세한 이론까진 알진 못하더라도 개요 정도는 알고 있어야 일 처리에도 도움이 될듯 싶다. 이 내용은 첫번째 섹션인 머신 러닝 이론 기초이다.
read more새로운 Google Play 콘솔 UI
28 February 2018 | Comment
Google App Excellence 5월 세미나는 원래 예정에 없었다는데, Google 내 정책이 변경됨에 따라 공지도 할겸 진행되었다고 한다. 그래서 인지 새로운 API 사용법 및 추가로 지켜야할 정책 준수 사항에 대한 내용이 주를 이루었다. 특히 정책 위반의 경우 앱이 스토어에서 제재를 받고 내려가는 경우도 왕왕 있으니 신경써서 봐야할 듯 싶다. 첫번재 섹션은 Google Play Console의 업데이트 내용 및 활용법이 발표되었다.
read more정책 준수를 통한 엑설런트 앱 거듭나기
28 February 2018 | Comment
Google App Excellence 5월 세미나의 두번째 내용인 쟁책 준수 팁이다.
read more개발자가 마케터에게 알려주는 Firebase Marketing 활용 방법
27 February 2018 | Comment
Google App Excellence 3월 세미나의 두번째 섹션 내용이다. Firebase Marketing 활용에 대한 전반적인 내용을 다루었다.
read more모바일 빅데이터 분석의 개념
27 February 2018 | Comment
Google App Excellence 3월 세미나는 그 당시 트렌드였던 모바일 빅 데이터에 관한 내용을 다루었다. 저번 달엔 기반 지식없이도 실천할 수 있는 전략에 대해서 다루었다면 이번 세미나는 이론적인 내용과 함께 실질적으로 적용할 수 있는 운영 방법을 알려줘서 설령 전문 지식이 없더라도 바로 도입할 수 있게끔 세션이 진행되었다. 첫번째 섹션은 모바일 빅데이터 분석의 개념에 대해서 다루었다.
read more안드로이드 앱의 시작 개발자 콘솔
27 February 2018 | Comment
작년 2월에 구글캠퍼스 서울에서 진행한 Google App Excellence Program 내용의 두번째 섹션이다.
read more우수 사례를 통해 바라본 고품질의 안드로이드 앱, 게임
27 February 2018 | Comment
작년 2월에 구글캠퍼스 서울에서 진행한 Google App Excellence Program 내용의 세번째 섹션인 “우수 사례를 통해 바라본 고품질의 안드로이드 앱, 게임”이다.
read more차이를 만드는 App Excellence Program
27 February 2018 | Comment
작년 2월부터 구글캠퍼스 서울에서 진행한 Google App Excellence Program 에 가서 들었던 내용을 정리하려고 한다. 그 당시 별일이 없었을 경우에 한해 꼬박꼬박 참석하였고 당장 필요하다기 보다는 시간을 들여 하나하나 해봐야하는 내용이었기에 이렇게 정리해놓는것이 도움이 될듯하다. 강의는 대게 3개 정도의 섹션으로 나뉘어져 보통 각자 다른 사람이 발표를 하고 모든 섹션이 끝난 뒤에는 각자 미처 물어보지 못한 질문을 개인적으로 물어보거나 혹은 개발자들끼리 모여서 자기소개를 해가며 Networking 시간을 보내는 것으로 진행되었다. 덤으로 섹션 중간중간 쉬는 시간에는 간혹 커피와 쿠키들이 제공되기도 하고 Networking 시간에는 명성높은 구글의 간식들이 제공된다. 참고로 2월 세미나에서는 참치 까나페와 스낵, 피자, 맥주 등이 제공 되었다. (맥주는 어메이징 브루잉 컴패니라고 처음...
read more