전체 글 109

[리뷰-책] 나는 LINE 개발자입니다.

나는 LINE 개발자입니다 강윤신, 김영환, 김재석, 김정엽, 김택주 저 외 7명 글로벌 테크 기업 LINE의 개발 고수 12인의 개발 라이프 『나는 LINE 개발자입니다』는 10대 창업자, 게임 마니아, 철학 전공 개발자, 아마존 출신 개발자 등 다양한 경력의 12인이 라인(LINE) 개발자가 되기까지의 이야기, 그리고 라인에서 동료들과 함께 글로벌 개발자로 한 단계 성장하는 과정을 담은 책이다. 본서는 세... 블로그의 수기를 읽듯이 개인의 경험담과 생각을 엮은 책이라서 술술 읽힙니다. 주니어 개발자 및 개발자가 되는 것에 꿈을 가지고 있는 분들이 읽으면 좋을 것 같습니다. 고수 개발자와 좋은 동료 그리고 개발을 잘하기 위해 문화가 있는 LINE이 참 부럽다는 생각이 들었습니다.

Review/책 2019.10.01

android.app.RemoteServiceException: Context.startForegroundService() did not then call Service.startForeground() 오류 해결

최근 가로/세로 모드 방향전환이 가능하도록 가로모드 개발을 했습니다. 가로/세로 방향전환 시 최초 실행되는 MainActivity에서 아래와 같은 오류가 간헐적으로 발생했습니다. 2019-10-01 09:23:27.681 ~~~~~~~~~~~~~~~~~~~ /AndroidRuntime: FATAL EXCEPTION: main Process: ~~~~~~~~~~~~~~~~~~~ android.app.RemoteServiceException: Context.startForegroundService() did not then call Service.startForeground() at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1791) a..

안드로이드 가로/세로모드 고정하는 방법

최근 회사에서 Tablet 해상도에 가로모드를 지원을 위해서 개발을 진행했었습니다. 가로/세로 모드를 적용하다보면 여러가지 기초 지식들이 햇갈릴 때가 많은데요. 그래서, 저도 다시 공부하고 여러분께도 도움이 되고자 화면전환과 구성변경 관련되서 연재 포스팅 합니다. 아마 이번 포스팅 포함해서 2~3번 정도면 모두 정리 될 것 같네요. 먼저, 오늘은 가로 또는 세로 방향으로만 고정하는 방법에 대해 말씀드릴께요. 1. 가로 또는 세로 방향으로 고정하는 방법 먼저, 안드로이드에서 방향을 고정하기 위한 방법은 두가지가 있습니다. 첫번째는 AndroidManifast.xml 의 을 이용해 가로 또는 세로로 고정시키는 방법입니다. 그리고, screenOrientation 에서 사용할 수 있는 value는 아래 안드로..

구성변경(Configuration)에 따른 엑티비티 재시작

이전 글 : 2019/09/13 - [Tech & Programming/안드로이드 & 모바일] - 안드로이드 가로/세로모드 고정하는 방법 2. 구성변경(Configuration)에 따른 엑티비티 재시작 이 전 포스팅(2019/09/13 - [Tech & Programming/안드로이드 & 모바일] - 안드로이드 가로/세로모드 고정하는 방법) 에서 언급한 것처럼 화면방향, 휴대폰 Locale 등이 변경되어 Activity 를 재시작하면 하나의 인스턴스를 가지고 재사용 하는 것이 아니라, 기존 인스턴스는 onDestroy()까지 실행하고 새 인스턴스가 onCreate() 부터 새로 시작됩니다. 1) 구성 한정자란? 구성(Configuration) 은 Actvity를 비롯한 컴포넌트에서 어떤 리소스를 사용할 ..

[안드로이드] Migrating to the New Places SDK Client (구 버전은 2019.7.29 종료)

회사에서 서비스하는 어플에 Place Autocomplete, Current Place 등을 사용하고 있습니다. 이런 기능들을 제공하던 place-services-places Places SDK 가 2019년 7월 29일 서비스가 종료되었습니다. 그래서, 최근 회사에 새롭게 바뀐 Places SDK 로 교체했습니다. 혹시 아직 교체 안하신 분이 있을까 해서 포스팅합니다. 1. 요약 Google Play Services 버전의 Places SDK(com.google.android.gms:play-services-places)가 2019년 1월 29일부터 deprecated 되고, 2019년 7월 29일부터 서비스가 종료됩니다. 따라서, 새로운 버전의 Places SDK 버전으로 교체해야합니다. 2. 사전 ..

[자료구조] Hash(해시), Hash Table(해시 테이블)

1. 해시 함수(Hash Funtion) 데이터의 효율적인 관리를 목적으로 임의의 길이의 데이터를 고정된 길이의 데이터로 매핑하는 함수입니다. 이 때 매핑전 원래 데이터의 값을 키(Key), 매핑 후 데이터의 값을 해시값(Hash value) 또는 해시코드, 매핑하는 과정 자체를 해싱(hashing) 이라고 합니다. 해시 함수의 가장 기본적인 성질은 두 해시 값이 다르면 원래의 데이터의 값도 다르다는 것입니다. 하지만, 같은 해시값을 가지고 있더라도 원래의 데이터가 꼭 같은 것은 아닙니다. 해시함수의 종류 : MD1, MD4, MD5, SHS, SHA-1, HAS-160 등 2. 해시테이블 (Hash Table) 해시테이블(Hash) 테이블은 효율적인 탐색을 위한 자료구조로 키(Key) 를 값(Value..

KTX / SRT 정기권에 대해 알아보자

제가 이직으로 서울에서 근무하게 되면서 바로 우리 가족이 함께 상경을 못하는 상황이라서 한동안 주말부부를 하며 지내야 합니다. 그래서, KTX/SRT 정기권에 대해서 알아봤습니다. 제가 알아본 부분을 공유드리니 필요한 분들에게는 도움이 되셨으면 좋겠습니다. 그리고, 잘못된 정보가 있으면 댓글 부탁드립니다. 먼저, 코레일 KTX는 정기권 종류가 3가지가 있었습니다. 일반정기권 월~금 요일만 이용가능. (토, 일, 공휴일은 이용 불가) 10일용, 1개월용 선택가능 자유석/입석 만 이용 가능, 자리 지정시 운임의 일정할인된 금액(15%) 으로 이용가능 사용개시일 5일전부터 구매가능 *. 자리지정석 : 일반적인 자리가 지정되는 형식, 자유석 : 평일은 보통 자유석 객차가 운행됨. 자유석 객차에서 먼저 앉은 고객..

Review/제품 2019.06.13

두번째 이직 경험기

최근 다니던 회사의 경영사정이 안 좋아져서 이직을 하게되었습니다. 이직을 하면서 느꼈던 2가지를 적어보려고 합니다. 먼저는 사이드 프로젝트는 중요하다. 라는 겁니다. 자동차 부품회사 전산실에서 안드로이드 개발자로 이직을 하게되었는데, 사실 중소 자동차 부품회사의 전산실에서 IT서비스 업체의 안드로이드 개발자로 이직하는 것을 쉽지가 않습니다. 제가 앞 전의 글에서도 한번 적었는데, 주로 유지보수 업무가 주된 업무이고, 오래된 시스템이 많기 때문에 요즘 트렌드에 맞는 개발언어나 개발프로세스 등을 사용하기 어렵기 때문입니다. 저는 다행히도, 토이 프로젝트로 취미삼아 출시했던 어플리케이션들로 면접의 기회를 잡을 수 있었고, 이렇게까지 합격기회까지 얻을 수 있었습니다. 블라인드 앱이나 개발 커뮤니티에 보면 사이드..

Essay 2019.06.04

View의 내용을 어떻게 이미지 파일로 만들었나요?

2018/12/30 - [Toy Project] - 2019년 신년 메시지는 '기분 좋은 인사' 로 보내세요. 2019년 신년 메시지는 '기분 좋은 인사' 로 보내세요. '기분 좋은 인사 : 2019년, 새해 인사말 및 안부, 감사, 경조사 등 인사말' 확인 - https://play.google.com/store/apps/details?id=com.toyproject.greeting 2019년 새해, 지인들에게 '기분 좋은 인사'로 새해인.. developside.tistory.com 지난 번 면접시에 사이드프로젝트로 진행한 '기분 좋은 인사' 의 기능을 설명하면서, 이미지와 사용자가 입력한 메시지 텍스트를 어떻게 이미지 파일로 만들어 보내냐는 질문을 받았었습니다. 코드를 작성한 지 오래되서 알음알음 ..

ViewHolder 가 무엇인가요?

최근에 제가 안드로이드 면접을 봤었습니다. RecyclerView 이야기가 나와서 설명하다가 ViewHolder에 대해서 설명해 보라는 면접 질문을 받았었는데, 막상 아는 내용이지만 설명하려고 하니 어렵더군요. 그래서 ViewHolder와 이를 사용하는 ListView와 RecyclerView에 대해서 간략하게 정리를 해 보았습니다. 1. ViewHolder란? 한마디로 설명하면 각 뷰를 보관하는 Holder 객체로 이야기 할 수 있습니다. "ListView / RecyclerView 는 inflate를 최소화 하기 위해서 뷰를 재활용 하는데, 이 때 각 뷰의 내용을 업데이트 하기 위해 findViewById 를 매번 호출 해야합니다. 이로 인해 성능저하가 일어남에 따라 ItemView의 각 요소를 바로..