목록오공완 (30)
why not

1. 시퀀스 다이어그램(Sequence Diagram)이란? 객체 간의 상호 작용만으로 보여주는 아키텍처 다이어그램과는 달리, 시퀀스 다이어그램은 객체 간의 상호 작용을 시간 순으로 시각화 해 아키텍처 다이어그램보다 조금 더 구체적이다. behavior diagram: 시스템의 구조에 초점을 맞춘 것이 아니라, 시스템이 어떤 순서로 누구와 상호작용 하는지에 촛점을 맞춘 행동과 관련한 다이어그램 시퀀스 다이어그램 상호 작용 방법 User가 그룹을 생성(group/new)하겠다는 요청을 보내면 Web Client가 활성화 일련의 과정 후에 Web Client가 DutchPay Server에 '그룹을 생성하라'라는 API콜을 보냄 DutchPay Server에서 GUID생성 생성된 GUID와 그룹 이름을 Gr..

1. 아키텍처 다이어그램(Architecture diagram)이란? 시스템의 전체 구조와 시스템 간의 상호 작용 및 의존성을 나타내는 그림 모든 디테일을 다 담고 있는 것이 아니라 아주 추상화된 레벨(high-level)에서 가시화 한 다이어그램 각 시스템이 어떻게 동작하는지, 어떤 데이터를 어떻게 다루는지 등의 구체적인 상호작용 내용보다는 전체적인 맥락 관점에서 기술하는 것을 말한다. 2. 아키텍처 다이어 그램을 사용하는 이유? 나무 하나 하나는 모르더라도 전체 숲을 보는데 도움이 된다. 시스템(회사나 소프트웨어)의 규모가 커지면서 한 개발자가 시스템이 어떤 순서로 요청을 처리하는지, 어떤 시스템과 소통을 하는지 파악하기가 어렵기 때문에 이를 쉽게 이해하기 위해서 사용한다. 코드 만을 보고 시스템의 ..

1. 시스템 설계 건물을 짓기 전 설계 도면을 그리는 과정 시스템의 요구사항을 충족하기 위해 필요한 아키텍처, 인터페이스 및 데이터를 정의 소프트웨어를 구성하는 요소들 (a.k.a 컴포넌트) 간의 관계와 동작 메커니즘을 표현하기 위한 구조체 2. 설계가 필요한 이유 설계도가 없는 건물이 안전하지 않은 것과 같이 설계가 없이 구현된 소프트웨어도 안전하지 않다. 건드려도 될 것과 건드리면 안될 것을 모르므로 불안정한 소프트웨어를 만들게 된다. 개발이 진행된 이후에는 이미 개발된 전체 시스템의 구조를 수정하기가 어렵기 때문에 구현 전에 미리 설계를 해야 한다. 설계 과정이 있어야 확장성, 보안 등 시스템에 요구되는 다양한 요구사항을 잘 충족시킬 수 있다. 설계의 유무는 개발 과정에 큰 영향을 미친다. 개발자들..

1. 더치페이 서비스 소개 아이디어의 탄생 및 배경 앞으로 빌딩 할 내용의 소개 2. 추상적인 아이디어를 구체화하기 위한 서비스 요구사항 정리 시스템에 대한 사용자의 요구와 기능 정리-> 프로젝트의 근간이 되는 step이라 아주 중요하다. 프로젝트 초기 단계, 협업 및 유지보수 등 모든 측면에서 기초가 되는 단계라서 중요 기능적 요구사항(Functional requirements)-> 소프트웨어의 기능에 대한 요구사항들 리스팅 비기능적 요구사항(Non-Functional requirements) -> 소프트웨어의 품질을 높이기 위한 요구사항들 리스팅 3. 요구사항을 작성하는 방법 3-1. User story로 시작하기 3-1.1) 형식: {Role}로서, 나는{Benefit}을 위해 {Goal}을 이루고..

1. 릴리즈 날짜를 계산하기 위해 필요한 것들 1-1. 이상편 UI 디자인 -> 프론트엔드 로직이 바뀔 수 있기에 꼭 필요 시스템 설계도 -> 설계 기반으로 태스크를 세분화 할 수 있음 투입될 인원과 프로젝트에 쏟을 수 있는 시간 -> 본업이 있는 상태이기 때문에 쓸 수 있는 시간이 다양함 1-2. 현실편 아직 완벽하지 않아도 1차적으로 무엇을 해야 할지 파악이 끝난 프로젝트만 있으면 가능 직감이나 예측(전략적인 배포라면 날짜가 박혀 있는 경우도 있음) ex) 릴리즈 날짜를 정하기엔 시간이 오래걸리기 때문에, 아마존의 경우, 프로젝트를 관리해주는 매니저나 경험이 많은 개발자들이 모여 프로젝트의 규모와 해야 할 일을 파악 및 예측을 한 후 목표 날짜를 1차로 러프하게 정한 후 설계를 진행 -> 매니저의 성..

1. 태스크를 만들고 난 이후 해야 할 것? 1-1. 우선 순위 정하기 - 우선순위를 정하는 이유? 무엇을 해야 할지 명확하게 파악이 가능하다. 앞으로 집중해야 하는 것(이번이나 다음 릴리즈에서 집중할것들, 다가오는 스프린트에서 집중할 것들...)은 무엇인지 계획을 세울 수 있다. 우선순위는 어떤 관점에서 바라보는지에 따라 바뀔 수도 있다. 프로젝트를 보다 체계적으로 수행할 수 있다. 목표를 달성하기 위해 필요한 작업을 우선순위에 따라 계획할 수 있다. 1-2. 더치페이로 보는 우선 순위 정하는 과정 1-2.1) 지금 당장 해야 할 것? (High priority) UI design 백엔드 설계 -> 이 두 가지는 프로젝트의 성격상 매우 중요하며, 이를 먼저 해결해야만 다른 sub-task들을 수행할 수..

1. 세분화에 포함될 내용 정리 software 요구사항을 기반으로 task를 작성 User story 단위로 task를 세분화 시켜보는 것에서 시작 처음부터 모든 것을 확정지으려고 하지 말기 조사가 필요한 부분, 설계가 피요한 부분도 태스크로 만들어서 관리 2. Task 세분화 -> User story 하위의 Task들은 앞으로 더 구체화되고 수정이 가능 (feat. Agile방식) User story Software Requirement 사용자가 정산을 시작하기 위해 정산 이름(모임 이름)을 입력 그룹 이름을 입력할 수 있는 창을 제공 [프론트 엔드]: 그룹 이름 입력 컴포넌트 [백엔드]: 백엔드 필요한지 설계 필요 사용자가 정산에 참여할 사람들을 입력 - 시스템은 그룹에 속하는 사람들의 이름을 입력..

1. Mock-up? 실제 서비스를 만들기 전 실제 서비스처럼 모형을 만들어 보는 단계이다. 제품의 기능이나 디자인을 사전에 검토하기 위해 제작한다. 2. 디자인 툴 종류 Figma - Bootstrap UI Kit - Material UI kit Bootstrap Studio(유료) 3. UI 컴포넌트 bootstrap, material UI 등 theming library 이용하곤 함. 혹은 디자이너가 직접 UI 컴포넌트를 제작 3-1) React 기반 UI 컴포넌트 https://mui.com/ https://blueprintjs.com/ https://react-bootstrap.github.io 4. 반응형 웹 사이트? 화면 사이즈가 변할 때 페이지도 유동적으로 변하는 웹 사이트 4-1) Fig..