OSS개발자 포럼 캠프
Click here to load reader
-
Upload
hakbeom-hwang -
Category
Engineering
-
view
1.406 -
download
6
description
Transcript of OSS개발자 포럼 캠프
![Page 1: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/1.jpg)
![Page 2: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/2.jpg)
그럴듯해 보이는 목차
• SW 개발자의 종류
• 개발자가 되기 위한 기본적 지식
• 성장하기
![Page 3: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/3.jpg)
SW 개발자의 종류
• 이런 얘기를 하는게 아닙니다.
• 좋은 개발자, 나쁜 개발자
• 서버개발자, 웹개발자, 모바일 개발자, PM..
![Page 4: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/4.jpg)
SW 개발자의 종류
• 이런 얘기를 할꺼에요
• 대기업 개발자, 중소기업 개발자, 해외 개발자
• 어차피 개발자가 하는 일은 비슷해요
![Page 5: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/5.jpg)
개발자가 되기 위한 기본지식
• 이런 얘기는 안해요
• 자료구조, OS, 데이터베이스, C, Java
![Page 6: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/6.jpg)
개발자가 되기 위한 기본지식
• 이런 얘기 할꺼에요
• Mobile, Web, Back-end, Front-End
![Page 7: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/7.jpg)
성장하기
!
• 훌륭한 개발자가 되기 위한 가이드를 제시합니다.
• 잘 먹고 잘 살기를 기원합니다.
![Page 8: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/8.jpg)
![Page 9: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/9.jpg)
하필이면 개발자를..?
![Page 10: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/10.jpg)
우리는 누구?
![Page 11: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/11.jpg)
• 학생?
• 개발자?
• 기획자?
• 아들? 딸?
• 잠재적 군인?
![Page 12: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/12.jpg)
![Page 13: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/13.jpg)
아직은 잘 모르지만 누구든 될 수 있다.
![Page 14: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/14.jpg)
정말 개발을 좋아하는 삶
![Page 15: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/15.jpg)
![Page 16: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/16.jpg)
어쩔수 없이 돈때문에..
![Page 17: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/17.jpg)
![Page 18: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/18.jpg)
이유야 어쨌든 개발자는
![Page 19: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/19.jpg)
돈을 법니다.
![Page 20: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/20.jpg)
왜?
![Page 21: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/21.jpg)
• 먹고 살아야 하고
• 결혼도 하고
• 차도 사고
• 부모님 용돈도 드리고
• 여행도 가고
• 학자금도 값고..ㅠㅠ
![Page 22: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/22.jpg)
대기업 느님
![Page 23: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/23.jpg)
나머지는?
![Page 24: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/24.jpg)
중소기업 시작너 자신을 믿어라(Be Yourself)
-샘 올렌스(조지아주 법무장관)
![Page 25: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/25.jpg)
갈 곳이 없다…너 자신을 알라
- 그리스 격언
![Page 26: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/26.jpg)
한국 IT 80%를 차지하는 SI
![Page 27: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/27.jpg)
SI에 가면 뭐해요?
![Page 28: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/28.jpg)
제 경우를 예를 들자면 - 아무생각없이 놀았습니다
![Page 29: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/29.jpg)
![Page 30: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/30.jpg)
• 밴드도 하고
• 스쿠버도 하고
• 인라인도 타고
• 검도도 하고
• 바이크도 타고
![Page 31: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/31.jpg)
그러다 보니…
• 2009 년 30살의 나이로 졸업
![Page 32: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/32.jpg)
동시에 서브프라임
![Page 33: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/33.jpg)
서브 프라임?
![Page 34: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/34.jpg)
100 여군데 이력서를 넣고.. !
하청업체라 불리는곳에 합격.
![Page 35: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/35.jpg)
하청업체?
![Page 36: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/36.jpg)
![Page 37: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/37.jpg)
그건 아청이고…
![Page 38: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/38.jpg)
그럼 하청은?
![Page 39: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/39.jpg)
![Page 40: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/40.jpg)
아 그렇군!!!
![Page 41: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/41.jpg)
농협카드와 함께 봄날을 맞이함
![Page 42: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/42.jpg)
구조
• 농협 - 농협정보시스템 - LGCNS - 회사 - 나
![Page 43: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/43.jpg)
내가 생각했던 직장인 !
특히 금융권
![Page 44: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/44.jpg)
![Page 45: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/45.jpg)
프로젝트 투입
![Page 46: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/46.jpg)
![Page 47: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/47.jpg)
입사1년만에 5일의 휴가를 받음…
![Page 48: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/48.jpg)
다시 프로젝트 투입
![Page 49: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/49.jpg)
가능할까?
• 집 -> 회사 1시간 30분
• 1시~2시 퇴근
• 9시 정시 출근
• 토요일은 기본, 일요일은 옵션
![Page 50: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/50.jpg)
애가 생겼어요!!병원에 다녀야 해요..
![Page 51: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/51.jpg)
충격적인 비밀을 들음
• 차세대를 하면 산부인과에 같이 못감
• 애 얼굴을 자주 못봄
• 돈이 많이 필요함
• 이게 평생 될꺼임.
![Page 52: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/52.jpg)
목표가 생김(나름 대기업 간판)
![Page 53: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/53.jpg)
입사할 수는 있으나.
• 오지 말라고 함
• 거기서 거기
![Page 54: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/54.jpg)
이 바닥을 뜨자!!!
![Page 55: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/55.jpg)
꺼져 이노무 회사!!!
![Page 56: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/56.jpg)
살암인, 잡콜이야
![Page 57: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/57.jpg)
대세는 웹, 모바일
![Page 58: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/58.jpg)
갈곳이 없음..Java 못함
C 못함 웹은 뭔지. 모바일??? 엔지니어?
![Page 59: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/59.jpg)
다 필요없고..
• 연봉/복지 안따짐
• 정시 퇴근만 하면 됨.
• 경력 세탁은 내가 할꺼임
![Page 60: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/60.jpg)
처음으로.. !
집에 6시 30분에 도착..
회사를 옮겼더니
![Page 61: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/61.jpg)
대학원, 스터디, 개발자 모임
![Page 62: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/62.jpg)
![Page 63: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/63.jpg)
Now..• 제 직책은.
• 두 아들의 아빠
• 10시에 어린이집
• 장보기
• 4시에 어린이집
• 백수
![Page 64: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/64.jpg)
Now..
• 오픈 프론티어 멤버
• URQA- 오픈소스 커미터
• Fullstack 개발자
• 할줄 아는거: javascript, angularJS, ruby, python, go, redis, MongoDB, Scala, android, etc..
![Page 65: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/65.jpg)
만족하며 살고 있음.
![Page 66: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/66.jpg)
애초에 대기업을 가지?
![Page 67: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/67.jpg)
대기업을 갑시다!!!
![Page 68: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/68.jpg)
![Page 69: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/69.jpg)
엄청 많음!!! !
!
하지만 들어가고 못들어가고 문제가 아니라
![Page 70: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/70.jpg)
실제 수행업무가 중요!!
![Page 71: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/71.jpg)
1000 ft View
![Page 72: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/72.jpg)
• 군대 문화
• 술, 회식
• 정치
![Page 73: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/73.jpg)
외국 회사로!!
![Page 74: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/74.jpg)
훨신 더 많아!!!
![Page 75: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/75.jpg)
채용 프로세스• 서류 면접
• 전화 면접
• 온사이트 (On-site) 면접
• 최소 3회 - 7 회
• 최소 5시간 - 12시간
![Page 76: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/76.jpg)
![Page 77: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/77.jpg)
프리랜서Free + Lancer
![Page 78: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/78.jpg)
프리랜서 = 용병
![Page 79: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/79.jpg)
SI 산업금융, 통신, 공공, 의료
![Page 80: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/80.jpg)
사회 현상의 흐름을 파악
![Page 81: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/81.jpg)
항상 새로운 것
• 새로운 업무 환경
• 새로운 사람들
• 새로운 업무
![Page 82: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/82.jpg)
돈?
• 초급: 20대 후반
• 중급: 30대 초반
• 고급: 30대 후반
![Page 83: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/83.jpg)
돈?
• 대한민국 평균 연봉보다 많다.
• IT 산업군과 비교해도 많다.
![Page 84: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/84.jpg)
돈?
• 단, 퇴직금 제외
• 복지도 제외
![Page 85: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/85.jpg)
경력?
![Page 86: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/86.jpg)
경력?
• 원하는 경력대로 커리어 패스를 찍을 수 있다.
• 한 업무에 정통하면 인정받으면서 일할 수 있다.
• 찾지 않아도 찾아온다.
![Page 87: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/87.jpg)
경력?• 단, 스킬을 잘못 찍으면 망한다.
![Page 88: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/88.jpg)
경력?• 인생은 디아블로가 아님..
![Page 89: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/89.jpg)
안정된 고용환경
![Page 90: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/90.jpg)
업무 환경
![Page 91: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/91.jpg)
업무 환경• 이직이 쉬움
![Page 92: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/92.jpg)
안좋은점
![Page 93: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/93.jpg)
일자리
![Page 94: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/94.jpg)
![Page 95: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/95.jpg)
계약직
![Page 96: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/96.jpg)
전문성
![Page 97: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/97.jpg)
![Page 98: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/98.jpg)
다 잘해야함.. !
노래, 춤은 기본 !
SSD도 혼자 교체, 손글씨, 양궁
![Page 99: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/99.jpg)
Requirement• 프로그래밍 실력은 기본
• 업무에 대해서도 빠삭해야 하고
• 전화응대도 잘해야 하고
• 분위기도 잘 맞춰줘야 하고(사무실, 회식)
• 치킨도 잘 튀겨야….
![Page 100: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/100.jpg)
방법론
![Page 101: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/101.jpg)
원래는 이렇게..
![Page 102: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/102.jpg)
실제는…
그런게 어딨어.. 그냥 하는거지
![Page 103: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/103.jpg)
일정
![Page 104: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/104.jpg)
![Page 105: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/105.jpg)
상황이 이러다 보니..
집에 못감..
![Page 106: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/106.jpg)
일정이 이러다 보니..
![Page 107: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/107.jpg)
!
개발자가 가고 싶은 회사들..
![Page 108: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/108.jpg)
![Page 109: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/109.jpg)
![Page 110: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/110.jpg)
필요한 기술들..
• 면접: 기본 3차 ~ 7차
• 스킬: Java, JS, C, C++, php, python, ruby, object-C HTML5, CSS, etc..
![Page 111: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/111.jpg)
못감..
![Page 112: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/112.jpg)
좋은 회사의 기준은
먹고 살만한 월급 !
최신 장비 !
기술 습득 !
이라고 보통 생각함 !
![Page 113: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/113.jpg)
방법? !
회사를 차리던가..
![Page 114: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/114.jpg)
회사를 차리든. !
회사에 입사를 하든. !
알면 도움이 되는 기본 지식들..
![Page 115: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/115.jpg)
Python. -Language
![Page 116: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/116.jpg)
Framework?
![Page 117: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/117.jpg)
소프트웨어 프레임워크(software framework)는 복잡한 문제를 해결하거나 서술하는 데 사용되는 기본 개념 구조이다. 간단히 뼈대, 골조(骨組), 프레임워크(framework)라고도 한다.
![Page 118: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/118.jpg)
Full Stack
Server, Network, and Hosting Environment. Data Modeling Business Logic API layer / Action Layer / MVC User Interface User Experience Understanding what the customer and the business need. 납땜에서 영업까지
![Page 119: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/119.jpg)
1인 기업
![Page 120: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/120.jpg)
프로그래밍 언어• 언어는 내 생각을 구현하기 위한 도구
• 모바일 - Java, Objective C, C#
• 웹서버 - CGI, ASP, PHP, JAVA
• 게임 - C#, C++
• 디자인? - 포토샵, 일러스트레이터, 페인트?
• 관리 - 엑셀, 파워포인트
![Page 121: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/121.jpg)
프레임워크
• Ruby - Rails, Sinatra
• Python - Django, Flask
• Java - Spring, Spark
• C# - .Net, Micro
![Page 122: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/122.jpg)
왜?
![Page 123: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/123.jpg)
영역이 다르다
![Page 124: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/124.jpg)
• DB - Backend - Frontend - UX - 고객
• 영역 별로 사용하는 언어가 다름
![Page 125: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/125.jpg)
과장님은 엑셀로 이야기해요
![Page 126: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/126.jpg)
고객
• Design
• Speed
• UI/UX
• Pay
![Page 127: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/127.jpg)
UI/UX(기획자)
• UI/UX
• Cost
• Cash Cow
![Page 128: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/128.jpg)
Front-end
• Fast Script
• Layout
• Dynamic
![Page 129: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/129.jpg)
Back-end
• High Availability
• High Tech
• Simple/Complex
• High Performance
![Page 130: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/130.jpg)
Database
• Shard
• Replication
• Data
![Page 131: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/131.jpg)
![Page 132: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/132.jpg)
![Page 133: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/133.jpg)
1000 ft View개략적으로 살펴봅시다
![Page 134: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/134.jpg)
뭐 먹고 살지 고민중… !
아이디어가 하나 떠오름!!!
![Page 135: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/135.jpg)
웹 페이지도 만들고 !
앱도 하나 만들어야징!!
![Page 136: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/136.jpg)
대박 날것 같음!!
![Page 137: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/137.jpg)
당연한 얘기지만.
• 컴퓨터 부터 구입…
• 혹은 집에 있는 컴퓨터.
• 또는 학교
![Page 138: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/138.jpg)
당연한 얘기지만.
• 언어를 배워야함
![Page 139: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/139.jpg)
code school
![Page 140: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/140.jpg)
![Page 141: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/141.jpg)
code academy
![Page 144: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/144.jpg)
일단 게시판부터…
• HTML로 만들고
• 로그인 기능 추가해서 게시판 만들어야지
![Page 145: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/145.jpg)
게시판 글을 어딘가 저장을… 해야 하네?
![Page 146: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/146.jpg)
데이터 베이스
• 데이터베이스(database)는 여러 응용 시스템들의 통합된 정보들을 저장하여 운영할 수 있는 공용 데이터들의 묶음이다.
• 무료로 제공되는 Mysql 로 시작..
![Page 147: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/147.jpg)
게시판 만들고 DB 연결 했더니..
![Page 148: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/148.jpg)
![Page 149: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/149.jpg)
뭔가 이쁘게 만들어 봐야 겠다..
![Page 150: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/150.jpg)
bootstrap foundation skeleton
gumbyframework
CSS frameworks are pre-prepared software frameworks that are meant to allow for easier, more standards-compliant web
design using the Cascading Style Sheets language
![Page 151: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/151.jpg)
![Page 152: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/152.jpg)
![Page 153: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/153.jpg)
![Page 154: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/154.jpg)
그럴듯하게 페이지를 만듬
![Page 155: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/155.jpg)
문제는..
• 개인 컴퓨터(집, 학교)는 항상 켜놓아야 함…
• 호스팅을 알아봄
![Page 156: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/156.jpg)
![Page 157: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/157.jpg)
페이스북 만큼은 아니지만..그래도.. 사람들이 꾸준히 들어옴
![Page 158: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/158.jpg)
요청도 들어옴
• 페이스북으로 로그인 하게 해주세요
• 채팅 할수 있게 해주세요
• 바로가기 메뉴 추가 해주세요.
• 모바일도 추가해 주세요
![Page 159: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/159.jpg)
로그인 연동시키자 openID, auth
![Page 160: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/160.jpg)
• OpenID (OID) is an open standard and decentralized protocol by the non-profit OpenID Foundation that allows users to be authenticated by certain co-operating sites (known as Relying Parties or RP) using a third party service
!
• OAuth is an open standard for authorization.
![Page 161: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/161.jpg)
사이트가 자꾸 죽어요
![Page 162: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/162.jpg)
이유?
![Page 163: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/163.jpg)
![Page 164: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/164.jpg)
![Page 165: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/165.jpg)
튜닝
![Page 166: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/166.jpg)
Load Balance
![Page 167: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/167.jpg)
Load Balance
![Page 168: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/168.jpg)
어느 정도까지는 커버됨. - 모바일이 추가 되기 전까지
![Page 169: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/169.jpg)
모바일을 대응하기 위해• REST-API!
• 2000년 로이 필딩(Roy Fielding)이 박사학위 청구 논문에서 REST(Representational State Transfer)를 소프트웨어 아키텍처 스타일로 제안한 후 OPEN API를 개발하는 기본으로 급속도로 확산되고 있다.!
!
• REST는 SOAP이 서비스 지향 구조인 것과 달리 자원지향구조(ROA: Resource Oriented Architecture)로 웹 사이트의 컨텐츠(Text, 이미지, 동영상), DB의 내용 등을 전부 하나의 자원으로 파악하여 각 자원의 고유한 URI(Uniform Resource Identifier)를 부여하고, 해당 자원에 대한 CRUD(Create, Read, Update, Delete) 작업을 HTTP의 기본 명령어인 POST, GET, PUT, DELETE를 통해서 처리한다.
![Page 170: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/170.jpg)
REST!!!
![Page 171: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/171.jpg)
Sinatra
![Page 172: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/172.jpg)
Flask
![Page 173: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/173.jpg)
Django + python
MySQL
현재상황..
![Page 174: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/174.jpg)
갑자기����������� ������������������ 증가하는����������� ������������������ 사용자Ideal
![Page 175: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/175.jpg)
또한번의 튜닝
![Page 176: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/176.jpg)
![Page 177: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/177.jpg)
Load Balancer
REST REST REST
MariaMysql Mongo …
Scalability
변하는����������� ������������������ 요구조건
앞으로����������� ������������������ 가야할����������� ������������������ 상황..
![Page 178: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/178.jpg)
아… 혼자는 못하겠다. -팀웍
![Page 179: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/179.jpg)
필요한 툴들이슈 트래커
![Page 181: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/181.jpg)
![Page 183: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/183.jpg)
![Page 184: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/184.jpg)
![Page 185: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/185.jpg)
![Page 186: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/186.jpg)
pivotal tracker
![Page 187: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/187.jpg)
![Page 188: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/188.jpg)
사람도 확보했고..
![Page 189: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/189.jpg)
Worker
![Page 190: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/190.jpg)
Queue
![Page 191: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/191.jpg)
URQA - 실습편
• URQA - Android Crash report
• 350개 개인/업체 사용중
![Page 192: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/192.jpg)
URQA Committers
![Page 193: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/193.jpg)
무료 어플리케이션
개인69%
회사31%
유료 어플리케이션
개인75%
회사25%
안드로이드����������� ������������������ 마켓����������� ������������������ 개발자����������� ������������������ 현황
개인����������� ������������������ 개발자:����������� ������������������ 73%
![Page 194: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/194.jpg)
출처 : http://offers2.compuware.com/rs/compuware/images/Mobile_App_Survey_Report.pdf
50% 이상이 앱이 죽거나 멈추거나!느려지는 문제를 겪는다.
![Page 195: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/195.jpg)
출처 : http://offers2.compuware.com/rs/compuware/images/Mobile_App_Survey_Report.pdf
![Page 196: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/196.jpg)
사후����������� ������������������ 크래쉬����������� ������������������ 리포트����������� ������������������ 서비스로����������� ������������������ ����������� ������������������
그나마����������� ������������������ 다양한����������� ������������������ 문제를����������� ������������������ 대처할수����������� ������������������ 있음
![Page 197: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/197.jpg)
BugSense����������� ������������������ 77%
Airbrake����������� ������������������ 0%
zubhium����������� ������������������ 0%
HockeyApp����������� ������������������ 2%
Crittercism����������� ������������������ 5%
ACRA����������� ������������������ 15%
not����������� ������������������ use����������� ������������������ 81%
Airbrake����������� ������������������ 0%
zubhium����������� ������������������ 0%
HockeyApp����������� ������������������ 0%
Crittercism����������� ������������������ 1%
ACRA����������� ������������������ 3%
BugSense����������� ������������������ 14%
not����������� ������������������ use����������� ������������������ 90%
Airbrake����������� ������������������ 0%
Zubhium����������� ������������������ 0%
Critticism����������� ������������������ 0%
HockeyApp����������� ������������������ 0%
ACRA����������� ������������������ 3%Bugsense����������� ������������������
7%
새로운����������� ������������������ 앱����������� ������������������ 중����������� ������������������ Bug����������� ������������������ report를����������� ������������������ 사용하는����������� ������������������ 앱
전체����������� ������������������ 앱����������� ������������������ 중����������� ������������������ Bug����������� ������������������ report를����������� ������������������ 사용하는����������� ������������������ 앱2013년����������� ������������������ Play����������� ������������������ 마켓����������� ������������������ 앱����������� ������������������ 개수����������� ������������������
버그리포트����������� ������������������ 시장����������� ������������������ 점유율
![Page 198: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/198.jpg)
왜����������� ������������������ 안쓰지?����������� ������������������ 불편한가?
![Page 199: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/199.jpg)
3~7세����������� ������������������ 어린이����������� ������������������ 신발����������� ������������������ 살때����������� ������������������ 기준은?
귀여운����������� ������������������ 기능성
![Page 200: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/200.jpg)
Pain����������� ������������������ Point
![Page 201: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/201.jpg)
비즈니스����������� ������������������ 모델����������� ������������������ 캔버스는����������� ������������������ 창업자들이����������� ������������������ 생각한����������� ������������������ 가설이고,고객����������� ������������������ 개발은����������� ������������������ 창업자들이����������� ������������������ 생각해낸����������� ������������������ 해결책을����������� ������������������ 검증하기����������� ������������������ 보다는����������� ������������������ 창업자들이����������� ������������������ 가정한����������� ������������������ 문제가����������� ������������������ 진짜����������� ������������������ 고객의����������� ������������������ 문제인지����������� ������������������ 검증하는����������� ������������������ 것이다!
Steve����������� ������������������ Blank����������� ������������������ !Lean����������� ������������������ Startup의����������� ������������������ 아버지����������� ������������������ Customer����������� ������������������ Development����������� ������������������ Method����������� ������������������ 저자
![Page 202: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/202.jpg)
고객의����������� ������������������ ����������� ������������������ 문제를����������� ������������������ 해결하자!=
����������� ������������������ 우리����������� ������������������ 소프트웨어의����������� ������������������ 핵심가치����������� ������������������ 찾기
![Page 203: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/203.jpg)
Sleep����������� ������������������ If����������� ������������������ U����������� ������������������ Can
![Page 204: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/204.jpg)
����������� ������������������ Sleep����������� ������������������ If����������� ������������������ U����������� ������������������ Can����������� ������������������ 개발자����������� ������������������ 신재명����������� ������������������ BugSense사용����������� ������������������ 중
사용자가����������� ������������������ 앱을����������� ������������������ 어떻게����������� ������������������ 사용하다����������� ������������������ 버그가����������� ������������������ 발생����������� ������������������ ����������� ������������������ 하였는지����������� ������������������ 알����������� ������������������ 수����������� ������������������ 없어����������� ������������������ ����������� ������������������
!
버그����������� ������������������ 재현에����������� ������������������ ����������� ������������������ 많은����������� ������������������ 시간����������� ������������������ 걸림
기존����������� ������������������ 경쟁����������� ������������������ 제품의����������� ������������������ 한계...
![Page 205: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/205.jpg)
기존����������� ������������������ 경쟁����������� ������������������ 제품의����������� ������������������ 한계...
말랑스튜디오����������� ������������������ CEO����������� ������������������ 김영호����������� ������������������
BugSense사용����������� ������������������ 중
����������� ������������������ 진정����������� ������������������ 시급한����������� ������������������ 버그가����������� ������������������ 무엇인지����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ 알����������� ������������������ 수가����������� ������������������ 없다.����������� ������������������ ����������� ������������������ !����������� ������������������ 알람에서����������� ������������������ 가장����������� ������������������ 시급한����������� ������������������ 버그는����������� ������������������ 알람����������� ������������������ 기능에서����������� ������������������ 발생한����������� ������������������ 버그이다.����������� ������������������ 하지만����������� ������������������ 버그의����������� ������������������ 발생����������� ������������������ 수에����������� ������������������ 가려����������� ������������������ 진짜����������� ������������������ 시급한����������� ������������������ 버그를����������� ������������������ 노치게����������� ������������������ 된다.
![Page 206: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/206.jpg)
UrQA는����������� ������������������ 모바일����������� ������������������ 앱����������� ������������������ 개발팀에게����������� ������������������
크래시를����������� ������������������ 빠르게����������� ������������������ 대응 버그����������� ������������������ 재현����������� ������������������ 시간����������� ������������������ ����������� ������������������ 절약
가치를����������� ������������������ 제공하는데
실시간으로����������� ������������������ 에러를����������� ������������������ ����������� ������������������ 등급화하여����������� ������������������ 리포팅
사용자����������� ������������������ 이벤트����������� ������������������ 경로����������� ������������������ 시각화
를����������� ������������������ 통해서����������� ������������������ 이루어����������� ������������������ 진다.
VALUE
FEATURE
차별화된����������� ������������������ 기술력
C/C++����������� ������������������ 네이티브����������� ������������������ ����������� ������������������ 크래시����������� ������������������ 리포트����������� ������������������ 제공
![Page 207: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/207.jpg)
판단����������� ������������������ 기준����������� ������������������ 즉����������� ������������������ 목적성이����������� ������������������ 정립됨
![Page 208: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/208.jpg)
그래서����������� ������������������ 나온����������� ������������������ 소프트웨어
![Page 209: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/209.jpg)
버그의����������� ������������������ 갯수만을����������� ������������������ 강조하는����������� ������������������ View
![Page 210: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/210.jpg)
최근에러����������� ������������������ 10개만����������� ������������������ 보여주는����������� ������������������ 데시보드
![Page 211: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/211.jpg)
아이콘과����������� ������������������ 색을����������� ������������������ ����������� ������������������ 이용한����������� ������������������ 버그의����������� ������������������ 등급����������� ������������������ ,����������� ������������������ 갯수표시
![Page 212: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/212.jpg)
이벤트����������� ������������������ 갯수만을����������� ������������������ 강조하는����������� ������������������ View
BugSense����������� ������������������ -����������� ������������������ Events����������� ������������������ View
![Page 213: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/213.jpg)
CRASH
버그를����������� ������������������ 발생시킨����������� ������������������ 사용자����������� ������������������ 경로를����������� ������������������ ����������� ������������������ 시각화해서����������� ������������������ 보여줌
Event����������� ������������������ Path
![Page 214: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/214.jpg)
BugSense����������� ������������������ -����������� ������������������ 관계없는����������� ������������������ 버전����������� ������������������ 정보
App����������� ������������������ 버전과����������� ������������������ OS����������� ������������������ 버전����������� ������������������ 둘의����������� ������������������ 관계성을����������� ������������������ 파악이����������� ������������������
불가능한����������� ������������������ 구조!!
App����������� ������������������ 업데이트가����������� ������������������ 문제인가?
OS����������� ������������������ 버전만의����������� ������������������ 문제인가?
이����������� ������������������ App����������� ������������������ 버전에서는����������� ������������������ 어떤����������� ������������������ OS����������� ������������������ 버전이����������� ������������������ 문제인가?
![Page 215: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/215.jpg)
앱����������� ������������������ 버전
OS버전
App����������� ������������������ 버전����������� ������������������ 대비����������� ������������������ OS버전의����������� ������������������ ����������� ������������������ 버그����������� ������������������ 발생량을����������� ������������������ 보여줌
![Page 216: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/216.jpg)
부족한����������� ������������������ 통계자료����������� ������������������ 한번에����������� ������������������ 하나의����������� ������������������ 통계만����������� ������������������ 볼����������� ������������������ 수����������� ������������������ 있음...
ACRA����������� ������������������
![Page 217: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/217.jpg)
다양한 통계자료를 기간 별로 한눈에 파악 가능
![Page 218: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/218.jpg)
Bugsense,����������� ������������������ Acra����������� ������������������
![Page 219: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/219.jpg)
UrQA
![Page 220: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/220.jpg)
Front����������� ������������������ end(view)
Python
Android����������� ������������������ App����������� ������������������
mysql
Back����������� ������������������ end
JSON
UrQA����������� ������������������ Architecture
Restful����������� ������������������ Service����������� ������������������ (django)
UrQA����������� ������������������ Server
![Page 221: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/221.jpg)
사용자의����������� ������������������ 폭주로����������� ������������������ ����������� ������������������
서비스가����������� ������������������ 죽었어요!!
![Page 222: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/222.jpg)
Front����������� ������������������ end(view)
RabbitMQ
PythonAndroid����������� ������������������ App����������� ������������������
mysqlXitrum����������� ������������������ (Json����������� ������������������ parser)
Message����������� ������������������ queue
To����������� ������������������ Be����������� ������������������ Architecture
Back����������� ������������������ end
Communicator����������� ������������������ (Json)
![Page 223: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/223.jpg)
Part����������� ������������������ 3.����������� ������������������ ����������� ������������������ MQ����������� ������������������ Hero의����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ 구하기����������� ������������������
![Page 224: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/224.jpg)
MQ가����������� ������������������ 다루는����������� ������������������ Data����������� ������������������ 속성
����������� ������������������ One����������� ������������������ Way
����������� ������������������ Read����������� ������������������ Only
����������� ������������������ Write����������� ������������������ Only
![Page 225: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/225.jpg)
과부하!!
![Page 226: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/226.jpg)
Message Queue
<����������� ������������������ JMS(Java Message System)����������� ������������������ Publisher-Subscriber����������� ������������������ 방식����������� ������������������ >
![Page 227: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/227.jpg)
Why����������� ������������������ MQ?����������� ������������������
!
����������� ������������������ ����������� ������������������ ����������� ������������������ 비동기����������� ������������������ 요청을����������� ������������������ Queuing하여����������� ������������������ ����������� ������������������ ����������� ������������������
����������� ������������������ ����������� ������������������ Subscriber의����������� ������������������ Throughput에����������� ������������������ ����������� ������������������
����������� ������������������ 맞춰����������� ������������������ 양을����������� ������������������ 조절����������� ������������������ 할����������� ������������������ 수����������� ������������������ 있다
![Page 228: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/228.jpg)
����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������
����������� ������������������ 부하에����������� ������������������ 따라����������� ������������������ 쉽게����������� ������������������ 확장����������� ������������������ 할����������� ������������������ 수����������� ������������������ 있다
Why����������� ������������������ MQ?����������� ������������������
![Page 229: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/229.jpg)
Why����������� ������������������ MQ����������� ������������������
!
이질적인����������� ������������������ 포멧을����������� ������������������ 가진����������� ������������������ ����������� ������������������
Publisher-Subscriber의����������� ������������������ 데이터를����������� ������������������ ����������� ������������������
변환����������� ������������������ (Marshalling,����������� ������������������ Unmarshalling)����������� ������������������ 해준다.����������� ������������������
![Page 230: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/230.jpg)
Why����������� ������������������ MQ?����������� ������������������
����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������
다양한����������� ������������������ 언어,����������� ������������������ ����������� ������������������
프레임워크를����������� ������������������ 사용하여����������� ������������������ 여러����������� ������������������ 응용����������� ������������������ 프로그램을����������� ������������������
구축����������� ������������������ 할����������� ������������������ 수����������� ������������������ 있다
![Page 231: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/231.jpg)
Front����������� ������������������ end
RabbitMQ
Web����������� ������������������ (View)
Android����������� ������������������ App����������� ������������������
mysqlXitrum����������� ������������������ (Json����������� ������������������ parser)
Message����������� ������������������ queue
To����������� ������������������ Be����������� ������������������ Architecture
Back����������� ������������������ end
Communicator����������� ������������������ (Json)
![Page 232: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/232.jpg)
![Page 233: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/233.jpg)
RabbitMQ����������� ������������������ Admin����������� ������������������
![Page 234: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/234.jpg)
Message����������� ������������������ flow
![Page 235: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/235.jpg)
Worker
����������� ������������������ ����������� ������������������ ����������� ������������������ Publisher����������� ������������������
Error!����������� ������������������
Worker
����������� ������������������ 메시지����������� ������������������ 처리����������� ������������������ 중에����������� ������������������ 오류가����������� ������������������ 발생한다면!!! 이����������� ������������������ 메시지는����������� ������������������ 복구����������� ������������������ 될����������� ������������������ 수가����������� ������������������ 없게����������� ������������������ 된다!!
Worker가����������� ������������������ 메세지를����������� ������������������ 씹으면..����������� ������������������ ☹
![Page 236: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/236.jpg)
Worker
����������� ������������������ ����������� ������������������ ����������� ������������������ Publisher����������� ������������������
Worker
!해결책은����������� ������������������ autoAck=false로����������� ������������������ 하고����������� ������������������
Worker가����������� ������������������ 작업이����������� ������������������ 끝난후에����������� ������������������ ack을����������� ������������������ 전달하면����������� ������������������ 된다. !
! QueueingConsumer consumer = new QueueingConsumer(channel);
boolean autoAck = false; channel.basicConsumer("hello", autoAck, consumer);
while (true) { QueueingConsumer.Delivery delivery = consumer.nextDelivery();
// something work..
channel.basicAck(delivery.getEnvelope().getDeliveryTag(), false); }
Ack����������� ������������������ 전송!
![Page 237: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/237.jpg)
Worker
����������� ������������������ ����������� ������������������ ����������� ������������������ Publisher����������� ������������������
Worker
Server가����������� ������������������ 종료(다운)되더라도����������� ������������������ 서버에����������� ������������������ 보관되어����������� ������������������ 있던����������� ������������������ 메시지가����������� ������������������ 소실되지����������� ������������������ 않게����������� ������������������ 하는����������� ������������������ 방법은??
Server����������� ������������������ Down!!
MQ가����������� ������������������ 죽으면..����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ☹
![Page 238: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/238.jpg)
Worker
����������� ������������������ ����������� ������������������ ����������� ������������������ Publisher����������� ������������������
Worker
Channel.queueDelcare 호출시 “durable” 속성을 true로 해주면 메시지가����������� ������������������ 소실되지����������� ������������������ 않게����������� ������������������ 된다.
! boolean durable = true; channel.queueDeclare("hello", durable, false, false, null);
Server����������� ������������������ Down!!
![Page 239: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/239.jpg)
Message����������� ������������������ Queue����������� ������������������ 사용����������� ������������������ 추이
activemq hometqqpidrabbitmq
<����������� ������������������ 2014년����������� ������������������ 1월����������� ������������������ ����������� ������������������ Google����������� ������������������ Trends����������� ������������������ 자료����������� ������������������ >
![Page 240: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/240.jpg)
Message����������� ������������������ Queue����������� ������������������ List
!• AMQP Homepage http://www.amqp.org/node/
!• ActiveMQ Homepage http://activemq.apache.org/
!• STOMP Protocol Specification http://
stomp.github.com/stomp-specification-1.2.html
!• HornetQ homepage http://www.jboss.org.hornetq !!• RabbitMQ support JMS in the future http://rabbitmq.
1065348.n5.nabble.com/RabbitMQ-support-JMS-in-the-future-td24361.html
• Message Queue Evaluation Notes http://wiki.secondlife.com/wiki/ !• Enabling the ActiveMQ Broker for AMQP http://activemq.apache.org/amqp.html
!• Open JMS Homepage http://openjms.sourceforge.net/
!• Apache Qpid Homepage http://qpid.apache.org/
!• RabbitMQ Homepage http://www.rabbitmq.com/
!• ZeroMQ Homepage http://www.zeromq.org/
![Page 241: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/241.jpg)
Part����������� ������������������ 3.����������� ������������������ Message����������� ������������������ Queue����������� ������������������ 정리
• 부하에����������� ������������������ 따라����������� ������������������ 쉽게����������� ������������������ 확장����������� ������������������ 할����������� ������������������ 수����������� ������������������ 있다����������� ������������������ ����������� ������������������ • 비동기����������� ������������������ 요청을����������� ������������������ Queuing,����������� ������������������ Subscriber의����������� ������������������ Throughput에����������� ������������������ 맞춰����������� ������������������ 양을����������� ������������������ 조절����������� ������������������ 할수����������� ������������������ 있다
![Page 242: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/242.jpg)
Part����������� ������������������ 4.����������� ������������������ ����������� ������������������
슈퍼����������� ������������������ 영웅����������� ������������������ -����������� ������������������ Xitrum
![Page 243: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/243.jpg)
RabbitMQ
Web����������� ������������������ (View)
Android����������� ������������������ App����������� ������������������
mysqlXitrum����������� ������������������ (Json����������� ������������������ parser)
Message����������� ������������������ queue
To����������� ������������������ Be����������� ������������������ Architecture
Back����������� ������������������ end
Communicator����������� ������������������ (Json)
Front����������� ������������������ end
![Page 244: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/244.jpg)
갑자기����������� ������������������ 증가하는����������� ������������������ 사용자Ideal
![Page 245: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/245.jpg)
Django + python
MySQL
현재상황..
![Page 246: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/246.jpg)
Load Balancer
REST REST REST
MariaMysql Mongo …
Scalability
변하는����������� ������������������ 요구조건
앞으로����������� ������������������ 가야할����������� ������������������ 상황..
![Page 247: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/247.jpg)
성능 향상이 필요한데..
![Page 248: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/248.jpg)
네티?
http://www.techempower.com
![Page 249: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/249.jpg)
초당 5만건???
![Page 250: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/250.jpg)
비록 Hello World 테스트. 하지만..
![Page 251: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/251.jpg)
Netty로 결정!!!
Netty
PLAY
SPRING
Djaing
Rails 1.7
2.8
8.3
20.1
100
![Page 252: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/252.jpg)
어디서부터.....����������� ������������������ ����������� ������������������ 시작하지?
![Page 253: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/253.jpg)
Rails,����������� ������������������ Django
spring
Play����������� ������������������ framework
빠른개발
성능
Reference
학습문제
![Page 254: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/254.jpg)
다수가����������� ������������������ 추천하는����������� ������������������ SPRING����������� ������������������ 결정!!
![Page 255: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/255.jpg)
SPRING?
설정? 개발?
Eclipse?서블릿?
![Page 256: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/256.jpg)
!자바,����������� ������������������ 서블릿,스트럿츠,스프링,����������� ������������������ !하이버네이트,����������� ������������������ myBatis,����������� ������������������ !클래스 API문서����������� ������������������ ����������� ������������������ !!Eclipse����������� ������������������ 설치하고…⋯����������� ������������������ Plugin����������� ������������������ 깔고…⋯
그래����������� ������������������ 공부하자!!
![Page 257: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/257.jpg)
언제����������� ������������������ 다����������� ������������������ 해?����������� ������������������ -개발자가����������� ������������������ 부족해요
서비스 나오는데 최소 한달…⋯
![Page 258: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/258.jpg)
빠르고 가볍게 안될까?
![Page 259: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/259.jpg)
성능도 고려하고
![Page 260: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/260.jpg)
학습곡선이 적은.
![Page 261: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/261.jpg)
PLAY Framework으로 해보자!!
![Page 262: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/262.jpg)
좋은점
자바, 서블릿,스트럿츠,스프링,myBatis !안배워도 됨.
안 좋은점 !자바, 서블릿,스트럿츠,스프링,myBatis !나중에는 배워야 됨.
![Page 263: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/263.jpg)
친숙한����������� ������������������ MVC
models����������� ������������������ 은����������� ������������������ 모델����������� ������������������ 정의와����������� ������������������ 관련한����������� ������������������ 소스����������� ������������������ 코드를����������� ������������������ 포함하고,����������� ������������������ ����������� ������������������ controllers는����������� ������������������ 비즈니스����������� ������������������ 로직����������� ������������������ 관련����������� ������������������ 소스가����������� ������������������ 위치한다.����������� ������������������ ����������� ������������������ views����������� ������������������ 는����������� ������������������ HTML과����������� ������������������ 플레이����������� ������������������ 템플릿����������� ������������������ 언어����������� ������������������ 기반����������� ������������������ 소스����������� ������������������ 코드를����������� ������������������ 포함한다.����������� ������������������ !
![Page 264: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/264.jpg)
깔끔한����������� ������������������ ����������� ������������������ 구조
![Page 265: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/265.jpg)
Netty + Akka
![Page 266: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/266.jpg)
빠른����������� ������������������ 프로토����������� ������������������ 타입핑.����������� ������������������ !짧은 개발주기!!가장 보편적 기술의 도입.����������� ������������������ !모바일과 웹을 동시에 지원 가능한 서비스 설계!!Scale����������� ������������������ out����������� ������������������ 고려한 설계!!클라우드 고려한 설계
모두가 행복함..
![Page 267: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/267.jpg)
나만 빼고….
![Page 268: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/268.jpg)
과연����������� ������������������ 내가?
![Page 269: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/269.jpg)
PLAY가 맘에 들긴 하는데..
기본적인 구조는 play와 비슷하게����������� ������������������ !필요한 부분만 사용할수 없을까?����������� ������������������
![Page 270: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/270.jpg)
옮겨가기 쉽다
![Page 271: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/271.jpg)
What����������� ������������������ Programming����������� ������������������ Languages����������� ������������������ Are����������� ������������������ Technology����������� ������������������ Startups����������� ������������������ Using?����������� ������������������
http://iseld.org/blog/2013/12/13/what-programming-languages-are-technology-startups-using/
우리는 스타트업 이랍니다
![Page 272: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/272.jpg)
자전거 네비게이션,����������� ������������������ 방수백,����������� ������������������ 헤드라이트����������� ������������������ !다른 기능은 필요없음..
집근처����������� ������������������ 마트를����������� ������������������ 가는데?
![Page 273: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/273.jpg)
꼭����������� ������������������ 필요한����������� ������������������ 기능에.
![Page 274: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/274.jpg)
추가기능은����������� ������������������ 이정도만.
Session����������� ������������������ &����������� ������������������ Cookie����������� ������������������ 암호화����������� ������������������ !쉬운 Route����������� ������������������ 설정����������� ������������������ !기능별 배포가 가능한가?����������� ������������������ !여러 DB에 동시 작업이 가능한가?����������� ������������������ !멀티 뷰 대응����������� ������������������ !!!
![Page 275: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/275.jpg)
Xitrum?http://ngocdaothanh.github.io/xitrum/
![Page 276: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/276.jpg)
추가기능은����������� ������������������ 이정도만.
Session����������� ������������������ &����������� ������������������ Cookie����������� ������������������ 암호화 ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ !쉬운 Route����������� ������������������ 설정����������� ������������������ !기능별 배포가 쉬운가?����������� ������������������ !여러 DB에 동시 작업이 가능한가?����������� ������������������ !멀티 뷰 대응����������� ������������������ !!!
Hazelcast����������� ������������������ (In����������� ������������������ Momory����������� ������������������ DataGrid����������� ������������������ )����������� ������������������ 로����������� ������������������ 되어있음
![Page 277: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/277.jpg)
추가기능은����������� ������������������ 이정도만.
Session����������� ������������������ &����������� ������������������ Cookie����������� ������������������ 암호화����������� ������������������ !쉬운 Route����������� ������������������ 설정����������� ������������������ !!!!기능별 배포가 쉬운가?����������� ������������������ !여러 DB에 동시 작업이 가능한가?����������� ������������������ !멀티 뷰 대응����������� ������������������ !!!
실행될����������� ������������������ Method����������� ������������������ 앞에����������� ������������������ @anotation만����������� ������������������ 달면����������� ������������������ 됨.����������� ������������������ 설정파일����������� ������������������ X
![Page 278: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/278.jpg)
추가기능은����������� ������������������ 이정도만.
Session����������� ������������������ &����������� ������������������ Cookie����������� ������������������ 암호화����������� ������������������ !쉬운 Route����������� ������������������ 설정����������� ������������������ !기능별 배포가 쉬운가?����������� ������������������ !!!!여러 DB에 동시 작업이 가능한가?����������� ������������������ !쉬운 scalability/throughput !멀티 뷰 대응����������� ������������������ !!!
하나의����������� ������������������ 파일에����������� ������������������ Route,����������� ������������������ Control,����������� ������������������ Model,����������� ������������������ View����������� ������������������ 전부����������� ������������������ 가능����������� ������������������ 모듈별로����������� ������������������ 묶어서����������� ������������������ 배포하면����������� ������������������ 끝!!
![Page 279: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/279.jpg)
추가기능은����������� ������������������ 이정도만.
Session����������� ������������������ &����������� ������������������ Cookie����������� ������������������ 암호화����������� ������������������ !쉬운 Route����������� ������������������ 설정����������� ������������������ !기능별 배포가 쉬운가?����������� ������������������ !여러 DB에 동시 작업이 가능한가?����������� ������������������ !!!멀티 뷰 대응����������� ������������������ !!!
Multi����������� ������������������ DB,����������� ������������������ ORM����������� ������������������ 지원
![Page 280: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/280.jpg)
멀티 뷰����������� ������������������ 대응����������� ������������������ !•����������� ������������������ respondView:����������� ������������������ responds����������� ������������������ view����������� ������������������ template����������� ������������������ with����������� ������������������ or����������� ������������������ without����������� ������������������ layout����������� ������������������ •����������� ������������������ respondInlineView:����������� ������������������ responds����������� ������������������ with����������� ������������������ or����������� ������������������ without����������� ������������������ layout����������� ������������������ •����������� ������������������ respondText("hello"):����������� ������������������ responds����������� ������������������ a����������� ������������������ string����������� ������������������ without����������� ������������������ layout����������� ������������������ •����������� ������������������ respondHtml("<html>...</html>"):����������� ������������������ same����������� ������������������ as����������� ������������������ above,����������� ������������������ with����������� ������������������ content����������� ������������������ type����������� ������������������ set����������� ������������������ to����������� ������������������ “text/html”����������� ������������������ ����������� ������������������ •����������� ������������������ respondJson(List(1,����������� ������������������ 2,����������� ������������������ 3)):����������� ������������������ converts����������� ������������������ Scala����������� ������������������ object����������� ������������������ to����������� ������������������ JSON����������� ������������������ object����������� ������������������ then����������� ������������������ responds����������� ������������������ •����������� ������������������ respondJs("myFunction([1,����������� ������������������ 2,����������� ������������������ 3])")����������� ������������������ •����������� ������������������ respondJsonP(List(1,����������� ������������������ 2,����������� ������������������ 3),����������� ������������������ "myFunction"):����������� ������������������ combination����������� ������������������ of����������� ������������������ the����������� ������������������ above����������� ������������������ two����������� ������������������ •����������� ������������������ respondJsonText("[1,����������� ������������������ 2,����������� ������������������ 3]")����������� ������������������ •����������� ������������������ respondJsonPText("[1,����������� ������������������ 2,����������� ������������������ 3]",����������� ������������������ "myFunction")����������� ������������������ •����������� ������������������ respondBinary:����������� ������������������ responds����������� ������������������ an����������� ������������������ array����������� ������������������ of����������� ������������������ bytes����������� ������������������ •����������� ������������������ respondFile:����������� ������������������ sends����������� ������������������ a����������� ������������������ file����������� ������������������ directly����������� ������������������ from����������� ������������������ disk,����������� ������������������ very����������� ������������������ fast����������� ������������������ because����������� ������������������ zero-copy����������� ������������������ (aka����������� ������������������ send-file)����������� ������������������ is����������� ������������������ used����������� ������������������ ����������� ������������������ •����������� ������������������ respondEventSource("data",����������� ������������������ "event")
꼭����������� ������������������ 필요한����������� ������������������ 기능만.
![Page 281: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/281.jpg)
기왕이면����������� ������������������ API����������� ������������������ 문서도����������� ������������������ !!swagger를 이용한����������� ������������������ 쉬운 문서화
![Page 282: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/282.jpg)
Request (Inbound)
Response (Outbound)
From����������� ������������������ Netty
Netty
To����������� ������������������ Netty
HandlerEnv
Akka
![Page 283: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/283.jpg)
Request����������� ������������������ (Inbound)
Response����������� ������������������ (Outbound)
Auth
Parse
Uri
Akka
Resource
Json
XML
File
Resource
Cache
Composite
![Page 284: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/284.jpg)
FlashSocketPolicy
HttpRequestDecoder
PublicFileServer
HttpResponseEncoder
XSendFile
BaseUrlRemover
PublicResourceServer
Dispatcher
ServerSsl
Request2Env
UriParser
MethodOverrider
XSendResource
Env2Response
ResponseCacher
Request (Inbound)
Response (Outbound)
HANDLER����������� ������������������ ARCHITECTURE BASED����������� ������������������ ON����������� ������������������ NETTY����������� ������������������ 4
To make Xitrum HandlerEnv
To FullHttpResponse
Shortcut may happen (action is not called)
NoPipelining
BasicAuth
BadClientSilencer
ChunkedWrite
SetCORS
OPTIONSResponse
FixiOS6SafariPOST
Adobe Flash policy file can be served on the same port with HTTP
These 4 handlers are provided by Netty
![Page 285: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/285.jpg)
SUPER RESTFul API
![Page 286: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/286.jpg)
EXAMPLE
REST����������� ������������������ API를����������� ������������������ 이용한����������� ������������������ Blog����������� ������������������ 만들기-����������� ������������������ Xitrum../����������� ������������������ demos/action/Articles.scala����������� ������������������
!Routes����������� ������������������ 설정����������� ������������������ !@GET("articles")����������� ������������������ @GET("articles/:id<[0-9]+>")����������� ������������������ @GET("articles/new")����������� ������������������ @GET("articles/:id/edit")����������� ������������������ !@POST("articles")����������� ������������������ @PATCH("articles/:id")����������� ������������������ @DELETE("articles/:id")
![Page 287: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/287.jpg)
MODEL
!!case����������� ������������������ class����������� ������������������ Article(id:����������� ������������������ Int����������� ������������������ =����������� ������������������ 0,����������� ������������������ title:����������� ������������������ String����������� ������������������ =����������� ������������������ "",����������� ������������������ content:����������� ������������������ String����������� ������������������ =����������� ������������������ "")����������� ������������������ !object����������� ������������������ Article����������� ������������������ {����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ var����������� ������������������ storage����������� ������������������ =����������� ������������������ Map[Int,����������� ������������������ Article]()����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ var����������� ������������������ nextId����������� ������������������ ����������� ������������������ =����������� ������������������ 1����������� ������������������ !
def����������� ������������������ findAll()����������� ������������������ =����������� ������������������ storage.values����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ 전체검색����������� ������������������ def����������� ������������������ find(id:����������� ������������������ Int)����������� ������������������ =����������� ������������������ storage(id)����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ID로 검색����������� ������������������ def����������� ������������������ insert(article:����������� ������������������ Article)����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ 저장����������� ������������������ def����������� ������������������ update(article:����������� ������������������ Article)����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ 수정����������� ������������������ def����������� ������������������ delete(id:����������� ������������������ Int)����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ 삭제����������� ������������������
����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ }
![Page 288: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/288.jpg)
ROUTE별 실행 명령!@GET("articles")����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ -����������� ������������������ ����������� ������������������ ����������� ������������������ 전체조회����������� ������������������ Class����������� ������������������ Getarticles����������� ������������������ extends����������� ������������������ Api����������� ������������������ {����������� ������������������ ..����������� ������������������ val����������� ������������������ articles����������� ������������������ =����������� ������������������ Article.findAll()����������� ������������������ !!@GET("articles/:id<[0-9]+>")����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ -����������� ������������������ ID를 파라미터로 조회����������� ������������������ val����������� ������������������ id����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ =����������� ������������������ param[Int]("id")����������� ������������������ ����������� ������������������ -����������� ������������������ Param����������� ������������������ Keyword����������� ������������������ ����������� ������������������ ����������� ������������������ var����������� ������������������ article����������� ������������������ =����������� ������������������ Article.find(id)����������� ������������������ !@GET("articles/new")����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ -����������� ������������������ 새로운 글 작성����������� ������������������ val����������� ������������������ article����������� ������������������ =����������� ������������������ new����������� ������������������ Article()����������� ������������������ !@POST("articles")����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ -����������� ������������������ 저장����������� ������������������ ����������� ������������������ val����������� ������������������ title����������� ������������������ ����������� ������������������ ����������� ������������������ =����������� ������������������ param("title")����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ val����������� ������������������ content����������� ������������������ =����������� ������������������ param("content")����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ val����������� ������������������ article����������� ������������������ =����������� ������������������ Article(title����������� ������������������ =����������� ������������������ title,����������� ������������������ content����������� ������������������ =����������� ������������������ content)����������� ������������������ val����������� ������������������ id����������� ������������������ =����������� ������������������ Article.insert(article)
![Page 289: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/289.jpg)
ROUTE별 실행 명령!@PATCH("articles/:id")����������� ������������������ -����������� ������������������ ����������� ������������������ ����������� ������������������ 수정����������� ������������������ ����������� ������������������ val����������� ������������������ id����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ =����������� ������������������ param[Int]("id")����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ val����������� ������������������ title����������� ������������������ ����������� ������������������ ����������� ������������������ =����������� ������������������ param("title")����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ val����������� ������������������ content����������� ������������������ =����������� ������������������ param("content")����������� ������������������ val����������� ������������������ articles����������� ������������������ =����������� ������������������ Article.updatel(article)����������� ������������������ !!@DELETE("articles/:id")����������� ������������������ -����������� ������������������ ����������� ������������������ ����������� ������������������ 삭제����������� ������������������ val����������� ������������������ id����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ =����������� ������������������ param[Int]("id")����������� ������������������ ����������� ������������������ -����������� ������������������ Param����������� ������������������ Keyword����������� ������������������ ����������� ������������������ ����������� ������������������ var����������� ������������������ article����������� ������������������ =����������� ������������������ Article.delete(id)����������� ������������������
![Page 290: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/290.jpg)
실력키우기
![Page 291: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/291.jpg)
스타트업
• 페이스북 그룹
• https://www.facebook.com/groups/iwantyouforstartups/
• 하루에 10+ 이상의 구인글
• 시간/연봉/복지 협상가능
• 원하는 스킬을 쌓을 수 있음
![Page 292: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/292.jpg)
스타트업
• 검증되지 않음
• 내일 망하거나 월급이 밀릴수 있음
• 인원이 적어 일이 많을 수 있음
![Page 293: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/293.jpg)
검증방법
• 인맥을 통한 확인
• 면접 혹은 전화를 통한 확인
• 스타트업은 사람들이 알고 찾아오는걸 좋아해요.
• 제품 테스트도 한번씩
![Page 294: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/294.jpg)
검증 항목• 제품에 대한 매출액(실제 사용되고 있는지, 얼마나 쓰고 있는지가 중요, 금액은 중요하지 않음)
• 사용되고 있는 스킬셋(특정한 언어/프레임웤을 사용하게 된 이유) - 사람이 없어서(x), 내가 편해서(x)
• 내부 아키텍처에 대한 설명 요구 - 확장성을 고려하여 설계
• 업부분장 및 프로세스 확인 - 업무별 일정을 어떻게 관리하는지
• 주식/투자 유치 상황
• 앞으로의 비전
![Page 295: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/295.jpg)
저는 부양가족이 있어서..
![Page 296: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/296.jpg)
개인(팀) 프로젝트
• 모바일 개인 개발자가 전체 70%
• 한달 광고수익 300만원~1억
![Page 297: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/297.jpg)
웹사이트를 만드는것도 좋아요
![Page 298: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/298.jpg)
개인(팀) 프로젝트
• 팀웤 유지가 힘듬(돈/시간)
• 혼자서는 더더욱 힘듬
![Page 299: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/299.jpg)
고려 사항
• 팀원이 몇명인지(혼자~10명)
• 가장 빠르게 만들 수 있는 방법이 무엇인지
• Spring에 익숙하다면 Play Framework를…
• 일워개장기 http://blog.rainygirl.com/?p=1266
![Page 300: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/300.jpg)
자신이 별로 없네요..
![Page 301: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/301.jpg)
커뮤니티에 가보세요• 온라인/오프라인 모임
• 다양한 관심들
• 기술 공유
• 새로운 기술들
![Page 302: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/302.jpg)
커뮤니티에 가보세요• 얼마나 오래 커뮤니티 활동을 하였는가.
• 외국 회사에서는 실력보다는 커뮤니케이션을 중요하게 여기기 때문에 커뮤니티 같은 외부활동을 중요하게 여김
![Page 303: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/303.jpg)
그냥 혼자가 좋아요
![Page 304: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/304.jpg)
오픈소스 프로젝트
• sourceForge : 150,000
• popular : 5,000
![Page 305: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/305.jpg)
국내 오픈소스
• OSS 개발자 포럼 : https://www.facebook.com/groups/567834989912160
• github.com
• 라이브러리도 오픈소스다
![Page 306: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/306.jpg)
국내 오픈소스
• 1. 오픈소스 만들기 - 자신이 만들었거나 사용하고 있는 라이브러리 올리기
• 2. 기존 오픈소스 참여하기 - 메일링 리스트 등록
![Page 307: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/307.jpg)
국내 오픈소스
• 메일링 리스트 등록
• 이슈를 받아보고 파악할 수 있음
• 오타 전문가는 되지 말자
![Page 309: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/309.jpg)
Stackoverflow
• 회사에서 바라보는 외부활동 중 하나 - 자신의 지식을 얼마나 다른 사람에게 공유가 가능한지
• 상대방이 이해할 수 있는 언어로 표현해 주는지
• 커뮤니케이션!
![Page 310: OSS개발자 포럼 캠프](https://reader037.fdocuments.net/reader037/viewer/2022100406/5585111ad8b42ac60a8b4d0d/html5/thumbnails/310.jpg)
전체����������� ������������������ 정리
• 어떠한 개발자? • 대기업만 고집하지 말자 • 기본적인 지식은 알고 시작하자 • 영역별로 다른 View • Message Queue를 이용한 버퍼링 !• Load balancing (computing)!• 최소 가치 찾기!• 더 나은 미래를 위해선 OSS, 커뮤니티