20230804 estsoft 기술문서 작성법 특강 {계성혁}

[[Technical_Documentation.pdf]]

기술문서? 종류, 필요성

우리가 볼 수 있는 기술문서의 종류

왜 필요한가

아무리 좋은 기술력을 가지고 있다고 하더라도 그 기술을 전파할 수 없다면 효용성이 없다.

논문같은 경우는 지식의 확장을 이뤄내는 일이기 때문에 학계에서 집단지성을 공개하는 일종의 장이다. 논문은 발표된 자료에 기반해 새로운 지식을 창조하는 판을 제공한다.

재현가능성(Reproductibility)를 향상시켜 소모적인 일에 시간을 투자하는 일을 줄일 수 있다.

사전과제 이야기

여러분의 집에서 주변 번화가까지 가는 방법을 서술하세요.

인터넷이 안되는 상황 속에서 오로지 문서만 가지고 찾아갈 수 있는가 여부를 위주로 평가

20230803 estsoft 기술문서 작성법 특강 사전과제 풀이 {계성혁}

기술문서의 특징

황우석 박사의 논문조작사건이 주는 파장: 내용이 진실되지 않는것이 주는 파급력은 굉장히 크다. 그 지식을 기반으로 쌓아온 새로운 지식들도 같이 무너지기 때문.

SW 개발과 기술문서

sw 개발과 건물 올리는 과정

소프트웨어 출시 후 발견된 요구사항 오류는 그 수정 비용이 매우 높지만, 초기에 발견된다면 그 비용이 매우 낮아집니다

어떻게 하면 그 비용을 최소화 할 수 있을까?

개발 방법론 (Framework)

[[애자일 101.pdf]]
20230508 estsoft - 김충환 회고강사특강 - 애자일 회고 - 매슬로우의 욕구계층 - 만다라트 과제있음

공통점

일반적인 언어 (비기술적인 언어)로 소프트웨어가 어떤 모습이 되어야 하는지 기술하는 것도 중요하다. 대표적으로 구현현황에 대한 자료를 포함한다.

SRS (Software Requiremenet Specification)

소프트웨어 요구사항을 정리한 문서

SRS 작성 원칙

사실 모든 기술문서가 다 그렇지

Glossary

단어집이 필요한 이유: 비기술자도 읽고 이해할 수 있어야 함. 기존의 익숙한 개념으로 사용하거나 새로운 단어를 정의하기도 하는 등 문서 안에서 일반적으로 사용될 수 있다.

비기술적인 용어로 기술된다. 탑다운 방식으로 요구사항이 구체화되는듯.

Diagrams

말로 다 설명하기 어려운 부분들을 예시 SRS를 보면 다이어그램을 통해 시각적으로 보여주고 있음을 보여주고 있다. 다이어그램은

대중적으로는 UML 다이어그램을 많이 사용한다. 구성 요소로는 여러 개체가 서로 관계를 시각적으로 표현하는 데에 있다.

구조를 표현할 수도 있고, 행위를 표현할 수도 있다.

Use Case Diagram

행위자가 요구하여 시스템이 수행하는 일의 목표 (추상화됨)

실습

Technical_Documentation_Usecase_Diagram.excalidraw
Technical_Documentation_Usecase_Diagram.excalidraw.png

Class Diagram

관련있는 데이터행위를 한데 묶어 구조화한 결과를 표현

실습

classDiagram

class Customer {
	+int id
	+string user_id
	+string real_name
	+string email
	+string phone_no
	+회원정보_수정(user_id, real_name, email, phone_no)
}

class Pet {
	+int id
	+string pet_name
	+enum species
	+string img_url
	+array tags
	+update_adoption_status(to): bool
	+delete()
}

class Adoption {
	+int id
	+int pet_id
	+enum adoption_status
	+date adoption_date
}

Customer "1" -- "N" Adoption
Adoption "1" -- "N" Pet

Sequence Diagram

행위를 보여주는거임. 내부구성요소간의 상호작용 순서를 나타내는 도표

도구를 이용한 문서 자동화

다양한 문서 혹은 다이어그램들을 작성했지만 작성해야 할 문서는 더욱 많다.

우리는 게으른 민족이다. 언제 다 수작업으로 만드냐? 생각보다 자동화 도구는 굉장히 많다. 다이어그램 뽑아주는거랑, 자동으로 API 문서 만들어주는거 등등

sphinx 를 활용한 코드 문서화

swagger-ui 자동생성기 drf-yasg

doc

글쓰기는 여러분의 생각을 정리하는 데에 도움이 됩니다.

Why engineers should focus on writing - Dmitry Kudryavtsevl