BindProject

BIND PROJECT WEEKLY REPORT(7-1st)

dding-shark 2025. 7. 7. 10:29
728x90

이제 IOS 개발자 분이 오셔서 >< 페이지 로딩이나 서비스 플로우 회의를 진행하고, 다음주차 스프린트 계획까지 하고왔다.

BIND PROJECT WEEKLY REPORT

2025-07-1st (INTEGRAL/ SERVICE FLOW CONFERENCE REPORT )


1. [FE]/[BE] RESPONSE CODE 세팅

목적

  • 사전 협의된 에러가 아닌, 네트워크, 서버에서 미처 처리하지못하는 에러나 오탈자로 인한 휴먼 에러로 인한 에라 응답을
    나누기 위해 기본적인 리스폰스를 다음과 같이 설계했다.
  • 실패시(에러코드로 응답)
    {
    "success": false,
    "code": "AUTH-VAL-002",
    "message": "이메일 정책에 부합하지 않습니다.",
    "result": null
    }
  • 실패시(네트워크 에러등등)
    {
    "timestamp": "2025-07-07T00:44:04.320+00:00",
    "path": "/api/auth/v1/signup",
    "status": 400,
    "error": "Bad Request",
    "requestId": "5967cd5f"
    }
  • 성공시
    {
    "success": true,
    "code": "0",
    "message": "요청에 성공하였습니다.",
    "result": null
    } 

2. 프로젝트의 회원가입/ 로그인 프로세스

CASE1.

AUTH_CASE #1 서비스 계정으로 회원가입

  • 유저는 회원가입 페이지에서 정규식에 맞는 이메일, 비밀번호, 비밀번호 확인, 이용약관 동의 체크후에 서비스 회원가입(준회원)을 완료한다.
    • 정규식은 다음과 같다.
      • email : ^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$
      • password : ^(?=(?:._[A-Z]){1,})(?=(?:._[a-z]){1,})(?=(?:._\d){1,})(?=(?:._[\W_]){1,}).{10,}$
  • 정합성(유효성) 체크를 완료후에 이메일(아이디)로 발송된 코드 4자리를 입력칸에 입력후에 (정회원)으로 전환을 완료한다.
    • 코드가 발송되지않거나, 재발송을 원하면, 3분 후에 다시 발송요청을 할 수 있다.

AUTH_CASE #2 소셜 로그인 계정으로 회원가입

  • 유저는 최초 페이지에서 제공된 소셜(카카오,구글등) 로그인을 선택후 로그인 페이지에서 로그인을 완료하낟.
  • 소셜로그인으로 최초 가입한 유저는 이메일 인증을 수행하지않고 정회원으로 전환된다.

LOGIN_CASE #1 서비스 계정으로 로그인

  • 유저는 가입한 아이디와 비밀번호를 로그엔 페이지에 입력하여 로그인요청을 수행한다.
    • 이메일인증이 되지않은(준회원)일 경우, 이메일 확인 페이지로 리 다이렉션후에 이메일 인증을 수행한다.
    • 이메일 인증이 왼료된(정회원) && 서비스 이용에 제약이 걸리지 않은(탈퇴예정, 정지중)유저이면 로그인이완료된다.

LOGIN_CASE #2 소셜 로그인

  • 유저는 제공된 소셜 로그인 버튼을 눌러 해당 페이지에서 로그인을 완료한다.
  • 서비스 이용에 자약이 걸리지 않은 유저아면 로그인이 완료된다.


BACKEND 응답 정리 : 회원가입시


{  
"success": true,  
"code": "0",  
"message": "요청에 성공하였습니다.",  
"result": null  
}

{  
"success": false,  
"code": "AUTH-VAL-002",  
"message": "이메일 정책에 부합하지 않습니다.",  
"result": null  
}

{  
"success": false,  
"code": "AUTH-VAL-001",  
"message": "비밀번호가 정책에 부합하지 않습니다.",  
"result": null  
}

{  
"success": false,  
"code": "AUTH-VAL-004",  
"message": "비밀번호와 비밀번호 확인이 다릅니다.",  
"result": null  
}

BACKEND 응답 정리 : 로그인시

#### BACKEND 응답 정리 : 회원가입시
```json 
{
    "success": true,
    "code": "0",
    "message": "요청에 성공하였습니다.",
    "result": null
}
```

```json 
{
    "success": false,
    "code": "AUTH-VAL-002",
    "message": "이메일 정책에 부합하지 않습니다.",
    "result": null
}
```

```json 
{
    "success": false,
    "code": "AUTH-VAL-001",
    "message": "비밀번호가 정책에 부합하지 않습니다.",
    "result": null
}
```

```json 
{
    "success": false,
    "code": "AUTH-VAL-004",
    "message": "비밀번호와 비밀번호 확인이 다릅니다.",
    "result": null
}
```

#### BACKEND 응답 정리 : 로그인시

```json
{
    "success": false,
    "code": "AUTH-VAL-010",
    "message": "삭제 대기중인 유저 입니다.",
    "result": null
}
```


```json
{
    "success": true,
    "code": "0",
    "message": "요청에 성공하였습니다.",
    "result": {
        "access_token": "eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIyMDAxNjEzOTc0NDM4NTAyNDAiLCJyb2xlIjoiVXNlciIsImlhdCI6MTc1MTg1MTkzOCwiZXhwIjoxNzUxODU1NTM4LCJqdGkiOiJkYWY1Y2U5MC1iYWViLTQ5YTgtOTFjYS0zNmQxNjhiNzhhY2UifQ.xsDyjpBmmoewpA8TrYeGH7WDPb19mbtnUrK_k0AWzYY",
        "refresh_token": "eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIyMDAxNjEzOTc0NDM4NTAyNDAiLCJkZXZpY2VJZCI6Ijg3MjkiLCJpYXQiOjE3NTE4NTE5MzgsImV4cCI6MTc1MzA2MTUzOCwianRpIjoiYzNlZmI5N2MtMzY0NS00OTlhLTkzMTktMzc2OWMyMDVkNjQxIn0.WUjTGKVOB_I3D86_4Un3HYYdugMYaAjQqpv0X73cnQw",
        "deviceId": "8729"
    }
}
```


```json
{
    "success": false,
    "code": "AUTH-VAL-009",
    "message": "활동이 정지된 유저입니다.",
    "result": null
}
```


```json
{
    "success": false,
    "code": "AUTH-VAL-008",
    "message": "이메일 인증이 되지 않은 유저입니다.",
    "result": null
}
```
728x90