Lina's Toolbox

SA 문서 작성법 + 개발 공부하는 방법 본문

스파르타 내일 배움 캠프 AI 웹개발 과정

SA 문서 작성법 + 개발 공부하는 방법

Woolina 2024. 7. 3. 19:30

SA 문서의 정의

  • 'Software Architecture'의 약자로 소프트웨어 전반적인 구조에 대한 문서를 의미
  • 내가 이 프로젝트에 대해 아는 만큼 작성할 수 있음 -> 작성하면서 학습이 된다. -> 소프트웨어 역량 향상에 좋음
  • 보통 PM이나 팀장이 작성한다.
  • 사실 현업에서는 모든 문서를 퉁치지않고 작성해야할 여러가지 문서가 있음..

 

SA 문서를 작성하는 이유

  • 소프트웨어의 구조를 '설계'하고 표준을 지향하는 '소통'을 하기 위함
  • 소프트웨어는 구조가 가면 갈수록 복잡해짐 -> 내가 만드려는 소프트웨어를 다른 사람에게도 이해시키려는 목적
  • Web 과 AI 를 다루기 위해 소프트웨어적 설계 능력과 수학적 사고력을 길러야함
  • 궁극적으로 수강생 입장에서 해당 문서를 작성해본 경험이 있는 분을 기업에서 선호함 -> 취업에 유리

 

SA 문서를 효율적으로 작성하는 법

[]는 생략 가능한 것

  • 들어가면 좋은 내용: 팀 소개, 프로젝트 개요, 개발 기간, 일정(주 단위), 역할 분담, 개발 환경, 사용하는 기술, [초기 기획], 와이어프레임, [참고 자료], 최종 결과물(사진 첨부), 핵심 기능, API 명세서, 요구사항 명세(실무에서는 이 부분이 길다), [우리 팀 규칙]
  • 정해진 양식은 없다.
  • 최대한 상세하게 작성할수록 좋다!!!
  • 잘 작성된 SA 문서를 통해 내가 논리적인 사람인지 어필할 수 있다.
  • 비전공자/ 비전문가도 읽고 이해하도록 작성해야 한다.
  • 작성 전 본인의 프로젝트를 충분히 파악해야 한다.
  • SDLC(소프트웨어 개발 수명 주기;시작부터 끝)를 생각하며 작성할 것
  • 항상 표준과 최신을 적용할 것 // 프로젝트가 수정되면 SA도 수정되어야함 (사용하는 파이썬 버전이 바뀌었을 경우 등)
  • 예쁘게 작성하기
  • SA 문서도 버전을 나눠 작성하면 좋다. ex. SA 1.0.1 

* python 3.0.1 :

메이져리버전(이 숫자가 다르면 서로 호환 안됨). 마이너리비전(호환 되기도 하고 안되기도 함. 숫자 차이가 크면 호환 안될 가능성 높음). 패치(차이 거의 없는 사소한 업데이트)

 

노션에 SA 작성한 뒤 깃 readme 에 첨부하면 좋음. ( Figma등 다른 작업한 것도 있으면 첨부)

// 참고로 깃 리드미는 영어로 작성하는 게 좋음.

 

실무에서는 보통 회사 바이 회사 지만
(대략)  사용자 관점에서 알아야 하는 것 , 개발자 관점에서 알아야 하는 것 나눠서 작성하는 편.
SDS 와 비슷하여 참고하면 좋음.

 


개발 역량 향상 꿀팁

 

  • 사용하려는 기술에 대한 이해
  • 공식 문서를 최대한 참고하고 개발자 커뮤니티 기웃거리기 ( 가능하면 원문으로 읽기)
  • 전문 IT 자격증을 통해 배경지식 함양(기사등급, 최소 산업기사 이상)

// 개발자 커뮤니티: Git, StackOverFlow, 각 기술 커뮤니티(DRF, JS 등)

 

  • 문제를 파악하고 해결할 수 있는 사고력과 대응력
  • 알고라줌 문제를 통해 간접적으로 해당 역량을 간접적으로 향상할 수 있음
  • 사실 오랜 시간 경험을 통해 쌓이는 역량이 가장 크다.

 

  • 사업 설계 및 계획 능력
  • 작성하는 문서들을 통해 직접적으로 기를 수 있는 역량임.
  • 면접 때 PM 역할을 수행했다고 했을 때, 면접관들이 다소 흥미있게 물어보는 이유임
  • 프로젝트 설계를 넘어서 사업의 흐름을 보게 될 줄 알 때, 나의 시야는 엄청나게 넓어진다.

 

  • 연구할 수 있는 정신 지구력과 깊은 호기심
  • 사실 이 부분은 냉정하게 재능의 문제라 애매한 부분..
  • Web과 AI를 함께 다루기 위해서는 지구력과 호기심이 반드시 필요함
  • 관련된 주제의 논문과 Git을 많이 읽어보고 찾아볼 것
  • 영어에 익숙해질 것 (원문으로 보려고 노력하기)
  • 팀원간 많이 소통하고 지적을 받고 칭찬받을 것

 

  • 본인만의 목표와 신념을 가지기!

* 인사 면접 때 많이 물어보는 질문
야근할 수 있는 지 / 주말 출근 할 수 있는 지/  사용해본 모듈, 라이브러리, 프레임워크