css 파일에서 본문 내용의 리스트를 표현하는 li, ul, ol 과 관련된 list-style속성을 찾는다.

해당 속성이 none이라고 표현되어 있을텐데, 바꾸고 싶은 스타일에 맞게 바꾼다.

이 블로그에서는 컨텐츠의 마크다운 목록을 바꾸고 싶었기 때문에 컨텐츠의 ul, ol 요소를 찾아 list-style을 각각 disk, decimal로 바꿔주었다. disk는 원형, decimal은 10진수를 의미한다. 아무 요소의 list-style을 바꾸게 되면 의도하지 않은 화면의 리스트를 바꿀 수 있기 때문에 주의해야 한다.

참고) 다음과 같이 바꿔 주었다.

.bc-markdown__inner-content ol li{
  list-style: decimal;
}

.bc-markdown__inner-content ul li{
  list-style: disc;
}

 

네트워크 개요

  • 네트워크 구성요소
  • 토폴로지
  • 규모에 따른 네트워크 분류
  • 계층 구조 이해해서 계층별 기능과 프로토콜 필요성 이해

네트워크 구성요소

  • 노드(장치) + 링크
  • 장치: PC, 서버, 라우터, 스위치
  • 링크: 유선, 무선

좋은 네트워크 조건

  1. 성능
    • 처리량, 처리시간으로 측정 가능
    • 처리량(throughput): 링크를 통해 전달되는 단위시간당의 데이터의 양
    • 지연시간(delay): 경유시간, 응답시간, 왕복시간
      • 경유시간: 한 장치에서 다른 장치로 데이터가 전달 되는데 걸리는 시간
      • 응답시간: 요청과 응답에 소요되는 시간
      • 왕복시간(RTT; Round Trip Time): 출발지에서 목적지까지 왕복하는데 걸리는 시간
  2. 신뢰성
    • 장애빈도, 장애 발생 후 회복시간, 재난에 대한 견고성 등으로 측정 가능
  3. 보안성
    • 불법적인 침입이나 정보유출에 대한 보안 확보

링크 연결 형태

링크의 연결 형태를 유/무선으로 분류하기도 한다

  • 링크는 데이터를 한 장치에서 다른 장치로 전달하는 통신 경로
  • 일대일 연결, 멀티포인트 연결로 나뉜다.
  • 멀티포인트: 여러 노드가 하나의 링크를 공유한 형태

네트워크 토폴로지

  • 네트워크의 구성요소인 장치와 링크가 어떻게 배치되어 있는가를 의미 = 장치와 링크의 연결 형태

  1. 성형
    • 각 장치가 중앙의 장치에 일대일 연결되어 통신하는 형태
  2. 버스형
    • 하나의 케이블에 여러 장치들이 연결되어 각 신호가 전체에 전달되는 형태
    • 타고다니는 버스와 상관 없음. 컴퓨터 구조의 버스와 연관
  3. 링형
    • 장치들이 링 형태로 서로 연결되어 데이터가 링을 따라 한쪽 방향으로 전달
  4. 그물형
    • 세 가지 형태가 아니면 그물형으로 분류

네트워크 분류

  • 네트워크 분류 방법은 여러가지가 있을 수 있다. 유무선으로도 가능하다. 통상적으로 크기, 소유권, 구조 등에 의해서 분류
  • 일반적으로 LAN, MAN, WAN으로 분류
  1. LAN
    • 보통 한 사무실, 건물, 캠퍼스, 회사 등에서 장치들이 서로 연결되며,
    • 개인적으로 소유 가능
    • 범주를 특정할 순 없지만 가까운 거리에 옹기종기 모여있는 노드와 링크들
  2. MAN
    • 도시 정도의 크기를 포함하는 규모
  3. WAN
    • 지역적으로 ㄴ럽은 범위에서 데이터를 전송하기 위해 구성
    • 여러 네트워크가 연결되는 경우를 인터넷

네트워크 모델과 표준 프로토콜

  • 계층화
  • 모델
  • 프로토콜

계층화

  • 독립적으로 관리가 가능하다.
  • 특정 계층에 문제가 생겼을 때, 특정 계층만 바꾸면 된다. 다른 계층에 영향을 주지 않는다.
  • 사람간의 대화에도 계층이 존재한다.
  • 만약 언어가 부족하면 언어 공부를, 귀가 좋지 않으면 보청기를 끼우는 식으로 대처가 가능하다.
  • 인터넷의 속도가 빨라진다하면 속도와 관련된 장치만 교체하면 되지, 컴퓨터의 다른 내용을 바꾸지 않는다.

모델

  • 사람의 대화는 3개 계층으로 나누는 것처럼, 몇 개의 계층으로 나누는지에 대한 모형을 의미한다.

OSI 7계층

  • OSI 7계층. 인터넷이 나오면서 거의 사용 안 함

TCP/IP

  • 인터넷에서는 프로토콜. 인터넷 모델이라고도 함
  • 5개의 계층으로 나눈다.
  • 기계와 기계가 정보를 주고 받을 때

1. 물리 계층

  • 장치 연결 부분의 물리적인 특성을 명시
  • 비트의 전기적 혹은 광학적 표현
  • 데이터 속도, 비트의 동기화, 토폴로지, 전송 모드, 선로 구성 등에 관한 사항
  • 메시지 포맷 존재X. 비트의 나열로 보고 쏜다.

2. 데이터링크 계층

  • 이 계층부터 메시지 포맷이 나타남. 헤더가 존재
  • 프레임화, 송수신 주소 명시, 흐름제어, 에러제어, 접근 제어 등
  • 가장 중요한 기능은 에러 제어
  • 에러제어: 비트에 대한 에러 검출과 복구
    • 0을 보냈는데 1을 받는 경우 처럼. 여러가지 잡음 때문에 데이터 손상으로 인한 에러를 검출하고 복구
  • 흐름제어: 수신 측과 송신 측의 데이터 처리 속도 차이를 해결
    • 호름 조절. 데이터를 빠를 경우 데이터가 넘치는 경우가 발생하기 때문에 이를 조절
  • 접근제어: 여러 장치들이 동일한 링크를 공유할 때 충돌이 발생하지 않도록 조정

3. 네트워크 계층

  • 가장 중요한 기능은 ⭐라우팅
  • 초기 송신지에서 최종 수신지로 데이터를 전달하는 계층으로 송수신 주소를 명시하고 라우팅을 수행
  • 라우팅: 패킷을 최종 목적지로 보내는 여러 경로가 있는데, 그 경로를 선택하는 기능(경로 설정)

4. 전송계층

  • 프로세스에서 프로세스로 데이터를 전달(⭐end to end)
  • 내 컴퓨터 안에 여러 프로그램이 존재하는데, 이 중에서 누구한테 보내는가를 결정하는 것
  • 특정 프로세스에 대한 주소지정
  • 메시지를 세그먼트단위로 분할 및 조립
    • 큰 용량의 데이터를 한 번에 보내기에 부담스러우므로 분할해서 보내는데 이를 다시 조립하는 역할을 수행
  • 연결제어
    • 연결형비연결형으로 선택해서 보낼 수 있다.
  • 종단간 흐름제어
  • 종단간 에러제어를 수행
    • 분할된 데이터가 깨지는 문제를 다룸

5. 응용 계층

 

  • 사용자가 직접 사용하는 계층
  • 파일을 송수신하는 FTP
  • 원격지 접속 하는 Telnet
  • 전자우편을 주고받는 SMTP
  • 하이퍼텍스트를 지원하는 HTTP

프로토콜

  • 프로토콜 = 규칙
    • 프로토콜이란 데이터를 주고 받는데 이용되는 규칙의 집합
  • 표준 프로토콜
    • 하나로 정해놓고 쓰자해서 합의된 규칙을 의미
    • 표준화 기구
      • 표준 프로토콜로 정의하는 곳. ISO, ITU-T, ANSI, IEEE, EIA 등이 존재
    • De jure 표준De facto 표준으로 구분
      • De jure: 표준화 기구가 공식적으로 표준으로 규정한 것
      • De facto: 사실상 표준으로서 이미 많이 사용하고 있어서 표준으로 채택된 것

'#시스템관리 > 네트워크' 카테고리의 다른 글

04. 무선 LAN과 네트워크 연결장치  (0) 2021.07.24
3.LAN 매체와 유선 LAN  (0) 2021.07.23
2.스위칭과 다중접속 프로토콜  (0) 2021.07.23
네트워크 구성형식  (0) 2019.02.23
VPN의 정의와 구성요소  (0) 2019.02.23

Introduction

컨플루언스 참 좋다. 그런데 사용법이나 잘 사용하고 있는 곳을 알아보려고 해도 찾기 어려웠고

그렇다고 구축업체가 잘 가이드 해주는 것도 아니다.

왜 그런가 했더니

사용하는 팀의 구성원이나 문서관리 문화에 따라서 다들 관리 방법이 달라지기에

정답이 없고 잘 사용하는 방법이 없는 것 같다

혹시 컨플루언스로 문서관리/문서공유/스마트워크를 시도하는 분들이 있다면 내 경험이 도움이 되었으면 하는 마음에 우리팀의 사용법을 작성해 본다

우리팀 공간 사용법

space 라는 공간 개념이 있는데 일종의 팀폴더 라고 생각하면 됩니다.

공간를 나누는 이유는 공간의 템플릿이 여러개 제공되긴 하지만 그용도 보다는

공간별로 접근 권한을 다르게 하는 용도라 보는 게 맞습니다.

우리팀 공간은 우리팀 인원 + IT본부 인원들만 볼 수 있게 권한부여를 했습니다.

개인들은 본인 공간들 만들어서 본인 개인적인 문서들 만들어서 관리하거나 공유 필요한건 팀공간으로 옮기거나 복사해 넣고

협력사들과 같이 볼 IT공유 공간도 만들어서 운영하고 있습니다.

IT팀이 우리팀 말고 여러개라서 IT전체구성원이 보는 공간도 별도로 만들어서 운영하고 있지요

우리팀의 공간에는 우리팀 내에서만 볼 자료들이 주로 존재하고

시스템 운영과 관련된 자료들은 IT협력사 직원들도 공유하도록 IT공유 공간에 만들고 수정하고 있습니다.

우리팀 공간내의 문서들

대분류를 보면 팀운영시에 필요한 문서들만 우리팀 공간에 존재하고 있고

 

팀내의 문서들은

주요추진과제 : 팀 주요과제들을 1장으로 만 업데이트 하면서 관리한다 (매주 직접 업데이트 하면서 팀내 주요 업무들이 어떻게 진척되고 있는지 관리)

팀업무현황 : 각 팀원들이 현재 하는 일, 해야 할 일, 이번달 했던일 간단히 업데이트

SR현황/이슈 현황 : JIRA 를 연결해서 리포트 하게 만들었고

조직계획 : 팀인력 채용 관리를 위해서 만든거고

IT직무전문가 육성과정 : 팀원들 skill roadmap 과 성장시켜야 할 항목 정의 교육자료/환경 등

관리대장은 비용 또는 내/외부 접속 계정과 비밀번호 공유용으로 비공개로 팀원들만 볼 수 있게 관리하고 있다. 다른 팀 인력들은 조회 불가

우리팀 메인 프로세스 정리하고 있는데 신경 못 쓰고 있어서 중요한거 몇개만 정리되어 있다.

어차피 운영하면서 쌓이는 자료들임

매뉴얼은 되도록이면 지속적인 업데이트를 진행하려고 하는 목적의 자료들이고

많은 것 보다는 계속 수정되도록 하려고 한다.

구성도는 draw.io 로 그린다.

언제든 누구나 수정할 수 있게 그려져있다

매뉴얼들도 최대한 블로그 작성하듯이 작성하고 있다

블로그 운영하면 정말 문서 작성할 때 도움이 많이 된다. 텍스트 위주로 글을 작성하는 것에 익숙해진다

자료는 다른 사람이 쉽게 수정할 수 있게 만들어야 한다

개선은 이래저래 운영하면서 우리팀 힘으로 서비스 개선하려고 하는 것들 생각나는 데로 만들고

시간 나는 데로 살을 붙여서 진행한다. 업무진행시는 JIRA 로 등록해서 담당자 추가하는 것을 잊지 말고 해야 한다

그 외에 캘린더로 팀원들과 일정 공유는 필수이고 팀원들의 직무/유연근무시간 공유도 참좋다

외주인력과의 IT공유 공간내의 문서들

외주인력들은 실행하는 사람들이 대부분이기에 SR 에 대한 산출물, 매뉴얼, 교육자료 와 같은 내용들이 공유된다.

운영 매뉴얼, 개발테스트 산출물, 프로젝트별 산출물 모음 등등

폴더는 적어보여도 엄청 자료들이 많다.

외주인력은 항상 인력변동이 있다보니 기본적인 숙지사항들을 미리 만들어서 공유하면 좋다

자잘한 공유사항들은 미리 문서 작성하고 업데이트 해놓으면 좋다

자료 작성은 쉬우나 공유과 지속적인 업데이트는 너무나 어렵다

윗사람들이 기득권을 버리고 같이 참여해야만 성공할 수 있다

어차피 문서관리는 몰라서 못하는 게 아니라

하기 싫어서 안하는 경우라서

우리팀은 이렇게 관리한다고 보여드리니 참고해서 잘 활용하시길 바랍니다.

우리팀 Confluence 사용하는 법 : 네이버 블로그 (naver.com)

 

우리팀 Confluence 사용하는 법

Introduction컨플루언스 참 좋다. 그런데 사용법이나 잘 사용하고 있는 곳을 알아보려고 해도 찾기 어려웠...

blog.naver.com

 

'PM' 카테고리의 다른 글

github로 코드리뷰 하기  (0) 2021.08.28
DevOps와 CI/CD  (0) 2021.06.13
JIRA의 scrum보드 활용법  (0) 2021.04.15
Jira를 통해 스크럼 관리하기  (0) 2021.04.15
애자일 Scrum(스크럼) 이해하기  (0) 2021.04.15

이전 글(1부)에서는 sprint 개념을 사용하지 않은 JIRA의 Kanban보드를 사용하는 법을 중심으로 설명하였습니다. 이번 글에서는 scurm의 sprint 단위로 sprint planning하여 관리하는 JIRA의 scrum보드 활용법을 소개합니다.

https://scrumexplainer.com/scrum/scrum-board/

1. Scrum Board와 Kanban Board

  • Scrum 보드
    - Timebox(Sprint)단위로 일감관리를 하는 프로젝트
    - 예) 2주 단위로 sprint planning을 수립후 수행하는 개발 프로젝트
    - scrum 보드에는 전체 일감이 아닌, Sprint내에 할당된 감만 보임
  • Kanban 보드
    - Timebox없이 일감관리를 하는 프로젝트
    - 예) 요청(Ticket)이 발생되면 최단시간에 처리해야하는 운영 프로젝트
    - Kanban보드에는 등록된 전체 일감이 보임

2. Scrum board 관리

2.1. Scrum board 만들기

  • 보드 만들기 선택

  • 스크럼 보드 선택

  • 보드 이름 입력
    - 칸반보드와 스크럼보드에 익숙하지 않은 분들을 위해서 저는 보드 종류를 구분하기 위해 스크럼 보드 등의 이름을 넣습니다.

2.2. Scrum보드 환경설정

  • Scrum 보드 컬럼명 수정

=

2.3. Scrum보드 확인

  • 백로그 확인
    - 아래와 같이 Backlog(백로그)에 일감이 있습니다.

  • Scrum 보드 확인
    - 현재는 일감이 Backlog에만 있고, 수행중인 sprint에 할당이 되어 있지 않기때문에 아래와 같이 scrum 보드에 일감이 보이지 않습니다.

3. Sprint 관리

3.1. Sprint 생성

3.2. Sprint Planning

  • Backlog에서 일감을 Sprint#1으로 이동
    또는 [이슈 생성] 버튼으로 신규 일감 생성 가능

  • 다음과 같이 생성된 일감은 Epic(큰틀)에 Drag&Drop으로 할당 가능

3.3. Story Point 입력

  • 일감에 story point를 입력

=

  • story point 입력 항목이 보이지 않는 경우 추가 방법
    - 필드 구성에서 Story point 항목을 선택

- 만약 story point 항목이 없다면 아래와 같이 System Admin이 추가 가능

3.4. 작업자 할당

  • 담당자 : 실무자, 일감의 상태 현행화 책임자 등
  • 보고자 : 작업지시자, Product Owner 등

3.5. 일감량 확인

  • 일감에 업무량(story points)을 입력해 놓으면, 할당 된 담당자별 일감량 확인을 통해 업무 분장 가능

4. 버전/배포 계획

4.1. 버전 등록

4.2. 버전 계획

  • 개발이 예정된 버전에 drag & drop으로 mapping 가능

5. Sprint 시작

5.1. [스프린트 시작] 버튼 클릭

5.2. Scrum 보드 확인

  • scrum 보드는 수행중인 sprint에 할당된 일감만 보입니다.
  • 또한 Scrum board 환경설정에서 Swim Lane(수영레인)에그룹핑해서 보여주기 위한 기준 설정이 가능합니다.

  • 기본 레인별 그룹핑된 모습들

Epic으로 기본 레인을 설정한 경우

Story(이야기)로 기본레인을 설정한 경우

담당자로 기본레인을 설정한 경우

6. Sprint 완료

6.1. 일감 진행 상태 현행화

6.2. Sprint 완료 처리

  • Sprint 완료

  • Sprint 계획

  • 배포(릴리스) 관리

7. 보고서 및 대시보드 관리

7.1. 보고서

  • 보고서 선택

  • 번다운 차트(소멸 차트)

  • 누적 흐름 도표

7.2. Dash보드 관리

  • 대시보드 생성

  • 가젯 추가

  • 보여줄 항목 편집 (프로젝트 선택 등)

  • 완성된 대시보드 보기

함께보면 유용한 글보기

'PM' 카테고리의 다른 글

github로 코드리뷰 하기  (0) 2021.08.28
DevOps와 CI/CD  (0) 2021.06.13
우리팀 Confluence 사용하는 법  (0) 2021.04.19
Jira를 통해 스크럼 관리하기  (0) 2021.04.15
애자일 Scrum(스크럼) 이해하기  (0) 2021.04.15

들어가기에 앞서

스크럼을 적용하는데 있어서 어디서나, 어떤팀에서나 딱 알맞는 형태의 스크럼은 없습니다.
스크럼의 기본인 ‘점진적 개발’을 목표로 회고를 하며 우리팀의 상황에 맞게끔 스크럼을 점점 변형시켜 나가면서 case by team 으로 맞추어 나가야 합니다.

이 포스팅은 앞서 정리한 scrum을 jira로 관리하기 위한 가장 기본적이면서도 구체적으로 진행할수 있는 방안을 제시해보도록 하겠습니다.

Jira default 이슈 종류

  • Epic (큰틀) : 여러 스프린트에 걸쳐서 끝나지 않고, 여러 스토리들의 집합입니다.
  • Story : “{사용자} 로써 {무엇}을 하고싶다” 에 대한 액터의 유즈케이스
  • Chore : 사용자와는 직접적으로 관계되지 않는 개발 (DB 세팅, 분리 등)
  • Task : 구현에는 직접적으로 관련이 없는 업무 (문서작성 등)
  • Issue : 이슈 사항 (서버 다운, 클라우드 계약 등)
  • Bug : 테스트 엔지니어로부터 버그로 리포팅된 타입
  • Sub Task : 스토리 혹은 초어들을 개발하기 위해 진행되는 실제 세부 개발사항들

우리 Jira에 맞춘 이슈 정리

  • Epic (큰틀)
  • TaskStory : 요구사항 혹은 유저케이스 시나리오
    개발 : 개발 요구사항 (chore)
    버그 : 서비스 버그
    작업 : 개발 구현과는 직접적으로 관련 없는 요구사항
    이슈 : 서비스상의 이슈, 확인, 고려사항
  • Sub-task개발 / 버그 / 작업 / 이슈

Example

  • Epic : 회원가입/로그인
  • Task
    1. (Story) 사내 직원이 어드민 회원가입 할 수 있다.
    2. (Task) DB 인프라 신청
  • Sub-task1-1. (작업) Oauth 권한신청
    1-2. (개발) 회원가입 서비스 개발

 

유의사항

  • 지라는 진행 프로젝트마다 별도의 프로젝트로 생성하여 관리합니다.
  • Release(버전)는 Epic 단위로 정의합니다. (Epic은 필수 기능을 중심으로 프로젝트 진행의 마일스톤으로 사용합니다.)
  • Sprint는 Task단위로 정의합니다. (Task는 최대 3일 이내의 작업기간으로 산정합니다.)
  • Release > Epic > Sprint > Task

스크럼 진행순서

1. 제품 백로그 준비
(Project Owner)는 프로젝트 요구사항에 맞추어 Epic(큰틀)들을 생성 합니다.
Epic은 필수기능으로써, 프로젝트의 진행 척도를 나타낼수있는 마일스톤이 될 수 있도록 생성합니다.

2. 릴리즈 계획 수립
(Project Owner)는 [1 단계]에서 생성한 Epic들을 가지고 프로젝트 릴리즈 계획을 세웁니다.

3. 스프린트 계획 수립
3-1. Task 만들기
(Project Owner + Scrum Master) 는 [2단계]에서 수립된 릴리즈 계획내에 포함된 Epic들을 세부 작업 Task로 쪼갭니다.
(Scrum Master)는 만들어진 Task를 적절한 팀원에게 배분합니다
배분받은 (스크럼팀)은 Task의 수행시간을 예측합니다. (최대 3일 이내의 작업으로 Task가 분리되어야 합니다.)

(고려해야할 사항)

  • 팀원의 가용 시간
  • 각 Task에 대해서 수행 시간 예측
  • Task 설정시 구체적인 종결 행위를 기반으로 Task 설정 하는것이 좋습니다.
  • Task 설정시 분석,설계 / 구현 / 테스트 → 1:1:1 의 리소스 분배가 좋습니다.
  • 주요 Task에 대해서는 어떤 형식으로든지 리뷰를 하는것이 좋습니다.
  • Task 기간 설정시 20%의 버퍼를 두는것이 좋습니다.

3-2. 스프린트 만들기
(Scrum Master)는 [3-1단계] 에서 만든 Task를 2주단위의 스프린트로 조합 합니다.
스프린트를 만들때에는 Task의 “긴급도, 난이도”에 따라 우선순위를 두고 Task 작업 순서를 정합니다.

3-3. Task 작업
Task를 할당받은 (스크럼팀)은 할당받은 Task를 실제 작업의 세부 단위로 Sub-task를 작성하여 작업을 진행합니다.

4. 스프린트 관리
스크럼팀은 매일 오전 최대 20분 내의 일일 스크럼을 진행합니다. 일일 스크럼때는 어제 작업내용, 오늘 작업예정 내용 및 Task 종료에 필요한 시간들을 공유하고 (Project Owner)는 이슈사항 발생시 일정조정 및 요구사항의 수정 내용을 백로그에 수정 반영 합니다.
(Project Owner)는 스크럼팀의 작업 진행상황을 확인하고 Task의 상태를 설정 해 줍니다. (완료, 작업중 등..)
스크럼팀은 본인이 작업하는 실제 세부작업인 Sub-task들의 상태를 직접 관리 합니다.

5. 스프린트 종료
제 1의 조건으로 스프린트의 정해진 기간 (2주) 단위로 스프린트를 종료하도록 합니다. 만약 Task의 이슈사항으로인해 정해진 기간내에 마무리가 되지 않았다고 하면, 해당 Task를 다음 스프린트로 넘깁니다.
(스크럼팀)은 본인이 수행한 Task의 구현이 테스트까지 완료되었을때 Task가 종료되어야 합니다.
(스크럼팀)은 스프린트 종료일 오전에는 일일 스크럼대신 스프린트 리뷰를 진행하며 구체적인 테스트 결과및 데모를 수행합니다.
(Project Owner)는 완료된 스프린트의 작업사항들을 종합하여 QA를 진행합니다.

6. 백로그 업데이트
(Project Owner)는 스프린트 리뷰 완료후 리뷰과정에서 나온 추가 요건이나 오류사항, 변경상황을 반영하여 백로그를 업데이트 합니다.

7. 회고
(스크럼팀)은 단순 스프린트 작업에대한 리뷰가 아닌, 스크럼 방법론 자체에대한 리뷰를 진행합니다. 이 과정을 통해 우리 팀에 맞는 더 좋은 스크럼 프로세스를 찾고 개선해나갑니다.

8. 스프린트 재시작
스프린트 계획을 수립하는 [3 단계]부터 재시작 합니다.

 

출처: Jira를 통해 스크럼 관리하기 (taes-k.github.io)

'PM' 카테고리의 다른 글

github로 코드리뷰 하기  (0) 2021.08.28
DevOps와 CI/CD  (0) 2021.06.13
우리팀 Confluence 사용하는 법  (0) 2021.04.19
JIRA의 scrum보드 활용법  (0) 2021.04.15
애자일 Scrum(스크럼) 이해하기  (0) 2021.04.15

Agile(애자일) 대표 관리 Practice인 Scrum(스크럼)은 특정 개발 언어나 방법론에 의존적이지 않으며, 제품 개발 뿐만 아니라 일반적인 프로젝트 관리에도 사용 가능한 프로세스 프레임워크입니다. Scrum은 작은 주기(Sprint)로 개발 및 검토를 하며 효율적인 협업 방법을 제공합니다.

따라서 필요한 분석/설계/개발 가이드는 조직내에서 사용하고 있는 개발방법론, 산출물 가이드 등과 병행해서 활용 가능합니다. 실질적인 도움이 되지 않는 문서를 작성하지 않는 것이 중요하며, 효과적으로 일하는데 필요한 문서는 반드시 작성해야 합니다.

https://agileforall.com/resources/introduction-to-agile/

1. Scrum이란?

1.1. 개요

  • 스크럼은 복잡한 제품을 개발(배포)하고, 유지하기 위한 프레임워크
  • 1995년에 Ken Schwaber와 Jeff Sutherland가 고안
    - 노나카 이쿠지로 타케우지 히로타카가 1986년 1~2월 Harvard Business Review에 올린 “The New New Product Developement Game”에서 시작
  • 비즈니스 요구를 충족시키는데 초점을 맞추기 위해, 작은 목표를 짧은 주기로 점진적이며 경험적으로 제품을 지속적으로 개발(전달)하는 관리 프레임워크(기법)
  • 사람들이 효과적으로 성취감을 충족하며 협업할 수 있게하여, 복잡하고 정교한 제품을 생산

1. 2. 주요 특징

  • 솔루션에 포함할 기능/개선점에 대한 우선 순위를 부여한다.
  • 개발 주기는 1~4주 정도로 하고 개발 주기마다 실제 동작할 수 있는 결과를 제공하라.
    (설명:너무 짧으면 개발(분석/설계/개발/테스트) 할 수 있는 시간이 부족하고, 너무 길면 느슨해지고 재작업의 양도 늘어나므로 적용해보면서 필요시 조율 필요)
  • 개발 주기마다 적용할 기능이나 개선에 대한 목록을 제공하라.
    (설명:해당 주기의 Goal을 작성하지 않으면 목적을 잃은 기능 목록이 될 수 있음)
  • 매일 15분 정도의 Scrum meeting 회의를 가져라.
    (설명:공유이지 보고하는 자리가 아니다. 교과서적으로 Scrum meeting은 개발팀원만 참여해야하고, 팀원이 아닌 사람은 발언기회는 없다고 한다. 개인적인 생각으로는 수평문화가 되어 있는 Agile Culture의팀이라면 PO 및 관리자가 함께 참석하여 공유하면 좋다고 생각한다. 이들도 참석한다면 이 프로젝트와 관련되어 한일/할일/이슈를 공유해야 한다. 안그러면 한팀이 아닌 관리자 모드로 돌아선다.)
  • 항상 팀을 우선으로 생각하라.
    (설명:자신의 task보다 주변 이슈가 더 급하면 도와줘야 한다. 마치 배에 구멍이 나면 그 문제 해결이 1순위이다.)
  • 원활한 의사소통을 위하여, 구분 없는 열린 공간과 마음을 유지하라.

2. Scrum의 추구 가치

  • 용기 : 옳은 일을 할 수 있도록 팀원간 갈등과 도전을 위한 용기를 가져라!
    (설명 : 상사에게도 해당 기능이 이해가 안되거나 문제가 있다면 말할 수 있어야 하고, 더 일을 잘 할 수 있는 환경을 요구하고, 자신의 신념을 설득 시켜야 한다.)
  • 집중 : 공동 목표 달성을 위한 일을 하라. 모든 노력과 기술은 성공을 위해 집중하고, 그 외는 걱정(신경쓰지) 마라!
    (설명 : Goal/업무에 집중 할 수 있도록 하며, 루틴한 반복 작업이 있다면 제거, 자동화 등 효율적화해야 한다.)
  • 약속(헌신/책임) : 팀의 목표 달성을 위해 개개인이 공약한 목표 달성을 위해 헌신하고, 필요한 모든 권한을 부여하라!
    (설명 : 개인 성과보다는 팀의 성과 달성이 우선이고, 이를 위해 최대한 지원/권한이 필요하다.)
  • 존중 : 경력과 경험이 사람을 만든다. 팀원과 Idea를 존중하라!
    (설명 : 개개인별로 경험과 장단점이 있고, 다른 생각을 하는 사람도 그 이유가 있을것이다.)
  • 투명성/개방성 : 프로젝트에 대한 모든 작업 내용을 투명하게 공개하라!
    (설명 : 제품백로그, 스크럼 회의, 스프린트 리뷰를 통해 공유되며, 자신에게 불리해도 숨기지 않는다. 그래야 Idea나 문제점이 보인다.)

이미지 출처 : https://www.scrum.org/resources/blog/5-scrum-values-take-center-stage

3. Scrum의 주요 역할자

Product Owner와 Scrum Master는 서로 보완하는 두 가지 역할을합니다.

3.1. 제품 책임자(Product Owner)

비즈니스 목표를 충족시키는 제품을 만들기 위해 제품 백 로그를 관리하고 제품을 검토합니다.

  • 제품 백로그(요구사항) 관리/설명
  • 제품 백로그의 우선순위 관리
  • 만족스럽게 개발되었는지 확인

이미지 출처 : https://www.romanpichler.com/blog/every-great-product-owner-needs-great-scrummaster/

3.2. 스크럼 마스터(ScrumMaster)

Product Owner와 Development Team이 민첩한 가치(Value)와 원칙(Principle)을 유지하며 성공적인 제품을 만들고, 조직 변화를 촉진하고 민첩한 작업 방식을 수립하여 성공을 책임집니다.

  • 팀을 보호하고 장애 요소를 해결
  • 일일 스크럼 회의를 진행
  • 모니터링 및 Tracking

이미지 출처 : https://www.romanpichler.com/blog/every-great-product-owner-needs-great-scrummaster/

3.3. 개발 팀 (Developer)

최선의 기술로 백로그를 개발하여 고객을 만족시킵니다.

4. Scrum 주요 용어

  • 제품 백로그(Product Backlog) : 개발할 제품의 요구사항인 사용자 스토리 집합이며, 우선순위로 관리

이미지 출처 : https://www.softwaretestinghelp.com/user-story-acceptance-criteria/

  • 사용자 스토리(User Story) : 사용자 관점에서 사용자에게 가치를 제공하는 기능 및 설명 (해설 : PO는 이 기능이 누구에게 무슨 value를 제공하는지를 설명하고, 향후 개발자는 그 기능의 품질을 만족시키기 위한 기술적인 방법을 고민)

  • 완료 기준(Definition of Done), 인수 기준(Acceptance Criteria) : 사용자 스토리를 완료시키기 위한 조건 명세(Given, When, Then)

출처 : https://twitter.com/kickstartpros/status/524414603359686657

  • 스프린트(Sprint) : 계획,개발,리뷰 작업 등 최소 단위의 Cycle이다. 보통 1~4주 단위에서 선택
  • 잠재적 출시 가능 제품(Potentially Shippable Product Increment) 또는 최소 실행 가능 제품(Minimum Viable Product, MVP) : 팀이 최소 노력으로 고객에게 검증 결과를 받을 수 있는 수준의 제품

이미지 출처 : https://www.google.com/url?sa=i&source=images&cd=&ved=2ahUKEwjs7dDvg6zjAhVKhrwKHTJEDAgQjRx6BAgBEAU&url=https%3A%2F%2Fwww.pinterest.com%2Fpin%2F218283913174637047%2F&psig=AOvVaw1MUuT_dWpFyrMe6PPcILeE&ust=1562905768601307

  • 스프린트 계획 회의(Sprint Planning Meeting) : 스프린트 목표와 스프린트 백로그를 계획하는 회의
  • 스프린트 백로그(Sprint Backlog) : 각각의 스프린트 목표에 도달하기 위해 필요한 작업 목록

  • 칸반 보드(Kanban Board) : 작업을 시각적으로 업무 상태, 흐름을 보여주는 게시판

이미지 출처 : https://agilevelocity.com/scrum/4-advantages-of-physical-task-boards/

  • 일일 스크럼 회의(Daily Scrum Meeting) : 매일 어제 한일, 오늘 할일, 해결해야 할 장애/문제 요소를 공유하는 회의
    (해설:모든 참여자가 보고가 아닌 수평적으로 공유 차원에서 진행해야 하며 팀원이 아니면 발언권은 없다. 개인적인 생각으로는 만약 PO, 관리자 등도 참여한다면 똑같이 3가지를 공유해야 한다. 그렇지 않으면 듣는 자리, 즉 보고 받는 자리로 변질되고, 개발자 관점에서는 관리자가 노는 사람 처럼 보인다. 또한 Sprint Planning에 없는 제3자가 시킨 잡무를 하고 있다는 것도 파악이 가능하다. 장애요소는 화이트보드에 적어놓고 지속적으로 해결한다. 만약 해결보다 쌓이는게 만다면 회사는 팀을 충분히 지원하지 않는 것이며, 일일 스크럼 회의는 생산적이지 않은 낭비로 인식된다.)

이미지 출처 : https://www.slideshare.net/TanaLinback/scrum-training-one-day

  • 스프린트 리뷰(Sprint Review) : 스프린트 마지막날 개발자가 개발한 내용을 Stakeholder, 고객, 제품 책임자에게 시연하고 검토
  • 스프린트 회고(Sprint Restospective) : 스프린트 마지막날 좋았던 점, 개선할 점을 도출하고 더 나은 방향으로 개선

이미지 출처 : https://www.slideshare.net/TanaLinback/scrum-training-one-day

5. 스크럼 진행 순서

  1. PO는 제품의 요구기능(User Story)과 우선순위를 제품 백로그로 정한다.
  2. PO가 정한 제품의 우선순위에서 어디까지 작업을 할지 팀과 조율 한다.
  3. 스프린트 목표를 구현 가능 하도록 팀에서 스프린트 백로그를 작성한 뒤 작업을 할당한다.
    (해설:PO는 기능과 우선순위에 대한 권한이 있고, 개발팀은 Sprint내에 해야 할 업무량을 결정할 권한이 있다. 특히 개발경험 있는 PO가 너무 적은 개발량을 문제제기 하기도 하지만, 실제 개발하는 개발팀원의 개발속도(Velocity)로 예측하며 조정이 중요하다.)
  4. 스프린트를 진행하는 동안, 매일 정해진 장소와 시간에 모든 개발 팀원이 참여하는 일일 스크럼 회의를 가진다.
  5. 매회의 스프린트가 종료할 때마다, 스프린트 리뷰(Review)를 통해 만들어진 제품을 검토하고 개선사항을 이해 한다.
  6. 제품의 리뷰를 통해 제품의 지속적 개선사항 도출이 끝나면, 스프린트 회고(Retrospective)를 통해 팀의 개발 문화(프로세스)에 대한 개선의 시간을 갖는다.
    (해설:스프린트 Review는 제품을 개선하는 활동이고, 회고는 우리(프로세스, 문화)를 성장시키는 활동이다.)
  7. 다음 스프린트에서 수행할 백로그를 PO와 필요 인원이 모여 선정하고 계획하는 시간을 갖는다.

6. 요약

  • Scrum Framework의 역할 및 Time-Box

이미지 출처 : http://scrumprimer.org/anime

  • Scrum Framework의 역할, 산출물, 이벤트

이미지 출처 : https://documentation.cochrane.org/display/WWIRPT/Scrum+process

  • 3개월 단위의 Agile 프로젝트의 전체 진행 모습

Agile을 따라하지 말고,

Agile로 얻으려는 Goal에 집중하세요!!!

보시면 유용한 자료

'PM' 카테고리의 다른 글

github로 코드리뷰 하기  (0) 2021.08.28
DevOps와 CI/CD  (0) 2021.06.13
우리팀 Confluence 사용하는 법  (0) 2021.04.19
JIRA의 scrum보드 활용법  (0) 2021.04.15
Jira를 통해 스크럼 관리하기  (0) 2021.04.15

'없다'고 보면 된다.(며칠 밤새가면서 해결해보려 노력한 사람으로서 자그만 희망을 기대하고 들어온 사람들에게 이 말을 하는 게 마음이 아프다 ㅠ,,) 정말 온갖 복구 방법, 도구를 활용해서 복구를 시도했지만 모두 실패했다. 그래도 세상에 존재하는 모든 방법을 시도해봤다고는 할 순 없으니, 적어도 내 경우에는 거의 포기하는 편이 낫다고 말하고 싶다. 내 경우는 '녹화 중에 의도치 않은 종료로 인한 파일 손상'이다. 예를 들어, 녹화 중에 노트북 배터리가 다 되어 종료된다거나, 갑자기 엑박이 뜬다거나 한 경우이다.

그래서 찾은 대안으로는 mkv로 녹화하는 것이다. 이전에 겪었던 문제도 해결할 수 있었다. 그나마 복구가 수월하고 복구 가능성도 높다. 

☝요약: mp4 복구하려다 골병난다! 포기하고 애초에 mkv로 녹화하자! (단점: 비교적 용량이 크다)

1. 아래 사이트에 접속

HeiDoc.net: The Technology Treasure Chest

 

2. 아래 링크 클릭

 

3. Download 링크 클릭 후 설치

새로운 카테고리를 만들면서 '기획자의 습관'이라는 명칭을 사용하고 싶었는데, 같은 이름의 책이 있어 차마 같이 검색되는게 부끄러워 기획자의 생각으로 지었네요.

최근 포스팅을 꾸준히 해야지 마음을 다잡고 나서 바로 다니던 회사에 사직서를 제출하게 되고 이직을 준비하게 되면서 시간이 조금 생기더라구요.

처음 사회생활을 시작할 때 개발을 업으로 사는 개발자에서 굴러굴러 생소한 기획이라는 파트로 옮기게 되었고, 기획에 대한 정론과 기초 보다는 현업에서 당장 눈 앞에 닥치는 일들을 우선적으로 처리하면서 어찌어찌 실무를 해낼 수 있는 실력은 가지게 되었지만, 계속해서 제대로 하고 있는지에 대한 고민이 많이 들었습니다.

그래서 다시금 기존에 공부했었던 내용과 준비하는 기간동안 새롭게 공부하는 내용을 적어보고자 하는 공간을 만들어 보게 되었습니다.

 

기획이란?

굉장히 친숙하고 주변에서도 쉽게 사용하고 어디에도 다 붙어 있는거 같은 단어입니다. 

그리고 굉장히 쓰이는 곳도 많습니다. 

상품 기획, 사업 기획, 전략 기획, 인사 기획, 개발 기획, 광고 기획, 방송 기획, 공연 기획, 영업 기획 등....

이것 뿐만이 아니라 어디 안쓰이는 곳 없이 많이 사용되고 있습니다.

특히나 직장에서 일을 하는 것에 기획을 붙여서 어색한 단어가 없을 정도로 심심치 않게 사용되고 있습니다.

단순하게 단어로만 풀어보면 '기획(企劃)'은 일을 꾀하여 계획한다 라는 뜻입니다. 영어로도 '기획(Planing)' 계획하다 라는 뜻이 됩니다. 

많은 서적이나 인터넷 상에 다양하게 해석되고 있지만, 가장 간단하게 '무엇인가를 성취하기 위한 계획'을 세우는 일이 가장 통합되는 개념이 아닐까 합니다.

사람들은 일상생활에서도 굉장히 많은 기획들을 하고 있습니다. 단지 그것이 상상하던 기획과는 굉장히 다른 간출한 방법 또는 쉽게 지나가고 있기 때문에 기획이라 생각하지 않는 부분들이 많죠.

예를 들어서, 월급을 받고 얼마를 저축하고, 얼마를 생활비로 사용하고, 이번달엔 무엇을 살지에 대해서 고민을 하고 적어보는 것 역시 기획입니다. 본인의 한 달 생활에 대한 회계 또는 재무 기획이 될 수 있겠죠. 

 

 

기획자의 역할이란?

결국 기획이란 어떤 문제가 있다면 해결하기 위한 해결책을 제시하거나 새로운 아이디어나 이슈가 있다면 현실로 만들기 위한 계획을 세우는 일입니다.

기획자의 역할은 너무나도 당연하게 이런 해결책을 제시하고 계획을 세우기 위한 기획을 하는 것이겠죠.

하지만, 회사나 기관에서 발생하는 문제를 해결하거나 아이디어를 제시하는 사람들을 모두 기획자라고 부르진 않습니다. 별도의 조직을 만들고 직군을 두면서 기획자를 활용하는 이유는 문제가 되는 현상을 해결하기 위한 '최적의 방안'을 계획하기 때문입니다. 

어떤 조직에서 발생하는 문제나 해결을 필요로 하는 부분들은 같은 문제라고 해도 조직의 환경이나 상태에 따라 다양한 문제의 해결 방법이 존재한다. 

어떤 조직에서는 최선의 방법이 될 수 있지만, 똑같은 문제에 대해 다른 조직에서 같은 방법을 사용한다면 반대로 최악의 결과를 발생시킬 수도 있는 것입니다.

기획자는 현재 상황, 조건에 맞는 최선의 방법을 제시를 할 수 있으며, 제시한 방법에 대해서 정확한 근거를 바탕으로 다른 사람들을 설득할 수 있는 조건을 가지고 있습니다.

 

기획을 시작하면서 들은 조언

기획자가 되기 위해 기획을 공부하기 위해서 가장 중요한 것은 어떤게 있을까 많이 고민도 해보았고, 먼저 기획 업무를 담당하고 있는 선배와 지인들에게 많은 질문을 던졌습니다.

책과 이론을 찾던 저한테 웃기게도 습관이나 관점에 대한 조언들만 돌아오더군요.

첫번째로 '다양한 시각에서 문제를 바라보라' 라는 것이었는데, 듣자마자 머리가 띵- 해지는 느낌이었습니다.

일반적인 개념이나 기획에 대한 정론을 배워야 되지 않나라고 고민한 저에게는 더 큰 혼란을 가지고 왔었는데, 이런 개념적인 부분들은 사실 말로 배우는 것이 거의 불가능한 것을 이미 개발쪽에서 몸소 깨달았던차라 더 버겁게 다가왔습니다.

기획을 하면서 가장 중요한 부분이라고 하는데, 특정 문제에 대해서 일반적인 개념이나 관습에 따라 기획하게 되면 결국 얻게되는 결과가 그 이상을 가지지 못한다는 말이었습니다.

결국 새로운 시각을 통한 아이디어의 싸움이라는 말이었죠.

기획에서 일반적으로 통용되고 누구나 제시할 수 있는 정형화된 것을 가지고 온다면, 그 해결책에 대한 계획은 어느 누구나 생각할 수 있을 법한 것이고 이런 해결방안을 제시하는 기획자는 필요가 없다는 점이죠.

기존의 개념과 완벽한 논리를 따라가던 기획은 이미 시대가 지난 방식이었습니다.

현재의 기획은 완벽한 논리와 타당성을 뛰어넘는 변화하는 트랜드, 사람들의 공감, 상상력이 더 중요해지는 시대가 되었습니다. 

그리고 '시작하는데에 있어 완벽하려 하지 마라' 였습니다.

기획자로 이직을 해서 아마 처음 작성해보는 기획서나 보고서의 빈칸과 백지들이 답답하고 벽처럼 느껴질꺼란 말을 하면서 시작하는데에 있어 완벽을 기하지 말라는 말을 가장 많이 들었습니다.

처음 일을 시작할 때 가지는 의욕과 열정이 꼭 좋은 결과를 가지고 올 수 없다고 들었는데, 경험 많은 기획자들 역시 처음 새로이 작성하는 기획서는 논리와 구조, 심지어 문맥까지도 완벽할 수 없다 했었죠.

결과물에 대해서는 완벽을 기하고, 작은 디테일까지 잡아내는 신중함이 필요하지만, 초본을 작성하는데 있어서는 직관적으로 써내려가는 습관을 가지라고 했습니다.

지나와서 생각해보니 천재가 아니고서야 머리속에 있는 내용을 완벽하게 정리한 다음 글로 꺼낼 수 없습니다.

글을 쓰는 것이 직업이 되었고 일정 이상의 분량과 논리와 근거가 바탕이 되는 기획서를 작성하면서, 한 줄이라도 더 많은 생각을들 글로 적어두고 여러번의 검수와 수정을 거친 후에야 완벽을 기할 수 있을 것입니다.

출처:

https://devgraphy.tistory.com/entry/

 

 

 

1. jre, jdk 설치 명령어

sudo apt-get install openjdk-8-jre
sudo apt-get install openjdk-8-jdk


2. 자바 설치 확인 명령어

java -version
javac -version

 

3. 디폴트 자바 설정 명령어

sudo update-alternatives --config java

만약 여러 종류의 자바 설치되어 있다면 위 명령어를 통해 디폴트 자바를 설정할 수 있다.

현재는 1개의 자바만 설치되어 있어 명령어를 실행하면 위처럼 나온다.

그 이상 자바가 설치되어 있다면 아래와 같이 설치된 자바 리스트가 출력 된다.

 

 

openjdk, oraclejdk 차이

openjdk - 오픈소스기반 jdk

oracle jdk 상업적 소스 기반 jdk(오라클 사 유료 플러그인 제공)

 

4. 자바 환경변수 설정

어떤 위치에서든 명령어를 통해 자바를 실행하기 위해서 자바 환경변수를 설정해주어야 한다.

 

4-1. javac 위치 확인

which javac
readlink -f /usr/bin/javac

readlink : 심볼릭 링크의 원본 파일 확인
readlink -f : 심볼릭 링크를 따라 최종의 파일을 절대경로로 반환

4-2. /etc/profile에서 환경변수 설정

sudo vi /etc/profile

 

다음을 추가한다.

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH
export CLASS_PATH=$JAVA_HOME/lib:$CLASS_PATH

(esc -> wq! 를 입력하고 빠져 vi를 빠져 나온다.)

 

 

5. source명령어를 통해 profile 스크립트 파일을 reload한다.

source /etc/profile
source 명령어는 스크립트 파일을 수정한 후에 수정된 값을 바로 적용하기 위해 사용하는 명령어이다.




6. 우분투 서버를 재시작한다.

sudo reboot now

 

7. 환경변수가 올바르게 설정되었는지 확인한다.

echo $JAVA_HOME
$JAVA_HOME/bin/javac -version

 

'#시스템관리 > 리눅스' 카테고리의 다른 글

RHEL 구독 등록 방법 (예정)  (0) 2025.11.23
Ubuntu 버전 확인 방법, 비트 확인 방법  (0) 2020.11.26

+ Recent posts