08

일자리 · 소득

기능설계 ⑧ — 일하는 즐거움과 작은 소득

항목내용
기능 IDFEAT-JOB
연결 시스템마스터 시스템⑧ 일자리(소득·자립) · ⑨ 지자체 연계
한 줄 정의적합한 일자리를 추천·매칭하고, 간단한 지원·교육을 도와 소득과 자존감을 만든다
관련 액터PWA실벗서버지자체·고용센터
설계 철학 — 어르신에게 일자리는 소득이자 존엄입니다. 복잡한 지원 절차는 아리가 대신 채워주고, 어르신은 "하겠다"만 누르면 됩니다.

설계 7계층 체크리스트

계층이 문서의 섹션
① UI일자리 목록 / 상세·지원 SCR-JOB-01·02
② Flow추천 → 지원 → 매칭 상태 머신
③ Datajob_listings / job_applications (재활용)
④ API추천·지원·지원현황 엔드포인트
⑤ Seq지원 → 지자체 연계 → 매칭 시퀀스
⑥ Comp일자리 매칭·지원 서비스 구조
⑦ Test검수 체크리스트

① UI · 화면 명세

일자리 목록 SCR-JOB-01

영역요소 / 동작
맞춤 추천"순자님께 맞는 일 🙂" 큰 카드(집 근처·체력 맞춤)
일자리 카드제목·근처거리·일당·시간, 큰 글씨
필터거리/요일/유형 큰 버튼 토글

상세·지원 SCR-JOB-02

영역요소 / 동작
일 정보하는 일·시간·급여·연락처, 지도
큰 지원 버튼"이 일 할래요 ✓" → 아리가 지원서 자동 작성
지원 확인"지원했어요. 연락 오면 알려드릴게요"

② Flow · 지원·매칭 상태 머신

추천 노출 지원(applied) 검토(reviewing) 매칭(matched) / 마감(closed)

지원 시 아리가 회원 프로필로 지원서를 자동 작성. 어르신은 복잡한 입력 없이 "할래요"만 누른다.

③ Data · DB 스키마

기존 p25의 job_listings·job_applications 재활용.

MariaDB · UTF8MB4 · InnoDB
CREATE TABLE job_listings ( id BIGINT PRIMARY KEY AUTO_INCREMENT, title VARCHAR(120), org VARCHAR(100), job_type VARCHAR(40), pay VARCHAR(60), -- '일 5만원' lat DECIMAL(10,7), lng DECIMAL(10,7), source VARCHAR(40), -- '지자체','내부' status ENUM('open','closed') DEFAULT 'open' ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE job_applications ( id BIGINT PRIMARY KEY AUTO_INCREMENT, user_id BIGINT NOT NULL, job_id BIGINT NOT NULL, status ENUM('applied','reviewing','matched','closed') DEFAULT 'applied', applied_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, UNIQUE KEY uq_app (user_id, job_id), -- 중복 지원 방지 FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE, FOREIGN KEY (job_id) REFERENCES job_listings(id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

④ API · 엔드포인트 명세

M경로설명
GET/jobs맞춤 일자리 목록(거리·조건 필터)
GET/jobs/{id}일자리 상세
POST/jobs/{id}/apply지원(자동 지원서 작성)
GET/jobs/applications내 지원 현황

⑤ Seq · 지원 → 매칭

PWA
"이 일 할래요 ✓" → POST /jobs/{id}/apply
실벗
프로필로 지원서 자동 작성 → job_applications(applied), 중복 차단
지자체/고용센터
(연계 시) 지원서 전달 → reviewing
실벗
매칭 결과 수신 → matched → 어르신에게 "합격 소식이 왔어요!" 알림

⑥ Comp · 컴포넌트 / 모듈 구조

프론트엔드 (PWA)

features/job/ ├─ JobList.js ├─ JobDetail.js └─ ApplicationStatus.js

백엔드 (PHP)

app/ ├─ Controllers/JobController.php └─ Services/ ├─ JobMatchService.php # 거리·조건 맞춤 추천 └─ ApplicationService.php # 자동 지원서·상태 관리
모듈책임
JobMatchService집 근처·체력·관심사로 적합 일자리 점수화 추천.
ApplicationService프로필 기반 지원서 자동 작성·중복 방지·상태 추적.

⑦ Test · 검수 체크리스트

ID시나리오기대 결과
T-01일자리 목록 조회거리·조건 맞춤 추천 상단 노출
T-02"이 일 할래요" 지원자동 지원서 작성, status=applied
T-03같은 일에 재지원 시도UNIQUE로 중복 지원 차단
T-04매칭 성사status=matched, "합격 소식" 알림
T-05마감된 일 지원 시도거절(마감 안내)
완료 판정 — T-01~T-05 통과 시 FEAT-JOB 완료. T-02(자동 지원서)·T-03(중복 차단)이 핵심.
기능설계 ⑧ 완성 — 일자리를 7계층으로 설계했습니다. 복잡한 절차는 아리가 대신하고 어르신은 "할래요"만 누릅니다.