SlideShare a Scribd company logo
1 of 39
제13회 한국자바개발자 컨퍼런스




Server Side Software Development


          Server Side Architect Group
     http://www.facebook.com/groups/serverside
         조대협 (bwcho75@gmail.com)
제13회 한국자바개발자 컨퍼런스




필자 소개

조대협
•    개발자
•    웹로직 기술 지원
•    장애 진단, 성능 튜닝
•    컨설턴트(SOA,EAI,ALM)
•    아키텍트(대용량 분산 시스템)
•    클라우드 컴퓨팅 APAC 아키텍트
•    프리렌서
•    지금은 Chief(Cheap?) 아키텍트
                                  지금은 수원으로 출근해요

    블로그 : http://bcho.tistory.com
    서버사이드 아키텍트 그룹 : http://www.facebook.com/groups/serverside
    이메일 : bwcho75@gmail.com
오늘 이야기 할것은?    제13회 한국자바개발자 컨퍼런스



 • 서버 사이드 개발
시간 관계상…                    제13회 한국자바개발자 컨퍼런스



 • 4가지




   개발 프로세스   개발도구   아키텍쳐       테스트


         시간이 짧아서, 요점만 간단히!!
요즘 트랜드는?                               제13회 한국자바개발자 컨퍼런스



 • 요즘 잘 나가는 실리콘 밸리 START UP




                    No more vendor
  소규모 조직 [10~20명]    스스로 하자!!         잘하는 것 부터 해서 발전
                                     애자일
    클라우드 컴퓨팅   오픈 소스                         Devops
제13회 한국자바개발자 컨퍼런스




Software Development Life Cycle

개발프로세스
개발 프로세스                              제13회 한국자바개발자 컨퍼런스




                                             소프트웨어 개발
                                                  현실?

 개발자의 현실         관리자의 현실            소프트웨어 결과물
 • 요구 사항 추가 변경   •항상 99.999 % 완료    • 짚으로 만든집
 • 문서,교육,미팅,보고   •항상 야근, 근데 모하는지?   • 낮은 품질. 버그 투성이
 • 야근            •릴리즈는 언제?          • 실패한 프로젝트는 없다.
 • 티도 안나는 일      •위험 요소는 모지?        • 끝나고 바로 고도화 프로젝트 시작
                 •이슈는 모야?
                 •일의 우선 순위?




 결과물….
개발 프로세스                             제13회 한국자바개발자 컨퍼런스




    <Insert Picture Here>




                                          그래서…
                            저명한 박사님들께서.. 방법론을 만드시니..
                                           RUP,CBD,CMMI
개발 프로세스               제13회 한국자바개발자 컨퍼런스




But…




          그러나 현실은
           방법론은 방법론…
           우리는 조금 더 현실적인 방법론이 필요합니다.
개발 프로세스                                         제13회 한국자바개발자 컨퍼런스




                                                         실용주의 방법론

 • 실용주의 방법론
   – Erich Gamma, Joel Spolsky, Kent beck, Andrew Hunt
   – Iterative & Incremental
   – 애자일 기반
 • 기존 방법론과 차이
   – 요구 사항이 변화할 것을 가정
   – 에러가 있을 것을 가정하여, 자주 테스트
   – 협업과 커뮤니케이션
개발 프로세스                                                           제13회 한국자바개발자 컨퍼런스



 • 대표적인 개발 방법론




                                                                   스크럼이 대세!!

  http://agilescout.com/learn-more-agile-software-development-   관리자 입장에서는 예측 불가
                       methods-this-year/
                                                                  조직에 맞게 바꿔서 쓰세요
개발 프로세스                     제13회 한국자바개발자 컨퍼런스



 • 대안 - Big Umbrella 방법론


                              전체 개발은
                           WATERFALL등 전통
                            적인 방법론 사용




                           각 단계를 세분화 하여
                            애자일 방법론 적용




        관리층에는 예측성, 실무진에게는 실용성
개발 프로세스                                               제13회 한국자바개발자 컨퍼런스



 • 어떻게?

      분석                  설계                 개발              테스팅



      Iteration N               Iteration N+1               Iteration N+2
 분석   설계     개발     테스팅    분석   설계      개발      테스팅    분석   설계      개발      테스팅




                     성능 테스트                     성능 테스트
 어려운 것                                                               쉬운것
 중요한것                                                            없어도 되는것



                          이건 주요 단계마다!!
개발 프로세스                                                                                 제13회 한국자바개발자 컨퍼런스



 • 태스크 흐름


              Open                   Assigned               In Progress               Resolved        Closed




               PL        Developer          Developer       Developer                 Developer         PL

   PL creates detail task for developer.
   Task is usually finished 1~4 day. (1~2
   days are recommended)

   Discuss with developer and estimate time.
   Assign the time to task                                      PL

              Need                                           Postponed
              more
           Information
                                                        Developer discuss with PL
                                                        PL lets developer to postpone the sub task.
                                                        The postponed task should be finished in
                                                        same iteration phase. Or closed
개발 프로세스                       제13회 한국자바개발자 컨퍼런스



 • 도구들
                •   Atlassian JIRA ** + Green Hopper
                •   Redmine (Open source) *
                •   Trac
                •   Mantis
                ※ Off Site 개발에 유리




               도구는 도구일뿐, 프로세스를 정립
                 하고 실천하는 것이 우선!!


  내가 휴가를 떠나더라도, 다른 사람이 태스크 노트
        만 보고 일을 할 수 있도록
개발 프로세스                제13회 한국자바개발자 컨퍼런스



 • 액셀부터 시작하세요




                • JIRA가 멋지긴 하지만,
                • 액셀로도 10~15명 팀 프로젝트 관리는
                  충분 합니다.
                • 프로세스가 성숙되면 툴을 고민하세요
제13회 한국자바개발자 컨퍼런스




Development Environment

개발 환경
개발 환경                             제13회 한국자바개발자 컨퍼런스


 • 흔한 개발 환경 시나리오
   – 개발자가 아침에 출근해서
   – 이클립스를 키고, 소스코드를 Git에서 Check Out 한후
   – JIRA를 통해서 오늘 할당된 작업을 확인 한후에 코딩을 하고
   – PC에서 Junit등을 이용하여 단위테스트등을 모두 끝 마치고
   – 코드를 Git에 Commit하면
   – Jekins에서 코드 변경을 감지하여, 자동으로 Check Out해서 mvn을
     이용해서 컴파일 하고, 테스트 서버에 배포해서 단위 테스트를 모두
     수행하고, 코드의 라인커버리지를 분석하여 리포팅 한다.
   – 팀장은 빌드가 완료되었음을 확인하고, 단위 테스트 100% 완료 및
     라인 커버리지 80% 완료를 확인한다.
   – 릴리즈 날짜가 오면, 배포 엔지니어는 별도의 작업 없이 Jekins에서
     빌드된 그날 WAR를 확인하고, Fabric으로 된 배포 스크립트를 수행
     하면, 자동으로 개발,QA 환경으로 배포가 되고, 환경별로 필요한
     resource 파일들이 자동으로 customization해서 배포가 완료된 후,
     Junit 기반의 단위 테스트, SOAP UI 기반의 REST API 테스트,
     Seleniuem 기반의 UI 테스트까지 자동으로 완료 한다. 만약에 배포나
     테스트가 실패하면, 이전 버전으로 자동 롤백한다.
               다들 이 정도는 하시져?
개발 환경                        제13회 한국자바개발자 컨퍼런스



 • 툴셋업 보다는 실천



  일일 빌드
         80% 라인 커버리지
                              빌드 태깅
              테스트 자동화
  daily check out & commit
개발 환경                               제13회 한국자바개발자 컨퍼런스



 • DEV,QA & STAGE
          자동 빌드       배포 시스템

                               Python Fabric

                               Ruby Capistrano


               릴리즈             테스트完


         DEV            QA                    STAGE

                    가상화 or 클라우드
                     필요할때만 전개




                                                       단말 (모바일)
                                     연계 시스템


                                               클라이언트
제13회 한국자바개발자 컨퍼런스




Server Side Architecture

서버 아키텍쳐
아키텍쳐                                  제13회 한국자바개발자 컨퍼런스



 • 기술 트랜드의 변화

    예전의 기술 트랜드              현재의 기술 트랜드
    기업 중심의 벤더 주도형        SNS 중심의 서비스회사 주도형
     IBM,HP,Oracle,MS   Google,Facebook,Amazon,Apache


  웹로직,오라클,EJB,J2EE
   몇몇 기술만 알던 시대           수 많은 오픈소스 조합




                                                        뉴타입?
    HP 수퍼돔 같은             x86 기반 분산 시스템
    소수의 대형 서버               , 클라우드 컴퓨팅
                               (Devops)


       벤더 지원                      구글링
아키텍쳐            제13회 한국자바개발자 컨퍼런스



 • 아키텍쳐 설계 순서
아키텍쳐                            제13회 한국자바개발자 컨퍼런스



 • 일반적인 서버 아키텍쳐

                  •   계정계 시스템
    내부 트렌젝션 처리    •   OLTP
     (동기/비동기)     •   비지니스 로직


                  •   대외계
                  •   EAI (Enterprise Application Integration),
       시스템간 연동
                      AIA,
                  •   시스템간, 컴포넌트간, 데이타 센터간 연계



    통계 분석, 리포팅    • 정보계
                  • OLAP,BI,빅데이타



         운영
아키텍쳐           제13회 한국자바개발자 컨퍼런스


 • 레퍼런스 아키텍쳐
아키텍쳐      제13회 한국자바개발자 컨퍼런스



 • 컴포넌트
아키텍쳐                                                           제13회 한국자바개발자 컨퍼런스


 • 솔루션
        분류                        컴포넌트                               솔루션
                        User Interface Layer          JQuery,bootstrap,ExtJs,HighChart
                        Reverse Proxy                 Apache, NginX,HAProxy
                        Enterprise Service Bus        Mule, ServiceMix
                        Message Queue                 Rabbit MQ,Active MQ,Zero MQ
                        Data Grid                     memcached,redis,Oracle coherence
      Internal
   Business Logic       Sync Transaction Processing   Tomcat,Jboss,Netty,Jetty
                        Working Space                 Gluster FS
                        RDBMS                         MySQL, MariaDB
                        File System                   Openstack Swift
                        NoSQL                         mongodb,cassandra,hbase
                        Protocol                      REST JSON/HTTP, Thrift, Protocol Buffer
 External Integration   Integration                   Apache Camel
                        Log Gathering                 Flume, Pentaho (ETL)
                        CEP                           Esper
     Reporting
                        Transform & Analysis          Hadoop, Hive, Pig,Sqoop,R, Mahout
                        Reporting                     Postgres,Redshift
                        Coordinator                   Zookeeper
     Operation          Monitoring                    Nagios,Ganglia,Zabbix,Cacti
                        Configuration mgmt            Puppet,Chef,Fabric
아키텍쳐                                   제13회 한국자바개발자 컨퍼런스



 • Global roll out 시스템의 설계
   1. 위치 선정



                                       •   법적 이슈
                                       •   회선 속도
                                       •   세금
                                       •   3 센터 : 미서부,영국,중국




   2. API 라우팅
     • ESB (Enterprise Service Bus)를 이용한 라우팅
   3. 데이타 복제
      • ETL, CDC
      • 과연 데이타 복제가 필요할까? (한국에서 미국 출장간 사용자)
아키텍쳐                                제13회 한국자바개발자 컨퍼런스



 • 클라우드 컴퓨팅상의 아키텍쳐 설계
    클라우드 컴퓨팅의 장점           설계시 고려 사항

                                느려요
        빠른 시장 진입
                            IO Performance



         운영비 절감               싸지 않아요



       초기 투자비 절감          기존 솔루션이 안돌아요



       유연한 자원 사용             장애가 납니다.
       (Auto Scale Out)   (멀티 데이타 센타 설계)
아키텍쳐                                   제13회 한국자바개발자 컨퍼런스


 • 그리고




         스크립트 언어 하나 정도는 더 해놔야…
         Python,Ruby,Scala,Clojure,Erlang ….
제13회 한국자바개발자 컨퍼런스




Testing

테스트
테스트                            제13회 한국자바개발자 컨퍼런스



 • 테스팅 모델

 단계                개발 단계               제품 출시전

 주체     개발자                 테스트팀

 타입           화이트 박스               블랙 박스


 레벨   단위 테스트      통합 테스트   시스템 테스트     인수 테스트


      기능 중심      컴포넌트간     비 기능      UX & VOC
                 연계성       ① 성능      법률 체크
                           ② 장애      운영성
                           ③ 확장성
                           ④ 안정성
테스트                            제13회 한국자바개발자 컨퍼런스



 • 테스트 레벨별 키 포인트

            • 컴포넌트 기능 검증
  단위 테스트    • 회귀 (regression) 테스트
            • 라인 커버리지

            • End2End 시나리오 검증
  통합 테스트    • 인터페이스 검증 (메세지)
            + 기능 검증 (다른 사람이!!)

            • 성능 및 비기능(장애)
 시스템 테스트
            • 최대 용량


           • UX
  인수 테스트
           • 출시 여부 결정
테스트                                     제13회 한국자바개발자 컨퍼런스



 • 시스템 테스트는 짚고 넘어 갑시다.
  – 언제? 주요 릴리즈 때 마다. (한달에 한번? 두달에 한번?)
  – 기능 검증(통합 테스트를 포함 가능) + 비기능 검증
  – 비기능 검증
      종류         테스트 방법                 측정 가능 항목
      성능   단일 거래 테스트               성능 및 용량 측정
           복합 거래 테스트 **            병목 발견
      장애   WAS 장애 kill -9 tomcat   장애 대응성
           DB 장애 kill -9 mysqld    복구 시간
           서버 장애 전원끄기
           네트워크 장애 랜선 뽑기
   확장성     부하 주면서 톰캣 늘리기           증설에 필요한 용량 산정
   안정성     7일동안 부하 주기              메모리 누수, 디스크 용량 체크
테스트                     제13회 한국자바개발자 컨퍼런스



 • 마이크로 벤치 마크 테스트
  –   기술 검증
  –   1~2일 소요
  –   30 vuser 정도의 부하
  –   SOAP UI, Python
테스트                               제13회 한국자바개발자 컨퍼런스



 • 테스트 절차

                • 테스트 범위 및 목표 정의
   테스트 계획 **    • 조직 및 스케쥴 정의 **
                • 테스트 도구 결정

                • 테스트 대상 시스템 분석 (리버스 엔지니어링)
 테스트 분석 및 디자인   • 테스트 환경 디자인 및 구성
                • 상세 테스트 시나리오 정의

                • 개통 ** [오래 걸림]
   구현 및 수행      • 수행
                • 로깅 [중요]

                • 결과 정리
  평가 및 리포팅 *    • 문서화
                • 개선 사항 리포팅
테스트                                      제13회 한국자바개발자 컨퍼런스


 • 코드 리뷰
  – 투자 대비 효율 최고
  – 코드 리뷰는 문화 (정기적으로 수행, 자유로운 의견 교환, 창던지
    기 금지)
  캐주얼                                                      정식

   Peer review    Walk Through    Team review     Inspection


  사수와 부사수        서로 돌아가면서        팀장이나 시니어       전문 inspector 사
                 발표와 의견 교환         가 주도               용
                   이 목적
                 발표자가 스스로        사회자가 리뷰 대
                  주제를 정함         상을 지정하여 수
                                 행.

                                 리뷰의 결과는 다
                                 음 태스크에 반영
테스트                                        제13회 한국자바개발자 컨퍼런스



 • 테스트 도구
      종류              테스트 방법                  측정 가능 항목
  단위 테스트     • JUnit **, TestNG
  커버리지분석     • Cobertura,EMMA                  단위 테스트
   Mock up   • EasyMock, Mockito
 인터페이스 테스트   • SOAPUI **                   단위테스트, 통합 테스트
   부하 생성     • nGrinder (Jython) **
                                              시스템 테스트
             • Multi-mechanize (Python)
   모니터링      • Cacti,Gaglia (인프라)
             • Jennifer (APM)                 시스템 테스트
             • Jconsole, Visual VM (JVM)
제13회 한국자바개발자 컨퍼런스




                더 자세한 이야기는
http://bcho.tistory.com/category/조대협의%20소프트웨어%20개발


                       AND

                   사람 뽑습니다.
            이렇게 서버 개발 해보고 싶으신분들은
                 bwcho75@gmail.com

                단.. 수원 출퇴근입니다.
          (강남까지 30분 통근 버스 다녀요~ 그리고 세
                  끼 무료 식사 제공)

More Related Content

What's hot

빠르게훓어보는 Node.js와 Vert.x
빠르게훓어보는 Node.js와 Vert.x빠르게훓어보는 Node.js와 Vert.x
빠르게훓어보는 Node.js와 Vert.xTerry Cho
 
Service operation
Service operationService operation
Service operationTerry Cho
 
서비스 지향 아키텍쳐 (SOA)
서비스 지향 아키텍쳐 (SOA)서비스 지향 아키텍쳐 (SOA)
서비스 지향 아키텍쳐 (SOA)Terry Cho
 
기술적 변화를 이끌어가기
기술적 변화를 이끌어가기기술적 변화를 이끌어가기
기술적 변화를 이끌어가기Jaewoo Ahn
 
대용량 분산 아키텍쳐 설계 #1 아키텍쳐 설계 방법론
대용량 분산 아키텍쳐 설계 #1 아키텍쳐 설계 방법론대용량 분산 아키텍쳐 설계 #1 아키텍쳐 설계 방법론
대용량 분산 아키텍쳐 설계 #1 아키텍쳐 설계 방법론Terry Cho
 
대용량 분산 아키텍쳐 설계 #3 대용량 분산 시스템 아키텍쳐
대용량 분산 아키텍쳐 설계 #3 대용량 분산 시스템 아키텍쳐대용량 분산 아키텍쳐 설계 #3 대용량 분산 시스템 아키텍쳐
대용량 분산 아키텍쳐 설계 #3 대용량 분산 시스템 아키텍쳐Terry Cho
 
Jbug 발표 msa탐방기_공유자료
Jbug 발표 msa탐방기_공유자료Jbug 발표 msa탐방기_공유자료
Jbug 발표 msa탐방기_공유자료jbugkorea
 
Ch6 대용량서비스레퍼런스아키텍처 part.1
Ch6 대용량서비스레퍼런스아키텍처 part.1Ch6 대용량서비스레퍼런스아키텍처 part.1
Ch6 대용량서비스레퍼런스아키텍처 part.1Minchul Jung
 
1. 아키텍쳐 설계 프로세스
1. 아키텍쳐 설계 프로세스1. 아키텍쳐 설계 프로세스
1. 아키텍쳐 설계 프로세스Terry Cho
 
마이크로서비스 아키텍처로 개발하기
마이크로서비스 아키텍처로 개발하기마이크로서비스 아키텍처로 개발하기
마이크로서비스 아키텍처로 개발하기Jaewoo Ahn
 
SOSCON2015 SI이노베이션
SOSCON2015 SI이노베이션SOSCON2015 SI이노베이션
SOSCON2015 SI이노베이션DoHyun Jung
 
SLiPP 스터디 - MSA
SLiPP 스터디 - MSASLiPP 스터디 - MSA
SLiPP 스터디 - MSADaekwon Kang
 
5. 솔루션 카달로그
5. 솔루션 카달로그5. 솔루션 카달로그
5. 솔루션 카달로그Terry Cho
 
소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해
소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해
소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해Terry Cho
 
Micro Service Architecture(MSA) 탐방기
Micro Service Architecture(MSA) 탐방기Micro Service Architecture(MSA) 탐방기
Micro Service Architecture(MSA) 탐방기jbugkorea
 
2013 빅데이터 및 API 기술 현황과 전망- 윤석찬
2013 빅데이터 및 API 기술 현황과 전망- 윤석찬2013 빅데이터 및 API 기술 현황과 전망- 윤석찬
2013 빅데이터 및 API 기술 현황과 전망- 윤석찬Channy Yun
 
Open Cloud Engine PaaS Snapshots
Open Cloud Engine PaaS SnapshotsOpen Cloud Engine PaaS Snapshots
Open Cloud Engine PaaS SnapshotsuEngine Solutions
 
서버 아키텍쳐 입문
서버 아키텍쳐 입문서버 아키텍쳐 입문
서버 아키텍쳐 입문중선 곽
 
SK플래닛_README_마이크로서비스 아키텍처로 개발하기
SK플래닛_README_마이크로서비스 아키텍처로 개발하기SK플래닛_README_마이크로서비스 아키텍처로 개발하기
SK플래닛_README_마이크로서비스 아키텍처로 개발하기Lee Ji Eun
 
Process Oriented Architecture
Process Oriented ArchitectureProcess Oriented Architecture
Process Oriented ArchitectureuEngine Solutions
 

What's hot (20)

빠르게훓어보는 Node.js와 Vert.x
빠르게훓어보는 Node.js와 Vert.x빠르게훓어보는 Node.js와 Vert.x
빠르게훓어보는 Node.js와 Vert.x
 
Service operation
Service operationService operation
Service operation
 
서비스 지향 아키텍쳐 (SOA)
서비스 지향 아키텍쳐 (SOA)서비스 지향 아키텍쳐 (SOA)
서비스 지향 아키텍쳐 (SOA)
 
기술적 변화를 이끌어가기
기술적 변화를 이끌어가기기술적 변화를 이끌어가기
기술적 변화를 이끌어가기
 
대용량 분산 아키텍쳐 설계 #1 아키텍쳐 설계 방법론
대용량 분산 아키텍쳐 설계 #1 아키텍쳐 설계 방법론대용량 분산 아키텍쳐 설계 #1 아키텍쳐 설계 방법론
대용량 분산 아키텍쳐 설계 #1 아키텍쳐 설계 방법론
 
대용량 분산 아키텍쳐 설계 #3 대용량 분산 시스템 아키텍쳐
대용량 분산 아키텍쳐 설계 #3 대용량 분산 시스템 아키텍쳐대용량 분산 아키텍쳐 설계 #3 대용량 분산 시스템 아키텍쳐
대용량 분산 아키텍쳐 설계 #3 대용량 분산 시스템 아키텍쳐
 
Jbug 발표 msa탐방기_공유자료
Jbug 발표 msa탐방기_공유자료Jbug 발표 msa탐방기_공유자료
Jbug 발표 msa탐방기_공유자료
 
Ch6 대용량서비스레퍼런스아키텍처 part.1
Ch6 대용량서비스레퍼런스아키텍처 part.1Ch6 대용량서비스레퍼런스아키텍처 part.1
Ch6 대용량서비스레퍼런스아키텍처 part.1
 
1. 아키텍쳐 설계 프로세스
1. 아키텍쳐 설계 프로세스1. 아키텍쳐 설계 프로세스
1. 아키텍쳐 설계 프로세스
 
마이크로서비스 아키텍처로 개발하기
마이크로서비스 아키텍처로 개발하기마이크로서비스 아키텍처로 개발하기
마이크로서비스 아키텍처로 개발하기
 
SOSCON2015 SI이노베이션
SOSCON2015 SI이노베이션SOSCON2015 SI이노베이션
SOSCON2015 SI이노베이션
 
SLiPP 스터디 - MSA
SLiPP 스터디 - MSASLiPP 스터디 - MSA
SLiPP 스터디 - MSA
 
5. 솔루션 카달로그
5. 솔루션 카달로그5. 솔루션 카달로그
5. 솔루션 카달로그
 
소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해
소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해
소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해
 
Micro Service Architecture(MSA) 탐방기
Micro Service Architecture(MSA) 탐방기Micro Service Architecture(MSA) 탐방기
Micro Service Architecture(MSA) 탐방기
 
2013 빅데이터 및 API 기술 현황과 전망- 윤석찬
2013 빅데이터 및 API 기술 현황과 전망- 윤석찬2013 빅데이터 및 API 기술 현황과 전망- 윤석찬
2013 빅데이터 및 API 기술 현황과 전망- 윤석찬
 
Open Cloud Engine PaaS Snapshots
Open Cloud Engine PaaS SnapshotsOpen Cloud Engine PaaS Snapshots
Open Cloud Engine PaaS Snapshots
 
서버 아키텍쳐 입문
서버 아키텍쳐 입문서버 아키텍쳐 입문
서버 아키텍쳐 입문
 
SK플래닛_README_마이크로서비스 아키텍처로 개발하기
SK플래닛_README_마이크로서비스 아키텍처로 개발하기SK플래닛_README_마이크로서비스 아키텍처로 개발하기
SK플래닛_README_마이크로서비스 아키텍처로 개발하기
 
Process Oriented Architecture
Process Oriented ArchitectureProcess Oriented Architecture
Process Oriented Architecture
 

Similar to 제13회컨퍼런스 조대협 서버사이드개발

[오픈소스컨설팅]Session 6. scrum과 jira 기반의 소프트웨어 개발 프로세스
[오픈소스컨설팅]Session 6. scrum과 jira 기반의 소프트웨어 개발 프로세스[오픈소스컨설팅]Session 6. scrum과 jira 기반의 소프트웨어 개발 프로세스
[오픈소스컨설팅]Session 6. scrum과 jira 기반의 소프트웨어 개발 프로세스Hee Jae Lee
 
[NDC17] 왓 스튜디오 서비스파트
[NDC17] 왓 스튜디오 서비스파트[NDC17] 왓 스튜디오 서비스파트
[NDC17] 왓 스튜디오 서비스파트Chanwoong Kim
 
DevOps 시대의 새로운 Role - Full Cycle Developer
DevOps 시대의 새로운 Role - Full Cycle DeveloperDevOps 시대의 새로운 Role - Full Cycle Developer
DevOps 시대의 새로운 Role - Full Cycle Developer창훈 현
 
[네이버오픈소스세미나] egjs-view360 개발기 - 김희재
[네이버오픈소스세미나] egjs-view360 개발기 - 김희재[네이버오픈소스세미나] egjs-view360 개발기 - 김희재
[네이버오픈소스세미나] egjs-view360 개발기 - 김희재NAVER D2
 
Nginx Testing in NAVER
Nginx Testing in NAVERNginx Testing in NAVER
Nginx Testing in NAVER형근 송
 
ALM과 DevOps 그리고 Azure DevOps
ALM과 DevOps 그리고 Azure DevOpsALM과 DevOps 그리고 Azure DevOps
ALM과 DevOps 그리고 Azure DevOpsTaeyoung Kim
 
개발 생산성 향상 기법 V1.2
개발 생산성 향상 기법 V1.2개발 생산성 향상 기법 V1.2
개발 생산성 향상 기법 V1.2Daniel Lim
 
성장하는 스타트업의 프로세스 개척기
성장하는 스타트업의 프로세스 개척기성장하는 스타트업의 프로세스 개척기
성장하는 스타트업의 프로세스 개척기DomainDriven DomainDriven
 
모바일 앱 개발을 위한 Agile 적용
모바일 앱 개발을 위한 Agile 적용모바일 앱 개발을 위한 Agile 적용
모바일 앱 개발을 위한 Agile 적용Kevin Kim
 
AWS와 함께하는 DevOps이야기 :: 박선용 :: AWS Summit Seoul 2016
AWS와 함께하는 DevOps이야기 :: 박선용 :: AWS Summit Seoul 2016AWS와 함께하는 DevOps이야기 :: 박선용 :: AWS Summit Seoul 2016
AWS와 함께하는 DevOps이야기 :: 박선용 :: AWS Summit Seoul 2016Amazon Web Services Korea
 
코프링 프로젝트 투입 일주일 전: 주니어 개발자의 코틀린 도입 이야기
코프링 프로젝트 투입 일주일 전: 주니어 개발자의 코틀린 도입 이야기코프링 프로젝트 투입 일주일 전: 주니어 개발자의 코틀린 도입 이야기
코프링 프로젝트 투입 일주일 전: 주니어 개발자의 코틀린 도입 이야기Seokjae Lee
 
소프트웨어 개발 프로세스 개선
소프트웨어 개발 프로세스 개선소프트웨어 개발 프로세스 개선
소프트웨어 개발 프로세스 개선Jung Dohyun
 
신림프로그래머모임_개발프로세스개선기
신림프로그래머모임_개발프로세스개선기신림프로그래머모임_개발프로세스개선기
신림프로그래머모임_개발프로세스개선기none
 
Mastering devops with oracle 강인호
Mastering devops with oracle 강인호Mastering devops with oracle 강인호
Mastering devops with oracle 강인호Inho Kang
 
git + Pull Request + Code Review and Project Management with Agile
git + Pull Request + Code Review and Project Management with Agilegit + Pull Request + Code Review and Project Management with Agile
git + Pull Request + Code Review and Project Management with AgileWooseong Kim
 
커뮤니티와 함께한 예비개발자 성장기- 조성수님
커뮤니티와 함께한 예비개발자 성장기- 조성수님커뮤니티와 함께한 예비개발자 성장기- 조성수님
커뮤니티와 함께한 예비개발자 성장기- 조성수님NAVER D2
 
How to implement your dream 20150427
How to implement your dream 20150427How to implement your dream 20150427
How to implement your dream 20150427Will Kim
 
오픈소스 컨트리뷰톤 2020 backend.ai 발표자료
오픈소스 컨트리뷰톤 2020 backend.ai 발표자료오픈소스 컨트리뷰톤 2020 backend.ai 발표자료
오픈소스 컨트리뷰톤 2020 backend.ai 발표자료지원 정
 
VSTS와 Azure를 이용한 팀 프로세스 관리
VSTS와 Azure를 이용한 팀 프로세스 관리VSTS와 Azure를 이용한 팀 프로세스 관리
VSTS와 Azure를 이용한 팀 프로세스 관리Gyuwon Yi
 
Open standard open cloud engine for digital business process
Open standard open cloud engine for digital business process Open standard open cloud engine for digital business process
Open standard open cloud engine for digital business process uEngine Solutions
 

Similar to 제13회컨퍼런스 조대협 서버사이드개발 (20)

[오픈소스컨설팅]Session 6. scrum과 jira 기반의 소프트웨어 개발 프로세스
[오픈소스컨설팅]Session 6. scrum과 jira 기반의 소프트웨어 개발 프로세스[오픈소스컨설팅]Session 6. scrum과 jira 기반의 소프트웨어 개발 프로세스
[오픈소스컨설팅]Session 6. scrum과 jira 기반의 소프트웨어 개발 프로세스
 
[NDC17] 왓 스튜디오 서비스파트
[NDC17] 왓 스튜디오 서비스파트[NDC17] 왓 스튜디오 서비스파트
[NDC17] 왓 스튜디오 서비스파트
 
DevOps 시대의 새로운 Role - Full Cycle Developer
DevOps 시대의 새로운 Role - Full Cycle DeveloperDevOps 시대의 새로운 Role - Full Cycle Developer
DevOps 시대의 새로운 Role - Full Cycle Developer
 
[네이버오픈소스세미나] egjs-view360 개발기 - 김희재
[네이버오픈소스세미나] egjs-view360 개발기 - 김희재[네이버오픈소스세미나] egjs-view360 개발기 - 김희재
[네이버오픈소스세미나] egjs-view360 개발기 - 김희재
 
Nginx Testing in NAVER
Nginx Testing in NAVERNginx Testing in NAVER
Nginx Testing in NAVER
 
ALM과 DevOps 그리고 Azure DevOps
ALM과 DevOps 그리고 Azure DevOpsALM과 DevOps 그리고 Azure DevOps
ALM과 DevOps 그리고 Azure DevOps
 
개발 생산성 향상 기법 V1.2
개발 생산성 향상 기법 V1.2개발 생산성 향상 기법 V1.2
개발 생산성 향상 기법 V1.2
 
성장하는 스타트업의 프로세스 개척기
성장하는 스타트업의 프로세스 개척기성장하는 스타트업의 프로세스 개척기
성장하는 스타트업의 프로세스 개척기
 
모바일 앱 개발을 위한 Agile 적용
모바일 앱 개발을 위한 Agile 적용모바일 앱 개발을 위한 Agile 적용
모바일 앱 개발을 위한 Agile 적용
 
AWS와 함께하는 DevOps이야기 :: 박선용 :: AWS Summit Seoul 2016
AWS와 함께하는 DevOps이야기 :: 박선용 :: AWS Summit Seoul 2016AWS와 함께하는 DevOps이야기 :: 박선용 :: AWS Summit Seoul 2016
AWS와 함께하는 DevOps이야기 :: 박선용 :: AWS Summit Seoul 2016
 
코프링 프로젝트 투입 일주일 전: 주니어 개발자의 코틀린 도입 이야기
코프링 프로젝트 투입 일주일 전: 주니어 개발자의 코틀린 도입 이야기코프링 프로젝트 투입 일주일 전: 주니어 개발자의 코틀린 도입 이야기
코프링 프로젝트 투입 일주일 전: 주니어 개발자의 코틀린 도입 이야기
 
소프트웨어 개발 프로세스 개선
소프트웨어 개발 프로세스 개선소프트웨어 개발 프로세스 개선
소프트웨어 개발 프로세스 개선
 
신림프로그래머모임_개발프로세스개선기
신림프로그래머모임_개발프로세스개선기신림프로그래머모임_개발프로세스개선기
신림프로그래머모임_개발프로세스개선기
 
Mastering devops with oracle 강인호
Mastering devops with oracle 강인호Mastering devops with oracle 강인호
Mastering devops with oracle 강인호
 
git + Pull Request + Code Review and Project Management with Agile
git + Pull Request + Code Review and Project Management with Agilegit + Pull Request + Code Review and Project Management with Agile
git + Pull Request + Code Review and Project Management with Agile
 
커뮤니티와 함께한 예비개발자 성장기- 조성수님
커뮤니티와 함께한 예비개발자 성장기- 조성수님커뮤니티와 함께한 예비개발자 성장기- 조성수님
커뮤니티와 함께한 예비개발자 성장기- 조성수님
 
How to implement your dream 20150427
How to implement your dream 20150427How to implement your dream 20150427
How to implement your dream 20150427
 
오픈소스 컨트리뷰톤 2020 backend.ai 발표자료
오픈소스 컨트리뷰톤 2020 backend.ai 발표자료오픈소스 컨트리뷰톤 2020 backend.ai 발표자료
오픈소스 컨트리뷰톤 2020 backend.ai 발표자료
 
VSTS와 Azure를 이용한 팀 프로세스 관리
VSTS와 Azure를 이용한 팀 프로세스 관리VSTS와 Azure를 이용한 팀 프로세스 관리
VSTS와 Azure를 이용한 팀 프로세스 관리
 
Open standard open cloud engine for digital business process
Open standard open cloud engine for digital business process Open standard open cloud engine for digital business process
Open standard open cloud engine for digital business process
 

More from Terry Cho

Kubernetes #6 advanced scheduling
Kubernetes #6   advanced schedulingKubernetes #6   advanced scheduling
Kubernetes #6 advanced schedulingTerry Cho
 
Kubernetes #4 volume &amp; stateful set
Kubernetes #4   volume &amp; stateful setKubernetes #4   volume &amp; stateful set
Kubernetes #4 volume &amp; stateful setTerry Cho
 
Kubernetes #3 security
Kubernetes #3   securityKubernetes #3   security
Kubernetes #3 securityTerry Cho
 
Kubernetes #2 monitoring
Kubernetes #2   monitoring Kubernetes #2   monitoring
Kubernetes #2 monitoring Terry Cho
 
Kubernetes #1 intro
Kubernetes #1   introKubernetes #1   intro
Kubernetes #1 introTerry Cho
 
머신러닝으로 얼굴 인식 모델 개발 삽질기
머신러닝으로 얼굴 인식 모델 개발 삽질기머신러닝으로 얼굴 인식 모델 개발 삽질기
머신러닝으로 얼굴 인식 모델 개발 삽질기Terry Cho
 
애자일 스크럼과 JIRA
애자일 스크럼과 JIRA 애자일 스크럼과 JIRA
애자일 스크럼과 JIRA Terry Cho
 
REST API 설계
REST API 설계REST API 설계
REST API 설계Terry Cho
 
머신 러닝 입문 #1-머신러닝 소개와 kNN 소개
머신 러닝 입문 #1-머신러닝 소개와 kNN 소개머신 러닝 입문 #1-머신러닝 소개와 kNN 소개
머신 러닝 입문 #1-머신러닝 소개와 kNN 소개Terry Cho
 
R 프로그래밍-향상된 데이타 조작
R 프로그래밍-향상된 데이타 조작R 프로그래밍-향상된 데이타 조작
R 프로그래밍-향상된 데이타 조작Terry Cho
 
R 프로그래밍 기본 문법
R 프로그래밍 기본 문법R 프로그래밍 기본 문법
R 프로그래밍 기본 문법Terry Cho
 
R 기본-데이타형 소개
R 기본-데이타형 소개R 기본-데이타형 소개
R 기본-데이타형 소개Terry Cho
 
Redis data modeling examples
Redis data modeling examplesRedis data modeling examples
Redis data modeling examplesTerry Cho
 
대용량 분산 아키텍쳐 설계 #5. rest
대용량 분산 아키텍쳐 설계 #5. rest대용량 분산 아키텍쳐 설계 #5. rest
대용량 분산 아키텍쳐 설계 #5. restTerry Cho
 
대용량 분산 아키텍쳐 설계 #2 대용량 분산 시스템 아키텍쳐 디자인 패턴
대용량 분산 아키텍쳐 설계 #2 대용량 분산 시스템 아키텍쳐 디자인 패턴대용량 분산 아키텍쳐 설계 #2 대용량 분산 시스템 아키텍쳐 디자인 패턴
대용량 분산 아키텍쳐 설계 #2 대용량 분산 시스템 아키텍쳐 디자인 패턴Terry Cho
 
14회 jco 컨퍼런스 조대협의 소프트웨어 개발 배포용
14회 jco 컨퍼런스 조대협의 소프트웨어 개발 배포용14회 jco 컨퍼런스 조대협의 소프트웨어 개발 배포용
14회 jco 컨퍼런스 조대협의 소프트웨어 개발 배포용Terry Cho
 
자바 성능 강의
자바 성능 강의자바 성능 강의
자바 성능 강의Terry Cho
 

More from Terry Cho (17)

Kubernetes #6 advanced scheduling
Kubernetes #6   advanced schedulingKubernetes #6   advanced scheduling
Kubernetes #6 advanced scheduling
 
Kubernetes #4 volume &amp; stateful set
Kubernetes #4   volume &amp; stateful setKubernetes #4   volume &amp; stateful set
Kubernetes #4 volume &amp; stateful set
 
Kubernetes #3 security
Kubernetes #3   securityKubernetes #3   security
Kubernetes #3 security
 
Kubernetes #2 monitoring
Kubernetes #2   monitoring Kubernetes #2   monitoring
Kubernetes #2 monitoring
 
Kubernetes #1 intro
Kubernetes #1   introKubernetes #1   intro
Kubernetes #1 intro
 
머신러닝으로 얼굴 인식 모델 개발 삽질기
머신러닝으로 얼굴 인식 모델 개발 삽질기머신러닝으로 얼굴 인식 모델 개발 삽질기
머신러닝으로 얼굴 인식 모델 개발 삽질기
 
애자일 스크럼과 JIRA
애자일 스크럼과 JIRA 애자일 스크럼과 JIRA
애자일 스크럼과 JIRA
 
REST API 설계
REST API 설계REST API 설계
REST API 설계
 
머신 러닝 입문 #1-머신러닝 소개와 kNN 소개
머신 러닝 입문 #1-머신러닝 소개와 kNN 소개머신 러닝 입문 #1-머신러닝 소개와 kNN 소개
머신 러닝 입문 #1-머신러닝 소개와 kNN 소개
 
R 프로그래밍-향상된 데이타 조작
R 프로그래밍-향상된 데이타 조작R 프로그래밍-향상된 데이타 조작
R 프로그래밍-향상된 데이타 조작
 
R 프로그래밍 기본 문법
R 프로그래밍 기본 문법R 프로그래밍 기본 문법
R 프로그래밍 기본 문법
 
R 기본-데이타형 소개
R 기본-데이타형 소개R 기본-데이타형 소개
R 기본-데이타형 소개
 
Redis data modeling examples
Redis data modeling examplesRedis data modeling examples
Redis data modeling examples
 
대용량 분산 아키텍쳐 설계 #5. rest
대용량 분산 아키텍쳐 설계 #5. rest대용량 분산 아키텍쳐 설계 #5. rest
대용량 분산 아키텍쳐 설계 #5. rest
 
대용량 분산 아키텍쳐 설계 #2 대용량 분산 시스템 아키텍쳐 디자인 패턴
대용량 분산 아키텍쳐 설계 #2 대용량 분산 시스템 아키텍쳐 디자인 패턴대용량 분산 아키텍쳐 설계 #2 대용량 분산 시스템 아키텍쳐 디자인 패턴
대용량 분산 아키텍쳐 설계 #2 대용량 분산 시스템 아키텍쳐 디자인 패턴
 
14회 jco 컨퍼런스 조대협의 소프트웨어 개발 배포용
14회 jco 컨퍼런스 조대협의 소프트웨어 개발 배포용14회 jco 컨퍼런스 조대협의 소프트웨어 개발 배포용
14회 jco 컨퍼런스 조대협의 소프트웨어 개발 배포용
 
자바 성능 강의
자바 성능 강의자바 성능 강의
자바 성능 강의
 

제13회컨퍼런스 조대협 서버사이드개발

  • 1. 제13회 한국자바개발자 컨퍼런스 Server Side Software Development Server Side Architect Group http://www.facebook.com/groups/serverside 조대협 (bwcho75@gmail.com)
  • 2. 제13회 한국자바개발자 컨퍼런스 필자 소개 조대협 • 개발자 • 웹로직 기술 지원 • 장애 진단, 성능 튜닝 • 컨설턴트(SOA,EAI,ALM) • 아키텍트(대용량 분산 시스템) • 클라우드 컴퓨팅 APAC 아키텍트 • 프리렌서 • 지금은 Chief(Cheap?) 아키텍트 지금은 수원으로 출근해요 블로그 : http://bcho.tistory.com 서버사이드 아키텍트 그룹 : http://www.facebook.com/groups/serverside 이메일 : bwcho75@gmail.com
  • 3. 오늘 이야기 할것은? 제13회 한국자바개발자 컨퍼런스 • 서버 사이드 개발
  • 4. 시간 관계상… 제13회 한국자바개발자 컨퍼런스 • 4가지 개발 프로세스 개발도구 아키텍쳐 테스트 시간이 짧아서, 요점만 간단히!!
  • 5. 요즘 트랜드는? 제13회 한국자바개발자 컨퍼런스 • 요즘 잘 나가는 실리콘 밸리 START UP No more vendor 소규모 조직 [10~20명] 스스로 하자!! 잘하는 것 부터 해서 발전 애자일 클라우드 컴퓨팅 오픈 소스 Devops
  • 6. 제13회 한국자바개발자 컨퍼런스 Software Development Life Cycle 개발프로세스
  • 7. 개발 프로세스 제13회 한국자바개발자 컨퍼런스 소프트웨어 개발 현실? 개발자의 현실 관리자의 현실 소프트웨어 결과물 • 요구 사항 추가 변경 •항상 99.999 % 완료 • 짚으로 만든집 • 문서,교육,미팅,보고 •항상 야근, 근데 모하는지? • 낮은 품질. 버그 투성이 • 야근 •릴리즈는 언제? • 실패한 프로젝트는 없다. • 티도 안나는 일 •위험 요소는 모지? • 끝나고 바로 고도화 프로젝트 시작 •이슈는 모야? •일의 우선 순위? 결과물….
  • 8. 개발 프로세스 제13회 한국자바개발자 컨퍼런스 <Insert Picture Here> 그래서… 저명한 박사님들께서.. 방법론을 만드시니.. RUP,CBD,CMMI
  • 9. 개발 프로세스 제13회 한국자바개발자 컨퍼런스 But… 그러나 현실은  방법론은 방법론…  우리는 조금 더 현실적인 방법론이 필요합니다.
  • 10. 개발 프로세스 제13회 한국자바개발자 컨퍼런스 실용주의 방법론 • 실용주의 방법론 – Erich Gamma, Joel Spolsky, Kent beck, Andrew Hunt – Iterative & Incremental – 애자일 기반 • 기존 방법론과 차이 – 요구 사항이 변화할 것을 가정 – 에러가 있을 것을 가정하여, 자주 테스트 – 협업과 커뮤니케이션
  • 11. 개발 프로세스 제13회 한국자바개발자 컨퍼런스 • 대표적인 개발 방법론 스크럼이 대세!! http://agilescout.com/learn-more-agile-software-development- 관리자 입장에서는 예측 불가 methods-this-year/ 조직에 맞게 바꿔서 쓰세요
  • 12. 개발 프로세스 제13회 한국자바개발자 컨퍼런스 • 대안 - Big Umbrella 방법론 전체 개발은 WATERFALL등 전통 적인 방법론 사용 각 단계를 세분화 하여 애자일 방법론 적용 관리층에는 예측성, 실무진에게는 실용성
  • 13. 개발 프로세스 제13회 한국자바개발자 컨퍼런스 • 어떻게? 분석 설계 개발 테스팅 Iteration N Iteration N+1 Iteration N+2 분석 설계 개발 테스팅 분석 설계 개발 테스팅 분석 설계 개발 테스팅 성능 테스트 성능 테스트 어려운 것 쉬운것 중요한것 없어도 되는것 이건 주요 단계마다!!
  • 14. 개발 프로세스 제13회 한국자바개발자 컨퍼런스 • 태스크 흐름 Open Assigned In Progress Resolved Closed PL Developer Developer Developer Developer PL PL creates detail task for developer. Task is usually finished 1~4 day. (1~2 days are recommended) Discuss with developer and estimate time. Assign the time to task PL Need Postponed more Information Developer discuss with PL PL lets developer to postpone the sub task. The postponed task should be finished in same iteration phase. Or closed
  • 15. 개발 프로세스 제13회 한국자바개발자 컨퍼런스 • 도구들 • Atlassian JIRA ** + Green Hopper • Redmine (Open source) * • Trac • Mantis ※ Off Site 개발에 유리 도구는 도구일뿐, 프로세스를 정립 하고 실천하는 것이 우선!! 내가 휴가를 떠나더라도, 다른 사람이 태스크 노트 만 보고 일을 할 수 있도록
  • 16. 개발 프로세스 제13회 한국자바개발자 컨퍼런스 • 액셀부터 시작하세요 • JIRA가 멋지긴 하지만, • 액셀로도 10~15명 팀 프로젝트 관리는 충분 합니다. • 프로세스가 성숙되면 툴을 고민하세요
  • 18. 개발 환경 제13회 한국자바개발자 컨퍼런스 • 흔한 개발 환경 시나리오 – 개발자가 아침에 출근해서 – 이클립스를 키고, 소스코드를 Git에서 Check Out 한후 – JIRA를 통해서 오늘 할당된 작업을 확인 한후에 코딩을 하고 – PC에서 Junit등을 이용하여 단위테스트등을 모두 끝 마치고 – 코드를 Git에 Commit하면 – Jekins에서 코드 변경을 감지하여, 자동으로 Check Out해서 mvn을 이용해서 컴파일 하고, 테스트 서버에 배포해서 단위 테스트를 모두 수행하고, 코드의 라인커버리지를 분석하여 리포팅 한다. – 팀장은 빌드가 완료되었음을 확인하고, 단위 테스트 100% 완료 및 라인 커버리지 80% 완료를 확인한다. – 릴리즈 날짜가 오면, 배포 엔지니어는 별도의 작업 없이 Jekins에서 빌드된 그날 WAR를 확인하고, Fabric으로 된 배포 스크립트를 수행 하면, 자동으로 개발,QA 환경으로 배포가 되고, 환경별로 필요한 resource 파일들이 자동으로 customization해서 배포가 완료된 후, Junit 기반의 단위 테스트, SOAP UI 기반의 REST API 테스트, Seleniuem 기반의 UI 테스트까지 자동으로 완료 한다. 만약에 배포나 테스트가 실패하면, 이전 버전으로 자동 롤백한다. 다들 이 정도는 하시져?
  • 19. 개발 환경 제13회 한국자바개발자 컨퍼런스 • 툴셋업 보다는 실천 일일 빌드 80% 라인 커버리지 빌드 태깅 테스트 자동화 daily check out & commit
  • 20. 개발 환경 제13회 한국자바개발자 컨퍼런스 • DEV,QA & STAGE 자동 빌드 배포 시스템 Python Fabric Ruby Capistrano 릴리즈 테스트完 DEV QA STAGE 가상화 or 클라우드 필요할때만 전개 단말 (모바일) 연계 시스템 클라이언트
  • 21. 제13회 한국자바개발자 컨퍼런스 Server Side Architecture 서버 아키텍쳐
  • 22. 아키텍쳐 제13회 한국자바개발자 컨퍼런스 • 기술 트랜드의 변화 예전의 기술 트랜드 현재의 기술 트랜드 기업 중심의 벤더 주도형 SNS 중심의 서비스회사 주도형 IBM,HP,Oracle,MS Google,Facebook,Amazon,Apache 웹로직,오라클,EJB,J2EE 몇몇 기술만 알던 시대 수 많은 오픈소스 조합 뉴타입? HP 수퍼돔 같은 x86 기반 분산 시스템 소수의 대형 서버 , 클라우드 컴퓨팅 (Devops) 벤더 지원 구글링
  • 23. 아키텍쳐 제13회 한국자바개발자 컨퍼런스 • 아키텍쳐 설계 순서
  • 24. 아키텍쳐 제13회 한국자바개발자 컨퍼런스 • 일반적인 서버 아키텍쳐 • 계정계 시스템 내부 트렌젝션 처리 • OLTP (동기/비동기) • 비지니스 로직 • 대외계 • EAI (Enterprise Application Integration), 시스템간 연동 AIA, • 시스템간, 컴포넌트간, 데이타 센터간 연계 통계 분석, 리포팅 • 정보계 • OLAP,BI,빅데이타 운영
  • 25. 아키텍쳐 제13회 한국자바개발자 컨퍼런스 • 레퍼런스 아키텍쳐
  • 26. 아키텍쳐 제13회 한국자바개발자 컨퍼런스 • 컴포넌트
  • 27. 아키텍쳐 제13회 한국자바개발자 컨퍼런스 • 솔루션 분류 컴포넌트 솔루션 User Interface Layer JQuery,bootstrap,ExtJs,HighChart Reverse Proxy Apache, NginX,HAProxy Enterprise Service Bus Mule, ServiceMix Message Queue Rabbit MQ,Active MQ,Zero MQ Data Grid memcached,redis,Oracle coherence Internal Business Logic Sync Transaction Processing Tomcat,Jboss,Netty,Jetty Working Space Gluster FS RDBMS MySQL, MariaDB File System Openstack Swift NoSQL mongodb,cassandra,hbase Protocol REST JSON/HTTP, Thrift, Protocol Buffer External Integration Integration Apache Camel Log Gathering Flume, Pentaho (ETL) CEP Esper Reporting Transform & Analysis Hadoop, Hive, Pig,Sqoop,R, Mahout Reporting Postgres,Redshift Coordinator Zookeeper Operation Monitoring Nagios,Ganglia,Zabbix,Cacti Configuration mgmt Puppet,Chef,Fabric
  • 28. 아키텍쳐 제13회 한국자바개발자 컨퍼런스 • Global roll out 시스템의 설계 1. 위치 선정 • 법적 이슈 • 회선 속도 • 세금 • 3 센터 : 미서부,영국,중국 2. API 라우팅 • ESB (Enterprise Service Bus)를 이용한 라우팅 3. 데이타 복제 • ETL, CDC • 과연 데이타 복제가 필요할까? (한국에서 미국 출장간 사용자)
  • 29. 아키텍쳐 제13회 한국자바개발자 컨퍼런스 • 클라우드 컴퓨팅상의 아키텍쳐 설계 클라우드 컴퓨팅의 장점 설계시 고려 사항 느려요 빠른 시장 진입 IO Performance 운영비 절감 싸지 않아요 초기 투자비 절감 기존 솔루션이 안돌아요 유연한 자원 사용 장애가 납니다. (Auto Scale Out) (멀티 데이타 센타 설계)
  • 30. 아키텍쳐 제13회 한국자바개발자 컨퍼런스 • 그리고 스크립트 언어 하나 정도는 더 해놔야… Python,Ruby,Scala,Clojure,Erlang ….
  • 32. 테스트 제13회 한국자바개발자 컨퍼런스 • 테스팅 모델 단계 개발 단계 제품 출시전 주체 개발자 테스트팀 타입 화이트 박스 블랙 박스 레벨 단위 테스트 통합 테스트 시스템 테스트 인수 테스트 기능 중심 컴포넌트간 비 기능 UX & VOC 연계성 ① 성능 법률 체크 ② 장애 운영성 ③ 확장성 ④ 안정성
  • 33. 테스트 제13회 한국자바개발자 컨퍼런스 • 테스트 레벨별 키 포인트 • 컴포넌트 기능 검증 단위 테스트 • 회귀 (regression) 테스트 • 라인 커버리지 • End2End 시나리오 검증 통합 테스트 • 인터페이스 검증 (메세지) + 기능 검증 (다른 사람이!!) • 성능 및 비기능(장애) 시스템 테스트 • 최대 용량 • UX 인수 테스트 • 출시 여부 결정
  • 34. 테스트 제13회 한국자바개발자 컨퍼런스 • 시스템 테스트는 짚고 넘어 갑시다. – 언제? 주요 릴리즈 때 마다. (한달에 한번? 두달에 한번?) – 기능 검증(통합 테스트를 포함 가능) + 비기능 검증 – 비기능 검증 종류 테스트 방법 측정 가능 항목 성능 단일 거래 테스트 성능 및 용량 측정 복합 거래 테스트 ** 병목 발견 장애 WAS 장애 kill -9 tomcat 장애 대응성 DB 장애 kill -9 mysqld 복구 시간 서버 장애 전원끄기 네트워크 장애 랜선 뽑기 확장성 부하 주면서 톰캣 늘리기 증설에 필요한 용량 산정 안정성 7일동안 부하 주기 메모리 누수, 디스크 용량 체크
  • 35. 테스트 제13회 한국자바개발자 컨퍼런스 • 마이크로 벤치 마크 테스트 – 기술 검증 – 1~2일 소요 – 30 vuser 정도의 부하 – SOAP UI, Python
  • 36. 테스트 제13회 한국자바개발자 컨퍼런스 • 테스트 절차 • 테스트 범위 및 목표 정의 테스트 계획 ** • 조직 및 스케쥴 정의 ** • 테스트 도구 결정 • 테스트 대상 시스템 분석 (리버스 엔지니어링) 테스트 분석 및 디자인 • 테스트 환경 디자인 및 구성 • 상세 테스트 시나리오 정의 • 개통 ** [오래 걸림] 구현 및 수행 • 수행 • 로깅 [중요] • 결과 정리 평가 및 리포팅 * • 문서화 • 개선 사항 리포팅
  • 37. 테스트 제13회 한국자바개발자 컨퍼런스 • 코드 리뷰 – 투자 대비 효율 최고 – 코드 리뷰는 문화 (정기적으로 수행, 자유로운 의견 교환, 창던지 기 금지) 캐주얼 정식 Peer review Walk Through Team review Inspection 사수와 부사수 서로 돌아가면서 팀장이나 시니어 전문 inspector 사 발표와 의견 교환 가 주도 용 이 목적 발표자가 스스로 사회자가 리뷰 대 주제를 정함 상을 지정하여 수 행. 리뷰의 결과는 다 음 태스크에 반영
  • 38. 테스트 제13회 한국자바개발자 컨퍼런스 • 테스트 도구 종류 테스트 방법 측정 가능 항목 단위 테스트 • JUnit **, TestNG 커버리지분석 • Cobertura,EMMA 단위 테스트 Mock up • EasyMock, Mockito 인터페이스 테스트 • SOAPUI ** 단위테스트, 통합 테스트 부하 생성 • nGrinder (Jython) ** 시스템 테스트 • Multi-mechanize (Python) 모니터링 • Cacti,Gaglia (인프라) • Jennifer (APM) 시스템 테스트 • Jconsole, Visual VM (JVM)
  • 39. 제13회 한국자바개발자 컨퍼런스 더 자세한 이야기는 http://bcho.tistory.com/category/조대협의%20소프트웨어%20개발 AND 사람 뽑습니다. 이렇게 서버 개발 해보고 싶으신분들은 bwcho75@gmail.com 단.. 수원 출퇴근입니다. (강남까지 30분 통근 버스 다녀요~ 그리고 세 끼 무료 식사 제공)