안녕하세요 코이킹입니다.
지난 포스트에 이어서 이번 포스트에서는 요건 정의를 해보겠습니다.
※ 번외 포스트는 그저 사견이 가득 들어있을 뿐이고 구현에는 크게 영향을 끼치지 않으므로 무시하셔도 좋습니다.
1. 목표
- 왜 게시판 프로젝트를 진행하는지에 대한 이유와 무엇을 할 것인지 알기.
2. 요건정의
제가 생각하는 요건 정의란 만들고자 하는 프로그램의 기능 무엇인지를 확정하여 개발해야 할 범위를 지정하는 것입니다.
프로그램의 기능을 확정하려면, 제가 생각했을땐 먼저 무엇이 필요한지를 아는 것이 중요하다고 생각합니다.
이 프로젝트의 목표는 첫 포스트에서 말씀드린대로 신입 엔지니어가 입사하여 회사의 시스템에 적응하는것을 돕는 것입니다.
그렇다면 회사의 시스템에 적응을 한다는 것은 무엇일까요? 제가 생각했을 땐 2가지가 가능해지는 것입니다.
첫번째는 자기 능력 범위 내의 맡겨진 일을 해결하는 것, 두 번째는 자기 능력 범위 내에서 해결할 수 없는 일에 도전한 후 해결할 수 있는 사람을 서포트하는 것입니다.
어디까지나 제 신입때의 경험 바탕으로 신입에게 맡겨지는 일을 크게 2가지로 추려 보면 간단한 로직의 배치 또는 API 프로그램을 개발하거나, 로그와 데이터 조사하는 업무가 있습니다.
이 신입에게 맡겨지는 일을 해낼 수 있는 기초체력에 해당하는 것이 "코드를 보고 프론트엔드에서 백엔드 프로그램을 거쳐 DB까지, 역순으로 DB에서 백엔드 프로그램을 거쳐 프론트엔드까지 데이터의 흐름을 쫒을 수 있는 기술"이라고 생각합니다.
※ 저는 이걸 간략히 데이터 흐름 쫒기라고 합니다.
데이터 흐름 쫒기를 연습하기에 좋은 예제로는 CRUD(데이터의 생성, 읽기, 갱신, 삭제) 기능을 포함하고 있다면 무엇이든 상관없다고 봅니다만, (예를 들면 todo리스트)
다양한 기능을 붙이고 확장하기에는 게시판을 프로젝트의 주제로 선정한 것 입니다.
서론이 길었습니다. 아래가 구현해야할 기능과 왜 구현해야 하는지에 대해 정리한 표입니다.
분류 | 기능 | 왜 구현하는지? |
게시판 | 게시글 목록 | - CRUD 기능을 갖춘 게시판을 만들어 봄으로써 웹 어플리케이션에 대한 기본적인 구현능력 기르기. |
게시글 작성 | ||
게시글 상세보기 | ||
게시글 내용 갱신 | ||
게시글 삭제 | ||
게시글 목록 페이징 | ||
예외처리 | ||
회원 | 회원가입 | - 스코프(페이지/리퀘스트/세션/어플리케이션) + 쿠키에 대해서 알기 - 동기 / 비동기 통신에 대해서 알기 - 암호화에 대해서 알기 - 파일 업로드 / 다운로드 구현해보기 |
로그인 / 로그아웃 | ||
자동 로그인 | ||
회원정보 수정 | ||
댓글 | 댓글 목록 | - CRUD 기능을 갖춘 API를 만들어 봄으로써 API대한 기본적인 구현능력 기르기. |
댓글 작성 | ||
댓글 내용 갱신 | ||
댓글 삭제 | ||
댓글 목록 페이징 | ||
예외처리 | ||
호불호 표시 | 좋아요 / 싫어요기능 | - 복잡한 비지니스 로직구현 (프로그램 로직) - 의사코드작성 / 플로우 차트 |
소셜 로그인 | 구글 로그인 | - 복잡한 비지니스 로직구현 (프로그램 로직 + API 통신) - 의사코드작성 / 시퀸스 다이어그램 |
운영 | 실서버 배포 | - EC2에 배포 해보기 - RDB와 연동 해보기 - S3에 파일 업로드 / 다운로드 해보기 |
테스트 자동화 | - 셀레니움 스크립트에 대해서 알기 | |
배포 자동화 | - CI/CD 툴에 대해서 알기 |
요건정의는 이것으로 마치겠습니다.
다음 포스트는 설계가 될것 같습니다
'프로그래밍 > Springboot-토이프로젝트' 카테고리의 다른 글
【게시판-02】글목록 (0) | 2022.09.07 |
---|---|
【게시판-번외02】설계 (0) | 2022.07.09 |
【게시판-01】프로젝트 생성 (0) | 2022.07.07 |
【게시판-00】개발환경 세팅 (0) | 2022.07.05 |
Springboot로 파일업로드와 파일다운로드 구현하기 (0) | 2021.09.28 |
댓글