직장인인강 31

사이드 프로젝트 with React 11.

강의에서 함께 만들어 볼 프로젝트 소개 더치페이 서비스 5-WHY 기법 불편함을 느낀 상황: 친구들과 여행을 다녀왔는데 정산하는 과정이 복잡했다. 왜 불편했나?: 누가 누구한테 얼마를 줘야하는지 계산하는 것이 어려웠다. 왜 그랬나?: 계산을 여러 사람이 했다. 기술로 해결 가능한 문제인가?: 여러명이 결제한 내역을 모아 쉽게 더치페이할 수 있게 계산해주는 소프트웨어가 있으면 해결할 수 있다. 목적 이 아이디어를 실현하고자 하는 목적은? 주려고 하는 가치는? - 코로나 이후, 여러 사람들과 모임을 갖거나 여행을 가는 것이 다시 일상화 되고 있다. - 모임 이후 비용을 정산할 때 Stress-free 효과 - 누가 누구에게 돈을 줘야하는지 복잡하게 계산할 필요가 없다. - 메신저에서 쓴 내용을 누군가가 다시..

사이드 프로젝트 with React 10. 서비스 요구사항 작성하기

서비스 요구사항(User requirement) 작성하기 WHY? 프로젝트 초기 단계 -> 코드만으로 어떤 서비스를 만들 것인지, 시스템이 어떻게 동작하게 할지 정의하기는 어렵다. 프로젝트 초기 단계 -> 프로젝트 일정을 estimate하고 구체화시킬 수 있다. 문제가 초기 단계에서 발견될 수 있다. 초기 단계에서 문제를 발견하고 방법을 강구하는 것은 시간을 절약하고 스마트하게 일할 수 있는 방법. 협업 측면 -> 타 직군과 협업하며 서비스의 요구사항을 정의하기에 가장 명확한 수단이다. 잘 정리된 요구사항은 오해의 여지가 없고 모두가 같은 곳을 바라볼 수 있게 함 유지 보수 측면 -> 추후 스펙 변경이 있을 때 어떤 기능을 지원하기로 했는지, 하지 않기로 했는지 빠르게 찾아볼 수 있다. 기능적 요구사항 ..

사이드 프로젝트 with React 09.

Part 1 마무리 및 Recap 사이드 프로젝트의 시작 사이드 프로젝트 = 기회 - 성장할 수 있는 기회 - 기술적 성장, 협업 측면에서의 성장 - 본인의 욕구를 충족시킬 수 있는 기회 사이드 프로젝트 주제 정하기 - 가장 중요한 스텝 - 현실의 문제를 찾아내고 이 문제를 해결하기 위한 아이디어를 생각해내자 - 내 주변에 있는 문제 찾아내기 ex. 내 감정에 집중하기, 내 하루 루틴에서 불편한 것들 기록하기 (내 집 주변 대중교통 도착 예정 정보?) - 5-WHY 기법을 통해 아이디어 판별하기 => 문제의 근본 원인 파악, 기술로 해결할 수 있는지 판단. 1인 개발 vs 팀 개발 중 선택 - 본인의 성향에 따라, 프로젝트의 성격에 따라 결정 - 만들고자 하는 것이 혼자서는 커버하기 어렵고 다른 전문 인..

사이드 프로젝트 with React 08.

소프트웨어 개발 주기 1. 기획 요구사항을 수집하고 프로젝트를 기획하는 단계 사용자 설문, 마케팅 요구사항 등 다양한 채널을 통해 데이터를 모으는 과정으로 가장 중요하면서도 기초가 되는 단계 QA(Quality Assurance)를 위한 요구사항과 프로젝트가 가질 수 있는 리스크 판단 2. 분석 제품의 요구사항을 정의하는 단계 SRS(Software Requirement Specification)에 기록 SRS: 디자인 및 구현해야 할 모든 요구사항을 기록해 둔 명세서 IEEE에서 제공하는 SRS 템플릿: https://web.cs.dal.ca/~hawkey/3130/srs_template-ieee.doc 3. 디자인 시스템을 디자인하고 설계하는 단계 4. 구현 디자인을 기반으로, 개발자가 코드로 기능을..

사이드 프로젝트 with React 07.

일정 관리 (horizon으로 or 달력 템플릿) 디자인 및 스타일 가이드 디자인 레퍼런스 서비스 레퍼런스 Engineering Wiki -> 노션에서 기본적으로 제공하는 템플릿 새로운 파일을 만들 때 어떤 디렉토리 밑에다가 넣어야 하는가? 미팅 노트 Summary Action Items kanban board kanban: 프로젝트를 관리하는 방법론 중 하나 To-do, doing, done Overview Purpose Problem Effect Targeting Comparison 유사 앱 비교 핵심 타겟 서비스 핵심 가치 목표 다른 앱과의 차별점 Main Features Sub Features FAQ Q. 원래 있던 걸로 하지, 왜 우리 걸로 테스트할까? Q. 진짜 자신의 성향을 아는 것이 포인트..

사이드 프로젝트 with React 06.

각 과정에서 피드백은 필수. 기획: 아이디어 수집 및 프로젝트 시작 -> 요구사항 수집 -> 우선 순위 정하기 -> 플래닝 아이디어 수집 및 프로젝트 시작: 기초 뼈대 만드는 작업. 요구사항 수집: 서비스에서 제공해야할 것들 리스팅. 플래닝: 개발자와 함께. 프로젝트 릴리즈 일정이 중요한지, 프로젝트 퀄리티가 중요한지 등에 맞춰 플래닝 디자인: 레퍼런스 조사 + User Flow -> UI/UX 디자인 레퍼런스 조사 User Flow: 원하는 것 구체화할 수 있는 방법 UI/UX 디자인: User Flow 동작 방식, 색상, Responsive 여부 개발: 시스템 설계 -> 일정 산출 -> 구현 -> 테스팅 & 배포 시스템 설계: 어떤 식으로 설계해야 스케일러블하고 안정성 있는지 생각하면서 설계. 태스크..

사이드 프로젝트 with React 05.

프로젝트를 관리하는 목적 - 팀이 업무를 체계적으로 계획/관리/수행할 수 있어 프로젝트 요구 사항을 충족시킬 수 있다. - 모든 이해 관계자와 프로젝트의 상태를 원활하게 공유할 수 있다. - 프로젝트 계획, 세부 사항, 파일, 피드백을 한 곳에서 관리할 수 있다. - 팀 효율성 및 협업 개선 사이드 프로젝트에서 나는 개발자이면서 Project Leader 프로젝트의 원활한 진행과 효율적인 협업을 위해서라면 프로젝트 관리는 필수 실무에서 프로젝트 관리 - 소프트웨어를 개발/유지/보수하는 데에는 프로젝트가 연속적으로 발생한다. 프로젝트의 흐름을 알고, 관심을 가져야 큰 그림을 볼 수 있다. - 지금 프로젝트에서 중요한 것이 무엇인지 알고 관심을 가져야 본인의 개발 일정도 잘 관리할 수 있다. - PM, PO..

사이드 프로젝트 with React 04.

1인 개발 vs 팀 개발, 어떻게 선택해야 할까? 1인 개발의 장점 - 내 자신이 모든 일들의 실무자이면서 주도권을 가지고 있다. - 미팅이 없어서 일정 조율에 대한 부담 없이 자유롭게 개발 가능 - 전문성이 부족한 분야에 대해서는 돈을 쓰고 외주를 줘서라도 내가 원하는 방향으로 퀄리티를 높일 수 있다. 1인 개발의 단점 - 프로젝트의 장기화 - 일정이 오래 걸림. 심적으로 빨리 지칠 수 있는 가능성 - 체계를 갖추기가 쉽지 않다. - 프로젝트의 관리 방법보다는 구현 자체에 초점을 두게 될 경향이 크다. - 피드백을 받기가 쉽지 않고, 모든 의사 결정이 온전히 본인의 몫. 리스크가 있다. 팀 개발의 장점 - 다양한 직군/사람 과 협업 가능 -> 소프트 스킬 향상 - 다양한 사람의 목소리를 들을 수 있음 ..

사이드 프로젝트 with React 03.

사이드 프로젝트, 이렇게 하면 망하기 딱 좋다. - (계획도 없이) 일단 해보자! - (의욕만 앞서서) 일단 해보자! - (왜 하는지도 모른 채) 일단 해보자! - (단순히 최신 기술만 써보려고) 일단 해보자! 첫 단추. 주제 정하기 - 가장 중요한 스텝이다. - 내가 만들고 싶은 것이 무엇인지 구체적으로 생각해보는 시간이 반드시 필요하다. - 내가 사용할 것을 만들어야 배움의 깊이가 훨씬 깊다. - 개선점이 분명히 생긴다. 개선하기 위한 계획을 세우고 구현을 하면서 그 전에 작성했던 코드를 다시 보게 된다. 시간이 조금 지난 뒤에 나의 코드를 보면 조금 더 객관적인 시각에서 바라볼 수 있고 코드를 보는 눈을 기를 수 있다. - 코드를 유지, 보수하면서 맞닥뜨리게 되는 문제, 그것을 해결하는 과정에서 배..

사이드 프로젝트 with React 02.

사이드 프로젝트 - 본업과 관련없이 개인적인 시간을 활용해서 자신이 원하는 것을 하는 프로젝트 - Tech 쪽에서는 주로 새로운 소프트웨어 개발을 칭하곤 한다. - 자신이 주도적으로 기획하고 개발한다. 사이드 프로젝트는 성장할 수 있는 기회다. - 커리어를 시작하는 첫 단추를 만들 수 있다. - 풀스택 개발자가 될 수 있는 기회다. - 직장에서 충족시키기 어려운 욕구를 채울 수 있다. - 새로운 기술을 실전 프로젝트에 사용해볼 수 있다. - 기술에 대해 깊이 있는 지식을 얻을 수 있다. - 기본적인 프로젝트 관리 기술을 배울 수 있다. - 다양한 사람들과 협업하는 방법을 터득할 수 있다. - 잘 될 경우, 창업의 기회로 이어지기도 한다. 사이드 프로젝트의 성공적인 사례 - 네이버: 삼성SDS 사내 벤처로..