반응형

     정보

    • 업무명     : 정보처리기사 실기 : 33강 제품소프트웨어 패키징 (제품소프트웨어 버전관리하기)

    • 작성자     : 이상호

    • 작성일     : 2020-05-10

    • 설   명      :

    • 수정이력 :

     

     

     

     내용

    [제품 소프트웨어 버전 등록]

    [1] 제품 소프트웨어 패키징의 형상 관리
    • 1. 제품 소프트웨어의 형상 관리 파악 

      • 제품 소프트웨어에서 형상 관리 목적은 기본적으로 작성된 패키지의 변경 내용을 관리하기 위함이다. 

      • 이는 SW의 변화를 시간에 따라 기록하고 특정 시점의 버전을 다시 꺼내올 수 있도록 관리하는 체계를 의미한다. 

      • S/W에서 Baseline(변경 통제 시점)을 정하고, 변경을 철저히 관리 통제하는 것이 중요하며, 이에 따라 전체적인 버전 체계가 관리된다. 

     

    • 2. 제품 소프트웨어의 형상 관리 중요성 

      • (1) 제품 소프트웨어는 지속적으로 변경되는데 이에 대한 개발 통제가 중요하다. 

      • (2) 제품 소프트웨어의 형상 관리가 잘되지 않으면 배포판의 버그 및 수정에 대한 추적 의 결여 및 무절제한 변경이 난무할 수 있다. 

      • (3) 형상 관리가 잘되지 않으면 제품 소프트웨어의 가시성(Visibility)의 결핍이 일어난다. 전체적인 조망이나 Insight가 결여되어 장기적인 관리 체계에 문제를 야기할 수 있다.

     

    • 3. 제품 소프트웨어의 형상 관리 역할 

      • (1) 형상 관리를 통해 이전 리비전이나 버전에 대한 정보에 언제든지 접근 가능하여 배포본 관리에 아주 유용 

      • (2) 불필요한 사용자의 소스 수정 제한 

      • (3) 동일한 프로젝트에 대해 여러 개발자 동시 개발 가능 

      • (4) 에러가 발생했을 경우 빠른 시간 내에 복구 가능 (5) 사용자의 요구에 따라 적시에 최상의 소프트웨어 공급

     

    [2] 제품 소프트웨어의 버전 등록 상세 기법
    • 제품 소프트웨어 버전 관리는 SW 개발과 관련하여 코드와 라이브러리, 관련 문서 등 시간 의 변화에 따른 변경을 관리하는 전체 활동을 의미한다. 

      • 1. 버전 관리 등록 관리에서 자주 사용되는 용어 정리(Terms) 

        • 버전 관리와 관련하여 여러 가지 관련 항목들을 이해하고 이에 맞는 버전 등록 및 갱신, 수정 등을 통해 버전을 관리한다.

     

    • (1) 가져오기(Import)

      • 버전 관리지 않은 로컬 디렉토리 파일을 처음으로 저장소(Repository)에 복사 

    • (2) 체크아웃 (Check-out) 

      • 저장소(Repository) 파일 받기 

    • (3) 체크인(Check-in) 

      • 저장소(Repository)에 새로운 버전으로 갱신 

    • (4) 커밋 (Commit) 

      • 체크인 시 이전 갱신 사항이 있는 경우 충돌(conflict) 알림, diff 도구 이용 수정, Commit 과정 수행 

    • (5) 저장소(Repository) 

      • 파일의 현재 버전과 변경 이력 정보를 저장하는 저장소

    • 이러한 용어들을 기반으로 Git를 예로 들었을 때 Command 상에 다음과 같은 여러 가지 추가 명령어들을 볼 수 있다. 

     

    [3] 작업 단계별 버전 등록 기법 
    • 최종 인증을 패키징 버전에 한하여 컴포넌트 저장소에 등록을 한다. 또 등록된 컴포넌트 는 권한을 부여 받은 사용자에 의하여 사용될 수 있다. 무엇보다 중요한 것은 기존에 구현되고 등록되어 있는 컴포넌트의 버전 관리에 신경을 써야 한다. 

    • 컴포넌트 저장소(Repository) 

      • 인증을 받은 컴포넌트를 등록하는 저장소로서 사용자는 저장소를 통하여 손쉽게 컴포넌트 를 이용할 수 있다. 저장소는 컴포넌트의 최신 버전을 유지하고 있으며, 컴포넌트의 버전 별 상태도 유지하고 관리함으로써 사용자가 컴포넌트 이용을 용이하도록 한다. 버전 등록 시 가장 중요한 점은 기 보유 버전과 새로 등록하고자 하는 버전보다 더 통합 버전 관리가 되고 있는가에 있다. 따라서 버전 등록 시에 항상 이러한 부분을 체크할 수 있도록 하고, 체크리스트를 만들어 모든 개발자가 공유할 수 있도록 한다. 일반적으로 버전 관리 도구에서 사용되는 버전 등록 순서는 다음과 같다

     

    • (1)추가(Add) 

      • 개발자가 신규로 어떤 파일을 저장소(Repository)에 추가(Add)한다. 

    • (2)인출(Check-out) 

      • 추가되었던 파일을 개발자가 인출(Check-out)한다. 

    • (3)예치(Commit) 

      • 개발자가 인출된 파일을 수정한 다음, 저장소에 예치(Commit)하면서 설명을 붙인다. 

    • (4)동기화(Update) 

      • Commit 작업 이후 새로운 개발자가 자신의 작업 공간을 동기화(Update)한다. 이때 기 존 개발자가 추가했던 파이 전달된다. 

    • (5)차이(Diff) 

      • 새로운 개발자가 추가된 파일의 수정 기록(Change Log)을 보면서 기존 개발자가 처음 추가한 파일과 이후 변경된 파일의 차이를 본다(Diff). 

     

    [제품 소프트웨어 버전 관리 도구 사용]

    [1] 제품 소프트웨어의 버전 관리 도구
    • 1. 제품 소프트웨어 버전 관리 도구의 파악

      • 제품 소프트웨어의 버전 관리 도구를 통해 현업에서는 다양한 방향으로 버전 관리를 진행 해 간다. 

      • 버전 관리 도구를 이용하는 사례는 다음과 같다. 

        • 버전 관리를 기존의 개발 도구에 단순히 포함하는 형태에서 벗어나 ALM(Applicaton Lifecycle Management)같이 전체 라이프 사이클을 관리하는 방향으로 진행 중 

        • ITIL 기반의 ITSM 도입으로 SW뿐 아니라 HW까지 전체적인 서비스 관점으로 버전 관리 를 진행 

        • 버전 관리는 EAMS, PPM 등의 전사 IT 거버넌스의 한 부분으로 정의되어 비즈니스 영 속성을 유지하기 위해 통합

     

    • 제품 소프트웨어 버전 관리 도구 사용 시 유의 사항 

      • (1) 효율적인 버전 관리 도구 사용을 위해서는 관리 도구의 다양한 기능적 활용, 지속 적인 버전 관리와 버전 관리 기준 등이 필요하며, 버전 관리 도구 사용 관련, 문제 발생 시 해결 매뉴얼 사전 준비 필요 

      • (2) 제품 소프트웨어의 기능이 작을수록 버전 관리 정도를 그에 맞게 적절히 조정 

      • (3) 버전 관리 항목을 정하고 버전 관리 도구에 의한 변경 사항은 공식적인 합의에 의 하여 실시 

      • (4) 배포 후 수정 중인 SW의 버전 관리 도구 사용은 신중하게 진행

     

    [2] 버전 관리 도구의 유형별 특징과 사용 방법
    • 제품 소프트웨어 버전 관리는 SW 개발과 관련하여 코드와 라이브러리, 관련 문서 등 시간 의 변화에 따른 변경을 관리하는 전체 활동을 의미한다.

    • 버전 관리 도구의 유형별 특징 

      • (1) 방식에 따른 버전 관리 도구 유형

      • 공유 폴더 방식 (RCS, SCCS) 

        • 매일 개발 완료 파일은 약속된 위치의 공유 폴더에 복사 

        • 담당자 한 명이 매일 공유 폴더의 파일을 자기 PC로 복사 하고 컴파일하여 에러 확인과 정상 동작 여부 확인 

        • 정상 동작일 경우 다음날 각 개발자들이 동작 여부 확인 

      • 클라이언트/서버 방식 (CVS, SVN) 

        • 중앙에 버전 관리 시스템이 항시 동작 

        • 개발자들의 현재 작업 내용과 이전 작업내용 축적 용이 

        • 서로 다른 개발자가 같은 파일을 작업했을 때 경고 출력 - Trac이나 CVS view와 같은 GUI 툴을 이용 모니티링 가능 

      • 분산 저장소 방식 (Git, Bitkeeper 등) 

        • 로컬 저장소와 원격저장소 구조 

        • 중앙의 저장소에서 로컬에 복사(clone)한 순간 개발자 자 신만의 로컬저장소에 생성 

        • 개발 완료한 파일 수정 이후 로컬 저장소에 커밋한 이후 다시 원격 저장소에 반영(Push)하는 방식

     

    • (2) 구분에 따른 버전 관리 도구 소개

     

    • (3) 현업에서 쓰이는 다양한 버전 관리 도구별 특징

     

    • Git 

    • 기존 리눅스 커널의 버전 컨트롤을 하는 Bitkeeper를 대체 하기 위해서 나온 새로운 버전 컨트롤로 현재의 리눅스는 이것을 통해 버전 컨트롤이 되고 있다.

      •  Git은 속도에 중점을 둔 분산형 버전 관리 시스템(DVCS)이 며, 대형 프로젝트에서 효과적이고 실제로 유용하다.

      •  Git은 SVN과 다르게 Commit은 로컬 저장소에서 이루어지고 push라는 동작으로 원격 저장소에 반영된다.(로컬 저장소 에서 작업이 이루어져 매우 빠른 응답을 받을 수 있다.)

      • 또 받을 때도 Pull 또는 Fetch로 서버에서 변경된 내역을 받아 올 수 있다. 주요 특징은 다음과 같다. 

        • 1) Git의 작업 폴더는 모두 전체 기록과 각 기록을 추적할 수 있는 정보를 포함하는 완전한 형태의 저장소 

        • 2) 네트워크에 접근하거나 중앙 서버에 의존하지 않음. 

        • 3) Git은 GNU 일반 공중 사용 허가서 v2 하에 배포되는 자유 소프트웨어 

    • Clear Case 

      • IBM에서 제작되었다. 

      • 복수 서버, 복수 클라이언트 구조이며 서버가 부족할 때 필요한 서버를 하나씩 추가하여 확장성을 기할 수 있다.

     

    • 2. 형상 관리 지침과 연계한 버전 관리 도구 사용 방법 

    • (1) 버전 관리 도구 도입 사용 사례 

      • 위에서 다양한 유형의 버전 관리 도구에 대해 설명하였다. 이런 다양한 버전 관리 도구 중에서 제품에 맞는, 상황에 맞는 버전 관리 도구를 도입하는 것이 중요하다. 이를 위해 다음과 같이 버전 관리 도구 도입 사용 사례를 소개한다.

    • (2) 형상 관리 지침을 고려한 버전 관리 도구 사용 

      • 제품 소프트웨어의 개발 환경은 다양한 종류의 개발 도구들과 다양한 종류의 OS 환경 을 지니고 있으며, 제품 배포를 위해 다양한 개발자들이 함께 작업함으로써 많은 개발 소스 파일들을 체계적으로 관리할 필요가 있다. 

      • 또 소프트웨어에 대한 형상 관리를 하지 않고서는 소프트웨어에 대한 품질을 확신하기 힘들다. 

      • 수작업을 통해 이러한 것들을 체계적으로 관리하는 데는 한계가 있고, 많 은 시간과 수고와 노력이 필요하기 때문에 이런 문제를 해결하기 위해서 버전 관리 도구를 이용하여 관리한다. 

      • 내부 형상 관리 지침과 버전 관리 도구를 연계하여 필요성 을 생각해 볼 수 있다. 

      • 다음의 사항을 참고하여 버전 관리 도구를 사용한다.

        • ① 형상 관리 지침에 의거 버전에 대한 정보를 언제든지 접근할 수 있어야 한다. 제품 소프트웨어를 신규 개발하거나, 배포본 수정을 하거나, 버그 수정을 하거나 기타 여러 가지 이유로 인해 프로젝트 단위 접근이든 프로젝트를 구성하고 있는 파일 단위 의 접근이든 간에 개발자가 원하는 때에 원하는 모습을 다시 구성할 수 있어야 하는 것은 가장 기본적인 사항이다. 따라서 버전 관리 도구를 통해 언제든 접근가능하도록 그리고 언제든 복구가 가능하도록 시기에 관계없이 버전 관리 도구를 사용할 준비가 되어 있어야 한다. 

        • ② 제품 소프트웨어 개발자, 배포자 이외에 불필요한 사용자가 소스를 수정할 수 없도록 해야 한다. 개발 및 배포 환경의 보안은 가장 중요하다. 버전 관리 도구를 사용 시에는 권한 문제 가 있어서 더더욱 그러하다. 의도했든 아니든 버전 관리에 대한 권한은 버전 관리 도구 사용 시에 미리 정리되어 있지 않으면 사용 시에 문제를 일으킬 수 있다. 일례로 중요한 파일이 신입 사원의 손에 의해 권한 구분 없이 변경이 된다면, 버전 관리 도구 사용 자체의 의미가 없어질 수 있다. 따라서 이에 대한 권한 문제를 버전 관리 도구를 사용 시에 우선으로 고려해야 한다. 중요한 버전 관리 도구에 관련한 권한 체크 항목은 다음 과 같다. 

          • - 서버에 대한 권한 

          • - 버전 관리 디렉토리의 권한 

          • - 버전 파일의 권한 

          • - 사용자 행위에 대한 권한

        • ③ 버전 관리의 기본 개념: 동일한 프로젝트에 대해서 여러 개발자가 동시에 개발할 수 있 어야 한다. 버전 관리 도구 사용 시 프로젝트 내부에서 두 사람 이상이 동시에 작업하는 경우가 많이 있다. 버전 관리 도구 사용 방법에 주의를 기울이지 않으면, 다른 개발자에 의해 서 자신이 작업한 소스가 덮어 쓰여질 수 있게 된다. 이때 다른 개발자들 간에 어떻게 두 개의 모듈을 병합하겠는가도 생각해 볼 문제다. 단순히 두 개의 파일을 비교해서 병 합한다고 해도 많은 수작업을 필요로 한다. 위에서 언급한 내용까지 감안한다면 특정 파일은 불필요한 개발자들의 접근을 막고, 다른 파일은 개발자가 동시에 접근을 해야 하고, 이런 파일들이 같은 디렉토리에 존재한다면, 단순히 디렉토리의 파일 권한 정도 로는 해결이 안된다는 것을 쉽게 알 수 있다. 버전 관리 도구는 파일을 동시에 접근하 는 데 해결책을 제시해 준다. 버전 관리 도구 사용 시 이와 같은 버전 관리 개념에 대 해서 기본적으로 숙지하고 사용하는 것이 중요하다.

        • ④ 에러 발생시 최대한 빠른 시간 내에 복구한다. 제품 소프트웨어 개발 이후 배포가 완료된 시점에 발생하는 것이 에러나 버그에 대한 부분이다. 실제로 아주 완벽히 배포가 된 제품 패키지라고 해도 버그 없이 계속 서비스 될 확률은 찾기 어렵다. 피해갈 수 없는 상황이므로 최대한 빠른 시간 내에 이를 복구 하는 것이 해답이다. 우리는 1장부터 사용자 편의성을 고려한 제품 소프트웨어 패키징 을 위해 노력해 왔다. 사용자는 최대한 빠른 시간 내에 복구를 원할 것이다. 버전 관리 도구의 효과적 사용을 통해 빠른 시간 내에 담당자가 버그에 대한 사실을 알 수 있도 록 하고, 이전 버전 및 자료를 탐색하는데 걸리는 시간도 줄여 주게 된다. 버전 관리 도구의 필요성이다. 

     

    [제품 소프트웨어 버전 관리 도구 활용]

    [1] 제품 소프트웨어 버전 관리 도구의 활용방향
    • 제품 소프트웨어 개발 조직이나 기 배포된 제품이 있는 조직에서는 기 보유 제품 버전과 새로 개발된 버전을 동시에 유지, 관리하여야 한다. 따라서 활용성 중심으로 버전 관리 도 구의 상세 기능을 활용하여 새 버전을 유지하면서 기존 버전의 관리도 함께 수행하여야 한다. 따라서 이를 위해 백업 및 장애 복구 등의 추가적인 사항도 Case별로 고려해야 한다.

    • 제품 소프트웨어 버전 관리는 SW 개발 관련하여 코드와 라이브러리, 관련 문서 등 시간의 변화에 따른 변경을 관리하는 전체 활동을 의미한다. 

     

    • 1. 버전 관리 도구를 활용한 통합 버전 현황 관리 

      • 버전 관리 도구를 활용한 버전 현황 관리 작업에는 기존의 고유한 버전 관리 외에도 버전 관리 도구에서 지원하는 모든 관리 작업 전체를 관리할 수 있도록 해야 한다. 여 기에는 기존에 버전 관리의 버전별 공동 작업 이외에도 백업 및 복구 작업, 공동 솔루션 기반의 여러 가지 작업 등이 통합되어 현황 관리된다. 

    • 2. 버전 관리 도구 활용한 제품 소프트웨어 소스 및 자료 백업 

      • (1) 제품 소프트웨어 소스 및 자료 백업의 의미 

        • 소스 및 자료 백업의 목적은 크게는 천재지변이나 해킹, 작게는 소프트웨어 버그 및 오동작 등으로 인한 각종 재해에 대비해 System을 Recovery 가능한 상태로 만들기 위 해 준비하는 것이다.

        • 손실의 예방 및 최소화를 우선해야 하고, 정작 재해가 발생했을 시는 최단 기간에 정 상 업무에 복구하도록 버전 관리 도구를 적절히 사용할 수 있어야 한다.

        • 버전 관리 도구의 사용 방법을 숙지하여 복구 과정의 효과적 통제/관리가 이루어질 수 있도록 해야 한다. 이를 통해 제품 소프트웨어의 소스 및 자료를 정보 자산으로 훌륭하게 보호 할 수 있다.

      • (2) 버전 관리 도구 활용 시 자료 백업 정책 및 방법 버전 관리 도구를 활용, 제품 소프트웨어 백업은 내부의 정확한 백업 정책을 먼저 세워야 하고, 상세 백업 방법을 공유해야 한다. 백업 정책 사례 및 방법은 다음과 같다. 

    • (3) 버전 관리 도구를 활용한 소스 및 자료 백업 

      • (가) 디렉토리를 신규로 만들며 물리적 복사: Repository Backup 

        • 버전 관리 도구 Git를 사례로 들면,  Git 자체가 소스 코드 백업용으로 쓰이지만, 2차 백업 개념으로 ./.Git 폴더의 내용 디렉토리를 물리적으로 다른 곳에 보관하여 백업한다. 새로 만든 디렉토리나 이미 파일이 있는 디렉토리에서 Git init 명령을 실행하면 Git 는 데이터를 저장하고 관리하는 .Git 디렉토리를 만든다. 

        • 이 디렉토리를 복사하기만 해도 저장소가 백업된다. 이처럼 1차로 가장 기본적인 원시 백업 방법으로 디렉토리 자체를 복사하여 백업한다.

      • (나) 버전 관리 도구의 백업 기능 활용: Git bundle Git Repository의 bundle을 생성하는 process를 통해 백업 자체를 버전 관리 도구에 서 자동화하여 백업을 진행해 주는 백업 방법이다. 다음과 같은 방식을 갖는다. 

        • Git backup [-d DESTINATION DIR] [-f BUNDLENAME] 

        • 환경값은 Git config file에 세팅을 하며, Git Repository의 bundle을 생성할 수 있게 된다. $HOME/.Gitconfig 파일에는 Repository에 대한 구성 설정이 들어 있다. 또 백 업 이후 이를 복구할 때는 Git-restore를 활용하여 복구한다. Git config 관련한 설정값은 다음과 같다. 

     

    [1] 버전 관리 도구를 통해 나타날 수 있는 버전 현황 관리 항목을 식별한다.
    • 1. 버전 관리 도구의 추가 기능 확인 

      • 버전 관리 도구의 기본 기능 이외의 기능을 추가로 실습한다. 

    • 2. 버전 관리 도구의 관리 및 백업기능 식별 

      • 버전 관리 도구의 관리 및 백업 기능에 대해 학습한다

     

    [2] 버전 관리 도구를 통해 나타날 수 있는 버전 현황 관리 항목을 식별한다.
    • 1. 기본적인 버전 현황 (신규 등록, 수정) 

      • 신규등록, 수정 등의 기본적인 버전 관리를 실습한다. 

    • 2. 동일 버전 공동 작업 

      • 동일 버전을 여러 개발자가 동시에 작업할 경우의 버전 관리를 실습한다. 

    • 3. 여러 버전 하나의 솔루션 

      • 여러 가지 버전을 하나의 도구 및 솔루션을 통해 관리하는 상황을 실습한다

     

     

    [3] 버전 관리 도구를 통해 활용 가능한 백업의 기능 및 범위를 확인한다.
    • 1. 정확한 백업 정책 수립 

      • 전체적인 백업 관리 및 정책에 대해 사전에 수립하도록 실습한다. 

    • 2. 버전 관리 도구를 통한 백업 방법 숙지 

      • 버전 관리 도구의 백업 기능을 실습한다.

    • 3. Full 백업, 증분 백업 

      • 백업의 2가지 방법인 Full 백업, 증분 백업을 실습한다. 

     

     

    [4]버전 관리 도구 이외에도 물리적 백업, 백업 정책 같은 부분을 작성하여 공유한다.
    • 1. 라이브러리 백업, Disk 백업 

      • 기본적인 백업의 기능인 라이브러리 백업, Disk 백업에 대해 학습한다. 

    • 2. 백업 주기 

      • 백업 주기에 대해 여러 가지 기준을 세워 공유한다. 

    • 3. 백업, 버전 관리 정기 보고서 

      • 백업, 버전 관리에 대해 정기적으로 수행하고, 이를 보고하는 기본 보고서를 작성해 본다.

     

     

    [5] 동일버전을 공동작업할 때 버전 관리 도구 사용 사례를 발표한다.
    • 1. 공동 작업 

      • 동일버전의 소스를 공동 작업으로 실습한다. 

    • 2. 분산 환경 작업 

      • 분산환경에서의 동일 버전 소스를 실습한다. 

    • 3. 분산 환경에서 버전 관리 도구 사용 사례 도출 

      • 분산환경에서 버전 관리 도구의 사례를 도출하고 발표한다. 

     

    [6] 다수의 개발자가 동일 솔루션 환경하에서 브랜치(Branch)를 관리할 수 있도록 실습해 본다.
    • 1. 하나의 솔루션 기반 하에 여러 버전 제품 소프트웨어 

      • 하나의 솔루션에 여러 버전을 가진 상황을 실습한다. 

    • 2. Branch 관리 기능에 대한 실습 

      • 여러 가지 Branch를 실습하고 관리 기능을 학습한다. 

    • 3. 버전 관리 도구를 활용한 응용 기능에 대한 다양한 Case 정리 

      • 버전 관리 도구의 응용 기능에 대하여 정리하고 발표한다.

     

    [연습문제]

    • 제품 소프트웨어의 형상 관리 역할이 잘못된 것은? 

      • (1) 형상 관리를 통해 이전 리비전이나 버전에 대한 정보에 언제든지 접근 가능하여 배포본 관리에 아주 유용 

      • (2) 불필요한 사용자의 소스 수정 가능

      • (3) 동일한 프로젝트에 대해 여러 개발자 동시 개발 가능 

      • (4) 에러가 발생했을 경우 빠른 시간 내에 복구 가능

     

    • 버전 관리 항목이 잘못된 것은?

      • (1) 가져오기(Import) :버전 관리지 않은 로컬 디렉토리 파일을 처음으로 저장 소(Repository)에 복사 

      • (2) 체크아웃 (Check-out) : 저장소(Repository)에 새로운 버전으로 갱신 

      • (3) 커밋 (Commit) : 체크인 시 이전 갱신 사항이 있는 경우 충돌(conflict) 알림, diff 도구 이용 수정, Commit 과정 수행                           

      • (4) 저장소(Repository) : 파일의 현재 버전과 변경 이력 정보를 저장하는 저장소

     

     참고 문헌

    [논문]

    • 없음

    [보고서]

    • 없음

    [URL]

    • 없음

     

     문의사항

    [기상학/프로그래밍 언어]

    • sangho.lee.1990@gmail.com

    [해양학/천문학/빅데이터]

    • saimang0804@gmail.com

     

     

     

     

     

     

     

     

     

     

     

    본 블로그는 파트너스 활동을 통해 일정액의 수수료를 제공받을 수 있음
    반응형
    • 네이버 블러그 공유하기
    • 네이버 밴드에 공유하기
    • 페이스북 공유하기
    • 카카오스토리 공유하기