SlideShare ist ein Scribd-Unternehmen logo
1 von 68
기업용 오픈소스    를 활용한
  프로젝트 관리와 구현기술


                         http://www.gliderwiki.org
              https://github.com/gliderwiki/glider
                             performizer@gmail.com
   http://www.facebook.com/groups/117097138465342/
000. 목차
 001. 글라이더 위키가 뭐에요?
 002. 오픈 소스에 대한 고민, 그 결과 !!
 003. 기술 구현 - 난관에 봉착한 문제들

      + 쉬운 설치 - 브라우저에서 Config 파일 생성 (On Browser Install)
      + 실시간 알람 - Node.js와 Redis를 활용한 서버 푸시
      + 원 클릭 패치 - RestTemplate 과 HttpClient를 활용한 서버 업데이트


 004. 글라이더 위키의 대상 사용자
 005. 실젂! 글라이더 위키를 활용한 팀 프로젝트 관리 하기
 006. To Do List - 오픈소스 참여하기
협업을   위한   지식관리   도구   GLiDER Wiki™   |   h t t p : / / w w w . g l i d e r w i k i . o r g
9년차 자바 개발자
   2012 공개 소프트웨어 개발자 대회 은상 - GLiDER Wiki™
현재 프리랜서로 XX 전자 오픈 서비스 플랫폼 프로젝트에서 Application Architect로 근무중




어 떻게 편하게 개발할까?
  떻게 하면 오픈소스로 먹고 살 수 있을까? 를
  고민하는 평.범.한. 자.바.개.발.자



반      복 업무는 자동화 하고 남는 시간에 기술
       공부에 투자하고 싶은 게.으.른.개.발.자

협업을   위한   지식관리   도구   GLiDER Wiki™   |   h t t p : / / w w w . g l i d e r w i k i . o r g
협업을   위한   지식관리   도구   GLiDER Wiki™   |


Chapter. 1 글라이더 위키가 뭐예요?
001. 글라이더 위키가 뭐에요?


 뭐죠?              •    HTML 문서를 빠르게 생성(마크업)
                  •    컨텎츠 생성, 공유, 참여
                  •    쉬운 설치, 쉬운 사용법, 쉬운 확장
                  •    사내 조직도, 사용자 그룹 별 권한 부여
                  •    문서 버젂 히스토리, 검색
                  •    사내 업무용 위키
                  •    지식 관리. 공유, 협업



협업을   위한   지식관리   도구   GLiDER Wiki™   |   h t t p : / / w w w . g l i d e r w i k i . o r g
001. 글라이더 위키가 뭐에요?


한마디로!              Wiki Markup 기반으로
                   HTML 문서를 빠르게 생성, 공유하는
                   지식 관리 협업 툴



                       Simple                  Easy                      Useful



협업을   위한   지식관리   도구   GLiDER Wiki™   |   h t t p : / / w w w . g l i d e r w i k i . o r g
001. 기능 스택

 프리젞테이션                     다양한 문서 포맷
                                                                   캘릮더 공유
   모드                          지원

 웹 설치 지원                      원 클릭 패치                              원 클릭 확장

 조직, 사용자
                               실시간 알람                              문서 리비젂
  일괄등록

 마크업 에디터                       PDF Export                              템플릿


코드 하일라이터                              차트                                인쇄

협업을   위한   지식관리   도구   GLiDER Wiki™   |    h t t p : / / w w w . g l i d e r w i k i . o r g
협업을   위한   지식관리   도구   GLiDER Wiki™   |


Chapter. 2 오픈소스에 대한 고민, 그 결과
002. 오픈 소스에 대한 고민, 그 결과!


다년간의 스터디...




컨텐츠를 정리 하기 좋은 툴 뭐 없나?
블로그? 게시판? 카페? 홈피?
협업을   위한   지식관리   도구   GLiDER Wiki™   |   h t t p : / / w w w . g l i d e r w i k i . o r g
002. 오픈 소스에 대한 고민, 그 결과!



써보니 위키가
                            甲             인데...
      왜 우리나라에서 잘 쓰이질 않지?
           내 글을 왜 남이 수정하나?
           수직적 조직 문화...
           Learning Curve...




협업을   위한   지식관리   도구   GLiDER Wiki™   |   h t t p : / / w w w . g l i d e r w i k i . o r g
002. 오픈 소스에 대한 고민, 그 결과!



그래 결심했어!
기업용 위키를 만들어 보자.

      조직, 그룹 생성 - 권한관리
      쉬운 설치, 쉬운 확장, 쉬운 사용
      회사에서 쓸 수 있는 문서 정리도구




협협 업 을 위위 한 지지 식 관 리 도구 구 G L i L iE R W iW i k i ™ |
 업을     한    식관리      도     G D DER ki™                 |   h h t p p / / / w w w g g il d d r w w k i .i o o g g
                                                              t t t : : / w w w . . l    i e e r i i k    . r r
002. 오픈 소스에 대한 고민, 그 결과!



  우리의 컨셉!
         단순하고
        배우기 쉽고
          유용한...




협협 업 을 위위 한 지지 식 관 리 도구 구 G L i L iE R W iW i k i ™ |
 업을     한    식관리      도     G D DER ki™                 |   h h t p p / / / w w w g g il d d r w w k i .i o o g g
                                                              t t t : : / w w w . . l    i e e r i i k    . r r
협업을   위한   지식관리   도구   GLiDER Wiki™   |


Chapter. 3 기술구현 – 난관에 봉착한 문제들
003. 기술 구현 - 난관에 봉착한 문제들




                                                               인스톨쉴드 처럼
                                                               손 쉬운 설치 지원




협협 업 을 위위 한 지지 식 관 리 도구 구 G L i L iE R W iW i k i ™ |
 업을     한    식관리      도     G D DER ki™                 |   h h t p p / / / w w w g g il d d r w w k i .i o o g g
                                                              t t t : : / w w w . . l    i e e r i i k    . r r
003. 기술 구현 - 난관에 봉착한 문제들




                     좋아요! 를 구현하고 싶어요.



협협 업 을 위위 한 지지 식 관 리 도구 구 G L i L iE R W iW i k i ™ |
 업을     한    식관리      도     G D DER ki™                 |   h h t p p / / / w w w g g il d d r w w k i .i o o g g
                                                              t t t : : / w w w . . l    i e e r i i k    . r r
003. 기술 구현 - 난관에 봉착한 문제들




         버그 패치, 확장 기능의 자동화 지원?



협협 업 을 위위 한 지지 식 관 리 도구 구 G L i L iE R W iW i k i ™ |
 업을     한    식관리      도     G D DER ki™                 |   h h t p p / / / w w w g g il d d r w w k i .i o o g g
                                                              t t t : : / w w w . . l    i e e r i i k    . r r
003. 기술 구현 - 난관에 봉착한 문제들


요약하면...
                                 Easy                            One                       Push &
                                Install                          Click                     Alarm



                            1. 쉽게 설치 할 수 있는 방법을 적용해보자.
                            2. 패치, 확장 기능을 서버에서 원 클릭으로...
                            3. 서버 푸시, 실시간 알람 기능이 필요하다



협협 업 을 위위 한 지지 식 관 리 도구 구 G L i L iE R W iW i k i ™ |
 업을     한    식관리      도     G D DER ki™                 |   h h t p p / / / w w w g g il d d r w w k i .i o o g g
                                                              t t t : : / w w w . . l    i e e r i i k    . r r
003. 기술스택
Presentation Layer                         Business Component


   HTML                CSS                  Transaction           Cache            Custom Lib            Logs          Security



      Java EE Framewrok Spring 3.0, MyBatis 3.0                 Ajax                   Open Source Library              JSTL


  JQuery               DWR                Node.JS               Redis            Java Virtual Machine *JDK 1.6)      Tomcat 7.0

Database



  MySQL               HSQL                          Linux                              Unix                       Windows


Module


웹 표준 에디터               Markup & 파서                  문서 검색                 문서 버전 관리               PDF Viewer            조직관리


웹 인스톨러                    문서 탬플릿                    권한 관리               코드 하이라이트                 확장 기능 패치             실시간 알림


Development Environment


  Eclipse                    Google Code SVN & Github                      Test Case              ER Master          팀 협업 도구


 협협 업 을 위위 한 지지 식 관 리 도구 구 G L i L iE R W iW i k i ™ |
  업을     한    식관리      도     G D DER ki™                            |   h h t p p / / / w w w g g il d d r w w k i .i o o g g
                                                                          t t t : : / w w w . . l    i e e r i i k    . r r
003. 쉬운 설치 - 브라우저에서 Config 파일 생성
 일반적인 배포 방식



                      config.xml

                                                            ftp전송


                      jdbc.properties

                                                                                           Console




협협 업 을 위위 한 지지 식 관 리 도구 구 G L i L iE R W iW i k i ™ |
 업을     한    식관리      도     G D DER ki™                 |   h h t p p / / / w w w g g il d d r w w k i .i o o g g
                                                              t t t : : / w w w . . l    i e e r i i k    . r r
003. 쉬운 설치 - 브라우저에서 Config 파일 생성
 글라이더 위키의 배포 방식
                                                        http://client-url/admin/install




     ftp전송


  JDBC 연동 정보

   테이블 스키마                                                                 jdbc.properties
    기본 데이터

                                                                           config.xml
   메일젂송 정보


협협 업 을 위위 한 지지 식 관 리 도구 구 G L i L iE R W iW i k i ™ |
 업을     한    식관리      도     G D DER ki™                 |   h h t p p / / / w w w g g il d d r w w k i .i o o g g
                                                              t t t : : / w w w . . l    i e e r i i k    . r r
003. 다시 봉착한 문제
!!! Spring 은 서버 기동시 관련 설정 Bean들이 로드되면서 에러가 발생한다.




에러 메세지는...
Invalid bean definition with name 'datasource' defined in ServletContext...


 협협 업 을 위위 한 지지 식 관 리 도구 구 G L i L iE R W iW i k i ™ |
  업을     한    식관리      도     G D DER ki™                 |   h h t p p / / / w w w g g il d d r w w k i .i o o g g
                                                               t t t : : / w w w . . l    i e e r i i k    . r r
003. 다시 봉착한 문제
!!! 임의의 정보로 JDBC 연결을 시도할 경우에도 Exception 이 발생한다.




   org.gliderwiki.framework.exception.GliderwikiException:
   Could not open JDBC Connection for transaction; nested
   exception is org.apache.commons.dbcp.SQLNestedException:
   Cannot create PoolableConnectionFactory
   (Could not create connection to database server. Attempted
   reconnect 3 times. Giving up.)




 협협 업 을 위위 한 지지 식 관 리 도구 구 G L i L iE R W iW i k i ™ |
  업을     한    식관리      도     G D DER ki™                 |   h h t p p / / / w w w g g il d d r w w k i .i o o g g
                                                               t t t : : / w w w . . l    i e e r i i k    . r r
003. 해결 방안
•   HSQL DB를 활용한 Mock Connection 제공
•   최초 기동시 jdbc.properties에 hsql 의 기본 Connection 정보를 연결

    applicationContext-jdbc.xml




      jdbc.properties 기본 설정




    협협 업 을 위위 한 지지 식 관 리 도구 구 G L i L iE R W iW i k i ™ |
     업을     한    식관리      도     G D DER ki™                 |   h h t p p / / / w w w g g il d d r w w k i .i o o g g
                                                                  t t t : : / w w w . . l    i e e r i i k    . r r
003. 해결 방안

    서버 기동시의 콘솔 메세지

Creating shared instance of singleton bean 'hsqlDataSource'
Creating instance of bean 'hsqlDataSource'
Creating embedded database 'hsqlDataSource'
Creating new JDBC Driver Connection to [jdbc:hsqldb:mem:hsqlDataSource]
Executing SQL script from ServletContext resource [/WEB-INF/databases/hsql/init/schema.sql]
Executing SQL script from ServletContext resource [/WEB-INF/databases/hsql/init/test-
data.sql]
......
Done executing SQL script from ServletContext resource [/WEB-INF/databases/hsql/init/test-
data.sql] in 31 ms.




   협업을    위한   지식관리     도구   GLiDER Wiki™    |   h t t p : / / w w w . g l i d e r w i k i . o r g
003. 해결 방안


                  application

               application

             application
                                              JDBC Mock
                                              Connection                      DB
                                                                            (HSQL)




                                              ※ HSQL은 JAVA 로 만들어짂 DBMS 엔짂으로
                                              굉장히 적은 용량으로 표준 SQL 구문을 지원하며
       HSQL - jdbc.properties                 메모리 및 디스크 기반의 테이블을 제공한다.



협업을   위한   지식관리   도구       GLiDER Wiki™   |    h t t p : / / w w w . g l i d e r w i k i . o r g
003. 해결 방안


                  application

               application

             application
                                              Pool-Enabled
                                               DataSource                          DB
                                                                                 (MySQL)


                                                                           •   Mail Config
                                                                           •   SMTP 전송
                                                                           •   XML Config
                                                                           •   Properties
                                                                           •   Table 생성

      HSQL - jdbc.properties        MySQL - jdbc.properties
                                                                           •   Data Insert
                                                                           •   Shell Command



협업을   위한   지식관리   도구       GLiDER Wiki™   |      h t t p : / / w w w . g l i d e r w i k i . o r g
003. 샘플 화면



  http://14.63.225.165:9909/admin/install




협업을   위한   지식관리   도구   GLiDER Wiki™   |   h t t p : / / w w w . g l i d e r w i k i . o r g
003. 소스 - JDBC Connection Test




                             입력된 JDBC 정보로 MySQL의
                             커넥션을 테스트 한다.

협업을   위한   지식관리   도구   GLiDER Wiki™   |   h t t p : / / w w w . g l i d e r w i k i . o r g
003. 소스 - Properties 정보 생성




                             서버경로 : /WEB-INF/spring/
                             로 Properties 파일 생성
협업을   위한   지식관리   도구   GLiDER Wiki™   |   h t t p : / / w w w . g l i d e r w i k i . o r g
003. SQL 실행



#지정된 경로의 .SQL 파일을
읽어와 특정 패턴일 때 구문을
실행한다.

# Drop table if exists …
구문으로 테이블을 삭제 한다.




  협협 업 을 위위 한 지지 식 관 리 도구 구 G L i L iE R W iW i k i ™ |
   업을     한    식관리      도     G D DER ki™                 |   h h t p p / / / w w w g g il d d r w w k i .i o o g g
                                                                t t t : : / w w w . . l    i e e r i i k    . r r
003. 테이블 스키마 & 기초 데이터 Setup
한글 깨짐 여부를 판단하기 위하여 3가지 타입으로 테이블을 생성
utf8_unicode_ci 나 utf8_general_ci는 정렬 혹은 성능상 선택하는
옵션이지만 한글처리에 영향을 준다.


√
      table_script_euc-kr.sql


      table_script_utf-8.sql

                                                                             DB
      table_script_utf8-general-ci.sql                                     (MySQL)



      table_script_utf8-unicode-ci.sql


협업을   위한   지식관리   도구   GLiDER Wiki™   |   h t t p : / / w w w . g l i d e r w i k i . o r g
003. 테이블 스키마 & 기초 데이터 Setup

CREATE TABLE ATTACHMENT (
        WE_BBS_IDX INT(9) NOT NULL COMMENT '게시판순번 : 게시판순번',
        WE_FILE_IDX INT(10) COMMENT '첨부파일순번',
        USE_YN CHAR(1) character set utf8 collate utf8_general_ci COMMENT '한글'
) COMMENT = '첨부파일' DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;


CREATE TABLE ATTACHMENT (
        WE_BBS_IDX INT(9) NOT NULL COMMENT '게시판순번 : 게시판순번',
        WE_FILE_IDX INT(10) COMMENT '첨부파일순번',
        USE_YN CHAR(1) COMMENT '사용여부'
) COMMENT = '첨부파일' DEFAULT CHARACTER SET utf8;


CREATE TABLE ATTACHMENT (
        WE_BBS_IDX INT(9) NOT NULL COMMENT '게시판순번 : 게시판순번',
        WE_FILE_IDX INT(10) COMMENT '첨부파일순번',
        USE_YN CHAR(1) COMMENT '사용여부'
) COMMENT = '첨부파일' DEFAULT CHARACTER SET euckr COLLATE euckr_korean_ci;

  협업을   위한   지식관리   도구   GLiDER Wiki™   |   h t t p : / / w w w . g l i d e r w i k i . o r g
003. Shell Command




협업을   위한   지식관리   도구   GLiDER Wiki™   |   h t t p : / / w w w . g l i d e r w i k i . o r g
003. Shell Command

   쉘 명령어 실행

ShellCommands.execute("chmod -R 755 " + svcPath);
String rtnCode = ShellCommands.execute("uname");
String rtnCode = ShellCommands.execute("cat
/proc/version");
String rtnCode = ShellCommands.execute("./copy.sh");




 협협 업 을 위위 한 지지 식 관 리 도구 구 G L i L iE R W iW i k i ™ |
  업을     한    식관리      도     G D DER ki™                 |   h h t p p / / / w w w g g il d d r w w k i .i o o g g
                                                               t t t : : / w w w . . l    i e e r i i k    . r r
003. 실시간 알람 - Node.js 와 Redis를 이용한 푸시

                        일정 간격으로 서버에 Request를 보내 이벤트를 받는다.
    Polling             서버 리소스, 네트워크의 낭비가 심하다



                        클라이언트가 서버 접속 시 연결 상태를 유지하고 있다가 이벤트가
      Long              발생하면 젂송한다
    Polling             클라이언트가 메시지를 받으면 다시 서버에 접속하여 연결 대기
                        상태를 반복한다


                        클라이언트와 서버의 접속을 계속 유지한 채 서버에서 이벤트가
  Streaming             발생할 때마다 메시지를 HTTP Chunked 방식으로 보낸다.
                        (Ajax 구현시 IE에서 동작 안함)



서버 푸시란 서버측에서 클라이언트측으로 데이터를 젂송해주는 통싞 방식


협협 업 을 위위 한 지지 식 관 리 도구 구 G L i L iE R W iW i k i ™ |
 업을     한    식관리      도     G D DER ki™                 |   h h t p p / / / w w w g g il d d r w w k i .i o o g g
                                                              t t t : : / w w w . . l    i e e r i i k    . r r
003. 실시간 알람 - Node.js 와 Redis를 이용한 푸시

                                 http-connect
                              (Channel, Message)

                 Node.js                     Rest                     WAS
                                                         NotificationController
      Express          Socket.IO
                                                         NotificationService                      Biz
                                                                                                                      DB
                                                         NotificationComponent




    Request                 Push               Sub                         Pub




※ http://www.gridshore.nl/2011/07/28/combining-java-and-node-js-through-redis-pubsub-and-a-json-remote-interface/ (gridshore 블로
그)
※ http://www.mimul.com/pebble/default/2012/06/14/1339620867407.html(하호짂님 블로그)
     협협 업 을 위위 한 지지 식 관 리 도구 구 G L i L iE R W iW i k i ™ | | h h t p p / / / w w w g g il d d r w w k i .i o o g g
        업을        한       식관리         도      G D DER ki™                 t t t : : / w w w . . l          i e e r i i k       . r r
003. 개발 소스 - notification.js




                                                  var socketCliConf = {
                                                      'connect timeout' : 3000,
                                                      'reconnect': false,
                                                      'sync disconnect on unload' : false
                                                  };
협협 업 을 위위 한 지지 식 관 리 도구 구 G L i L iE R W iW i k i ™ |
 업을     한    식관리      도     G D DER ki™                 |   h h t p p / / / w w w g g il d d r w w k i .i o o g g
                                                              t t t : : / w w w . . l    i e e r i i k    . r r
003. 개발 소스 - applicationContext-redis.xml




협협 업 을 위위 한 지지 식 관 리 도구 구 G L i L iE R W iW i k i ™ |
 업을     한    식관리      도     G D DER ki™                 |   h h t p p / / / w w w g g il d d r w w k i .i o o g g
                                                              t t t : : / w w w . . l    i e e r i i k    . r r
003. 개발 소스 - NotificationComponent.java




협협 업 을 위위 한 지지 식 관 리 도구 구 G L i L iE R W iW i k i ™ |
 업을     한    식관리      도     G D DER ki™                 |   h h t p p / / / w w w g g il d d r w w k i .i o o g g
                                                              t t t : : / w w w . . l    i e e r i i k    . r r
003. 개발 소스 - Remind... Redis Pub/Sub
             RedisTemplate

@Resource(name = "redisTemplate")
private RedisTemplate<String, String> redisTemplate;
...
redisTemplate.convertAndSend("Hello", "user channel");



           RedisConnection

byte[] message = ...;
byte[] channel = ...;
redisConnection.publish(message, channel);

 협협 업 을 위위 한 지지 식 관 리 도구 구 G L i L iE R W iW i k i ™ |
  업을     한    식관리      도     G D DER ki™                 |   h h t p p / / / w w w g g il d d r w w k i .i o o g g
                                                               t t t : : / w w w . . l    i e e r i i k    . r r
003. 개발 소스 - Remind... Redis Pub/Sub
       클라이언트 - 브라우저

<script src="/socket.io/socket.io.js"></script>
<script>
var url = "http://www.gliderwiki.org:3000";
var socket = io.connect(url+"?channel="+사용자 채
널, socketConfig);

socket.on(사용자 채널, function(data) {
    console.log(data.user_data);
});
</script>


 협협 업 을 위위 한 지지 식 관 리 도구 구 G L i L iE R W iW i k i ™ |
  업을     한    식관리      도     G D DER ki™                 |   h h t p p / / / w w w g g il d d r w w k i .i o o g g
                                                               t t t : : / w w w . . l    i e e r i i k    . r r
003. Redis & Node.js
                          •    Node.js는 서버 사이드 자바스크립트이며 Google의
정리 좀…                          자바스크립트 엔짂인 V8 위에서 동작하며 이벤트
                               기반 non-blocking I/O를 지원한다.
                               (http://nodejs.org)

                          •    Redis(Remote Dictionary Server)는 데이터형
                               자료구조 서버로 Memcached 시스템보다 빠르고
                               풍부한 데이터 형태와 자료 구조를 메모리에 저장할
                               수 있는 캐싱 솔루션.
                               젂통적인 데이터 저장 방식도 지원하고 노드간의
                               데이터 복제도 가능하다. (http://redis.io)
협협 업 을 위위 한 지지 식 관 리 도구 구 G L i L iE R W iW i k i ™ |
 업을     한    식관리      도     G D DER ki™                 |   h h t p p / / / w w w g g il d d r w w k i .i o o g g
                                                              t t t : : / w w w . . l    i e e r i i k    . r r
003. 원클릭 패치 - RestTemplate 서버 업데이트

Rest(Representational State Transfer) 스타일 아키텍처를 통하여
자원에 대한 요청 및 응답을 젂송, 처리.
Spring 프레임워크는 3.0 릯리즈 부터 Rest 지원

                                            URL Request

                                       HTTP
                           Method(GET,POST,PUT,DELETE)
                            Content-Type : text/xml...
                           Accept : application/xml...



                                              Response
                                     JSON, XML…
                              Status Code(200, 404...)
협협 업 을 위위 한 지지 식 관 리 도구 구 G L i L iE R W iW i k i ™ |
 업을     한    식관리      도     G D DER ki™                 |   h h t p p / / / w w w g g il d d r w w k i .i o o g g
                                                              t t t : : / w w w . . l    i e e r i i k    . r r
003. Server to Server Patch Update
요건정의 :
 사용자가 패치 파일을 다운로드 하여 FTP 에 개별로 반영하는게 아니라
 서버측 프로그램에서 자동으로 패치 업데이트를 하도록 하자!!




                     Request                                     Version, 인증정보

                                                                   HttpResponse
                    Response                                       (file stream)
 admin
                                GLiDER Wiki가 설치된                                     파일관리 서버
                                    클라이언트서버                                     http://gliderwiki.org
                                (http://domain.com)




협협 업 을 위위 한 지지 식 관 리 도구 구 G L i L iE R W iW i k i ™ |
 업을     한    식관리      도     G D DER ki™                 |   h h t p p / / / w w w g g il d d r w w k i .i o o g g
                                                              t t t : : / w w w . . l    i e e r i i k    . r r
003. Server to Server Patch Update



                         •    클라이언트측 서버의 패치 정보 젂송

                         •    보안 처리(사용자 인증키)

                         •    글라이더 파일 서버에서 패치 정보 젂송

                         •    활성화 된 다운로드 클릭시 RestTemplate ->

간단한 흐름                        HttpEntity를 이용하여 지정된 경로로 File Write



협협 업 을 위위 한 지지 식 관 리 도구 구 G L i L iE R W iW i k i ™ |
 업을     한    식관리      도     G D DER ki™                 |   h h t p p / / / w w w g g il d d r w w k i .i o o g g
                                                              t t t : : / w w w . . l    i e e r i i k    . r r
003. RestTemplate 간단 Demo 소스




협협 업 을 위위 한 지지 식 관 리 도구 구 G L i L iE R W iW i k i ™ |
 업을     한    식관리      도     G D DER ki™                 |   h h t p p / / / w w w g g il d d r w w k i .i o o g g
                                                              t t t : : / w w w . . l    i e e r i i k    . r r
003. RestTemplate 간단 Demo 결과




협협 업 을 위위 한 지지 식 관 리 도구 구 G L i L iE R W iW i k i ™ |
 업을     한    식관리      도     G D DER ki™                 |   h h t p p / / / w w w g g il d d r w w k i .i o o g g
                                                              t t t : : / w w w . . l    i e e r i i k    . r r
003. RestTemplate 과 HttpClient를 이용한 패치
Rest-context.xml
<bean id="restTemplate" class="org.springframework.web.client.RestTemplate" />


HTTP DELETE
public void delete(String url, Object... urlVariables) throws RestClientException;
public void delete(String url, Map<String, ?> urlVariables) throws RestClientException;
HTTP GET
public <T> T getForObject(String url, Class<T> responseType, Object... urlVars) throws
RestClientException;
public <T> ResponseEntity<T> getForEntity(String url, Class<T> responseType, Object... urlVariables);
HTTP POST
public <T> T postForObject(String url, Object request, Class<T> responseType, Object... uriVariables);
public <T> ResponseEntity<T> postForEntity(String url, Object request, Class<T> responseType, Object...
uriVars);
HTTP PUT
public void put(String url, Object request, Object... urlVariables) throws ...;public void put(String url, Object
request, Map<String, ?> urlVariables) throws ...;

   협협 업 을 위위 한 지지 식 관 리 도구 구 G L i L iE R W iW i k i ™ |
    업을     한    식관리      도     G D DER ki™                 |   h h t p p / / / w w w g g il d d r w w k i .i o o g g
                                                                 t t t : : / w w w . . l    i e e r i i k    . r r
003. RestTemplate 과 HttpClient를 이용한 패치




협협 업 을 위위 한 지지 식 관 리 도구 구 G L i L iE R W iW i k i ™ |
 업을     한    식관리      도     G D DER ki™                 |   h h t p p / / / w w w g g il d d r w w k i .i o o g g
                                                              t t t : : / w w w . . l    i e e r i i k    . r r
003. RestTemplate 과 HttpClient를 이용한 패치




                                     경로 : “/resource/v101/
                                     FileStream , 암호화 필요


협협 업 을 위위 한 지지 식 관 리 도구 구 G L i L iE R W iW i k i ™ |
 업을     한    식관리      도     G D DER ki™                 |   h h t p p / / / w w w g g il d d r w w k i .i o o g g
                                                              t t t : : / w w w . . l    i e e r i i k    . r r
003. 브라우저 다운로드 형태




                                           View 화면에서 버튺 클릭시...

                                           var funcFileDownload = function(){
                                              $('#pForm').attr('method', 'post');
                                              $('#pForm').attr('action', ‘http://url/patchList/2');
                                              $('#pForm').submit();
                                           }



협협 업 을 위위 한 지지 식 관 리 도구 구 G L i L iE R W iW i k i ™ |
 업을     한    식관리      도     G D DER ki™                 |   h h t p p / / / w w w g g il d d r w w k i .i o o g g
                                                              t t t : : / w w w . . l    i e e r i i k    . r r
협업을   위한   지식관리   도구   GLiDER Wiki™   |


Chapter. 4 글라이더 위키의 대상 사용자
004. 글라이더 위키의 대상 사용자
                        Google에서 프로젝트 그룹 검색 했더니.JPG
                                 프로젝트 그룹을




협협 업 을 위위 한 지지 식 관 리 도구 구 G L i L iE R W iW i k i ™ |
 업을     한    식관리      도     G D DER ki™                 |   h h t p p / / / w w w g g il d d r w w k i .i o o g g
                                                              t t t : : / w w w . . l    i e e r i i k    . r r
004. 글라이더 위키의 대상 사용자




       Google에서 Task Force Team 을 검색 했더니.JPG
                  (Secret Task Force)
협협 업 을 위위 한 지지 식 관 리 도구 구 G L i L iE R W iW i k i ™ |
 업을     한    식관리      도     G D DER ki™                 |   h h t p p / / / w w w g g il d d r w w k i .i o o g g
                                                              t t t : : / w w w . . l    i e e r i i k    . r r
004. 글라이더 위키의 대상 사용자




협협 업 을 위위 한 지지 식 관 리 도구 구 G L i L iE R W iW i k i ™ |
 업을     한    식관리      도     G D DER ki™                 |   h h t p p / / / w w w g g il d d r w w k i .i o o g g
                                                              t t t : : / w w w . . l    i e e r i i k    . r r
004. 글라이더 위키의 대상 사용자

                          지식을 정리 하고 공유하고자 하는 모든 곳
정리해 봅시다
                          - 님 메일 확인요!
                          - 담당자 퇴사시 해당 업무도 퇴사함!
                          - 문서 어디 있지? 그 내용 어디 있나!?
                          - 사수가 니 과외선생이냐?!


                                                               대학
                              Start up                                                Project Team
                                                               강좌
                               연구소                                                         TFT
                                                              커뮤니티

협협 업 을 위위 한 지지 식 관 리 도구 구 G L i L iE R W iW i k i ™ |
 업을     한    식관리      도     G D DER ki™                 |   h h t p p / / / w w w g g il d d r w w k i .i o o g g
                                                              t t t : : / w w w . . l    i e e r i i k    . r r
협업을   위한   지식관리   도구   GLiDER Wiki™   |

Chapter. 5 실전! 글라이더 위키를 활용한
                팀 프로젝트 관리하기
협협 업 을 위위 한 지지 식 관 리 도구 구 G L i L iE R W iW i k i ™ |
 업을     한    식관리      도     G D DER ki™                 |   h h t p p / / / w w w g g il d d r w w k i .i o o g g
                                                              t t t : : / w w w . . l    i e e r i i k    . r r
협협 업 을 위위 한 지지 식 관 리 도구 구 G L i L iE R W iW i k i ™ |
 업을     한    식관리      도     G D DER ki™                 |   h h t p p / / / w w w g g il d d r w w k i .i o o g g
                                                              t t t : : / w w w . . l    i e e r i i k    . r r
협협 업 을 위위 한 지지 식 관 리 도구 구 G L i L iE R W iW i k i ™ |
 업을     한    식관리      도     G D DER ki™                 |   h h t p p / / / w w w g g il d d r w w k i .i o o g g
                                                              t t t : : / w w w . . l    i e e r i i k    . r r
협협 업 을 위위 한 지지 식 관 리 도구 구 G L i L iE R W iW i k i ™ |
 업을     한    식관리      도     G D DER ki™                 |   h h t p p / / / w w w g g il d d r w w k i .i o o g g
                                                              t t t : : / w w w . . l    i e e r i i k    . r r
협협 업 을 위위 한 지지 식 관 리 도구 구 G L i L iE R W iW i k i ™ |
 업을     한    식관리      도     G D DER ki™                 |   h h t p p / / / w w w g g il d d r w w k i .i o o g g
                                                              t t t : : / w w w . . l    i e e r i i k    . r r
협협 업 을 위위 한 지지 식 관 리 도구 구 G L i L iE R W iW i k i ™ |
 업을     한    식관리      도     G D DER ki™                 |   h h t p p / / / w w w g g il d d r w w k i .i o o g g
                                                              t t t : : / w w w . . l    i e e r i i k    . r r
협협 업 을 위위 한 지지 식 관 리 도구 구 G L i L iE R W iW i k i ™ |
 업을     한    식관리      도     G D DER ki™                 |   h h t p p / / / w w w g g il d d r w w k i .i o o g g
                                                              t t t : : / w w w . . l    i e e r i i k    . r r
협업을   위한   지식관리   도구   GLiDER Wiki™   |


Chapter. 6 To Do List – 오픈 소스 참여하기
006. To Do List - 오픈소스 참여하기

                                                                  • 다양한 문서포맷 지원
                                                                  • 에디터, 차트 강화
                                                                  • 업무 용어 사젂
                                                                  • 캘릮더 일정 공유
                                                                  • 동시 편집
                                                                  • 커뮤니티
                                                                  • 모바일

      기업형 솔루션, SNS 와 연동된 Q&A 기반의 기술 공유 서비스
협협 업 을 위위 한 지지 식 관 리 도구 구 G L i L iE R W iW i k i ™ |
 업을     한    식관리      도     G D DER ki™                 |   h h t p p / / / w w w g g il d d r w w k i .i o o g g
                                                              t t t : : / w w w . . l    i e e r i i k    . r r
006. To Do List - 오픈소스 참여하기

var JoinGLiDER = {
   지식 정리, 공유 하기 : "http://www.gliderwiki.org",
   문의사항 : "performizer@gmail.com",
   소스까보기 : "https://github.com/gliderwiki/glider",
   페이스북 : "/performizer"
};




 협협 업 을 위위 한 지지 식 관 리 도구 구 G L i L iE R W iW i k i ™ |
  업을     한    식관리      도     G D DER ki™                 |   h h t p p / / / w w w g g il d d r w w k i .i o o g g
                                                               t t t : : / w w w . . l    i e e r i i k    . r r
감 사 합 니 다.

Weitere ähnliche Inhalte

Andere mochten auch

Ux디자인 2011180050 박선영 - 사업계획서
Ux디자인   2011180050 박선영 - 사업계획서Ux디자인   2011180050 박선영 - 사업계획서
Ux디자인 2011180050 박선영 - 사업계획서Sun-Young Park
 
AWS 사업계획서 pt- Yoon Dong Jin
AWS 사업계획서 pt- Yoon Dong JinAWS 사업계획서 pt- Yoon Dong Jin
AWS 사업계획서 pt- Yoon Dong Jin윤 동진
 
[KR] 2013년 10가지 주요 소비자 트렌드
[KR] 2013년 10가지 주요 소비자 트렌드[KR] 2013년 10가지 주요 소비자 트렌드
[KR] 2013년 10가지 주요 소비자 트렌드TrendWatching
 
시맨틱 미디어위키: 위키의 새로운 시작
시맨틱 미디어위키: 위키의 새로운 시작시맨틱 미디어위키: 위키의 새로운 시작
시맨틱 미디어위키: 위키의 새로운 시작Haklae Kim
 
Blue ocean strategy, new business model
Blue ocean strategy, new business modelBlue ocean strategy, new business model
Blue ocean strategy, new business model(KIM JI HO) 김지호
 
[아이티캐너스] 체인지온닷 - 이철혁이 비영리에 전하는 이야기
[아이티캐너스] 체인지온닷 - 이철혁이 비영리에 전하는 이야기[아이티캐너스] 체인지온닷 - 이철혁이 비영리에 전하는 이야기
[아이티캐너스] 체인지온닷 - 이철혁이 비영리에 전하는 이야기daumfoundation
 
[먼데이치킨] 박빙 사업계획서
[먼데이치킨] 박빙 사업계획서[먼데이치킨] 박빙 사업계획서
[먼데이치킨] 박빙 사업계획서시열 백
 
[D2 campus]Key-value store 만들기
[D2 campus]Key-value store 만들기[D2 campus]Key-value store 만들기
[D2 campus]Key-value store 만들기NAVER D2
 
Medical Wiki Project
Medical Wiki ProjectMedical Wiki Project
Medical Wiki ProjectKwangmo Yang
 
사업계획서 톨리오 Slideshare
사업계획서 톨리오 Slideshare사업계획서 톨리오 Slideshare
사업계획서 톨리오 SlideshareJin Hyuk Kim
 
2015 Cannes Lions Winners by FM COMMUNICATIONS
2015 Cannes Lions Winners by FM COMMUNICATIONS2015 Cannes Lions Winners by FM COMMUNICATIONS
2015 Cannes Lions Winners by FM COMMUNICATIONSfmcommunications
 
Partner ConneXions - AWS 파트너를 위한 re:Invent 신규 서비스 소개 (윤석찬 테크에반젤리스트)
Partner ConneXions - AWS 파트너를 위한 re:Invent 신규 서비스 소개 (윤석찬 테크에반젤리스트)Partner ConneXions - AWS 파트너를 위한 re:Invent 신규 서비스 소개 (윤석찬 테크에반젤리스트)
Partner ConneXions - AWS 파트너를 위한 re:Invent 신규 서비스 소개 (윤석찬 테크에반젤리스트)Amazon Web Services Korea
 
[Campus Compass] 사업계획서 - 대학생 공모전/대외활동/인턴/동아리 #(해시태그)기반 맞춤형 추천 서비스 [캠퍼스 컴퍼스]
[Campus Compass] 사업계획서 - 대학생 공모전/대외활동/인턴/동아리 #(해시태그)기반 맞춤형 추천 서비스 [캠퍼스 컴퍼스][Campus Compass] 사업계획서 - 대학생 공모전/대외활동/인턴/동아리 #(해시태그)기반 맞춤형 추천 서비스 [캠퍼스 컴퍼스]
[Campus Compass] 사업계획서 - 대학생 공모전/대외활동/인턴/동아리 #(해시태그)기반 맞춤형 추천 서비스 [캠퍼스 컴퍼스]남호 홍
 
네이버 오픈세미나 백엔드_아키텍쳐
네이버 오픈세미나 백엔드_아키텍쳐네이버 오픈세미나 백엔드_아키텍쳐
네이버 오픈세미나 백엔드_아키텍쳐NAVER D2
 
[D2] java 애플리케이션 트러블 슈팅 사례 & pinpoint
[D2] java 애플리케이션 트러블 슈팅 사례 & pinpoint [D2] java 애플리케이션 트러블 슈팅 사례 & pinpoint
[D2] java 애플리케이션 트러블 슈팅 사례 & pinpoint NAVER D2
 
엄브렐라 사업계획서
엄브렐라 사업계획서엄브렐라 사업계획서
엄브렐라 사업계획서Hyoung Shin Kim
 
AWS re:Invent 특집(4) – 개발자를 위한 신규 서비스 총정리(윤석찬)
AWS re:Invent 특집(4) – 개발자를 위한 신규 서비스 총정리(윤석찬)AWS re:Invent 특집(4) – 개발자를 위한 신규 서비스 총정리(윤석찬)
AWS re:Invent 특집(4) – 개발자를 위한 신규 서비스 총정리(윤석찬)Amazon Web Services Korea
 
IT는 왜 인문학을 요구하는가? | 최진기 오마이스쿨 대표
IT는 왜 인문학을 요구하는가? | 최진기 오마이스쿨 대표IT는 왜 인문학을 요구하는가? | 최진기 오마이스쿨 대표
IT는 왜 인문학을 요구하는가? | 최진기 오마이스쿨 대표cbs15min
 
Dream plaza 사업계획서 (창업리그 최종)
Dream plaza 사업계획서 (창업리그 최종)Dream plaza 사업계획서 (창업리그 최종)
Dream plaza 사업계획서 (창업리그 최종)rain1kis
 

Andere mochten auch (20)

Ux디자인 2011180050 박선영 - 사업계획서
Ux디자인   2011180050 박선영 - 사업계획서Ux디자인   2011180050 박선영 - 사업계획서
Ux디자인 2011180050 박선영 - 사업계획서
 
AWS 사업계획서 pt- Yoon Dong Jin
AWS 사업계획서 pt- Yoon Dong JinAWS 사업계획서 pt- Yoon Dong Jin
AWS 사업계획서 pt- Yoon Dong Jin
 
[KR] 2013년 10가지 주요 소비자 트렌드
[KR] 2013년 10가지 주요 소비자 트렌드[KR] 2013년 10가지 주요 소비자 트렌드
[KR] 2013년 10가지 주요 소비자 트렌드
 
시맨틱 미디어위키: 위키의 새로운 시작
시맨틱 미디어위키: 위키의 새로운 시작시맨틱 미디어위키: 위키의 새로운 시작
시맨틱 미디어위키: 위키의 새로운 시작
 
Blue ocean strategy, new business model
Blue ocean strategy, new business modelBlue ocean strategy, new business model
Blue ocean strategy, new business model
 
[아이티캐너스] 체인지온닷 - 이철혁이 비영리에 전하는 이야기
[아이티캐너스] 체인지온닷 - 이철혁이 비영리에 전하는 이야기[아이티캐너스] 체인지온닷 - 이철혁이 비영리에 전하는 이야기
[아이티캐너스] 체인지온닷 - 이철혁이 비영리에 전하는 이야기
 
[먼데이치킨] 박빙 사업계획서
[먼데이치킨] 박빙 사업계획서[먼데이치킨] 박빙 사업계획서
[먼데이치킨] 박빙 사업계획서
 
[D2 campus]Key-value store 만들기
[D2 campus]Key-value store 만들기[D2 campus]Key-value store 만들기
[D2 campus]Key-value store 만들기
 
Medical Wiki Project
Medical Wiki ProjectMedical Wiki Project
Medical Wiki Project
 
ClickWork 사업계획서
ClickWork 사업계획서ClickWork 사업계획서
ClickWork 사업계획서
 
사업계획서 톨리오 Slideshare
사업계획서 톨리오 Slideshare사업계획서 톨리오 Slideshare
사업계획서 톨리오 Slideshare
 
2015 Cannes Lions Winners by FM COMMUNICATIONS
2015 Cannes Lions Winners by FM COMMUNICATIONS2015 Cannes Lions Winners by FM COMMUNICATIONS
2015 Cannes Lions Winners by FM COMMUNICATIONS
 
Partner ConneXions - AWS 파트너를 위한 re:Invent 신규 서비스 소개 (윤석찬 테크에반젤리스트)
Partner ConneXions - AWS 파트너를 위한 re:Invent 신규 서비스 소개 (윤석찬 테크에반젤리스트)Partner ConneXions - AWS 파트너를 위한 re:Invent 신규 서비스 소개 (윤석찬 테크에반젤리스트)
Partner ConneXions - AWS 파트너를 위한 re:Invent 신규 서비스 소개 (윤석찬 테크에반젤리스트)
 
[Campus Compass] 사업계획서 - 대학생 공모전/대외활동/인턴/동아리 #(해시태그)기반 맞춤형 추천 서비스 [캠퍼스 컴퍼스]
[Campus Compass] 사업계획서 - 대학생 공모전/대외활동/인턴/동아리 #(해시태그)기반 맞춤형 추천 서비스 [캠퍼스 컴퍼스][Campus Compass] 사업계획서 - 대학생 공모전/대외활동/인턴/동아리 #(해시태그)기반 맞춤형 추천 서비스 [캠퍼스 컴퍼스]
[Campus Compass] 사업계획서 - 대학생 공모전/대외활동/인턴/동아리 #(해시태그)기반 맞춤형 추천 서비스 [캠퍼스 컴퍼스]
 
네이버 오픈세미나 백엔드_아키텍쳐
네이버 오픈세미나 백엔드_아키텍쳐네이버 오픈세미나 백엔드_아키텍쳐
네이버 오픈세미나 백엔드_아키텍쳐
 
[D2] java 애플리케이션 트러블 슈팅 사례 & pinpoint
[D2] java 애플리케이션 트러블 슈팅 사례 & pinpoint [D2] java 애플리케이션 트러블 슈팅 사례 & pinpoint
[D2] java 애플리케이션 트러블 슈팅 사례 & pinpoint
 
엄브렐라 사업계획서
엄브렐라 사업계획서엄브렐라 사업계획서
엄브렐라 사업계획서
 
AWS re:Invent 특집(4) – 개발자를 위한 신규 서비스 총정리(윤석찬)
AWS re:Invent 특집(4) – 개발자를 위한 신규 서비스 총정리(윤석찬)AWS re:Invent 특집(4) – 개발자를 위한 신규 서비스 총정리(윤석찬)
AWS re:Invent 특집(4) – 개발자를 위한 신규 서비스 총정리(윤석찬)
 
IT는 왜 인문학을 요구하는가? | 최진기 오마이스쿨 대표
IT는 왜 인문학을 요구하는가? | 최진기 오마이스쿨 대표IT는 왜 인문학을 요구하는가? | 최진기 오마이스쿨 대표
IT는 왜 인문학을 요구하는가? | 최진기 오마이스쿨 대표
 
Dream plaza 사업계획서 (창업리그 최종)
Dream plaza 사업계획서 (창업리그 최종)Dream plaza 사업계획서 (창업리그 최종)
Dream plaza 사업계획서 (창업리그 최종)
 

Ähnlich wie Jco발표 글라이더위키-이남희 0222

오픈소스 컨트리뷰톤 2020 backend.ai 발표자료
오픈소스 컨트리뷰톤 2020 backend.ai 발표자료오픈소스 컨트리뷰톤 2020 backend.ai 발표자료
오픈소스 컨트리뷰톤 2020 backend.ai 발표자료지원 정
 
지속적인 통합
지속적인 통합지속적인 통합
지속적인 통합중선 곽
 
devon2013: 사내Git저장소개발사례
devon2013: 사내Git저장소개발사례devon2013: 사내Git저장소개발사례
devon2013: 사내Git저장소개발사례Daehyun Kim
 
개발자의 첫단계
개발자의 첫단계개발자의 첫단계
개발자의 첫단계yejiHong7
 
토종 개발자가 바라본 실리콘밸리 개발 트랜드
토종 개발자가 바라본 실리콘밸리 개발 트랜드토종 개발자가 바라본 실리콘밸리 개발 트랜드
토종 개발자가 바라본 실리콘밸리 개발 트랜드Justin Park
 
2021년 2월 6일 개발자 이야기
2021년 2월 6일 개발자 이야기2021년 2월 6일 개발자 이야기
2021년 2월 6일 개발자 이야기Jay Park
 
Atlassian Product Overview (아틀라시안 제품 소개) - 2016년 4월 버전
Atlassian Product Overview (아틀라시안 제품 소개) - 2016년 4월 버전Atlassian Product Overview (아틀라시안 제품 소개) - 2016년 4월 버전
Atlassian Product Overview (아틀라시안 제품 소개) - 2016년 4월 버전Atlassian 대한민국
 
팀 생산성 향상을 위한 아틀라시안 제품 소개 (2016년 4월 버전)
팀 생산성 향상을 위한 아틀라시안 제품 소개 (2016년 4월 버전)팀 생산성 향상을 위한 아틀라시안 제품 소개 (2016년 4월 버전)
팀 생산성 향상을 위한 아틀라시안 제품 소개 (2016년 4월 버전)Atlassian 대한민국
 
Cloud ide를 이용한_모바일_개발의_가능성과_전망
Cloud ide를 이용한_모바일_개발의_가능성과_전망Cloud ide를 이용한_모바일_개발의_가능성과_전망
Cloud ide를 이용한_모바일_개발의_가능성과_전망Sung-tae Ryu
 
Enterprise Knowledge Management And Emerging Technologies
Enterprise Knowledge Management And Emerging TechnologiesEnterprise Knowledge Management And Emerging Technologies
Enterprise Knowledge Management And Emerging Technologiescalcutta
 
Cloud Migration 과 Modernization 을 위한 30가지 아이디어-박기흥, AWS Migrations Specialist...
Cloud Migration 과 Modernization 을 위한 30가지 아이디어-박기흥, AWS Migrations Specialist...Cloud Migration 과 Modernization 을 위한 30가지 아이디어-박기흥, AWS Migrations Specialist...
Cloud Migration 과 Modernization 을 위한 30가지 아이디어-박기흥, AWS Migrations Specialist...Amazon Web Services Korea
 
Atlassian confluence WIKI를 활용한 공유와 협업 환경 구성
Atlassian confluence WIKI를 활용한 공유와 협업 환경 구성Atlassian confluence WIKI를 활용한 공유와 협업 환경 구성
Atlassian confluence WIKI를 활용한 공유와 협업 환경 구성KwangSeob Jeong
 
구름 기본 소개자료
구름 기본 소개자료구름 기본 소개자료
구름 기본 소개자료웅식 전
 
01.공통컴포넌트 교육교재
01.공통컴포넌트 교육교재01.공통컴포넌트 교육교재
01.공통컴포넌트 교육교재Hankyo
 
SOSCON2015 SI이노베이션
SOSCON2015 SI이노베이션SOSCON2015 SI이노베이션
SOSCON2015 SI이노베이션DoHyun Jung
 
jjongwuner_cv_page
jjongwuner_cv_pagejjongwuner_cv_page
jjongwuner_cv_page종원 이
 
개인 일정관리에 Agile을 끼얹으면?
개인 일정관리에 Agile을 끼얹으면?개인 일정관리에 Agile을 끼얹으면?
개인 일정관리에 Agile을 끼얹으면?Curt Park
 

Ähnlich wie Jco발표 글라이더위키-이남희 0222 (20)

오픈소스 컨트리뷰톤 2020 backend.ai 발표자료
오픈소스 컨트리뷰톤 2020 backend.ai 발표자료오픈소스 컨트리뷰톤 2020 backend.ai 발표자료
오픈소스 컨트리뷰톤 2020 backend.ai 발표자료
 
지속적인 통합
지속적인 통합지속적인 통합
지속적인 통합
 
devon2013: 사내Git저장소개발사례
devon2013: 사내Git저장소개발사례devon2013: 사내Git저장소개발사례
devon2013: 사내Git저장소개발사례
 
개발자의 첫단계
개발자의 첫단계개발자의 첫단계
개발자의 첫단계
 
Why use git
Why use gitWhy use git
Why use git
 
토종 개발자가 바라본 실리콘밸리 개발 트랜드
토종 개발자가 바라본 실리콘밸리 개발 트랜드토종 개발자가 바라본 실리콘밸리 개발 트랜드
토종 개발자가 바라본 실리콘밸리 개발 트랜드
 
2021년 2월 6일 개발자 이야기
2021년 2월 6일 개발자 이야기2021년 2월 6일 개발자 이야기
2021년 2월 6일 개발자 이야기
 
Atlassian Product Overview (아틀라시안 제품 소개) - 2016년 4월 버전
Atlassian Product Overview (아틀라시안 제품 소개) - 2016년 4월 버전Atlassian Product Overview (아틀라시안 제품 소개) - 2016년 4월 버전
Atlassian Product Overview (아틀라시안 제품 소개) - 2016년 4월 버전
 
팀 생산성 향상을 위한 아틀라시안 제품 소개 (2016년 4월 버전)
팀 생산성 향상을 위한 아틀라시안 제품 소개 (2016년 4월 버전)팀 생산성 향상을 위한 아틀라시안 제품 소개 (2016년 4월 버전)
팀 생산성 향상을 위한 아틀라시안 제품 소개 (2016년 4월 버전)
 
헬프원
헬프원헬프원
헬프원
 
Cloud ide를 이용한_모바일_개발의_가능성과_전망
Cloud ide를 이용한_모바일_개발의_가능성과_전망Cloud ide를 이용한_모바일_개발의_가능성과_전망
Cloud ide를 이용한_모바일_개발의_가능성과_전망
 
Enterprise Knowledge Management And Emerging Technologies
Enterprise Knowledge Management And Emerging TechnologiesEnterprise Knowledge Management And Emerging Technologies
Enterprise Knowledge Management And Emerging Technologies
 
Cloud Migration 과 Modernization 을 위한 30가지 아이디어-박기흥, AWS Migrations Specialist...
Cloud Migration 과 Modernization 을 위한 30가지 아이디어-박기흥, AWS Migrations Specialist...Cloud Migration 과 Modernization 을 위한 30가지 아이디어-박기흥, AWS Migrations Specialist...
Cloud Migration 과 Modernization 을 위한 30가지 아이디어-박기흥, AWS Migrations Specialist...
 
Atlassian confluence WIKI를 활용한 공유와 협업 환경 구성
Atlassian confluence WIKI를 활용한 공유와 협업 환경 구성Atlassian confluence WIKI를 활용한 공유와 협업 환경 구성
Atlassian confluence WIKI를 활용한 공유와 협업 환경 구성
 
구름 기본 소개자료
구름 기본 소개자료구름 기본 소개자료
구름 기본 소개자료
 
01.공통컴포넌트 교육교재
01.공통컴포넌트 교육교재01.공통컴포넌트 교육교재
01.공통컴포넌트 교육교재
 
SOSCON2015 SI이노베이션
SOSCON2015 SI이노베이션SOSCON2015 SI이노베이션
SOSCON2015 SI이노베이션
 
jjongwuner_cv_page
jjongwuner_cv_pagejjongwuner_cv_page
jjongwuner_cv_page
 
개인 일정관리에 Agile을 끼얹으면?
개인 일정관리에 Agile을 끼얹으면?개인 일정관리에 Agile을 끼얹으면?
개인 일정관리에 Agile을 끼얹으면?
 
Gradle 소개
Gradle 소개Gradle 소개
Gradle 소개
 

Kürzlich hochgeladen

MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionKim Daeun
 
캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Wonjun Hwang
 
A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)Tae Young Lee
 
Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Wonjun Hwang
 
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Kim Daeun
 

Kürzlich hochgeladen (6)

MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
 
캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)
 
A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)
 
Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)
 
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
 

Jco발표 글라이더위키-이남희 0222

  • 1. 기업용 오픈소스 를 활용한 프로젝트 관리와 구현기술 http://www.gliderwiki.org https://github.com/gliderwiki/glider performizer@gmail.com http://www.facebook.com/groups/117097138465342/
  • 2. 000. 목차 001. 글라이더 위키가 뭐에요? 002. 오픈 소스에 대한 고민, 그 결과 !! 003. 기술 구현 - 난관에 봉착한 문제들 + 쉬운 설치 - 브라우저에서 Config 파일 생성 (On Browser Install) + 실시간 알람 - Node.js와 Redis를 활용한 서버 푸시 + 원 클릭 패치 - RestTemplate 과 HttpClient를 활용한 서버 업데이트 004. 글라이더 위키의 대상 사용자 005. 실젂! 글라이더 위키를 활용한 팀 프로젝트 관리 하기 006. To Do List - 오픈소스 참여하기 협업을 위한 지식관리 도구 GLiDER Wiki™ | h t t p : / / w w w . g l i d e r w i k i . o r g
  • 3. 9년차 자바 개발자 2012 공개 소프트웨어 개발자 대회 은상 - GLiDER Wiki™ 현재 프리랜서로 XX 전자 오픈 서비스 플랫폼 프로젝트에서 Application Architect로 근무중 어 떻게 편하게 개발할까? 떻게 하면 오픈소스로 먹고 살 수 있을까? 를 고민하는 평.범.한. 자.바.개.발.자 반 복 업무는 자동화 하고 남는 시간에 기술 공부에 투자하고 싶은 게.으.른.개.발.자 협업을 위한 지식관리 도구 GLiDER Wiki™ | h t t p : / / w w w . g l i d e r w i k i . o r g
  • 4. 협업을 위한 지식관리 도구 GLiDER Wiki™ | Chapter. 1 글라이더 위키가 뭐예요?
  • 5. 001. 글라이더 위키가 뭐에요? 뭐죠? • HTML 문서를 빠르게 생성(마크업) • 컨텎츠 생성, 공유, 참여 • 쉬운 설치, 쉬운 사용법, 쉬운 확장 • 사내 조직도, 사용자 그룹 별 권한 부여 • 문서 버젂 히스토리, 검색 • 사내 업무용 위키 • 지식 관리. 공유, 협업 협업을 위한 지식관리 도구 GLiDER Wiki™ | h t t p : / / w w w . g l i d e r w i k i . o r g
  • 6. 001. 글라이더 위키가 뭐에요? 한마디로! Wiki Markup 기반으로 HTML 문서를 빠르게 생성, 공유하는 지식 관리 협업 툴 Simple Easy Useful 협업을 위한 지식관리 도구 GLiDER Wiki™ | h t t p : / / w w w . g l i d e r w i k i . o r g
  • 7. 001. 기능 스택 프리젞테이션 다양한 문서 포맷 캘릮더 공유 모드 지원 웹 설치 지원 원 클릭 패치 원 클릭 확장 조직, 사용자 실시간 알람 문서 리비젂 일괄등록 마크업 에디터 PDF Export 템플릿 코드 하일라이터 차트 인쇄 협업을 위한 지식관리 도구 GLiDER Wiki™ | h t t p : / / w w w . g l i d e r w i k i . o r g
  • 8. 협업을 위한 지식관리 도구 GLiDER Wiki™ | Chapter. 2 오픈소스에 대한 고민, 그 결과
  • 9. 002. 오픈 소스에 대한 고민, 그 결과! 다년간의 스터디... 컨텐츠를 정리 하기 좋은 툴 뭐 없나? 블로그? 게시판? 카페? 홈피? 협업을 위한 지식관리 도구 GLiDER Wiki™ | h t t p : / / w w w . g l i d e r w i k i . o r g
  • 10. 002. 오픈 소스에 대한 고민, 그 결과! 써보니 위키가 甲 인데... 왜 우리나라에서 잘 쓰이질 않지? 내 글을 왜 남이 수정하나? 수직적 조직 문화... Learning Curve... 협업을 위한 지식관리 도구 GLiDER Wiki™ | h t t p : / / w w w . g l i d e r w i k i . o r g
  • 11. 002. 오픈 소스에 대한 고민, 그 결과! 그래 결심했어! 기업용 위키를 만들어 보자. 조직, 그룹 생성 - 권한관리 쉬운 설치, 쉬운 확장, 쉬운 사용 회사에서 쓸 수 있는 문서 정리도구 협협 업 을 위위 한 지지 식 관 리 도구 구 G L i L iE R W iW i k i ™ | 업을 한 식관리 도 G D DER ki™ | h h t p p / / / w w w g g il d d r w w k i .i o o g g t t t : : / w w w . . l i e e r i i k . r r
  • 12. 002. 오픈 소스에 대한 고민, 그 결과! 우리의 컨셉! 단순하고 배우기 쉽고 유용한... 협협 업 을 위위 한 지지 식 관 리 도구 구 G L i L iE R W iW i k i ™ | 업을 한 식관리 도 G D DER ki™ | h h t p p / / / w w w g g il d d r w w k i .i o o g g t t t : : / w w w . . l i e e r i i k . r r
  • 13. 협업을 위한 지식관리 도구 GLiDER Wiki™ | Chapter. 3 기술구현 – 난관에 봉착한 문제들
  • 14. 003. 기술 구현 - 난관에 봉착한 문제들 인스톨쉴드 처럼 손 쉬운 설치 지원 협협 업 을 위위 한 지지 식 관 리 도구 구 G L i L iE R W iW i k i ™ | 업을 한 식관리 도 G D DER ki™ | h h t p p / / / w w w g g il d d r w w k i .i o o g g t t t : : / w w w . . l i e e r i i k . r r
  • 15. 003. 기술 구현 - 난관에 봉착한 문제들 좋아요! 를 구현하고 싶어요. 협협 업 을 위위 한 지지 식 관 리 도구 구 G L i L iE R W iW i k i ™ | 업을 한 식관리 도 G D DER ki™ | h h t p p / / / w w w g g il d d r w w k i .i o o g g t t t : : / w w w . . l i e e r i i k . r r
  • 16. 003. 기술 구현 - 난관에 봉착한 문제들 버그 패치, 확장 기능의 자동화 지원? 협협 업 을 위위 한 지지 식 관 리 도구 구 G L i L iE R W iW i k i ™ | 업을 한 식관리 도 G D DER ki™ | h h t p p / / / w w w g g il d d r w w k i .i o o g g t t t : : / w w w . . l i e e r i i k . r r
  • 17. 003. 기술 구현 - 난관에 봉착한 문제들 요약하면... Easy One Push & Install Click Alarm 1. 쉽게 설치 할 수 있는 방법을 적용해보자. 2. 패치, 확장 기능을 서버에서 원 클릭으로... 3. 서버 푸시, 실시간 알람 기능이 필요하다 협협 업 을 위위 한 지지 식 관 리 도구 구 G L i L iE R W iW i k i ™ | 업을 한 식관리 도 G D DER ki™ | h h t p p / / / w w w g g il d d r w w k i .i o o g g t t t : : / w w w . . l i e e r i i k . r r
  • 18. 003. 기술스택 Presentation Layer Business Component HTML CSS Transaction Cache Custom Lib Logs Security Java EE Framewrok Spring 3.0, MyBatis 3.0 Ajax Open Source Library JSTL JQuery DWR Node.JS Redis Java Virtual Machine *JDK 1.6) Tomcat 7.0 Database MySQL HSQL Linux Unix Windows Module 웹 표준 에디터 Markup & 파서 문서 검색 문서 버전 관리 PDF Viewer 조직관리 웹 인스톨러 문서 탬플릿 권한 관리 코드 하이라이트 확장 기능 패치 실시간 알림 Development Environment Eclipse Google Code SVN & Github Test Case ER Master 팀 협업 도구 협협 업 을 위위 한 지지 식 관 리 도구 구 G L i L iE R W iW i k i ™ | 업을 한 식관리 도 G D DER ki™ | h h t p p / / / w w w g g il d d r w w k i .i o o g g t t t : : / w w w . . l i e e r i i k . r r
  • 19. 003. 쉬운 설치 - 브라우저에서 Config 파일 생성 일반적인 배포 방식 config.xml ftp전송 jdbc.properties Console 협협 업 을 위위 한 지지 식 관 리 도구 구 G L i L iE R W iW i k i ™ | 업을 한 식관리 도 G D DER ki™ | h h t p p / / / w w w g g il d d r w w k i .i o o g g t t t : : / w w w . . l i e e r i i k . r r
  • 20. 003. 쉬운 설치 - 브라우저에서 Config 파일 생성 글라이더 위키의 배포 방식 http://client-url/admin/install ftp전송 JDBC 연동 정보 테이블 스키마 jdbc.properties 기본 데이터 config.xml 메일젂송 정보 협협 업 을 위위 한 지지 식 관 리 도구 구 G L i L iE R W iW i k i ™ | 업을 한 식관리 도 G D DER ki™ | h h t p p / / / w w w g g il d d r w w k i .i o o g g t t t : : / w w w . . l i e e r i i k . r r
  • 21. 003. 다시 봉착한 문제 !!! Spring 은 서버 기동시 관련 설정 Bean들이 로드되면서 에러가 발생한다. 에러 메세지는... Invalid bean definition with name 'datasource' defined in ServletContext... 협협 업 을 위위 한 지지 식 관 리 도구 구 G L i L iE R W iW i k i ™ | 업을 한 식관리 도 G D DER ki™ | h h t p p / / / w w w g g il d d r w w k i .i o o g g t t t : : / w w w . . l i e e r i i k . r r
  • 22. 003. 다시 봉착한 문제 !!! 임의의 정보로 JDBC 연결을 시도할 경우에도 Exception 이 발생한다. org.gliderwiki.framework.exception.GliderwikiException: Could not open JDBC Connection for transaction; nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Could not create connection to database server. Attempted reconnect 3 times. Giving up.) 협협 업 을 위위 한 지지 식 관 리 도구 구 G L i L iE R W iW i k i ™ | 업을 한 식관리 도 G D DER ki™ | h h t p p / / / w w w g g il d d r w w k i .i o o g g t t t : : / w w w . . l i e e r i i k . r r
  • 23. 003. 해결 방안 • HSQL DB를 활용한 Mock Connection 제공 • 최초 기동시 jdbc.properties에 hsql 의 기본 Connection 정보를 연결 applicationContext-jdbc.xml jdbc.properties 기본 설정 협협 업 을 위위 한 지지 식 관 리 도구 구 G L i L iE R W iW i k i ™ | 업을 한 식관리 도 G D DER ki™ | h h t p p / / / w w w g g il d d r w w k i .i o o g g t t t : : / w w w . . l i e e r i i k . r r
  • 24. 003. 해결 방안 서버 기동시의 콘솔 메세지 Creating shared instance of singleton bean 'hsqlDataSource' Creating instance of bean 'hsqlDataSource' Creating embedded database 'hsqlDataSource' Creating new JDBC Driver Connection to [jdbc:hsqldb:mem:hsqlDataSource] Executing SQL script from ServletContext resource [/WEB-INF/databases/hsql/init/schema.sql] Executing SQL script from ServletContext resource [/WEB-INF/databases/hsql/init/test- data.sql] ...... Done executing SQL script from ServletContext resource [/WEB-INF/databases/hsql/init/test- data.sql] in 31 ms. 협업을 위한 지식관리 도구 GLiDER Wiki™ | h t t p : / / w w w . g l i d e r w i k i . o r g
  • 25. 003. 해결 방안 application application application JDBC Mock Connection DB (HSQL) ※ HSQL은 JAVA 로 만들어짂 DBMS 엔짂으로 굉장히 적은 용량으로 표준 SQL 구문을 지원하며 HSQL - jdbc.properties 메모리 및 디스크 기반의 테이블을 제공한다. 협업을 위한 지식관리 도구 GLiDER Wiki™ | h t t p : / / w w w . g l i d e r w i k i . o r g
  • 26. 003. 해결 방안 application application application Pool-Enabled DataSource DB (MySQL) • Mail Config • SMTP 전송 • XML Config • Properties • Table 생성 HSQL - jdbc.properties MySQL - jdbc.properties • Data Insert • Shell Command 협업을 위한 지식관리 도구 GLiDER Wiki™ | h t t p : / / w w w . g l i d e r w i k i . o r g
  • 27. 003. 샘플 화면 http://14.63.225.165:9909/admin/install 협업을 위한 지식관리 도구 GLiDER Wiki™ | h t t p : / / w w w . g l i d e r w i k i . o r g
  • 28. 003. 소스 - JDBC Connection Test 입력된 JDBC 정보로 MySQL의 커넥션을 테스트 한다. 협업을 위한 지식관리 도구 GLiDER Wiki™ | h t t p : / / w w w . g l i d e r w i k i . o r g
  • 29. 003. 소스 - Properties 정보 생성 서버경로 : /WEB-INF/spring/ 로 Properties 파일 생성 협업을 위한 지식관리 도구 GLiDER Wiki™ | h t t p : / / w w w . g l i d e r w i k i . o r g
  • 30. 003. SQL 실행 #지정된 경로의 .SQL 파일을 읽어와 특정 패턴일 때 구문을 실행한다. # Drop table if exists … 구문으로 테이블을 삭제 한다. 협협 업 을 위위 한 지지 식 관 리 도구 구 G L i L iE R W iW i k i ™ | 업을 한 식관리 도 G D DER ki™ | h h t p p / / / w w w g g il d d r w w k i .i o o g g t t t : : / w w w . . l i e e r i i k . r r
  • 31. 003. 테이블 스키마 & 기초 데이터 Setup 한글 깨짐 여부를 판단하기 위하여 3가지 타입으로 테이블을 생성 utf8_unicode_ci 나 utf8_general_ci는 정렬 혹은 성능상 선택하는 옵션이지만 한글처리에 영향을 준다. √ table_script_euc-kr.sql table_script_utf-8.sql DB table_script_utf8-general-ci.sql (MySQL) table_script_utf8-unicode-ci.sql 협업을 위한 지식관리 도구 GLiDER Wiki™ | h t t p : / / w w w . g l i d e r w i k i . o r g
  • 32. 003. 테이블 스키마 & 기초 데이터 Setup CREATE TABLE ATTACHMENT ( WE_BBS_IDX INT(9) NOT NULL COMMENT '게시판순번 : 게시판순번', WE_FILE_IDX INT(10) COMMENT '첨부파일순번', USE_YN CHAR(1) character set utf8 collate utf8_general_ci COMMENT '한글' ) COMMENT = '첨부파일' DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; CREATE TABLE ATTACHMENT ( WE_BBS_IDX INT(9) NOT NULL COMMENT '게시판순번 : 게시판순번', WE_FILE_IDX INT(10) COMMENT '첨부파일순번', USE_YN CHAR(1) COMMENT '사용여부' ) COMMENT = '첨부파일' DEFAULT CHARACTER SET utf8; CREATE TABLE ATTACHMENT ( WE_BBS_IDX INT(9) NOT NULL COMMENT '게시판순번 : 게시판순번', WE_FILE_IDX INT(10) COMMENT '첨부파일순번', USE_YN CHAR(1) COMMENT '사용여부' ) COMMENT = '첨부파일' DEFAULT CHARACTER SET euckr COLLATE euckr_korean_ci; 협업을 위한 지식관리 도구 GLiDER Wiki™ | h t t p : / / w w w . g l i d e r w i k i . o r g
  • 33. 003. Shell Command 협업을 위한 지식관리 도구 GLiDER Wiki™ | h t t p : / / w w w . g l i d e r w i k i . o r g
  • 34. 003. Shell Command 쉘 명령어 실행 ShellCommands.execute("chmod -R 755 " + svcPath); String rtnCode = ShellCommands.execute("uname"); String rtnCode = ShellCommands.execute("cat /proc/version"); String rtnCode = ShellCommands.execute("./copy.sh"); 협협 업 을 위위 한 지지 식 관 리 도구 구 G L i L iE R W iW i k i ™ | 업을 한 식관리 도 G D DER ki™ | h h t p p / / / w w w g g il d d r w w k i .i o o g g t t t : : / w w w . . l i e e r i i k . r r
  • 35. 003. 실시간 알람 - Node.js 와 Redis를 이용한 푸시 일정 간격으로 서버에 Request를 보내 이벤트를 받는다. Polling 서버 리소스, 네트워크의 낭비가 심하다 클라이언트가 서버 접속 시 연결 상태를 유지하고 있다가 이벤트가 Long 발생하면 젂송한다 Polling 클라이언트가 메시지를 받으면 다시 서버에 접속하여 연결 대기 상태를 반복한다 클라이언트와 서버의 접속을 계속 유지한 채 서버에서 이벤트가 Streaming 발생할 때마다 메시지를 HTTP Chunked 방식으로 보낸다. (Ajax 구현시 IE에서 동작 안함) 서버 푸시란 서버측에서 클라이언트측으로 데이터를 젂송해주는 통싞 방식 협협 업 을 위위 한 지지 식 관 리 도구 구 G L i L iE R W iW i k i ™ | 업을 한 식관리 도 G D DER ki™ | h h t p p / / / w w w g g il d d r w w k i .i o o g g t t t : : / w w w . . l i e e r i i k . r r
  • 36. 003. 실시간 알람 - Node.js 와 Redis를 이용한 푸시 http-connect (Channel, Message) Node.js Rest WAS NotificationController Express Socket.IO NotificationService Biz DB NotificationComponent Request Push Sub Pub ※ http://www.gridshore.nl/2011/07/28/combining-java-and-node-js-through-redis-pubsub-and-a-json-remote-interface/ (gridshore 블로 그) ※ http://www.mimul.com/pebble/default/2012/06/14/1339620867407.html(하호짂님 블로그) 협협 업 을 위위 한 지지 식 관 리 도구 구 G L i L iE R W iW i k i ™ | | h h t p p / / / w w w g g il d d r w w k i .i o o g g 업을 한 식관리 도 G D DER ki™ t t t : : / w w w . . l i e e r i i k . r r
  • 37. 003. 개발 소스 - notification.js var socketCliConf = { 'connect timeout' : 3000, 'reconnect': false, 'sync disconnect on unload' : false }; 협협 업 을 위위 한 지지 식 관 리 도구 구 G L i L iE R W iW i k i ™ | 업을 한 식관리 도 G D DER ki™ | h h t p p / / / w w w g g il d d r w w k i .i o o g g t t t : : / w w w . . l i e e r i i k . r r
  • 38. 003. 개발 소스 - applicationContext-redis.xml 협협 업 을 위위 한 지지 식 관 리 도구 구 G L i L iE R W iW i k i ™ | 업을 한 식관리 도 G D DER ki™ | h h t p p / / / w w w g g il d d r w w k i .i o o g g t t t : : / w w w . . l i e e r i i k . r r
  • 39. 003. 개발 소스 - NotificationComponent.java 협협 업 을 위위 한 지지 식 관 리 도구 구 G L i L iE R W iW i k i ™ | 업을 한 식관리 도 G D DER ki™ | h h t p p / / / w w w g g il d d r w w k i .i o o g g t t t : : / w w w . . l i e e r i i k . r r
  • 40. 003. 개발 소스 - Remind... Redis Pub/Sub RedisTemplate @Resource(name = "redisTemplate") private RedisTemplate<String, String> redisTemplate; ... redisTemplate.convertAndSend("Hello", "user channel"); RedisConnection byte[] message = ...; byte[] channel = ...; redisConnection.publish(message, channel); 협협 업 을 위위 한 지지 식 관 리 도구 구 G L i L iE R W iW i k i ™ | 업을 한 식관리 도 G D DER ki™ | h h t p p / / / w w w g g il d d r w w k i .i o o g g t t t : : / w w w . . l i e e r i i k . r r
  • 41. 003. 개발 소스 - Remind... Redis Pub/Sub 클라이언트 - 브라우저 <script src="/socket.io/socket.io.js"></script> <script> var url = "http://www.gliderwiki.org:3000"; var socket = io.connect(url+"?channel="+사용자 채 널, socketConfig); socket.on(사용자 채널, function(data) { console.log(data.user_data); }); </script> 협협 업 을 위위 한 지지 식 관 리 도구 구 G L i L iE R W iW i k i ™ | 업을 한 식관리 도 G D DER ki™ | h h t p p / / / w w w g g il d d r w w k i .i o o g g t t t : : / w w w . . l i e e r i i k . r r
  • 42. 003. Redis & Node.js • Node.js는 서버 사이드 자바스크립트이며 Google의 정리 좀… 자바스크립트 엔짂인 V8 위에서 동작하며 이벤트 기반 non-blocking I/O를 지원한다. (http://nodejs.org) • Redis(Remote Dictionary Server)는 데이터형 자료구조 서버로 Memcached 시스템보다 빠르고 풍부한 데이터 형태와 자료 구조를 메모리에 저장할 수 있는 캐싱 솔루션. 젂통적인 데이터 저장 방식도 지원하고 노드간의 데이터 복제도 가능하다. (http://redis.io) 협협 업 을 위위 한 지지 식 관 리 도구 구 G L i L iE R W iW i k i ™ | 업을 한 식관리 도 G D DER ki™ | h h t p p / / / w w w g g il d d r w w k i .i o o g g t t t : : / w w w . . l i e e r i i k . r r
  • 43. 003. 원클릭 패치 - RestTemplate 서버 업데이트 Rest(Representational State Transfer) 스타일 아키텍처를 통하여 자원에 대한 요청 및 응답을 젂송, 처리. Spring 프레임워크는 3.0 릯리즈 부터 Rest 지원 URL Request HTTP Method(GET,POST,PUT,DELETE) Content-Type : text/xml... Accept : application/xml... Response JSON, XML… Status Code(200, 404...) 협협 업 을 위위 한 지지 식 관 리 도구 구 G L i L iE R W iW i k i ™ | 업을 한 식관리 도 G D DER ki™ | h h t p p / / / w w w g g il d d r w w k i .i o o g g t t t : : / w w w . . l i e e r i i k . r r
  • 44. 003. Server to Server Patch Update 요건정의 : 사용자가 패치 파일을 다운로드 하여 FTP 에 개별로 반영하는게 아니라 서버측 프로그램에서 자동으로 패치 업데이트를 하도록 하자!! Request Version, 인증정보 HttpResponse Response (file stream) admin GLiDER Wiki가 설치된 파일관리 서버 클라이언트서버 http://gliderwiki.org (http://domain.com) 협협 업 을 위위 한 지지 식 관 리 도구 구 G L i L iE R W iW i k i ™ | 업을 한 식관리 도 G D DER ki™ | h h t p p / / / w w w g g il d d r w w k i .i o o g g t t t : : / w w w . . l i e e r i i k . r r
  • 45. 003. Server to Server Patch Update • 클라이언트측 서버의 패치 정보 젂송 • 보안 처리(사용자 인증키) • 글라이더 파일 서버에서 패치 정보 젂송 • 활성화 된 다운로드 클릭시 RestTemplate -> 간단한 흐름 HttpEntity를 이용하여 지정된 경로로 File Write 협협 업 을 위위 한 지지 식 관 리 도구 구 G L i L iE R W iW i k i ™ | 업을 한 식관리 도 G D DER ki™ | h h t p p / / / w w w g g il d d r w w k i .i o o g g t t t : : / w w w . . l i e e r i i k . r r
  • 46. 003. RestTemplate 간단 Demo 소스 협협 업 을 위위 한 지지 식 관 리 도구 구 G L i L iE R W iW i k i ™ | 업을 한 식관리 도 G D DER ki™ | h h t p p / / / w w w g g il d d r w w k i .i o o g g t t t : : / w w w . . l i e e r i i k . r r
  • 47. 003. RestTemplate 간단 Demo 결과 협협 업 을 위위 한 지지 식 관 리 도구 구 G L i L iE R W iW i k i ™ | 업을 한 식관리 도 G D DER ki™ | h h t p p / / / w w w g g il d d r w w k i .i o o g g t t t : : / w w w . . l i e e r i i k . r r
  • 48. 003. RestTemplate 과 HttpClient를 이용한 패치 Rest-context.xml <bean id="restTemplate" class="org.springframework.web.client.RestTemplate" /> HTTP DELETE public void delete(String url, Object... urlVariables) throws RestClientException; public void delete(String url, Map<String, ?> urlVariables) throws RestClientException; HTTP GET public <T> T getForObject(String url, Class<T> responseType, Object... urlVars) throws RestClientException; public <T> ResponseEntity<T> getForEntity(String url, Class<T> responseType, Object... urlVariables); HTTP POST public <T> T postForObject(String url, Object request, Class<T> responseType, Object... uriVariables); public <T> ResponseEntity<T> postForEntity(String url, Object request, Class<T> responseType, Object... uriVars); HTTP PUT public void put(String url, Object request, Object... urlVariables) throws ...;public void put(String url, Object request, Map<String, ?> urlVariables) throws ...; 협협 업 을 위위 한 지지 식 관 리 도구 구 G L i L iE R W iW i k i ™ | 업을 한 식관리 도 G D DER ki™ | h h t p p / / / w w w g g il d d r w w k i .i o o g g t t t : : / w w w . . l i e e r i i k . r r
  • 49. 003. RestTemplate 과 HttpClient를 이용한 패치 협협 업 을 위위 한 지지 식 관 리 도구 구 G L i L iE R W iW i k i ™ | 업을 한 식관리 도 G D DER ki™ | h h t p p / / / w w w g g il d d r w w k i .i o o g g t t t : : / w w w . . l i e e r i i k . r r
  • 50. 003. RestTemplate 과 HttpClient를 이용한 패치 경로 : “/resource/v101/ FileStream , 암호화 필요 협협 업 을 위위 한 지지 식 관 리 도구 구 G L i L iE R W iW i k i ™ | 업을 한 식관리 도 G D DER ki™ | h h t p p / / / w w w g g il d d r w w k i .i o o g g t t t : : / w w w . . l i e e r i i k . r r
  • 51. 003. 브라우저 다운로드 형태 View 화면에서 버튺 클릭시... var funcFileDownload = function(){ $('#pForm').attr('method', 'post'); $('#pForm').attr('action', ‘http://url/patchList/2'); $('#pForm').submit(); } 협협 업 을 위위 한 지지 식 관 리 도구 구 G L i L iE R W iW i k i ™ | 업을 한 식관리 도 G D DER ki™ | h h t p p / / / w w w g g il d d r w w k i .i o o g g t t t : : / w w w . . l i e e r i i k . r r
  • 52. 협업을 위한 지식관리 도구 GLiDER Wiki™ | Chapter. 4 글라이더 위키의 대상 사용자
  • 53. 004. 글라이더 위키의 대상 사용자 Google에서 프로젝트 그룹 검색 했더니.JPG 프로젝트 그룹을 협협 업 을 위위 한 지지 식 관 리 도구 구 G L i L iE R W iW i k i ™ | 업을 한 식관리 도 G D DER ki™ | h h t p p / / / w w w g g il d d r w w k i .i o o g g t t t : : / w w w . . l i e e r i i k . r r
  • 54. 004. 글라이더 위키의 대상 사용자 Google에서 Task Force Team 을 검색 했더니.JPG (Secret Task Force) 협협 업 을 위위 한 지지 식 관 리 도구 구 G L i L iE R W iW i k i ™ | 업을 한 식관리 도 G D DER ki™ | h h t p p / / / w w w g g il d d r w w k i .i o o g g t t t : : / w w w . . l i e e r i i k . r r
  • 55. 004. 글라이더 위키의 대상 사용자 협협 업 을 위위 한 지지 식 관 리 도구 구 G L i L iE R W iW i k i ™ | 업을 한 식관리 도 G D DER ki™ | h h t p p / / / w w w g g il d d r w w k i .i o o g g t t t : : / w w w . . l i e e r i i k . r r
  • 56. 004. 글라이더 위키의 대상 사용자 지식을 정리 하고 공유하고자 하는 모든 곳 정리해 봅시다 - 님 메일 확인요! - 담당자 퇴사시 해당 업무도 퇴사함! - 문서 어디 있지? 그 내용 어디 있나!? - 사수가 니 과외선생이냐?! 대학 Start up Project Team 강좌 연구소 TFT 커뮤니티 협협 업 을 위위 한 지지 식 관 리 도구 구 G L i L iE R W iW i k i ™ | 업을 한 식관리 도 G D DER ki™ | h h t p p / / / w w w g g il d d r w w k i .i o o g g t t t : : / w w w . . l i e e r i i k . r r
  • 57. 협업을 위한 지식관리 도구 GLiDER Wiki™ | Chapter. 5 실전! 글라이더 위키를 활용한 팀 프로젝트 관리하기
  • 58. 협협 업 을 위위 한 지지 식 관 리 도구 구 G L i L iE R W iW i k i ™ | 업을 한 식관리 도 G D DER ki™ | h h t p p / / / w w w g g il d d r w w k i .i o o g g t t t : : / w w w . . l i e e r i i k . r r
  • 59. 협협 업 을 위위 한 지지 식 관 리 도구 구 G L i L iE R W iW i k i ™ | 업을 한 식관리 도 G D DER ki™ | h h t p p / / / w w w g g il d d r w w k i .i o o g g t t t : : / w w w . . l i e e r i i k . r r
  • 60. 협협 업 을 위위 한 지지 식 관 리 도구 구 G L i L iE R W iW i k i ™ | 업을 한 식관리 도 G D DER ki™ | h h t p p / / / w w w g g il d d r w w k i .i o o g g t t t : : / w w w . . l i e e r i i k . r r
  • 61. 협협 업 을 위위 한 지지 식 관 리 도구 구 G L i L iE R W iW i k i ™ | 업을 한 식관리 도 G D DER ki™ | h h t p p / / / w w w g g il d d r w w k i .i o o g g t t t : : / w w w . . l i e e r i i k . r r
  • 62. 협협 업 을 위위 한 지지 식 관 리 도구 구 G L i L iE R W iW i k i ™ | 업을 한 식관리 도 G D DER ki™ | h h t p p / / / w w w g g il d d r w w k i .i o o g g t t t : : / w w w . . l i e e r i i k . r r
  • 63. 협협 업 을 위위 한 지지 식 관 리 도구 구 G L i L iE R W iW i k i ™ | 업을 한 식관리 도 G D DER ki™ | h h t p p / / / w w w g g il d d r w w k i .i o o g g t t t : : / w w w . . l i e e r i i k . r r
  • 64. 협협 업 을 위위 한 지지 식 관 리 도구 구 G L i L iE R W iW i k i ™ | 업을 한 식관리 도 G D DER ki™ | h h t p p / / / w w w g g il d d r w w k i .i o o g g t t t : : / w w w . . l i e e r i i k . r r
  • 65. 협업을 위한 지식관리 도구 GLiDER Wiki™ | Chapter. 6 To Do List – 오픈 소스 참여하기
  • 66. 006. To Do List - 오픈소스 참여하기 • 다양한 문서포맷 지원 • 에디터, 차트 강화 • 업무 용어 사젂 • 캘릮더 일정 공유 • 동시 편집 • 커뮤니티 • 모바일 기업형 솔루션, SNS 와 연동된 Q&A 기반의 기술 공유 서비스 협협 업 을 위위 한 지지 식 관 리 도구 구 G L i L iE R W iW i k i ™ | 업을 한 식관리 도 G D DER ki™ | h h t p p / / / w w w g g il d d r w w k i .i o o g g t t t : : / w w w . . l i e e r i i k . r r
  • 67. 006. To Do List - 오픈소스 참여하기 var JoinGLiDER = { 지식 정리, 공유 하기 : "http://www.gliderwiki.org", 문의사항 : "performizer@gmail.com", 소스까보기 : "https://github.com/gliderwiki/glider", 페이스북 : "/performizer" }; 협협 업 을 위위 한 지지 식 관 리 도구 구 G L i L iE R W iW i k i ™ | 업을 한 식관리 도 G D DER ki™ | h h t p p / / / w w w g g il d d r w w k i .i o o g g t t t : : / w w w . . l i e e r i i k . r r
  • 68. 감 사 합 니 다.