본문 바로가기

개발일기28

삼성 개발자 컨퍼런스 2023 원래는 15일에 배민에서 개최하는 컨퍼런스를 신청했지만 너무나도 쉽게 떨어진 바람에 다른 컨퍼런스는 머가 없나 찾아보다가 삼성 개발자 컨퍼런스를 다녀오게 되었다. 거의 5년만에 컨퍼런스인 것 같다. 그리고 솔직히 삼성은 소프트웨어 회사가 아니라고 생각하고 있어서... 요런 컨퍼런스를 꾸준히 하고 있는 줄은 상상도 못했다. DevOps Acceleration : 엔터프라이즈에서 동작하는 DevOps 모델 - 송주영 - 엔터프라이즈 회사에서는 왜 DevOps가 잘 안될까란 주제를 가지고 이야기를 시작한다. - 100명 이상이 존재하는 회사를 엔터프라이즈 회사라고 하며, 엔터프라이즈 회사에서의 서비스는 복잡하고 팀간 단절이 존재한다. - 잘못된 결정을 내리고 잘못된 결과를 도출하지만 그게 잘못된 건지를 모르고.. 2023. 12. 10.
android 오레오 적용기 구글에서 위와 같은 엄포장이 날라왔다!!!핵심은 11/1일 이전에 targetSdk version을 26이상으로 맞추라는 거였다. '그래.. 업데이트 한지도 오래됐으니깐 맞춰줄께~' 너무 쉽게 생각했었을까?? 바꿔야 할 게 너무 많았다. 일단 무턱대고 gradle의 targetsdk를 26으로 변경하고 build 했다. (support:appcompat-v7은 23.0.0, compileSDKVersion도 23으로 유지) '어~ build 잘되네.. 쉽자나~' 내 폰에서만 확인해 본 후, 무턱대고 배포 ㄱㄱ를 진행했다. 결과적으로 targetsdk를 26으로 바꾸자마자 크게 2가지 문제가 발생했다. 참고로 아래의 두 가지 문제를 해결하기 위해서는 compileSDKVersion과 support:appc.. 2018. 10. 31.
2018 ifkakao 오랜만에 KAKAO에서 개발자 컨퍼런스를 개최했다. 바로 if kakao 등록부터 사람들로 바글바글 하다. KEYNOTE는 신정환 CTO와 김병학 AI장이 맡았다. 만약에 카카오가 한다면?? 이 주제가 메인인 것 같다. 카카오가 한다면 세상을 이렇게 바꿀 수 있다. 이런 의미인가? 대부분 AI 관련된 이야기가 주를 이뤘다. 1. KAKAOi가 작년에 출시되었고 이어서 카카오 미니가 출시되었다.2. 카카오 미니는 처음 발화 인식 실패율이 12%나 됐었는데 훈련을 통해 5.9%까지 낮췄다.3. 카카오 오픈 빌더가 오픈했다. 처음에는 15개의 도메인으로 시작했지만 지금은 40개의 도메인을 갖추었다. 또한 오픈빌더를 통해 개발 시 카카오톡과 함께 카카오미니도 연동할 수 있다.4. KAKAOi의 직접적인 성장도 .. 2018. 9. 5.
Deview 2016 올해로 9번째를 맞이하는 naver deview 행사. 이번에는 놀랍게도 이해진 의장이 처음 인사말을 해서 놀랐다. (실제 얼굴 처음 봄) ㅋㅋ 그 다음으로 이어지는 송창현 CTO key note Deview 1일차 1. key note 네이버에서 밀고 있는 서비스 - papago : 번역 앱. 뉴럴 알고리즘 적용. - WHALE : 네이버 자체 브라우저. UI적으로 신기한 것 같다. 이미지도 번역해 준다는데?? - 그리고 인공지능 비서 서비스 같은 프로젝트를 진행 중인 것 같다. Amica 라고 부르는 것 같은데 (아무래도 네이버도 알파고 영향을 받은 듯) - 자동차 자율 주행 기술. - 네이버에서 만든 첫번째 로봇 M1. 해당 로봇을 이용해서 실내 지도를 만들 수 있다고 한다. - 오늘 키노트에서 발.. 2016. 10. 24.
realm 적용하기 이 번 프로젝트부터 splite 대신 realm을 적용해 보기로 했다. 적용해서 사용해본 결과 너무 편함!! 일단 코드가 너무 간결해 졌다. 우선 realm을 적용하기 위해서는 아래와 같이 gradle 설정이 필요하다. 프로젝트의 gradle 파일에 아래의 정보를 추가한다. buildscript { repositories { jcenter() } dependencies { classpath 'io.realm:realm-gradle-plugin:1.1.1' }} app의 gradle 파일을 수정한다. apply plugin: 'realm-android' ...dependencies { .... compile 'io.realm:android-adapters:1.3.0' ....} proguard는 따로 설정.. 2016. 8. 7.
HASH TAG 사용하기 요새 SNS들을 보면 해시태그(#blurblurblur~)를 많이 사용하는 것을 볼 수가 있다. 나 역시 이번 앱에 해시태그를 적용해 보기로 한다. 우선 cliackablespan을 상속 받는 클래스를 선언한다. (각각의 hash tag마다 클릭을 가능하게 하기 위함) 해당 클래스에 listener를 달아서 클릭했을 시, 해당 listener로 클릭한 단어를 보내주도록 구현하였다. 그럼 이제 이 클래스를 이용해서 hash tag를 어떻게 쓰는지 살펴보자. 간략하게 함수 기능을 요약하자면, #문자를 가진 단어를 가져와서 해당 단어의 start와 end를 각각 저장한다.이렇게 저장된 tagStart와 tagEnd를 가지고 SpannableString 객체를 만든 후 그 결과 콘텐츠를 textView에 뿌려줌.. 2016. 6. 28.
retrofit 적용하기 기존의 개인 프로젝트였던 '싸다구'에서는 네트워크 통신을 위한 라이브러리를 volley를 사용해왔다. 하지만 이번 '스판다'는 기존 걸 그대로 copy 해서 쓰는 건 성격 상 맞지 않아서 많이들 쓰고 있는 retrofit을 적용해 보기로 했다. 우선 retrofit과 volley의 큰 차이를 두자면 retrofit은 restful api에 좀 더 초점을 둔 방식이라고 할까?retrofit에서는 해당 프로토콜과 그에 따르는 파라미터를 interface로 명시를 해줘야 하는 특징을 가지고 있다. 그럼 이제 retrofit을 한 번 적용해서 데이터를 가져와 보자. 아래와 같이 gradle에 라이브러리를 추가해 준다. retrofit에서는 수신된 JSON을 객체로 자동 변환해주는 GSON도 많이 쓰는데 이것도 .. 2016. 6. 27.
결국 picasso로... Glide 사용 중에 문제가 발생되서 결국에는 해결 방법을 못찾고 picasso를 사용하기로 결정.. 기존 Glide 라이브러리와 설정을 다 걷어내고, picasso를 적용했다. 아래와 같이 gradle 추가. dependencies { .... compile 'com.squareup.picasso:picasso:2.5.2'} ProGuard 추가 -dontwarn com.squareup.okhttp.** 사용법은 Glide 만큼이나 간단하다. Picasso.with(getContext()).load("image url"). error(R.mipmap.no_photo). resize(400, 400). centerInside(). into(imageView); 기존에 Glide에서 구현했었던 Circle.. 2016. 6. 23.
Glide custom cache 적용 Glide로 이미지 로딩을 잘 해나가고 있는 도중에, 간헐적으로 아래 그림과 같은 문제점이 발생했다. 스크롤을 할 경우 간헐적으로 위의 그림 처럼 이미지를 못 가져오는 것이다!! cache를 적용하고 있지 않았는데(default 캐시가 적용되고 있다고 어디서 들은 기억이 남) glide에 custom으로 캐시를 적용해 보기로 했다.MyGlideModule.java 파일을 만들어서 프로젝트에 추가했다. public class MyGlideModule implements GlideModule { private final int maxMemory = (int)(Runtime.getRuntime().maxMemory() / 1024); private final int cacheSize = maxMemory / .. 2016. 6. 21.