# 원티드 프리온보딩 백엔드 인턴십 7th : 231027 TIL

- Author: @laetipark
- Published: 2023-10-28
- Updated: 2023-12-31
- Source: http://blex.me/@laetipark/%EC%9B%90%ED%8B%B0%EB%93%9C-%ED%94%84%EB%A6%AC%EC%98%A8%EB%B3%B4%EB%94%A9-%EB%B0%B1%EC%97%94%EB%93%9C-%EC%9D%B8%ED%84%B4%EC%8B%AD-7th-231027-til
- Tags: 백엔드, til, nodejs, nestjs, 원티드, github, 프리온보딩

---

### 1️⃣ 할당된 업무에 대한 진행상황.
`In Progress` : 사용자 회원가입 API 코드 작성 완료  
`Not Started` : 테스트 코드 작성 및 PR 업로드 예정

### 2️⃣ 진행한 작업에 대한 리뷰 및 커밋한 내용 리뷰
- 🙅‍♂️ 아직 PR이 없어 테스트 코드 작성하고, 다음 날 중 PR 진행 예정

### 3️⃣ Today I Learned
- 회원 가입 `Request`에 대한 유효성 확인하는 코드를 작성하면서 `class-validator` 의 `IsEmail`, `IsStrongPassword`와 같은 데코레이터나 정규식을 활용하면서, 요구사항에 맞게 진행할 수 있을지 생각해보았습니다.

- `class-validator`에 `IsStrongPassword` 데코레이터를 지원하지만, 과제 요구사항 중 `숫자, 문자, 특수문자 중 2가지 이상을 포함해야 합니다.`라는 요구사항을 충족시키는 것은 어려울 거 같아서, 따로 코드로 작성해보았습니다.

```
const characterTypes = [
  /[a-zA-Z]/.test(password),
  /\d/.test(password),
  /[!@#$%^&*]/.test(password),
].filter(Boolean).length; // 문자, 숫자, 특수문자 요소 개수로 구현
```

```typescript
/([!@#$%^&*()+\-=\[\]{}|;:'",.<>/?\w])\1\1/.test(password) // 3회 이상 연속되는 문자 또는 특수문자 사용을 확인할 수 있다.
```

### 📁 수행 기업 과제 Repository
- [[ FeedMoa ] 소셜 미디어 통합 Feed 서비스 RESTful API 서버, laetipark, github](https://github.com/laetipark/feed-moa)
