Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

예비 개발자를 위한 소프트웨어 세상 이야기

82 Aufrufe

Veröffentlicht am

예비 개발자를 대상으로 하는 소프트웨어 개발 이야기

Veröffentlicht in: Internet
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

예비 개발자를 위한 소프트웨어 세상 이야기

  1. 1. 김수보, 2020.12.02 http://subokim.wordpress.com 예비 개발자를 위한 소프트웨어 세상 이야기
  2. 2. 나는 … 2 주요회사경력 삼성SDS, KTH, 지어소프트 주요경력 공공, 금융, 통신 SI / SM 12년 인터넷서비스, 포털 6년 스타트업 5년 산업분야 이동통신 플랫폼, 서비스 SNS 서비스 (글로벌) <출처 : 김국현의 낭만 IT >
  3. 3. 성공경험들 3
  4. 4. 자료의 청중 4 아무것도 몰라요 코드는 짜봤어요 제가 핵심개발자 리딩 해봤어요. 설계할 줄 알아요. 앱 개발 서비스 사례를 중심으로…
  5. 5. 뭘 배워야 하나요? 5
  6. 6. 이 회사 6 2013.2.27 1억명 돌파기념, 26명 월간 3억명의 사용자 2012.4.9 Facebook 방문, 13명 8,000만명 사용자수 Facebook이 1조원에 인수 2010.10 런칭 3명의 개발자
  7. 7. 화면과 주요기능 7 Home – Timeline - 팔로워들의 사진이 올라온다 - 좋아요와 댓글들이 요약되어 보여진다. ➔사용자 수 * 컨텐츠 수 Filter & Upload - 사진을 선택해서 필터한 후 - 서버에 업로드 한다. ➔전송 Fail, 사진의 크기 ➔해상도 My Info - 내 정보와 내 소개 - 내가 찍은 사진들이 보여진다. ➔내 팔로워, 팔로잉 수 Popular - 인기 사진들이 보여진다. - 내 성향과 비슷한 사진들이 보 여진다. ➔인기사진 추출 정책 ➔사용자 수 * 추천 페이지 수 Notification - 내 팔로워의 알림을 수신한다. - 내 사진에 일어난 일들을 수신한다. ➔사용자 수 * 알림 수 Photos - 내가 찍은 사진과 - 좋아요와 댓글들이 모두 보인다. ➔태그, 좋아요, 댓글 ➔알림
  8. 8. 개발해야 할 기능들 8 타임라인 팔로잉 댓글 # 검색 사진 필터 해상도 조정 전송기능 타임라인 동기화 사진 보기 댓글보기 좋아요 댓글달기 타임라인 동기화 인기사진 선정처리 선호사진 선정처리 실시간 추천 사용자 검색 좋아요 알림 댓글 알림 친구활동 알림 푸쉬기능 내 정보 조회 변경 내 팔로우 정보 내 사진 조회 위치기반 조회 사용자 인증 이메일 확인 비밀번호 조회, 변경 SNS 공유 보안기능
  9. 9. 실제 서버 구성(2011) 9 ※ 번역글 : http://bit.ly/instatechhist ※ 원 문 : http://instagram-engineering.tumblr.com/post/13649370142/what-powers-instagram-hundreds-of-instances 가입자 1,400 만명, 서버 수백 대, 개발자 3명 - 심플하게 유지한다. (=기능의 추가 및 변경, 관리가 용이한 구조로 만든다.) - 바퀴를 재발명 하지 않는다. (=가능한 인프라를 활용한다.) - 가능한 명확하고 증명된 방법을 이용한다. (=최신기술의 시행착오를 줄인다.) DNS DNS WAS WAS WAS DB #1 DB #2 DB #3 WAS 1번유저 2번유저 3번유저 nginx 를 이용하여 Round Robin으로 호분배 ➔ 현재는 Amazon의 ELB를 사용 ➔ DNS는 Amazon의 Router53 사용 ➔ SSL과 ELB레벨 종료 (성능향상) High-CPU Extra Large 25대 - 7GB Memory - 20 Unit - Django Quadruple Extra Large 12대 - PostgreSQL - Horizontal Sharding Image Server Amazon S3 Cache Server Amazon CloudFront Search PostgreSQL ➔ Apache Solr - Geo Search에서 Media Search로 확장 Feed Redis Cache Memcached ➔ Elastic Cache Push Open Source twisted - Pyapns - 200개 worker Monitoring Munin, Pingdom, PagerDuty, Sentry - 100대 이상의 서버관리 Scale Out Scale Out
  10. 10. 시스템의 기술구조(범용) 10 대분류 중분류 주요 기술 비고 직업군 Front Office 단말 안드로이드, 아이폰 임베디드 트렌디하게 변함 웹기획자, 디자이너 Frontend Html, React.js, jQuery Backend Python, RoR TA, SA, DBA, NA, 소프트웨어 개발자 Middleware Django … 잘 안변함 Database PostgreSQL, Redis … 거의 안변함 Back Office Business Server Java Web Server 회계, 인사 Operating RoR, python, shell 편한 걸로 Database Oracle 거의 안변함 정확하진 않지만, 이해를 돕기위해 그냥 분류해 보았습니다.
  11. 11. 스타트업 기술구조의 변화(인터넷 서비스) 11 정답은 아니지만 많은 서비스가 이러한 패턴을 따라 성장합니다. 단말 어플 서비스로직 인프라 임대 단말 어플 서비스로직 임대 인프라 상용 데이터 단말 어플 서비스로직 임대 인프라 상용 데이터 인프라 구축 단말 어플 서비스로직 임대 인프라 상용 데이터 인프라 서비스 인프라 구축 파일럿 서비스오픈 수익화 플랫폼화 프로젝트 팀 서비스 사용자 제휴 사업자 연계 서비스 • 아이디어를 시스템화 하는 단계 • 유즈케이스 정리 • 데이터항목 정리 • 사용자 패턴에 적합 한 기술구조로 구축 • 실전 데이터 축적 • 클라우드 인프라 • 제휴사업 기능 개발 • 수익화 로직 추가 • 제휴사업용 데이터가공 • 3rd Party 기능 개발 • 수수료 기반 유통플랫폼 개발
  12. 12. 어떤 일을 하나요? 12
  13. 13. 웹 서비스 개발과정 13 아이디어 만들 것 정하기 만들기 중간 점검하기 1.0 오픈 준비하기 1.0 오픈하기 2.0 만들기 반복 • 인터뷰스킬 • 화면,UX • 기능목록도출 • 데이터목록도출 (DB구축계획) • 적정기술선정 • 프로그래밍 • 협력개발 • 컴퓨터이론 • 데이터관련 • 회의,소통 • 반영 • 일정관리 • 변경관리 • 배포관리 • 성능사항 • 보안사항 • 엔지니어링 • 작동감시 • 장애대응 • 기능재배치 • 회고 • 일정관리 • 기능추가개발 • 무중단배포관리 • 버전관리 • 사용자행동분석 • 지표관리 (통계, 분석) • 브레인스토밍 • 시장조사 • 사용자조사 • 경쟁자조사 • 서비스설계… 업무 팀 개발팀, 디자인 개발팀, 기획팀 기획팀 기획팀, 개발팀, 디자인 기획팀, 개발팀 개발팀,운영팀 (DevOps)
  14. 14. 개발자가 알아야 할 것 14 구분 내용 실력 늘이기 어플리케이션 개발 • 기획에 맞게 기능을 개발하는 것을 말합니다. • 프로젝트를 많이 해보시고, 좋은 소스 를 많이 보세요. 모델링 • 서버는 눈에 보이지 않기 때문에 모델링이 중요합니다. • 기능이 많거나 협업을 해야 한다면 필수. • 기초가 매우 중요. 좋은 책과 강의로 공부를 하세요. • 창의력과 논리적 사고가 중요합니다. 서버 엔지니어링 • 여러 개의 프로세스나 기능이 하드웨어 상에서 잘 작동하도 록 튜닝 하거나 구조를 잡는 작업을 말합니다. • 책도 없고 가르쳐 주는 곳도 없습니다. • 현업에서 배우는 수 밖에 없습니다. • 이론과 현장의 느낌이 많이 다릅니다. 시스템 엔지니어링 • 서버라는 하드웨어 자체를 튜닝하는 일을 말합니다. • OS 설정을 변경하는 일이 많습니다. 네트워크 개론 • 사설 네트워크에서는 이상하게 작동하는 경우가 있습니다. • 부하분산이 이상하게 작동하기도 합니다. • 장비 문제는 대부분 어플리케이션 변경으로 대처합니다. 시스템 소프트웨어 • Web Server, WAS, DB 등에 대해 충분한 지식이 있어야 합니 다. • 서비스 목적에 맞게 기능과 성능을 100% 활용할 수 있으면 좋습니다. • 홈페이지, 구글링을 통해서 단편적으 로 해결할 수 있습니다. • 벤더 교육을 별도로 받으세요. 아키텍쳐링 • 이 모든 것을 이해해서 전체적인 구조를 잡는 것을 말합니다. • 좋은 스승이 필요합니다. • 경험이 없으면 좋은 설계를 하기 힘듭 니다. 스타트업에 있다면 아래 일은 다 개발자 몫입니다. 다른 경우도 비슷합니다.
  15. 15. 개발자와의 커뮤니케이션 15 코드 소프트웨어의 기본단위 코드 단위 프로그램 단위 시스템 단위 성능관점 개발협력 관점 개발운영 관점 코딩 컨벤션 코드리뷰의 범위 코드리뷰의 관점 팀동료 (협업파트너) 고수 (GateKeeper) 참여자 전체가 좋은 방향으로 감정갈등이 생기지 않게 핵심으로 직진 맨날맨날 문화, 태도 공학적으로 •지속적이고, 반복할 수 있게 •성공경험이 축적되고 •발전적일 수 있게 •조직,산업별로 중점사항이 달라짐 •소프트웨어 개발능력의 확장 •기술역량향상의 핵심주체 (경험의 전달)
  16. 16. 개발자의 성장 16 아키텍쳐 학습 성능, 보안 학습 프로젝트학습 프로그래밍학습 언어학습 컴퓨터 이론 (수학, 알고리즘, 운영체제, 네트워크, 수학…) 개발환경 (IDE) 개발플랫폼 (SDK 작동환경) 도메인 기술지식 (포털,금융, 유통…) 계획하고 실험하고 자료를 모으고 공부,숙고,평가 새로운 사실에 기반한 변경 목표와 의도 재점검
  17. 17. 왜 협업을 해야 하나요? 17
  18. 18. 기업의 생존 부등식 18 제품의 가치 > 제품의 가격 > 제품의 원가 고객이 느끼는 만족감 판매전략, 영업전략 = 수익극대화 = 시설비 + 재료비 + (투입인력 인건비 x 투입시간) Completeness 1 + 1 >= 2(팀파워) Agility
  19. 19. 복잡성 증가의 법칙 19 서버 장비 15대 DB Table 200여개 Internal API 150여개 웹화면 100개 단말화면 100개 3개 인프라 사용(캐쉬, 쿠폰, 회원) 개발기간 1년 + 운영기간 1년
  20. 20. 우당탕탕의 법칙 20 TYPE I TYPE II TYPE III 기획 후 성공 기획, 개발 후 성공 우당탕탕 1 + 1 >= 2 사람 도구 여러 사람이 모였는데 일 하는 사람은 한 사람 (안습) 팀이란 그 사람의 경험과 능력을 이용해서 결과물을 만드는 모임 마음은 투명하게 보이지 않는다. ‘내 마음을 알아맞춰봐’ ???????? 성공의 유형 핵심 성공 요인 Team Energy갈굼 에너지… 노예 에너지 올라타기 방법론 혼자하기 방법론 …
  21. 21. 망하는 회사 = 빚 21 ※ Greg Duncan 블로그(2013.12), 실로콘밸리, MS Developer 이 사람이 일의 99%를 함 언제나 생각이 없음 도와주겠다고 이야기하지만 절대 그러지 않음 시작할 때 사라져서 절대 다시는 나타나지 않는 사람
  22. 22. 경력자를 찾는 이유 22 컴퓨터 이론 프로그래밍 기초 네트워크 이론 프로그래밍 실습 빅데이터 과정 파이썬 과정 컴퓨터 이론 프로그래밍 기초 네트워크 이론 프로그래밍 실습 빅데이터 과정 파이썬 과정 컴퓨터 이론 프로그래밍 기초 네트워크 이론 프로그래밍 실습 빅데이터 과정 파이썬 과정 개인 학부 과정 취업 과정 교육현장(돈 내는 사람) 기업현장(돈 받는 사람) 엘리베이터 운용소프트웨어를 만들어주세요. 문제인식, 해결방안 탐구 문제인식, 해결방안 탐구 시스템 구조 설계 프로그램 개발 테스트, 적용 운용, 사후대응 관리자페이지 알고리즘 개발 운용프로그램 개발 형상관리 DevOps 환경 코드 리뷰 비즈니스 데이터 GAP
  23. 23. 어떤 회사로 가야 하나요? 23
  24. 24. 얼마나 많은 종사자들이 있을까? 24 경제활동인구수 2,657만명 우리나라인구수 5,143만명 정보통신관련직 종사자수 32.9만명(1.2%) • 서울시와 경기도에 78%의 종사자가 근무 • 위 통계는 - SI, 아웃소싱, 컨설팅 등의 분야 - 삼성전자, 네이버 등은 제외 ※ 출처 : 고용노동부, 2015
  25. 25. 어떤 회사들이 있을까? 25 • 대부분 전산실만 운영하고 시스템 구축은 SI 용역으로 발주함. • SI영역은 기술 난이도보다 업무 숙련도가 높은 인력을 선호함. • 인터넷 서비스 업체는 자체 개발실을 운영함. 제조 건축 국방 금융 공공행정 유통 통신 인터넷 전산운영실 (HW, NW, SW운영팀) XXX 시스템즈 (슈퍼 을) 우수 협력업체 A 우수 협력업체 B 우수 협력업체 C 전문기술 업체 인력조달 우수업체 솔루션 업체 HW업체 운영업체 서비스 업체 인력조달 업체 인력조달 업체 인력조달 업체 프리랜서 프리랜서 프리랜서 프리랜서 개발실 컨설팅 시스템 감리
  26. 26. 인터넷 서비스 26
  27. 27. 어떤 직업들이 있을까? 27 사업담당자 영업담당자 System Administrator Network Operator 오라클 영업사원 오라클 SE HP 영업사원 HP SE HP CE UI/UX Designer 서비스 기획자(담당자) Database Administrator System Administrator SW개발자 System Operator Database Administrator SW개발자 프로젝트 리더 프로젝트 매니저 Technical Architect System Architect Frontend Architect Database Administrator Web Designer 서비스 기획자 SI 회사 일반 기업 시스템/솔루션 벤더 인터넷 서비스 회사 IT 컨설팅 시스템 감리 IT서비스 회사 영업사원 연구소장 Quality Assurance Quality Control UI/UX Designer 서비스 기획자(담당자) SW개발자 스타트업
  28. 28. 만랩이 되면 어떻게 되나? 28 T 자형 인재는 어느 분야에서든 선호하지만 IT도 마찬가지입니다. 그러나 역시 개발자 고유의 가 치는 ‘기술구현능력’입니다. 기술구현능력에 집중하십시요. 실리콘밸리는 연간 110억불이 투자 되는 지역으로 인재상이 기술력에 집중되어 있기도 합니다. 수작업 전산화 기존 산업 효율화 공장자동화 포털 인터넷 서비스 인터넷 쇼핑몰 자동차 컴퓨터 게임 기존 산업 혁신 IT 인프라 및 부품 플랫폼 클라우드 문제 발견 능력 문제 해결 능력 기술 구현 능력 (설계, 코딩 포함) 협업 능력 문제 개선 능력 업무 전문지식 자형 인재 만랩은, 업무이해력 구조화 능력 통찰력 도전적기술력 원천기술력 대용량 구조 기술적 순발력 소프트웨어가 필요한 곳 주요요구능력 요약하자면
  29. 29. Last Question! 29

×