목록프로그래밍 (74)
Dharma
길게 주저리 주저리 글을 썼다가 다 지웠다. 결론 부터 간단히 말하겠다. 전공 vs 비전공 압도적으로 전공자가 유리하다. 이건 논란의 여지조차 존재하지 않는다. 대부분의 비 전공자들의 안타까움은 잘 이해하고 있다. 나도 20년간의 개발자 경력동안 어느정도 경력자 사이에서는 전공이 의미가 희미해 지는 순간이 온다는 것을 절대적으로 이해한다. 하지만 신입에서는 이야기가 다르다. '당신이 그냥 전공자를 편애하는 개발 리더 아닌가?' 라고 말할 수도 있겠지만, 내 인생에서 첫 사수가 역사학과 출신 개발자 였다. 엄청나게 코딩을 잘하시는 훌륭한 개발자셨다. 그리고 오랫동안 같은 팀으로 회사를 옮겨도 같이 일하는 클라이언트 개발자는 처음에 뽑을때부터 비전공자 출신이였다. 나도 비전공자가 훌륭한 개발자가 될 수 있다..
예전에는 혼자서 개발하면서 성장할 수 있는 시기가 있었지만, 요즘은 팀단위로 개발을 진행하기 때문에 빠르게 성장할 수 있지만, 자신의 파트에 특화되는 경향이 있습니다. 물론 지금도 파트를 오가면서 개발을 할 수는 있지만 예전만큼 쉽지 않습니다. 저도 실제로 클라이언트 개발을 하다가 서버 사이드로 옮긴 경우 입니다. 예전 다니던 회사에서 공개 개발자 모집을 한 적이 있습니다. 들어온 원서의 비율을 체크 해보니 안드로이드, iOS, 백엔드 개발자의 비율이 8:1:1 이였습니다. 클라이언트와 서버 비율로 따져보면 9:1 입니다. 클라이언트 사이드에서 안드로이드 개발자가 iOS 보다 많은 이유를 몇 가지 짐작해 볼 수가 있습니다. 안드로이드 폰을 가진 사람이 월등하게 많습니다. 자신이 가진 폰에 맞는 앱을 개발..
프론트 개발이 가능하신 개발자 분들이 제 오픈소스 프로젝트에 참여해서 프론트 엔드를 꾸며 주었군요. 모바일도 적용이 되어 있습니다. 데모: https://chat.crazia.org/소스: https://github.com/crazia/NM-chatbot 딥러닝 관련 과거 포스트들: 1. AI 학 개론 (초보 개발자를 위한 정리) 2. seq2seq 를 이용한 챗봇 (Neural Network Chatbot)3. seq2seq 를 이용한 챗봇 - 웹버젼4. seq2seq 를 이용한 챗봇 - 자동 진화 버젼5. seq2seq 를 이용한 챗봇 - 형태소 분석을 추가한 버젼
최근 열심히 공부해서 간단한 챗봇을 만들 수가 있었습니다. 형태가 간단할 뿐이지 그 안에 들어 있는 Deep Learning 은 구글의 최신 NMT example 을 참조해서 만들었습니다. github 에 올리는 거라 대충 영어로 올렸지만 좀 자세한 설명은 여기에 남길려고 합니다. NMT(Neural Machine Traslation) 과 chatbot 은 원리상 거의 같습니다. seq2seq 방식으로 RNN 세팅해서 교육시키는 것 까지 동일합니다. 따라서 잘 만들어진 NMT 는 training 자료만 교체해서 챗봇으로 활용 가능합니다. 소스는 https://github.com/crazia/NM-chatbot 에서 받을 수 있습니다. 파이썬(python) 버젼은 3.6 이고 tensorflow 버젼은 1..
예전에 Emacs for OSX 관련 설치글에서 File Dired Mode 에서 한글이 깨지는 문제는 (require 'ucs-normalize) (set-file-name-coding-system 'utf-8-hfs) 위 내용을 .emacs 에 써주면 된다고 했습니다. 그런데 shell-mode 에서 한글이 제대로 출력이 안되는 이슈가 존재합니다. 역시 .emacs 에 (setq default-process-coding-system '(utf-8-hfs . utf-8-hfs)) 와 같은 내용을 써주면 해결됩니다.
각각의 request_log 에 application_log 가 딸려있다. 그리고 각각의 어플리케이션 로그는 형식에 맞춰서 로그를 남길 수가 있으며 위 사진을 보면 알 수 있듯이 각각의 아이콘 그림까지 다르다!!
저는 습관처럼 gradle 을 command line 에서 사용합니다. 다만 최근 무지하게 느려진 느낌입니다. 자성의 움직임이 있었는지 최근 gradle 도 daemon 모드를 말하는 군요. 세팅은 무지하게 쉽습니다. touch ~/.gradle/gradle.properties && echo "org.gradle.daemon=true" >> ~/.gradle/gradle.properties 이렇게만 하면 비약적으로 빌드 속도가 올라간다는데 저는 사실 잘 모르겠습니다. -ㅅ- Android Studio 도 빨라지는지는 테스트 해봐야 할 듯합니다.
처음 스위프트 (Swift : 혹 수입푸드 라고 부르는 사람들도 있음 ㅋㅋ) 개념을 보았을 때, VM (Virtual Machine) 같은 개념으로 여겼습니다. '뭐 또 빠르게 개발은 될 지 모르겠으나 동작은 느린애가 되겠군' 라고 생각하며 안 보고 있다가. 최근에 보니 이게 컴파일러용 언어였더군요. 플레이그라운드(Playground) 개념은 잽싸게 컴파일 해서 그 결과를 보여줘서 interactive 하게 보일지 모르지만 실은 컴파일 언어였습니다. 개념이 재미 있는데다가 컴파일된 바이너리가 기존의 Object-C 언어로 만들어진 것보다 속도가 2.8 배가 빠르다는 것을 보고 관심이 가더군요. 그래서 언어 개요를 가볍게 살펴봤습니다. iOS 기기를 가지고 있으면 iBooks 에서 공짜로 프로그래밍 언어에..
어제 제자 한명이 집 근처로 찾아와서 차를 한 잔 했습니다. 최근에 이쪽 방면에서 알려진 크고 건실한 기업에 취직했다고 하더군요. 이번에 취직할 때 평소에 내가 말하던 것들을 잘 실천하고 있었던 터라, 그러한 부분들을 엮어서 스토리를 잘 만들었더니 입사할 수가 있었다고 합니다. 전공과를 졸업한 것도 아니고 흔히 말하던 학원 출신으로서 이 정도 위치까지 온 친구라 더 이상 잔소리는 필요 없을 것 같고, 저 또한 내 덕에 입사를 할 수 있었다는 소리를 들으니 뿌듯해 지더군요. 그래서 그 제자에게 평소 하라고 했던 (입사할 때 도움이 됐던) 잔소리를 조금 정리 해볼까 합니다. 블로그 쓰기 블로그를 쓰라고 하는 이유는 3가지 였습니다. 첫째, 자신이 몰라서 찾게 된 방법은 나중에 다시 모를 경우가 많기 때문입니..
안드로이드 개발하다 보면 별 문제는 없어보일지 모르지만 안드로이드가 네트워크 인터페이스를 여러개 가지기 때문에 발생하는 문제가 있습니다. 갤럭시 s3 의 경우에는 LTE, 3GS, WI-FI 등 세개의 인터페이스가 있습니다. 그런데 이런 인터페이스들이 사용을 안하면 비활성화 되어 있으면 사용하기 편할텐데 사용 안하더라도 활성화가 되어 있는 데다가 잘못된 (구동하지 않는) IP 주소를 가지고 있어서 문제가 됩니다. 무슨 문제가 있겠어? 라고 하지만 순수 자바 (Pure Java) 로 네트워크 레이어를 구현할 때, 만들어진 라이브러리를 안드로이드로 포팅시 발생하는 문제입니다. 이를 해결하기 위한 방법입니다. 인터넷에 연결이 되어 있고 (LTE,3GS,WI-FI 상관하지 않고) 접속되어 있는 상태에서의 가지고..