## 2018/02/02 수정
해당 Github 소스는 현재 삭제 되었습니다.
18개월전에 만든 프로젝트라 지금 제가 볼때도 너무 말도 안되게 코딩을 해놓은게 너무 많습니다.
다시 수정할 시간에 새로 짜는게 더 빠를 것 같고,
물론 그런분은 없겠지만 코드를 따라서 작성하실까봐..... Github페이지를 지웠습니다.
(피해자 방지를 위해....)
시연연상 - https://youtu.be/zqqxHoF78SY
How to Become a Thought Leader in Your NicheLeslie Samuel
Are bloggers thought leaders? Here are some tips on how you can become one. Provide great value, put awesome content out there on a regular basis, and help others.
3 Things Every Sales Team Needs to Be Thinking About in 2017Drift
Thinking about your sales team's goals for 2017? Drift's VP of Sales shares 3 things you can do to improve conversion rates and drive more revenue.
Read the full story on the Drift blog here: http://blog.drift.com/sales-team-tips
마우스로 그리는 웹 사이트, 5모먼츠 4월 정기교육 자료입니다.
디자이너를 위한 "나만의 디자인 웹 포트폴리오 만들기"라는 주제로 진행되었습니다. 웹/IT 지식이 전혀 없이도 제작하실 수 있도록 일반적인 설명과 유용한 도구들, 그리고 5모먼츠의 사용법을 다룬 교육이었습니다. 교육에 참여해주신 분들께 감사드리며, 5월 정기교육도 많은 관심부탁드립니다. 감사합니다.
The SlideShare 101 is a quick start guide if you want to walk through the main features that the platform offers. This will keep getting updated as new features are launched.
The SlideShare 101 replaces the earlier "SlideShare Quick Tour".
Each month, join us as we highlight and discuss hot topics ranging from the future of higher education to wearable technology, best productivity hacks and secrets to hiring top talent. Upload your SlideShares, and share your expertise with the world!
Not sure what to share on SlideShare?
SlideShares that inform, inspire and educate attract the most views. Beyond that, ideas for what you can upload are limitless. We’ve selected a few popular examples to get your creative juices flowing.
커빙의 Django, Celery, Azure Cloud, SNS 연동, 컨텐츠 수집 기술을 한눈에 볼 수 있도록 소개한 자료 입니다.
커빙을 처음 개발하면서 많은 어려움이 있었지만
많은 분들의 도움으로 좋은 결과를 얻을 수 있었답니다!
이에 다른 분들에게 조금이나마 도움이 되었으면 좋겠다는 마음으로 공유합니다 : )
커빙의 Django, Celery, Azure Cloud, SNS 연동, 컨텐츠 수집 기술을 한눈에 볼 수 있도록 소개한 자료 입니다.
커빙을 처음 개발하면서 많은 어려움이 있었고,
또 많은 분들의 도움으로 좋은 결과를 얻을 수 있었습니다.
조금 더 깊은 내용을 다뤘으면 하는 아쉬움이 있지만,
다른 분들에게 조금이나마 도움이 되었으면 좋겠네요!
How to Become a Thought Leader in Your NicheLeslie Samuel
Are bloggers thought leaders? Here are some tips on how you can become one. Provide great value, put awesome content out there on a regular basis, and help others.
3 Things Every Sales Team Needs to Be Thinking About in 2017Drift
Thinking about your sales team's goals for 2017? Drift's VP of Sales shares 3 things you can do to improve conversion rates and drive more revenue.
Read the full story on the Drift blog here: http://blog.drift.com/sales-team-tips
마우스로 그리는 웹 사이트, 5모먼츠 4월 정기교육 자료입니다.
디자이너를 위한 "나만의 디자인 웹 포트폴리오 만들기"라는 주제로 진행되었습니다. 웹/IT 지식이 전혀 없이도 제작하실 수 있도록 일반적인 설명과 유용한 도구들, 그리고 5모먼츠의 사용법을 다룬 교육이었습니다. 교육에 참여해주신 분들께 감사드리며, 5월 정기교육도 많은 관심부탁드립니다. 감사합니다.
The SlideShare 101 is a quick start guide if you want to walk through the main features that the platform offers. This will keep getting updated as new features are launched.
The SlideShare 101 replaces the earlier "SlideShare Quick Tour".
Each month, join us as we highlight and discuss hot topics ranging from the future of higher education to wearable technology, best productivity hacks and secrets to hiring top talent. Upload your SlideShares, and share your expertise with the world!
Not sure what to share on SlideShare?
SlideShares that inform, inspire and educate attract the most views. Beyond that, ideas for what you can upload are limitless. We’ve selected a few popular examples to get your creative juices flowing.
커빙의 Django, Celery, Azure Cloud, SNS 연동, 컨텐츠 수집 기술을 한눈에 볼 수 있도록 소개한 자료 입니다.
커빙을 처음 개발하면서 많은 어려움이 있었지만
많은 분들의 도움으로 좋은 결과를 얻을 수 있었답니다!
이에 다른 분들에게 조금이나마 도움이 되었으면 좋겠다는 마음으로 공유합니다 : )
커빙의 Django, Celery, Azure Cloud, SNS 연동, 컨텐츠 수집 기술을 한눈에 볼 수 있도록 소개한 자료 입니다.
커빙을 처음 개발하면서 많은 어려움이 있었고,
또 많은 분들의 도움으로 좋은 결과를 얻을 수 있었습니다.
조금 더 깊은 내용을 다뤘으면 하는 아쉬움이 있지만,
다른 분들에게 조금이나마 도움이 되었으면 좋겠네요!
제1회 DataGeeks(디긱스) 오픈세미나 발표자료
주제 : 데이터 분석과 활용
Google Analytics (이태영) - 모바일과 웹 비즈니스 분석을 위한 Google Analytics 활용
일시 : 12월 13일(토) 오후 13:30 ~ 17:30
장소 : 신논현역(9호선) 1번출구 2분 이내 데브기어 강의장
어느 해커쏜에 참여한 백엔드 개발자들을 위한 교육자료
쉽게 만든다고 했는데도, 많이 어려웠나봅니다.
제 욕심이 과했던 것 같아요. 담번엔 좀 더 쉽게 !
- 독자 : 백엔드 개발자를 희망하는 사람 (취준생, 이직 희망자), 5년차 이하
- 주요 내용 : 백엔드 개발을 할 때 일어나는 일들(개발팀의 일)
- 비상업적 목적으로 인용은 가능합니다. (출처 명기 필수)
아마존 웹서비스를 이용한 WebApp을 제작하였습니다.
ElasticBeanStalk,Simple Email Service,WorkMail, Nginx, SpringBoot 등을 통해 만들었으며
https://github.com/Djunnni/Attendee/ 에서 코드를 공유합니다.
for description SpringBoot WebApp using Amazon Web Service.
ElasticBeanStalk,Simple Email Service,WorkMail, Nginx, SpringBoot and so on
스마트폰을 활용하는 데 있어 가장 유용한 서비스 중의 하나는 새로운 정보가 도착하거나 친구나 지인의 변화된 상태 등을 실시간에 알려주는 푸쉬(Push)이다. 이러한 실시간 푸쉬 서비스는 기존 정보의 소비 방식을 찾아가는 서비스에서 찾아오는 서비스로 바꿔 준다.
특히, 모바일 서비스의 경우 사용자가 휴대하고 있는 스마트폰에 새로운 정보와 소식을 푸쉬해 줌으로써 사용자가 일일히 해당 사이트나 어플리케이션을 구동하지 않아도 해당 정보나 상태를 조회할 수 있는 효과를 제공한다. 실제, 이러한 푸쉬 서비스는 SMS, 트윗이나 페이스북 같은 SNS 등 모든 모바일 응용 서비스에 적용되어 유용한 서비스를 제공하고 있다.
현재 안드로이드와 애플 아이폰은 각기 C2DM(Cloud2 Device Messaging) 과 APNS(Apple Push Notification Service)이라는 푸쉬 서비스를 SDK를 통해 제공함으로써 많은 모바일 어플이케이션 개발시 푸쉬 기술을 활용할 수 있도록 해 주고 있다. 본 발표에서는 이러한 푸쉬 기술의 현재와 이에 기반한 모바일 응용 프로그램 개발시 고려해야 할 여러 기술적인 사항들 그리고 푸쉬 기술에 기반한 다양한 응용 서비스들에 대해 살펴본다.
2. [ 개발환경 ]
- Ubuntu
- Apache 2.4.7
- php 5.5.9
- MySQL 5.5.49
- Android Studio
- JSON
3. [ 프로젝트 개요 ]
- 프로젝트명 : 룩앳미
- 프로젝트 목표 : 스마트폰을 활용하여 안내방송보다 더 빠른 신속함과
전단지의 시각적인 효과인 정확성을 결합하여 더 빠른 대응
- 담당파트 : 개발
- 개발기간 : 1개월
4. [ 프로젝트 주요기능 ]
- 이미지와 정보(텍스트)를 입력하여 신고가능
- 신고발생시 수집한 위치정보 기반으로 신고지점 근처 사용자에게 푸시알람 발송
- 신고페이지의 댓글 기능을 활용하여 실시간 제보 및 정보공유 기능
- 전체 리스트를 활용하여 모든 미아정보를 확인 가능
5. [ 회원가입 ]
- 최초 접속시 FCM을 위한 토큰생성
- 이후 접속시 닉네임, 토큰을 서버와 비교하여
자동 로그인
- 약관동의 후 매접속시마다
GPS가 꺼져있을 경우 알람발생
‘켜기’ 선택시 GPS설정으로 이동
6. [ 메인페이지 ]
- Navigation Drawer를 사용하여 구현
- 사용자 위치정보수집 서비스를 실행, 서버로 10분마다 전송
( 휴대폰 재시작시 자동으로 서비스 실행 )
- 전화신고, 상담전화, 문자상담의 경우
담당기관의 연락처가 입력된 통화, 문자 앱으로 이동
- 방문신고의 경우 현재위치에서 직선거리로
가장 가까운 경찰서의 위치와 연락처를 Dialog로 구현
( 연락처를 터치하여 통화 앱으로 이동 가능 )
7. [ 위치정보수집 서비스 구성도 ]
Main.java
PersistentService.java
( Service )
최초 서비스 실행
( startService )
RestartService.java
( BroadcastReceiver )
onDestroy가 호출될 때
PendingIntent에 Action을 추가하여
AlarmManager를 이용하여 BroadCast
Action 확인 후
서비스 실행
( startService )
BroadcastReceiver에 등록된
‘ACTION_BOOT_COMPLETED’
Action을 받게될 경우
# Receiver에 등록한 intent-filter 목록
8. [ 메뉴별 기능 ]
메뉴 기능
신고내역 사용자의 모든 신고내역 확인
진행사항 사용자의 미해결 신고내역 확인
제보댓글 사용자가 남긴 댓글 확인
신고하기 미아신고 기능
내주변수신 푸시알람을 받은 신고 리스트 확인
실종리스트 모든 미해결 신고에 대한 리스트 확인
해결리스트 모든 해결 신고에 대한 리스트 확인
16. [ 사용한 라이브러리 및 사유 ]
- 일러스트와 사진을 ImageView에 setImage로 넣을 경우 메모리 낭비가 심하고 OOM발생
> Glide 라이브러리를 사용하여 해결
- 사진 줌 in/out 기능
> Photo View 라이브러리를 사용
- 사진을 서버로 전송 시 사진의 용량 때문에 전송이 오래 걸림
> Apache http 사용
> 사진을 ¼로 Decode한 후 전송
- 구글 거리계산 API를 사용하려고 하였으나 일일쿼리제한과
경찰서의 경우 300번의 비교가 필요하므로 속도면에서 느리다고 판단
> 국토지리정보원에서 제공하는 거리계산 함수를 서버에 php로 구현
17. [ 개선해야할 점 ]
- 변수명 및 리소스ID에 대한 네이밍을 고려하지 않은 점
- 어플의 깊이를 고려하지 못한 점
> 메인페이지를 Fragment로 구현하여 Navigation Drawer에서 메뉴선택시 해당 Fragment만
replace하여 깊이를 줄임
- 사진이 ¼ 로 decode되기 때문에 화질이 안 좋을 경우 더 나빠짐
> 화질이 안 좋은 사진은 대부분 용량이 작은 점을 고려하여 기준용량을 정하거나
용량별로 나눠서 ½ , ¼ … 로 사진을 decode하여 화질 부분을 개선