개요
앱의 건강 메뉴 전체를 가리킴. 복약 관리, 건강생활정보, 체중·신장, 혈압, 비상연락처, 비상호출, LH안심서비스로 나뉨.
입주 승인이 끝난 세대만 쓸 수 있음. 전출·세대원 제외 상태면 메뉴가 통째로 막힘(공개노트/기능/로그인과 세대 승인). API 경로·테이블은 공개노트/개발/모듈/MAW 세대·헬스케어 API.
복약 관리
무엇을 하는가
복용 중인 약을 등록하고, 복용 시각에 알림을 받을 가족을 지정하고, 먹었는지 기록함.
- 약 하나에 복용 시각을 최대 10개까지 넣음
- 알림 대상 가족은 최대 10명임. “가족 전체”를 고르면 가족 목록에서 앞에서 10명까지만 채워짐. 11명째부터는 버려짐
- 복용 요일은 선택한 요일 코드를 정렬해 저장함
- 복약 기록은 같은 약·같은 날짜면 덮어씀. 하루에 두 번 기록해도 행이 하나임
복약 알림은 앱 서버가 보내지 않음
앱 서버(MAW)는 약 등록과 복용 기록만 함. 실제 알림 발송은 스케줄러 서버가 하므로, “복약 알림이 안 와요”는 앱 서버 로그로 확인할 수 없음. 공개노트/개발/push 알림 · 공개노트/개발/모듈/SCW 스케줄러 서버
알아둘 점
- 약을 지워도 복용 기록은 남음. 지우지 않고 두는 것이 현재 동작이라 통계가 어긋나 보일 수 있음
- 가족 이름이 비어 보이면 그 사람이 현재 가족 목록에 없는 것임(전출·탈퇴 등)
- 캘린더 검색에서 시작일·종료일을 비우면 조회 결과의 마지막 건을 기준으로 범위를 잡음. 데이터에 따라 결과가 크게 달라짐
- 등록된 약이 많으면 목록이 느려짐(약마다 추가 조회가 붙는 구조임)
건강생활정보
건강정보·보건소소식·복지관소식 링크 목록임. 단지 지정이 없는 정보는 전 단지 공통으로 보임.
- 유형 표기는 건강정보·보건소소식 두 가지만 이름이 정해져 있고 그 밖의 값은 전부 “복지관소식”으로 보임
- 페이징이 없음. 공통 정보가 쌓이면 목록 응답이 계속 커짐
- 링크 주소는 검증 없이 그대로 내려감
체중·혈압 기록
V1과 V2가 서로 다른 곳에 저장됨
체중·신장과 혈압은 구 버전(V1) API와 신 버전(V2) API가 저장 테이블부터 다름. 앱 버전에 따라 어느 쪽을 쓰는지 갈림.
“기록이 사라졌어요”의 1순위 원인임. 앱 업데이트 전후로 이력이 갈릴 수 있음. 문의가 오면 앱 버전을 먼저 물을 것. 다만 목표 체중만은 V1·V2가 같은 곳에 저장되므로 목표값은 그대로 보임.
입력 규칙
- V1 체중 등록은 신장과 체중이 둘 다 있어야 함. 하나만 보내면 저장되지 않음
- V1 혈압 등록은 최고혈압·최저혈압·맥박·복약여부 4개가 모두 있어야 함
- V2는 기록 번호를 함께 보내면 수정, 없으면 신규임
- V2 삭제는 등록한 본인만 가능함
화면 문구와 어긋나 보이는 것
- V2 혈압 목록의 “최고/최저”는 마지막 측정값이 아니라 전체 기록 중의 최댓값·최솟값임. 화면이 “최근 혈압”처럼 보여 주면 값이 안 맞아 보임
- V2 혈압 목록은 기록이 0건이면 오류 화면처럼 보일 수 있음(공통 응답 형식이 아닌 404가 나감). 장애가 아니라 기록이 없는 것임
- V2 체중 목록도 기록이 없거나 목표 체중이 없으면 오류로 떨어짐
- 혈압 수치는 문자로 저장돼 있어 숫자가 아닌 값이 들어가면 조회가 오류가 됨
비상연락처와 OTP 인증
무엇을 하는가
위급 시 연락할 번호를 등록함. 새 번호는 문자로 받은 6자리 인증번호를 통과해야만 저장됨.
- 번호를 입력하고 인증번호 발송을 요청함
- 문자로 6자리 인증번호가 옴 — 유효시간 3분(180초)
- 인증번호를 넣고 저장하면 등록됨
- 이미 등록된 번호는 인증 없이 통과함. 새로 추가되는 번호만 인증 대상임
- 여러 개를 한 번에 저장할 때 하나라도 인증에 실패하면 전부 저장되지 않음
- 한 번 쓴 인증번호는 재사용할 수 없음
발송·입력 제한
| 제한 | 값 |
|---|---|
| 재발송 대기 | 60초 |
| 같은 번호로 발송 | 10분에 5회, 하루 20회 |
| 같은 사용자가 발송 | 10분에 10회, 하루 30회 |
| 인증번호 입력 실패 | 5회면 잠김. 다시 발송받아야 함 |
운영 응대
| 입주민 말 | 원인 | 안내 |
|---|---|---|
| 인증번호가 안 와요 | 발송 한도 초과 또는 문자 발송 실패 | 60초 뒤 재시도, 그래도 안 오면 고객센터 접수 |
| 인증번호가 틀리대요 | 3분이 지났거나 오타 | 다시 발송받아 3분 안에 입력 |
| 자꾸 “잠시 후 다시” 라고 떠요 | 재발송 대기 60초 또는 하루 한도 | 시간을 두고 재시도 |
| 5번 틀렸더니 안 돼요 | 입력 실패 5회로 잠김 | 인증번호를 새로 발송받을 것 |
| 번호를 바꾸고 싶어요 | 수정 기능이 없음 | 기존 번호를 지우고 새로 등록. 이때 인증을 다시 받아야 함 |
- 화면에는 오류 문구만 뜨고 HTTP는 정상 응답임. 앱이 문구로 안내함
- 같은 번호를 두 번 등록할 수 없음(번호가 키의 일부임)
- Redis가 죽으면 인증번호 발송·검증이 전부 실패함
- 문자가 안 갔을 때 앱 서버가 사유를 남기지 않음. 원인은 문자 발송 서버 쪽에서 확인해야 함 → 공개노트/개발/모듈/SMS 발송
비상호출
앱에서 비상 버튼을 누르면 앱 서버가 관제(APW)로 이벤트를 올리기만 함. 앱 서버 DB에는 아무것도 저장하지 않음.
- 실제 알림·출동은 관제 쪽 로직임 → 공개노트/개발/모듈/APW 연계 서버
- 관제에는 전달됐는데 앱에는 실패로 보일 수 있음(응답을 못 받으면 오류 처리함). “눌렀는데 오류가 떴다”는 문의는 관제 쪽 접수 여부를 함께 확인할 것
- 이벤트 코드는
SF005고정임
방범 경보·비상호출 알림이 문자로 가는 경로는 기본매뉴얼/입주민/알림이 안 와요 참고.
LH안심서비스와 헬스체크
- 비상콜 사용 여부, LH안심 사용 여부, 확인 주기, 안내 문구(100자)를 설정함
- 빈칸으로 값을 지울 수 없음. 해제하려면
"N"같은 명시적인 값을 보내야 함. 빈 문자열은 무시됨 - 최종 수정 시각이 남지 않음. “언제 바뀌었냐”는 질문에 답할 수 있는 값이 없음
- 설정한 적이 없는 사용자는 조회 결과가 비어 있음(오류 아님)
- 헬스체크(앱이 살아 있음을 서버에 남기는 것)는 호출할 때마다 이력이 1행씩 쌓임. 정리 배치가 없어 계속 커짐
알려진 문제
| 증상 | 원인 | 조치 |
|---|---|---|
| 기록이 사라짐 | 앱 버전에 따라 V1·V2 저장 위치가 다름 | 앱 버전 확인 후 개발 담당자에게 전달 |
| V2 혈압의 최고/최저가 이상함 | 최근값이 아니라 전체 최댓값·최솟값임 | 의도된 계산이라 안내 |
| 혈압·체중 목록에서 오류 | 기록 0건 또는 목표 체중 없음 | 값을 하나 등록하면 풀림 |
| 복약 알림이 안 옴 | 발송 주체가 앱 서버가 아님 | 공개노트/개발/push 알림 절차를 따름 |
| 남의 복약 기록이 보임 | 복약 기록 조회·삭제에 소유자 검증이 없음 | 개발 담당자에게 전달. 공개노트/개발/모듈/MAW 앱 API 서버 “알려진 이슈” |
| 비상연락처 번호 변경 불가 | 수정 API 자체가 없음 | 삭제 후 재등록(인증 다시) |
관련
공개노트/개발/모듈/MAW 세대·헬스케어 API 공개노트/개발/모듈/MAW 앱 API 서버 공개노트/개발/push 알림 공개노트/개발/모듈/SMS 발송 공개노트/개발/모듈/SCW 스케줄러 서버 공개노트/개발/모듈/APW 연계 서버 공개노트/기능/로그인과 세대 승인 기본매뉴얼/입주민/알림이 안 와요