일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- php
- mysql
- 테스트 자동화
- rx
- Reactive
- databinding
- MediaPlayer
- Koin
- Android
- PagingLib
- 동영상
- junit
- google play
- 인앱결제
- android13
- node
- MotionLayout
- GCP
- Android 13
- node.js
- Kotlin
- paging
- Observable
- mvvm
- SwiftUI Tutorial
- RxKotlin
- Animation
- list
- MediaSession
- SWIFTUI
- Today
- Total
봄날은 갔다. 이제 그 정신으로 공부하자
단말에 저장된 내 메모를 보호하는 앱 만들기 - 2편 본문
시작 전에...
지난 글에서 어떤 앱을 만들 것인지에 대해 간략히 설명하고 거기에 사용되는 기술에 대해 설명하였는데,
이번글과 지난번 글은 순서가 바뀐 부분이 있습니다.
개발의 정상적인 순서상으로 하면 이번 글이 처음이 되어야 하고 지난번 글이 두번째가 되어야 합니다.
실제 개발도 그 순서로 했습니다. ^___^
만들 기능을 간략하게 정리해보자.
메모를 안전하게 지키는 앱을 기획하기 전에 개발 범위(목표)를 먼저 정하는 것이 좋습니다.
저는 아래와 같이 정해보았습니다.
- 메모를 안전하게 지키자.
- 하지만 앱을 사용하는데 불편하지 않게 하자.
조금 더 구체화 해보자
위 목표를 달성하기 위해 어떤 기능들이 필요할까 생각해보았습니다.
1. 메모를 안전하게 지키자.
- 비대칭키 + 대칭키 암호화 방식으로 메모 암호화
- 디버깅 감지 + 루팅 감지 + 앱 위변조 방지로 메모 탈취 방지
- 시큐어 코딩 + 난독화로 코드 분석 방지
- 비밀번호 잘 못 입력시 입력 제약
- 일정 횟수 이상 비밀번호 잘 못 입력 시 모든 메모 접근 불가능 기능 추가
2. 하지만 앱을 사용하는데 불편하지 않게 하자.
- 메모 추가 or 삭제하는 경우에만 비밀번호를 입력하게 하고 나머지는 사용자 선택으로 비밀번호 입력하도록 설정하도록 개발
- 중요도가 낮은 메모는 암호화 없이 저장되고 바로 접근 가능하도록 개발
- 사용자 설정으로 제약 기능을 가변적으로 조절할 수 있도록 개발
어떤 기능과 화면이 필요할까?
- 메모를 추가/편집/보기/삭제하는 기능과 화면
- 설정값들을 보여주고 편집하는 기능과 화면
- 패스워드 및 암호화 키를 입력 받고 저장하는 기능과 화면
화면 기획
기능과 화면에 대해 대략적으로 정리했다면 그다음 중요한 것이 화면(팝업 포함)을 정리하는 것입니다.
특별한 경우를 제외하고는 위 정리한 기능들이 모두 화면에 포함되어 있어야 합니다.
사용자에게 노출되는 순서대로 설명하겠습니다.
1. 비밀번호를 입력 팝업
앱 최초 실행 시 사용자에게 비밀번호를 입력 받는 화면으로 사용자가 비밀번호를 입력하면 "메모 모록 화면"으로 이동하고 비밀번호를 입력하지 않으면 앱 종료
2. 메모 목록 화면
사용자가 입력함 메모를 보여주는 화면으로
- 암호화된 메모의 경우 -> 힌트와 메모의 마지막 편집 시간만 보여주고 메모 내용은 자물쇠 아이콘으로 대체
- 일반 메모의 경우 -> 힌트와 메모의 마지막 편집 시간만 그리고 메모 내용 3줄까지 표시
3. 메모 추가 화면
메모를 추가하는 화면으로 사용자가 아래 기능을 선택해서 입력 가능함.
- 메모의 암호화 여부
- 힌트
- 메모 내용
4. 메모 보기 화면
작성된 메모를 보는 기능으로 해당 화면 접근 시 "비밀번호 입력팝업"을 사용자 사용자 비밀번호 확인
상단에 해당 메모를 편집할 수 있는 버튼을 제공해 메모를 편집할 수 있도록 함.
4. 메모 편집 화면
작성된 메모를 편집하는 기능으로 메모 작성 기능과 동일하지만 이미 작성된 메모의 내용을 보여주고 상단에 해당 메모를 삭제할 수 있는 버튼을 제공해 메모를 삭제할 수 있도록 함.
5. 설정 화면
앱의 설정을 보여주고 편집할 수 있는 기능을 제공하는 화면으로 아래 기능을 제공
- 편의를 위해 앱이 잠깐 동안 사용자 비밀번호 기억 시간
- 비밀번호 입력 실패 시 제약 조건
- 비밀번호 입력 실패 시 완전 잠김 조건
- 비밀번호 변경 기능
6. 비밀번호 변경 팝업
사용자 비밀번호를 변경할 수 있는 팝업으로
비밀번호 변경 시 암호화 키가 변경되므로 DB에 저장된 암호화 메시지 재 암호화
7. 비밀번호 입력 팝업
사용자가 앱 실행 시 또는 설정 화면 접근 시 그리고 암호화된 메시지 접근 시점에 비밀번호를 입력 받는 팝업
정리
이번 글에서는 메모를 보호하는 앱의 목표와 기획에 대해 설명하였습니다.
이런 앱을 만들어보자라고 머리속으로 생각할 때는 별거 아닌 것 같지만, 실제로 생각을 구체화해보면 해야되는 것들이 상당히 많습니다.
머리속의 생각을 구체화 하는 기획 과정을 통해 만들어야 할 것이 구체화되고 정리되어 핵심을 정리하고 불필요한 것들을 배제할 수 있는 장점이 있습니다.
다음 글에서는 앱의 소스와 그에 대한 설명을 하도록 하겠습니다.
기획은 카카오븐으로 하였고 만들어진 기획서는 아래 링크를 참고해주세요.
URL: https://ovenapp.io/view/GaunE4YwLYYcqh04iCLpC6f6FHPxk3wq#u9ObC
'앱 만들기' 카테고리의 다른 글
단말에 저장된 내 메모를 보호하는 앱 만들기 - 3편 (0) | 2022.05.13 |
---|---|
단말에 저장된 내 메모를 보호하는 앱 만들기 - 1편 (0) | 2022.04.29 |