프로젝트: 팀 내부에서 사용할 비밀번호 관리 어플리케이션 (웹) 배경: 팀에서 다양한 사이트의 공용 계정을 사용하는 경우가 많은데, 사이트 비밀번호 변경 시 업데이트 공유가 잘 안되고 누락되는 경우가 많아, 웹 페이지별 공용 계정 비밀번호를 공유하고 관리하는 웹사이트를 만들고자 합니다.
요구사항 1. 승인된 사용자만 접근 가능 2. 사용자별 로그인 비밀번호 변경 가능 3. 로그인 시, 팜앤디 협동조합(기업) 내부에서 사용하는 웹사이트(링크), 웹사이트의 계정정보 (아이디, 비밀번호), 최종 수정한 담당자 확인 가능 4. 계정정보 변경 시, 비밀번호 업데이트 가능 (실수로 변경되지 않도록 2중 확인 필요) 5. 다양한 웹사이트에 대한 정보를 업로드할 것이므로, 검색 기능 필요 |
팜앤디는 공용으로 사용하는 다양한 플랫폼 계정들이 많이 있는데, 비밀번호 분실, 변경 공유등이 원활히 이루어지지 않아 시간 낭비가 있었습니다.
이를 해결하기 위하여 토이 프로젝트로 비밀번호 관리 웹앱을 빠르게 개발해 보았습니다.
총 소요시간은 기획~ 배포까지 총 약 3시간 내외였고, 개인 혹은 팀이 필요한 어플리케이션을 개발할 때 참고할 수 있도록 전반적인 진행과정을 공유해봅니다.
- 어떤 문제를 해결할지 정의하는 단계입니다.
- 모든 문제를 어플리케이션으로 해결할필요는없습니다.
반복성/임팩트 등을 고려하여 어플리케이션 개발 여부를 고민해 보아야 합니다. (효율성, 투입 대비 임팩트)
- 이번 비밀번호 관리 어플리케이션은, 예전부터 반복되는 문제이고 중앙화/암호화된 내부자 DB 접근으로 문제를 효율적으로 해결할 수있을 것 같다는 생각이 들어 어플리케이션 솔루션화를 결정했습니다..
- 제미나이, 클로드 코드, 챗지피티 등 도구의 효율성과, 트렌드, 프로젝트의 성격 등을 고려하여 잘 맞는 도구를 선택하면됩니다.
- 지금은 클로드 코드가 좋다고 하는데, 프로젝트 개발 시에는 아직 출시 전이라, 제미나이의 코딩파트너 잼을 활용하였습니다.
참고: AI도구들은 "도구" 입니다. 상황에 맞추어 선택하면 됩니다.
어느정도 고도화된 시스템이 아닌 이상 시장에서 사용되는 AI들이거 거의 구현 가능할 것으로 생각됩니다.
- 솔루션 개발을 위해 필요한 최소한의 정보를 명료하게 정의합니다.
프로젝트 제안 배경과 목적, 그리고 핵심 요구사항, 주의할 점 위주로 정의하면 됩니다.
- 개발자의 입장에서 새로운 프로젝트를 시작한다고 생각할 때, 어떤 정보가 있어야 문제를 해결해 줄 수 있는 솔루션을 만들 수 있을지 고민하며 정의하면 좀 더 편합니다.
- 너무 세세한 부분 (표현 방식 등)은 개발하며 개선해 나가되, 문제를 해결하는 핵심 방법에 대한 명확한 기능 및 방법 정의는 필요합니다.
- 문제를 어떻게 해결할지 모르겠다면, AI 와 새로운 채팅을 통해 문제 정의 및 해결방법 아이데이션부터 도움 받습니다.
- 이번 프로젝트에서 활용한 프로젝트 및 핵심 요구사항 정의 내용
프로젝트: 팀 내부에서 사용할 비밀번호 관리 어플리케이션 (웹)
배경: 팀에서 다양한 사이트의 공용 계정을 사용하는 경우가 많은데, 사이트 비밀번호 변경 시 업데이트 공유가 잘 안되고 누락되는 경우가 많아, 웹 페이지별 공용 계정 비밀번호를 공유하고 관리하는 웹사이트를 만들고자 합니다.
요구사항
1. 승인된 사용자만 접근 가능
2. 사용자별 로그인 비밀번호 변경 가능
3. 로그인 시, 팜앤디 협동조합(기업) 내부에서 사용하는 웹사이트(링크), 웹사이트의 계정정보 (아이디, 비밀번호), 최종 수정한 담당자 확인 가능
4. 계정정보 변경 시, 비밀번호 업데이트 가능 (실수로 변경되지 않도록 2중 확인 필요)
5. 다양한 웹사이트에 대한 정보를 업로드할 것이므로, 검색 기능 필요
- 위 내용을 바탕으로 제안해준 코드의 결과를 화면으로 구성해달라고 한 뒤, 사용하고 수정합니다.
- 제미나이에서는 캔버스를 사용하면 코드 결과를 바로 볼 수 있어서, 저는 캔버스에서 바로바로 확인하며 수정을 진행했습니다.
- 사용자의 입장에서 해당 솔루션을 활용하는 다양한 상황과, 시나리오에 입각하여 테스트 해 보면 좋습니다.
- 이번 프로젝트는 조직 내에서만 사용할 솔루션 개발이라, 다양한 아웃라이어에 대한 엣지 테스트들은 진행하지 않고, 일상적인 사용에서 발생할 것으로 생각되는 범위에 대해서만 고민하였습니다.
- 사용해보고, 수정하는 것은 이후단계에서도 지속적으로 진행됩니다. (배포 이후, 잘 되는지 테스트 및 수정 등)
- 이번 프로젝트에서 수정 요청했던 내용
- 모든 회원가입된 사람이 다 공용계정정보를 보지 못하도록, 회원가입시 마스터 계정에서 계정을 컨펌해 줘야 합니다.
- 현재 수정 및 삭제가 안됩니다. 문제를 해결 해 주세요. 정보 수정/삭제 시 2차 확인 (실수 수정/삭제 방지) 필수입니다.
- 혹시 전체 계정을 관리하는 마스터 아이디는 어떤식으로 접속되고 시스템에 접속가능한 아이디를 관리/부여 할 수 있나요?
- 일단 온라인에서 접속 가능하게 해 주세요. 서버 세팅 등 사전 세팅을 최소화 하되 계정 정보들이 안전하게 저장될 수 있도록 해 주세요
- 좋습니다. 현재 로그인이 안되면 (가입이 안된 계정이면) 아무 오류 메시지 없이 대기하게 됩니다. 이럴 경우 가입된 계정이 없습니다. 계정 정보를 확인하거나 가입 후 이용해 주세요 메시지를 띄워주세요
- 계정별 주 사용부서에 대한 카테고라이징을 하려고 합니다. 카테고리 분류를 추가 해 주세요. 카테고리는 옵셔널이고 기존에 있는 카테고리 선택 or 카테고리 추가를 할 수 있어야 합니다.
- 희망하는 배포 방법을 정하고, 이에 따라 배포를 요청합니다.
- 배포 방법을 잘 모르겠으면, 채팅창에 배포 방식을 추천해 달라고 합니다.
- 배포방식 추천 받을 때, 최소한의 제한사항을 주는 것이 좋습니다. (별도의 개발도구 설치 없이, 온라인 상으로 배포할 수 있어야 함. 온라인에서 바로바로 수정할 수 있어야 함. 계정정보이기 때문에 보안이 필수적임. 웹 브라우저에서 웹 주소를 통해 접속 가능해야 함 등)
- 이번 프로젝트는 기존 프로젝트에서 많이 사용했던 (비교적 익숙한) 파이어베이스와, CodeSandBox 플랫폼을 활용했습니다.
- 각 도구의 세팅/활용 방법은 AI 가 친절하게 알려줍니다. 세팅 단계에서 마주하는 다양한 오류들도 오류 메시지를 올리면 해결 방법을 친절하게 제시해 줍니다.
- 결과물을 사용자에게 릴리즈 하고 초기 테스트를 요청합니다.
- 테스트 결과 들어오는 보완점/ 개선점 들을 확인하고 필요시 개선합니다.
- 프로젝트의 성격이나, 요구되는 보안성, 사용자에 따라 5-6번 사이에 다양한 추가 절차들이 있을 수 있습니다.
이번 프로젝트는 내부 사용 솔루션이라, 추가 절차 없이 바로 배포하였습니다.
https://h9hjzc.csb.
app/
위 6 단계가 정형화 된 개발 프로세스는 아니지만,
토이 프로젝트로 가볍게 나의 / 조직의 문제를 해결해 보는데는 크게 문제 없을 것 같습니다.
위 프로세스를 참고해서 각자만의 토이 프로젝트를 시도해보아도 좋을 것 같아요~~