Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. Weโ€™ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

๐Ÿ”feat: ๊ฐœ๋ฐœ์šฉ ์ž„์‹œ๋กœ ์•ก์„ธ์Šค,๋ฆฌํ”„๋ ˆ์‹œ ํ† ํฐ๋“ค ๋งŒ๋ฃŒ๊ธฐํ•œ ์ผ์ฃผ์ผ๋กœ ์„ค์ • #142

Merged
merged 1 commit into from
Nov 30, 2023

Conversation

pminsung12
Copy link
Collaborator

์™„๋ฃŒํ•œ ๊ธฐ๋Šฅ ํ˜น์€ ์ˆ˜์ • ๊ธฐ๋Šฅ

closes #141

๊ณ ๋ฏผ๊ณผ ํ•ด๊ฒฐ ๊ณผ์ •

  • ๊ฐœ๋ฐœํ•  ๋–„ ํ† ํฐ์ด ๋„ˆ๋ฌด ๋นจ๋ฆฌ ๋งŒ๋ฃŒํ•ด์„œ ํ…Œ์ŠคํŠธํ•  ๋–„๋งˆ๋‹ค ๋กœ๊ทธ์ธํ•ด์•ผํ•˜๋Š” ๊ท€์ฐฎ์Œ์ด ์žˆ๋‹ค.
  • ์ด์ œ ์•ฑ์ด๋ž‘ ์—ฐ๊ฒฐํ•˜๋Š”๋ฐ ์•ฑ์—์„œ ๋กœ๊ทธ์ธ์„ ๊ณ„์† ํ•ด์•ผํ•˜๋‹ˆ ๋ฒˆ๊ฑฐ๋กœ์›€์ด ์žˆ๋‹ค.

์Šคํฌ๋ฆฐ์ƒท

image

ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ(์ปค๋ฒ„๋ฆฌ์ง€/ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ)

  • N/A

@pminsung12 pminsung12 added enhancement ๊ฐœ์„  ๋˜๋Š” ํ”ผ๋“œ๋ฐฑ ๋ฐ˜์˜ server ์„œ๋ฒ„ ์ชฝ ์ด์Šˆ labels Nov 30, 2023
@pminsung12 pminsung12 self-assigned this Nov 30, 2023
@pminsung12 pminsung12 added this to the 0.4.0 milestone Nov 30, 2023
@yangdongsuk
Copy link
Collaborator

์ˆ˜๊ณ ํ•˜์…จ์Šต๋‹ˆ๋‹ค.

@yangdongsuk yangdongsuk merged commit 283e6fa into server/develop Nov 30, 2023
@yangdongsuk yangdongsuk deleted the server/feature/#141 branch November 30, 2023 01:56
yangdongsuk added a commit that referenced this pull request Nov 30, 2023
* [Server] ๊ฐœ๋ฐœํ™˜๊ฒฝ ์„ธํŒ… (#4)

* build: open-list-server init

* chore: @nestjs/config class-validator class-transformer ์„ค์น˜

* chore: ๋ฃจํŠธ ๋ ˆ๋ฒจ์—์„œ ์„ค์น˜ํ•œ ํŒจํ‚ค์ง€ ์‚ญ์ œ

* chore: NestJs ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์„ธํŒ…

* chore: @nestjs/config class-validator class-transformer ์„ค์น˜

* Server/feature/#13 (#25)

* chore: postgresql, nestjs docker ์„ธํŒ…

* chore: @nestjs/typeorm, typeorm, pg ์„ค์น˜

* chore: Typeorm ์„ธํŒ… ๋ฐ TestModel ํ…Œ์ด๋ธ” ์ƒ์„ฑ

* ํ…Œ์ŠคํŠธ์šฉ ์œ ์ € API ๊ตฌํ˜„ (#30)

* chore: common resource ์ถ”๊ฐ€

* chore: users resource ์ถ”๊ฐ€

* feature: base entity ๊ตฌํ˜„

* feature: usersEntity ๊ตฌํ˜„

* feature: ๋ชจ๋“ˆ์— usersModel ์ถ”๊ฐ€

* style: entity,dto์˜ users -> user๋กœ ๋ณ€๊ฒฝ

* feature: CreateUserDto ๊ตฌํ˜„

* feature: userEntity ์ด๋ฉ”์ผ ํ•„๋“œ ์ถ”๊ฐ€

* feature: createUserDto ์ด๋ฉ”์ผ ํ•„๋“œ ์ถ”๊ฐ€

* feature: user patch->put์œผ๋กœ ๋ณ€๊ฒฝ

* feature: updateUserDto ๊ตฌํ˜„

* feature : create user ๊ตฌํ˜„

* feature: ๋ชจ๋“  ์œ ์ €์˜ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” API ๊ตฌํ˜„

* feature: ํŠน์ • ์œ ์ €์˜ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” API ๊ตฌํ˜„

* feature: user ์ •๋ณด ์ˆ˜์ • API ๊ตฌํ˜„

* feature: user ์‚ญ์ œ API ๊ตฌํ˜„

* feature: ValidationPipe ์ ์šฉ

* refactor: usersService ๋ฆฌํŒฉํ† ๋ง

* [Server] ์œ ๋‹› ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ ์„ธํŒ… (#32)

* chore: test ๊ฒฝ๋กœ ์„ค์ •

* feature: TestCommonModule ๊ตฌํ˜„

* feature: users.service.spec.ts ์˜์กด์„ฑ ์ฃผ์ž…

* feature: users.controller.spec.ts ์˜์กด์„ฑ ์ฃผ์ž…

* [Server] Users resource ์ด๋ฆ„ ๋ณ€๊ฒฝ (#34)

* style: usersController ๋„ค์ด๋ฐ์— ์ปจ๋ฒค์…˜ ๋งž๊ฒŒ ๋ณ€๊ฒฝ

* style: usersService ์ปจ๋ฒค์…˜์— ๋”ฐ๋ฅธ ๋„ค์ด๋ฐ ๋ณ€๊ฒฝ

* style: UsersModel -> UserModel ์ปจ๋ฒค์…˜์— ๋”ฐ๋ฅธ ๋„ค์ด๋ฐ ๋ณ€๊ฒฝ

* feature: usersService ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ (#39)

* [Server] Folder entity ์ƒ์„ฑ ๋ฐ crud ๊ตฌํ˜„ (#42)

* feat: folders crud ๊ตฌํ˜„

* chore: TestModel ์‚ญ์ œ ๋ฐ ๊ด€๋ จ๋œ ์ข…์†์„ฑ ์ œ๊ฑฐ

* feat: folders.controller.spec.ts ์‚ญ์ œ, folders.service.spec.ts ๊ตฌํ˜„

* feature: dockerํŒŒ์ผ ์ˆ˜์ • (#57)

* feat: private checklist entity ์ƒ์„ฑ ๋ฐ crud ๊ตฌํ˜„ (#61)

* chore: ๊ฐœ๋ฐœ์šฉ postgres ํฌํŠธ๋ณ€๊ฒฝ 5432->5433, .env๋„ port 5433์œผ๋กœ ๋ณ€๊ฒฝํ•„์š”

* feat: checklists res ์ƒ์„ฑ

* feat: checklist, private-checklist, shared-checklisst ์—”ํ‹ฐํ‹ฐ ์ƒ์„ฑ, user๋ชจ๋ธ๊ณผ folder๋ชจ๋ธ๊ณผ์˜ ์˜์กด๊ด€๊ณ„ ์ฃผ์ž…

* feat: author->editor๋กœ ์ˆ˜์ •, ๊ณต์œ ์ฒดํฌ๋ฆฌ์ŠคํŠธ์™€ ์‚ฌ์šฉ์ž์˜ relation์„ many to many๋กœ ์—…๋ฐ์ดํŠธ

* feat: ๊ฐœ์ธ, ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ์— ๋Œ€ํ•ด ์ƒ์„ฑ๊ณผ ์—…๋ฐ์ดํŠธ ์‹œ dto ์ƒ์„ฑ

* fix: class ์ด๋ฆ„ ์˜คํƒ€ ์ˆ˜์ •

* refactor: rest api ๋ฐฉ์‹์— ๋”ฐ๋ผ ํ•จ์ˆ˜๋ช… ๋ณ€๊ฒฝ

* feat: CheckListModel์—์„œ ์ง„ํ–‰๋ฅ  ์ปฌ๋Ÿผ ์‚ญ์ œ

* feat: folder์™€ user๊ฐ„์˜ manyToOne relation์ ์šฉ

* feat: private-checklist crud ์ž‘์„ฑ

* feat: folder service ์ปค๋ฒ„๋ฆฌ์ง€ 100 ๋‹ฌ์„ฑ

* test: private-checklist test code ์ž‘์„ฑ, ์ปค๋ฒ„๋ฆฌ์ง€ 92ํผ์„ผํŠธ

* feat: checklist ํด๋” ๋ถ„๋ฆฌ & dto ๋นˆ๋ฌธ์ž์—ด ๊ฒ€์ฆ ์ถ”๊ฐ€ (#66)

* refactor: checklists๋ฅผ private, sharedํด๋”๋กœ ๋ถ„๋ฆฌ.

* refactor: private-checklists๋ฅผ folders ํ•˜์œ„๋กœ ์ด๋™

* fix: ๋นˆ๋ฌธ์ž์—ด ๊ฒ€์ฆ ์ถ”๊ฐ€

* [Server] Winston์œผ๋กœ ๋กœ๊ทธ ๊ด€๋ฆฌ (#70)

* chore: nest-winston winston winston-daily-rotate-file ์„ค์น˜

* feat: winston logger ์„ค์ • ํŒŒ์ผ ๊ตฌํ˜„

* feat: winston logger middleware ๊ตฌํ˜„

* feat: ์š”์ฒญ logger middleware ๊ตฌํ˜„

* feat: ๋กœ๊ทธ์— ์š”์ฒญ ์ฒ˜๋ฆฌ ์‹œ๊ฐ„ ์ถ”๊ฐ€๋˜๋„๋ก ๊ฐœ์„ 

* chore: PR ํ…œํ”Œ๋ฆฟ ์ˆ˜์ •

* chore: PR ํ…œํ”Œ๋ฆฟ ์ˆ˜์ •

* feat: jwt access, refresh token ๊ธฐ๋ฐ˜ ์ธ๊ฐ€ ๊ตฌํ˜„

* chore: auth resource ์ถ”๊ฐ€

* chore: jwt ๋ชจ๋“ˆ ์ถ”๊ฐ€

* feature: signToken ๊ตฌํ˜„

* feature: ํ† ํฐ ๊ฒ€์ฆ, ํ† ํฐ ์žฌ๋ฐœ๊ธ‰ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* feature: ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* feature: ๋กœ๊ทธ์ธ ๊ด€๋ จ ์„œ๋น„์Šค ๊ตฌํ˜„

* feature: login ์ปจํŠธ๋กค๋Ÿฌ ๊ตฌํ˜„

* style: loginDto -> loginUserDto๋กœ ๋ณ€๊ฒฝ

* feature: access ํ† ํฐ ์žฌ๋ฐœ๊ธ‰ ์ปจํŠธ๋กค๋Ÿฌ ๊ตฌํ˜„

* refactor: accessํ† ํฐ ์žฌ๋ฐœ๊ธ‰ ํ˜•์‹ ๋ณ€๊ฒฝ

* feature: ์œ ์ € register ๊ธฐ๋Šฅ ๊ตฌํ˜„

* feature: auth.service.ts ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ

* fix: ์ด๋ฉ”์ผ ์ค‘๋ณต์‹œ ์—๋Ÿฌ ๋ฉ”์‹œ์ง€ ์ˆ˜์ •

---------

Co-authored-by: Minseong Park <52368015+pminsung12@users.noreply.github.com>

* [Server] shared-checklist ์†Œ์ผ“ ๊ตฌํ˜„ (#78)

* [Server] apple oauth api ๊ตฌํ˜„ (#86)

* chore: @nestjs/axios ์„ค์น˜

* chore: axios ์„ค์น˜

* chore: axios ์„ค์น˜

* feat: dto์ˆ˜์ •, userId ์ปฌ๋Ÿผ์ถ”๊ฐ€, providerId ์ˆ˜์ •, fullName ์ปฌ๋Ÿผ ์ถ”๊ฐ€

* feat: entity์— ๋”ฐ๋ผ dto ํ•ญ๋ชฉ ์ˆ˜์ •

* feat: apple oauth ๋กœ๊ทธ์ธ ์„œ๋น„์Šค ํ•จ์ˆ˜ ์ถ”๊ฐ€

client secret ๋งŒ๋“ค๊ณ , axios post๋กœ user ์ •๋ณด ๊ฐ€์ง€๊ณ ์˜ด.

* feat: apple oauth ๋กœ๊ทธ์ธ ์—”๋“œํฌ์ธํŠธ ์ถ”๊ฐ€

* feat: apple ์œ ์ €์—๋Œ€ํ•ด create, update ํ•จ์ˆ˜ ๊ตฌํ˜„

* feat: publicKey ๋ฐœ๊ธ‰๋ฐ›๋Š” ๋กœ์ง์ถ”๊ฐ€

* [Server] access ํ† ํฐ ์žฌ๋ฐœ๊ธ‰์‹œ ์œ ์ € ์ •๋ณด ์—†๋Š” ๋ฒ„๊ทธ ์ˆ˜์ • (#83)

* [Server] privateChecklist์˜ ๋‚ด์šฉ ์ €์žฅ api ๊ตฌํ˜„ (#88)

* [Server] apple oauth ๋กœ๊ทธ์ธ ๋กœ์ง ์ˆ˜์ • (#118)

* feat: env ์‚ฌ์šฉ๋ฐฉ์‹ ๋ณ€๊ฒฝ + idToken ๊ฒ€์ฆ๋กœ์ง ์ถ”๊ฐ€

* chore: jwk๋ฅผ pem์œผ๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ ์œ„ํ•œ jose ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ค์น˜

* chore: jose ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ œ๊ฑฐ @panva/jose ์„ค์น˜

* feat: request body๋กœ ๋“ค์–ด์˜ค๋Š” auth-user.dto.ts ์ˆ˜์ •

* feat: ์• ํ”Œ ์œ ์ € ๋“ฑ๋ก ๋กœ์ง ์ˆ˜์ •

* docs: jsdoc return type ์ˆ˜์ •

* feat: apple login ๋กœ์ง ์ˆ˜์ •(appleToken, clientSecret ๋กœ์ง ์‚ญ์ œ)

* feat: refreshAccessToken ํ•จ์ˆ˜์—์„œ refreshToken๋„ ํ•จ๊ป˜ ๋ฐ˜ํ™˜ํ•ด์ฃผ๋„๋ก ๋กœ์ง ์ˆ˜์ •

* [Server] Clova Studio api  ๊ตฌํ˜„ (#126)

* feat:  checklist-ai ๋ฆฌ์†Œ์Šค ์ƒ์„ฑ

* feat: create-checklist-items.dto.ts ์š”์ฒญ dto ์ƒ์„ฑ

* feat: ๋ฌธ์ž์—ด ๋ฐ ๊ฐ์ข… ์˜ต์…˜ ์ƒ์ˆ˜ํ™”

* feat: user-role const ํŒŒ์ผ ์‚ญ์ œ => ํ•จ์ˆ˜ํ™”

* feat: /checklist-ai POST ์š”์ฒญ api ์ƒ์„ฑ

๋Œ€,์ค‘,์†Œ ์นดํ…Œ๊ณ ๋ฆฌ๋ฅผ body๋กœ ๋ฐ›์•„์˜ค๋ฉด clova studio์—์„œ ์ฒดํฌ๋ฆฌ์ŠคํŠธ ํ•ญ๋ชฉ 10๊ฐœ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

* feat: AccessTokenGuard ๊ตฌํ˜„ ๋ฐ ์ ์šฉ (#129)

* feat: access token guard ๊ตฌํ˜„

* feat: access token guard ์ „์—ญ ์ ์šฉ

* style: access-token.guard.ts ์ฃผ์„ ์ถ”๊ฐ€

* feat: userId decorator ๊ตฌํ˜„

* feat: folders controller์— userId ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* feat: ํด๋” ์„œ๋น„์Šค์— user ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* feat: ๊ฐœ์ธ ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์ปจํŠธ๋กค๋Ÿฌ์— ์œ ์ € ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* feat: private-checklists service์— user ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* fix: ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ˆ˜์ •

* Server/feature/#128 (#139)

* feat: json ๊ตฌ์กฐ๋กœ ์นดํ…Œ๊ณ ๋ฆฌ ๋ฐ์ดํ„ฐ ์ •์˜

* feat: categories ์˜์กด์„ฑ ์ฃผ์ž…

* feat: endpoint๋งŒ๋“ค๊ณ , ์‹ค์ œ ์กด์žฌํ•˜๋Š” id์ธ์ง€ ๊ฒ€์ฆํ•˜๋Š” dto ์ƒ์„ฑ

* fix: ์˜คํƒ€์ˆ˜์ • forder->folder

* feat: param์— dto ์ ์šฉํ•˜์ง€ ๋ชปํ•ด ์‚ญ์ œ

* feat: ์นดํ…Œ๊ณ ๋ฆฌ json ๋ฐ์ดํ„ฐ ๋ณ€์ˆ˜๋ช… ๋ณ€๊ฒฝ, ๋Œ€๋ฌธ์ž๋กœ

* feat: ๋Œ€,์ค‘,์†Œ ์นดํ…Œ๊ณ ๋ฆฌ ๋ฐ˜ํ™˜ api ๊ตฌํ˜„

* test: categories.service.spec.ts ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ

* test: categories.service.spec.ts ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ˆ˜์ • ์ปค๋ฒ„๋ฆฌ์ง€ 100

* feat: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ API ๋ฐ ์†Œ์ผ“ ์ž‘์—… ๊ตฌํ˜„ (#140)

* feat: shared checklist item entity ๊ตฌํ˜„

* style: SharedChecklistItemModel ์˜คํƒ€ ์ˆ˜์ •

* feat: shared checklist id uuid๋กœ ๋ณ€๊ฒฝ

* feat: create shared checklist ๋””ํ‹ฐ์˜ค ์ˆ˜์ •

* feat: shared-checklists ์ƒ์„ฑ ๊ตฌํ˜„

* refactor: shared-checklists ์ €์žฅํ•˜๋Š” ํ•จ์ˆ˜ ๋ถ„๋ฆฌ

* feat: shared-checklists 1๊ฐœ, ์ „๋ถ€ ๊ฐ€์ ธ์˜ค๋Š” ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: ์œ ์ € ์ดˆ๋Œ€ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์‚ญ์ œ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* style: shared-checklists service ์ฃผ์„ ์ถ”๊ฐ€

* feature: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์†Œ์ผ“์— ๋ฐ์ดํ„ฐ ๋ˆ„์  ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: shared-checklists ์†Œ์ผ“ ํ†ต์‹  ์‹œ ๋ฐ์ดํ„ฐ ๋ฐ๋ฒ ์— ์ €์žฅ ๊ตฌํ˜„

* feat: ์†Œ์ผ“ ์—ฐ๊ฒฐ์‹œ ๋ฐฉ์˜ ๋ฐ์ดํ„ฐ ํžˆ์Šคํ† ๋ฆฌ๋ฅผ ์ „์†กํ•˜๋Š” ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* style: ์†Œ์ผ“ ์ฃผ์„ ์ถ”๊ฐ€

* ๐Ÿ”feat: ๊ฐœ๋ฐœ์šฉ ์ž„์‹œ๋กœ ์•ก์„ธ์Šค,๋ฆฌํ”„๋ ˆ์‹œ ํ† ํฐ๋“ค ๋งŒ๋ฃŒ๊ธฐํ•œ ์ผ์ฃผ์ผ๋กœ ์„ค์ • (#142)

---------

Co-authored-by: Minseong Park <52368015+pminsung12@users.noreply.github.com>
yangdongsuk added a commit that referenced this pull request Dec 4, 2023
* [Server] ๊ฐœ๋ฐœํ™˜๊ฒฝ ์„ธํŒ… (#4)

* build: open-list-server init

* chore: @nestjs/config class-validator class-transformer ์„ค์น˜

* chore: ๋ฃจํŠธ ๋ ˆ๋ฒจ์—์„œ ์„ค์น˜ํ•œ ํŒจํ‚ค์ง€ ์‚ญ์ œ

* chore: NestJs ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์„ธํŒ…

* chore: @nestjs/config class-validator class-transformer ์„ค์น˜

* Server/feature/#13 (#25)

* chore: postgresql, nestjs docker ์„ธํŒ…

* chore: @nestjs/typeorm, typeorm, pg ์„ค์น˜

* chore: Typeorm ์„ธํŒ… ๋ฐ TestModel ํ…Œ์ด๋ธ” ์ƒ์„ฑ

* ํ…Œ์ŠคํŠธ์šฉ ์œ ์ € API ๊ตฌํ˜„ (#30)

* chore: common resource ์ถ”๊ฐ€

* chore: users resource ์ถ”๊ฐ€

* feature: base entity ๊ตฌํ˜„

* feature: usersEntity ๊ตฌํ˜„

* feature: ๋ชจ๋“ˆ์— usersModel ์ถ”๊ฐ€

* style: entity,dto์˜ users -> user๋กœ ๋ณ€๊ฒฝ

* feature: CreateUserDto ๊ตฌํ˜„

* feature: userEntity ์ด๋ฉ”์ผ ํ•„๋“œ ์ถ”๊ฐ€

* feature: createUserDto ์ด๋ฉ”์ผ ํ•„๋“œ ์ถ”๊ฐ€

* feature: user patch->put์œผ๋กœ ๋ณ€๊ฒฝ

* feature: updateUserDto ๊ตฌํ˜„

* feature : create user ๊ตฌํ˜„

* feature: ๋ชจ๋“  ์œ ์ €์˜ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” API ๊ตฌํ˜„

* feature: ํŠน์ • ์œ ์ €์˜ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” API ๊ตฌํ˜„

* feature: user ์ •๋ณด ์ˆ˜์ • API ๊ตฌํ˜„

* feature: user ์‚ญ์ œ API ๊ตฌํ˜„

* feature: ValidationPipe ์ ์šฉ

* refactor: usersService ๋ฆฌํŒฉํ† ๋ง

* [Server] ์œ ๋‹› ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ ์„ธํŒ… (#32)

* chore: test ๊ฒฝ๋กœ ์„ค์ •

* feature: TestCommonModule ๊ตฌํ˜„

* feature: users.service.spec.ts ์˜์กด์„ฑ ์ฃผ์ž…

* feature: users.controller.spec.ts ์˜์กด์„ฑ ์ฃผ์ž…

* [Server] Users resource ์ด๋ฆ„ ๋ณ€๊ฒฝ (#34)

* style: usersController ๋„ค์ด๋ฐ์— ์ปจ๋ฒค์…˜ ๋งž๊ฒŒ ๋ณ€๊ฒฝ

* style: usersService ์ปจ๋ฒค์…˜์— ๋”ฐ๋ฅธ ๋„ค์ด๋ฐ ๋ณ€๊ฒฝ

* style: UsersModel -> UserModel ์ปจ๋ฒค์…˜์— ๋”ฐ๋ฅธ ๋„ค์ด๋ฐ ๋ณ€๊ฒฝ

* feature: usersService ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ (#39)

* [Server] Folder entity ์ƒ์„ฑ ๋ฐ crud ๊ตฌํ˜„ (#42)

* feat: folders crud ๊ตฌํ˜„

* chore: TestModel ์‚ญ์ œ ๋ฐ ๊ด€๋ จ๋œ ์ข…์†์„ฑ ์ œ๊ฑฐ

* feat: folders.controller.spec.ts ์‚ญ์ œ, folders.service.spec.ts ๊ตฌํ˜„

* feature: dockerํŒŒ์ผ ์ˆ˜์ • (#57)

* feat: private checklist entity ์ƒ์„ฑ ๋ฐ crud ๊ตฌํ˜„ (#61)

* chore: ๊ฐœ๋ฐœ์šฉ postgres ํฌํŠธ๋ณ€๊ฒฝ 5432->5433, .env๋„ port 5433์œผ๋กœ ๋ณ€๊ฒฝํ•„์š”

* feat: checklists res ์ƒ์„ฑ

* feat: checklist, private-checklist, shared-checklisst ์—”ํ‹ฐํ‹ฐ ์ƒ์„ฑ, user๋ชจ๋ธ๊ณผ folder๋ชจ๋ธ๊ณผ์˜ ์˜์กด๊ด€๊ณ„ ์ฃผ์ž…

* feat: author->editor๋กœ ์ˆ˜์ •, ๊ณต์œ ์ฒดํฌ๋ฆฌ์ŠคํŠธ์™€ ์‚ฌ์šฉ์ž์˜ relation์„ many to many๋กœ ์—…๋ฐ์ดํŠธ

* feat: ๊ฐœ์ธ, ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ์— ๋Œ€ํ•ด ์ƒ์„ฑ๊ณผ ์—…๋ฐ์ดํŠธ ์‹œ dto ์ƒ์„ฑ

* fix: class ์ด๋ฆ„ ์˜คํƒ€ ์ˆ˜์ •

* refactor: rest api ๋ฐฉ์‹์— ๋”ฐ๋ผ ํ•จ์ˆ˜๋ช… ๋ณ€๊ฒฝ

* feat: CheckListModel์—์„œ ์ง„ํ–‰๋ฅ  ์ปฌ๋Ÿผ ์‚ญ์ œ

* feat: folder์™€ user๊ฐ„์˜ manyToOne relation์ ์šฉ

* feat: private-checklist crud ์ž‘์„ฑ

* feat: folder service ์ปค๋ฒ„๋ฆฌ์ง€ 100 ๋‹ฌ์„ฑ

* test: private-checklist test code ์ž‘์„ฑ, ์ปค๋ฒ„๋ฆฌ์ง€ 92ํผ์„ผํŠธ

* feat: checklist ํด๋” ๋ถ„๋ฆฌ & dto ๋นˆ๋ฌธ์ž์—ด ๊ฒ€์ฆ ์ถ”๊ฐ€ (#66)

* refactor: checklists๋ฅผ private, sharedํด๋”๋กœ ๋ถ„๋ฆฌ.

* refactor: private-checklists๋ฅผ folders ํ•˜์œ„๋กœ ์ด๋™

* fix: ๋นˆ๋ฌธ์ž์—ด ๊ฒ€์ฆ ์ถ”๊ฐ€

* [Server] Winston์œผ๋กœ ๋กœ๊ทธ ๊ด€๋ฆฌ (#70)

* chore: nest-winston winston winston-daily-rotate-file ์„ค์น˜

* feat: winston logger ์„ค์ • ํŒŒ์ผ ๊ตฌํ˜„

* feat: winston logger middleware ๊ตฌํ˜„

* feat: ์š”์ฒญ logger middleware ๊ตฌํ˜„

* feat: ๋กœ๊ทธ์— ์š”์ฒญ ์ฒ˜๋ฆฌ ์‹œ๊ฐ„ ์ถ”๊ฐ€๋˜๋„๋ก ๊ฐœ์„ 

* chore: PR ํ…œํ”Œ๋ฆฟ ์ˆ˜์ •

* chore: PR ํ…œํ”Œ๋ฆฟ ์ˆ˜์ •

* feat: jwt access, refresh token ๊ธฐ๋ฐ˜ ์ธ๊ฐ€ ๊ตฌํ˜„

* chore: auth resource ์ถ”๊ฐ€

* chore: jwt ๋ชจ๋“ˆ ์ถ”๊ฐ€

* feature: signToken ๊ตฌํ˜„

* feature: ํ† ํฐ ๊ฒ€์ฆ, ํ† ํฐ ์žฌ๋ฐœ๊ธ‰ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* feature: ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* feature: ๋กœ๊ทธ์ธ ๊ด€๋ จ ์„œ๋น„์Šค ๊ตฌํ˜„

* feature: login ์ปจํŠธ๋กค๋Ÿฌ ๊ตฌํ˜„

* style: loginDto -> loginUserDto๋กœ ๋ณ€๊ฒฝ

* feature: access ํ† ํฐ ์žฌ๋ฐœ๊ธ‰ ์ปจํŠธ๋กค๋Ÿฌ ๊ตฌํ˜„

* refactor: accessํ† ํฐ ์žฌ๋ฐœ๊ธ‰ ํ˜•์‹ ๋ณ€๊ฒฝ

* feature: ์œ ์ € register ๊ธฐ๋Šฅ ๊ตฌํ˜„

* feature: auth.service.ts ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ

* fix: ์ด๋ฉ”์ผ ์ค‘๋ณต์‹œ ์—๋Ÿฌ ๋ฉ”์‹œ์ง€ ์ˆ˜์ •

---------

Co-authored-by: Minseong Park <52368015+pminsung12@users.noreply.github.com>

* [Server] shared-checklist ์†Œ์ผ“ ๊ตฌํ˜„ (#78)

* [Server] apple oauth api ๊ตฌํ˜„ (#86)

* chore: @nestjs/axios ์„ค์น˜

* chore: axios ์„ค์น˜

* chore: axios ์„ค์น˜

* feat: dto์ˆ˜์ •, userId ์ปฌ๋Ÿผ์ถ”๊ฐ€, providerId ์ˆ˜์ •, fullName ์ปฌ๋Ÿผ ์ถ”๊ฐ€

* feat: entity์— ๋”ฐ๋ผ dto ํ•ญ๋ชฉ ์ˆ˜์ •

* feat: apple oauth ๋กœ๊ทธ์ธ ์„œ๋น„์Šค ํ•จ์ˆ˜ ์ถ”๊ฐ€

client secret ๋งŒ๋“ค๊ณ , axios post๋กœ user ์ •๋ณด ๊ฐ€์ง€๊ณ ์˜ด.

* feat: apple oauth ๋กœ๊ทธ์ธ ์—”๋“œํฌ์ธํŠธ ์ถ”๊ฐ€

* feat: apple ์œ ์ €์—๋Œ€ํ•ด create, update ํ•จ์ˆ˜ ๊ตฌํ˜„

* feat: publicKey ๋ฐœ๊ธ‰๋ฐ›๋Š” ๋กœ์ง์ถ”๊ฐ€

* [Server] access ํ† ํฐ ์žฌ๋ฐœ๊ธ‰์‹œ ์œ ์ € ์ •๋ณด ์—†๋Š” ๋ฒ„๊ทธ ์ˆ˜์ • (#83)

* [Server] privateChecklist์˜ ๋‚ด์šฉ ์ €์žฅ api ๊ตฌํ˜„ (#88)

* [Server] apple oauth ๋กœ๊ทธ์ธ ๋กœ์ง ์ˆ˜์ • (#118)

* feat: env ์‚ฌ์šฉ๋ฐฉ์‹ ๋ณ€๊ฒฝ + idToken ๊ฒ€์ฆ๋กœ์ง ์ถ”๊ฐ€

* chore: jwk๋ฅผ pem์œผ๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ ์œ„ํ•œ jose ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ค์น˜

* chore: jose ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ œ๊ฑฐ @panva/jose ์„ค์น˜

* feat: request body๋กœ ๋“ค์–ด์˜ค๋Š” auth-user.dto.ts ์ˆ˜์ •

* feat: ์• ํ”Œ ์œ ์ € ๋“ฑ๋ก ๋กœ์ง ์ˆ˜์ •

* docs: jsdoc return type ์ˆ˜์ •

* feat: apple login ๋กœ์ง ์ˆ˜์ •(appleToken, clientSecret ๋กœ์ง ์‚ญ์ œ)

* feat: refreshAccessToken ํ•จ์ˆ˜์—์„œ refreshToken๋„ ํ•จ๊ป˜ ๋ฐ˜ํ™˜ํ•ด์ฃผ๋„๋ก ๋กœ์ง ์ˆ˜์ •

* [Server] Clova Studio api  ๊ตฌํ˜„ (#126)

* feat:  checklist-ai ๋ฆฌ์†Œ์Šค ์ƒ์„ฑ

* feat: create-checklist-items.dto.ts ์š”์ฒญ dto ์ƒ์„ฑ

* feat: ๋ฌธ์ž์—ด ๋ฐ ๊ฐ์ข… ์˜ต์…˜ ์ƒ์ˆ˜ํ™”

* feat: user-role const ํŒŒ์ผ ์‚ญ์ œ => ํ•จ์ˆ˜ํ™”

* feat: /checklist-ai POST ์š”์ฒญ api ์ƒ์„ฑ

๋Œ€,์ค‘,์†Œ ์นดํ…Œ๊ณ ๋ฆฌ๋ฅผ body๋กœ ๋ฐ›์•„์˜ค๋ฉด clova studio์—์„œ ์ฒดํฌ๋ฆฌ์ŠคํŠธ ํ•ญ๋ชฉ 10๊ฐœ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

* feat: AccessTokenGuard ๊ตฌํ˜„ ๋ฐ ์ ์šฉ (#129)

* feat: access token guard ๊ตฌํ˜„

* feat: access token guard ์ „์—ญ ์ ์šฉ

* style: access-token.guard.ts ์ฃผ์„ ์ถ”๊ฐ€

* feat: userId decorator ๊ตฌํ˜„

* feat: folders controller์— userId ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* feat: ํด๋” ์„œ๋น„์Šค์— user ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* feat: ๊ฐœ์ธ ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์ปจํŠธ๋กค๋Ÿฌ์— ์œ ์ € ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* feat: private-checklists service์— user ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* fix: ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ˆ˜์ •

* Server/feature/#128 (#139)

* feat: json ๊ตฌ์กฐ๋กœ ์นดํ…Œ๊ณ ๋ฆฌ ๋ฐ์ดํ„ฐ ์ •์˜

* feat: categories ์˜์กด์„ฑ ์ฃผ์ž…

* feat: endpoint๋งŒ๋“ค๊ณ , ์‹ค์ œ ์กด์žฌํ•˜๋Š” id์ธ์ง€ ๊ฒ€์ฆํ•˜๋Š” dto ์ƒ์„ฑ

* fix: ์˜คํƒ€์ˆ˜์ • forder->folder

* feat: param์— dto ์ ์šฉํ•˜์ง€ ๋ชปํ•ด ์‚ญ์ œ

* feat: ์นดํ…Œ๊ณ ๋ฆฌ json ๋ฐ์ดํ„ฐ ๋ณ€์ˆ˜๋ช… ๋ณ€๊ฒฝ, ๋Œ€๋ฌธ์ž๋กœ

* feat: ๋Œ€,์ค‘,์†Œ ์นดํ…Œ๊ณ ๋ฆฌ ๋ฐ˜ํ™˜ api ๊ตฌํ˜„

* test: categories.service.spec.ts ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ

* test: categories.service.spec.ts ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ˆ˜์ • ์ปค๋ฒ„๋ฆฌ์ง€ 100

* feat: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ API ๋ฐ ์†Œ์ผ“ ์ž‘์—… ๊ตฌํ˜„ (#140)

* feat: shared checklist item entity ๊ตฌํ˜„

* style: SharedChecklistItemModel ์˜คํƒ€ ์ˆ˜์ •

* feat: shared checklist id uuid๋กœ ๋ณ€๊ฒฝ

* feat: create shared checklist ๋””ํ‹ฐ์˜ค ์ˆ˜์ •

* feat: shared-checklists ์ƒ์„ฑ ๊ตฌํ˜„

* refactor: shared-checklists ์ €์žฅํ•˜๋Š” ํ•จ์ˆ˜ ๋ถ„๋ฆฌ

* feat: shared-checklists 1๊ฐœ, ์ „๋ถ€ ๊ฐ€์ ธ์˜ค๋Š” ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: ์œ ์ € ์ดˆ๋Œ€ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์‚ญ์ œ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* style: shared-checklists service ์ฃผ์„ ์ถ”๊ฐ€

* feature: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์†Œ์ผ“์— ๋ฐ์ดํ„ฐ ๋ˆ„์  ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: shared-checklists ์†Œ์ผ“ ํ†ต์‹  ์‹œ ๋ฐ์ดํ„ฐ ๋ฐ๋ฒ ์— ์ €์žฅ ๊ตฌํ˜„

* feat: ์†Œ์ผ“ ์—ฐ๊ฒฐ์‹œ ๋ฐฉ์˜ ๋ฐ์ดํ„ฐ ํžˆ์Šคํ† ๋ฆฌ๋ฅผ ์ „์†กํ•˜๋Š” ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* style: ์†Œ์ผ“ ์ฃผ์„ ์ถ”๊ฐ€

* ๐Ÿ”feat: ๊ฐœ๋ฐœ์šฉ ์ž„์‹œ๋กœ ์•ก์„ธ์Šค,๋ฆฌํ”„๋ ˆ์‹œ ํ† ํฐ๋“ค ๋งŒ๋ฃŒ๊ธฐํ•œ ์ผ์ฃผ์ผ๋กœ ์„ค์ • (#142)

* feat: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์•„์ดํ…œ ๊ถŒํ•œ ๋ฌธ์ œ ๋ฐ uuid ๋ฌธ์ œ ํ•ด๊ฒฐ (#146)

* fix: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์•„์ดํ…œ ๊ถŒํ•œ ์—†์œผ๋ฉด ์ ‘๊ทผ ๋ชปํ•˜๊ฒŒ ์ˆ˜์ •

* fix: ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์ถ”๊ฐ€์‹œ ์‚ฌ์šฉ์ž๊ฐ€ ์žˆ๋Š”์ง€ ๊ฒ€์‚ฌ

* fix: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์ƒ์„ฑ์‹œ uuid๊ฐ€ ์•„๋‹ˆ๋ฉด ์„œ๋ฒ„๊ฐ€ ์ฃฝ๋Š” ํ˜„์ƒ ์ˆ˜์ •

* style: ๋ถˆํ•„์š”ํ•œ ์ฝ”๋“œ ์ œ๊ฑฐ

* feat: ์†Œ์ผ“ ๋‹ค์ค‘ ์„œ๋ฒ„ ์ง€์›  (#159)

* chore: docker-compose.yaml์— ๋ ˆ๋””์Šค ์ถ”๊ฐ€

* chore: redis ๋ชจ๋“ˆ ์ถ”๊ฐ€

* feature: nest ๋‹ค์ค‘ ํฌํŠธ ์„œ๋ฒ„ ๊ตฌ์„ฑ

* feature: redis.module.ts ๊ตฌํ˜„ ๋ฐ ์ ์šฉ

* feature: ์†Œ์ผ“์— ๋ ˆ๋””์Šค ์‚ฝ์ž…

* feature: ์†Œ์ผ“ pub/sub ๊ตฌํ˜„

* feat: ์†Œ์ผ“ ๋ ˆ๋””์Šค์— ์ด ์ ‘์†์ž์ˆ˜ ์ฆ๊ฐ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: ์†Œ์ผ“ ํžˆ์Šคํ† ๋ฆฌ ๊ธฐ๋Šฅ ๋ ˆ๋””์Šค ์ ์šฉ

* refactor: shared-checklists.gateway.ts ๋ฆฌํŒฉํ† ๋ง

* feat: ์†Œ์ผ“ editing ์ด๋ฒคํŠธ ์ถ”๊ฐ€ (#164)

---------

Co-authored-by: Minseong Park <52368015+pminsung12@users.noreply.github.com>
yangdongsuk added a commit that referenced this pull request Dec 4, 2023
* [Server] ๊ฐœ๋ฐœํ™˜๊ฒฝ ์„ธํŒ… (#4)

* build: open-list-server init

* chore: @nestjs/config class-validator class-transformer ์„ค์น˜

* chore: ๋ฃจํŠธ ๋ ˆ๋ฒจ์—์„œ ์„ค์น˜ํ•œ ํŒจํ‚ค์ง€ ์‚ญ์ œ

* chore: NestJs ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์„ธํŒ…

* chore: @nestjs/config class-validator class-transformer ์„ค์น˜

* Server/feature/#13 (#25)

* chore: postgresql, nestjs docker ์„ธํŒ…

* chore: @nestjs/typeorm, typeorm, pg ์„ค์น˜

* chore: Typeorm ์„ธํŒ… ๋ฐ TestModel ํ…Œ์ด๋ธ” ์ƒ์„ฑ

* ํ…Œ์ŠคํŠธ์šฉ ์œ ์ € API ๊ตฌํ˜„ (#30)

* chore: common resource ์ถ”๊ฐ€

* chore: users resource ์ถ”๊ฐ€

* feature: base entity ๊ตฌํ˜„

* feature: usersEntity ๊ตฌํ˜„

* feature: ๋ชจ๋“ˆ์— usersModel ์ถ”๊ฐ€

* style: entity,dto์˜ users -> user๋กœ ๋ณ€๊ฒฝ

* feature: CreateUserDto ๊ตฌํ˜„

* feature: userEntity ์ด๋ฉ”์ผ ํ•„๋“œ ์ถ”๊ฐ€

* feature: createUserDto ์ด๋ฉ”์ผ ํ•„๋“œ ์ถ”๊ฐ€

* feature: user patch->put์œผ๋กœ ๋ณ€๊ฒฝ

* feature: updateUserDto ๊ตฌํ˜„

* feature : create user ๊ตฌํ˜„

* feature: ๋ชจ๋“  ์œ ์ €์˜ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” API ๊ตฌํ˜„

* feature: ํŠน์ • ์œ ์ €์˜ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” API ๊ตฌํ˜„

* feature: user ์ •๋ณด ์ˆ˜์ • API ๊ตฌํ˜„

* feature: user ์‚ญ์ œ API ๊ตฌํ˜„

* feature: ValidationPipe ์ ์šฉ

* refactor: usersService ๋ฆฌํŒฉํ† ๋ง

* [Server] ์œ ๋‹› ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ ์„ธํŒ… (#32)

* chore: test ๊ฒฝ๋กœ ์„ค์ •

* feature: TestCommonModule ๊ตฌํ˜„

* feature: users.service.spec.ts ์˜์กด์„ฑ ์ฃผ์ž…

* feature: users.controller.spec.ts ์˜์กด์„ฑ ์ฃผ์ž…

* [Server] Users resource ์ด๋ฆ„ ๋ณ€๊ฒฝ (#34)

* style: usersController ๋„ค์ด๋ฐ์— ์ปจ๋ฒค์…˜ ๋งž๊ฒŒ ๋ณ€๊ฒฝ

* style: usersService ์ปจ๋ฒค์…˜์— ๋”ฐ๋ฅธ ๋„ค์ด๋ฐ ๋ณ€๊ฒฝ

* style: UsersModel -> UserModel ์ปจ๋ฒค์…˜์— ๋”ฐ๋ฅธ ๋„ค์ด๋ฐ ๋ณ€๊ฒฝ

* feature: usersService ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ (#39)

* [Server] Folder entity ์ƒ์„ฑ ๋ฐ crud ๊ตฌํ˜„ (#42)

* feat: folders crud ๊ตฌํ˜„

* chore: TestModel ์‚ญ์ œ ๋ฐ ๊ด€๋ จ๋œ ์ข…์†์„ฑ ์ œ๊ฑฐ

* feat: folders.controller.spec.ts ์‚ญ์ œ, folders.service.spec.ts ๊ตฌํ˜„

* feature: dockerํŒŒ์ผ ์ˆ˜์ • (#57)

* feat: private checklist entity ์ƒ์„ฑ ๋ฐ crud ๊ตฌํ˜„ (#61)

* chore: ๊ฐœ๋ฐœ์šฉ postgres ํฌํŠธ๋ณ€๊ฒฝ 5432->5433, .env๋„ port 5433์œผ๋กœ ๋ณ€๊ฒฝํ•„์š”

* feat: checklists res ์ƒ์„ฑ

* feat: checklist, private-checklist, shared-checklisst ์—”ํ‹ฐํ‹ฐ ์ƒ์„ฑ, user๋ชจ๋ธ๊ณผ folder๋ชจ๋ธ๊ณผ์˜ ์˜์กด๊ด€๊ณ„ ์ฃผ์ž…

* feat: author->editor๋กœ ์ˆ˜์ •, ๊ณต์œ ์ฒดํฌ๋ฆฌ์ŠคํŠธ์™€ ์‚ฌ์šฉ์ž์˜ relation์„ many to many๋กœ ์—…๋ฐ์ดํŠธ

* feat: ๊ฐœ์ธ, ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ์— ๋Œ€ํ•ด ์ƒ์„ฑ๊ณผ ์—…๋ฐ์ดํŠธ ์‹œ dto ์ƒ์„ฑ

* fix: class ์ด๋ฆ„ ์˜คํƒ€ ์ˆ˜์ •

* refactor: rest api ๋ฐฉ์‹์— ๋”ฐ๋ผ ํ•จ์ˆ˜๋ช… ๋ณ€๊ฒฝ

* feat: CheckListModel์—์„œ ์ง„ํ–‰๋ฅ  ์ปฌ๋Ÿผ ์‚ญ์ œ

* feat: folder์™€ user๊ฐ„์˜ manyToOne relation์ ์šฉ

* feat: private-checklist crud ์ž‘์„ฑ

* feat: folder service ์ปค๋ฒ„๋ฆฌ์ง€ 100 ๋‹ฌ์„ฑ

* test: private-checklist test code ์ž‘์„ฑ, ์ปค๋ฒ„๋ฆฌ์ง€ 92ํผ์„ผํŠธ

* feat: checklist ํด๋” ๋ถ„๋ฆฌ & dto ๋นˆ๋ฌธ์ž์—ด ๊ฒ€์ฆ ์ถ”๊ฐ€ (#66)

* refactor: checklists๋ฅผ private, sharedํด๋”๋กœ ๋ถ„๋ฆฌ.

* refactor: private-checklists๋ฅผ folders ํ•˜์œ„๋กœ ์ด๋™

* fix: ๋นˆ๋ฌธ์ž์—ด ๊ฒ€์ฆ ์ถ”๊ฐ€

* [Server] Winston์œผ๋กœ ๋กœ๊ทธ ๊ด€๋ฆฌ (#70)

* chore: nest-winston winston winston-daily-rotate-file ์„ค์น˜

* feat: winston logger ์„ค์ • ํŒŒ์ผ ๊ตฌํ˜„

* feat: winston logger middleware ๊ตฌํ˜„

* feat: ์š”์ฒญ logger middleware ๊ตฌํ˜„

* feat: ๋กœ๊ทธ์— ์š”์ฒญ ์ฒ˜๋ฆฌ ์‹œ๊ฐ„ ์ถ”๊ฐ€๋˜๋„๋ก ๊ฐœ์„ 

* chore: PR ํ…œํ”Œ๋ฆฟ ์ˆ˜์ •

* chore: PR ํ…œํ”Œ๋ฆฟ ์ˆ˜์ •

* feat: jwt access, refresh token ๊ธฐ๋ฐ˜ ์ธ๊ฐ€ ๊ตฌํ˜„

* chore: auth resource ์ถ”๊ฐ€

* chore: jwt ๋ชจ๋“ˆ ์ถ”๊ฐ€

* feature: signToken ๊ตฌํ˜„

* feature: ํ† ํฐ ๊ฒ€์ฆ, ํ† ํฐ ์žฌ๋ฐœ๊ธ‰ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* feature: ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* feature: ๋กœ๊ทธ์ธ ๊ด€๋ จ ์„œ๋น„์Šค ๊ตฌํ˜„

* feature: login ์ปจํŠธ๋กค๋Ÿฌ ๊ตฌํ˜„

* style: loginDto -> loginUserDto๋กœ ๋ณ€๊ฒฝ

* feature: access ํ† ํฐ ์žฌ๋ฐœ๊ธ‰ ์ปจํŠธ๋กค๋Ÿฌ ๊ตฌํ˜„

* refactor: accessํ† ํฐ ์žฌ๋ฐœ๊ธ‰ ํ˜•์‹ ๋ณ€๊ฒฝ

* feature: ์œ ์ € register ๊ธฐ๋Šฅ ๊ตฌํ˜„

* feature: auth.service.ts ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ

* fix: ์ด๋ฉ”์ผ ์ค‘๋ณต์‹œ ์—๋Ÿฌ ๋ฉ”์‹œ์ง€ ์ˆ˜์ •

---------

Co-authored-by: Minseong Park <52368015+pminsung12@users.noreply.github.com>

* [Server] shared-checklist ์†Œ์ผ“ ๊ตฌํ˜„ (#78)

* [Server] apple oauth api ๊ตฌํ˜„ (#86)

* chore: @nestjs/axios ์„ค์น˜

* chore: axios ์„ค์น˜

* chore: axios ์„ค์น˜

* feat: dto์ˆ˜์ •, userId ์ปฌ๋Ÿผ์ถ”๊ฐ€, providerId ์ˆ˜์ •, fullName ์ปฌ๋Ÿผ ์ถ”๊ฐ€

* feat: entity์— ๋”ฐ๋ผ dto ํ•ญ๋ชฉ ์ˆ˜์ •

* feat: apple oauth ๋กœ๊ทธ์ธ ์„œ๋น„์Šค ํ•จ์ˆ˜ ์ถ”๊ฐ€

client secret ๋งŒ๋“ค๊ณ , axios post๋กœ user ์ •๋ณด ๊ฐ€์ง€๊ณ ์˜ด.

* feat: apple oauth ๋กœ๊ทธ์ธ ์—”๋“œํฌ์ธํŠธ ์ถ”๊ฐ€

* feat: apple ์œ ์ €์—๋Œ€ํ•ด create, update ํ•จ์ˆ˜ ๊ตฌํ˜„

* feat: publicKey ๋ฐœ๊ธ‰๋ฐ›๋Š” ๋กœ์ง์ถ”๊ฐ€

* [Server] access ํ† ํฐ ์žฌ๋ฐœ๊ธ‰์‹œ ์œ ์ € ์ •๋ณด ์—†๋Š” ๋ฒ„๊ทธ ์ˆ˜์ • (#83)

* [Server] privateChecklist์˜ ๋‚ด์šฉ ์ €์žฅ api ๊ตฌํ˜„ (#88)

* [Server] apple oauth ๋กœ๊ทธ์ธ ๋กœ์ง ์ˆ˜์ • (#118)

* feat: env ์‚ฌ์šฉ๋ฐฉ์‹ ๋ณ€๊ฒฝ + idToken ๊ฒ€์ฆ๋กœ์ง ์ถ”๊ฐ€

* chore: jwk๋ฅผ pem์œผ๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ ์œ„ํ•œ jose ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ค์น˜

* chore: jose ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ œ๊ฑฐ @panva/jose ์„ค์น˜

* feat: request body๋กœ ๋“ค์–ด์˜ค๋Š” auth-user.dto.ts ์ˆ˜์ •

* feat: ์• ํ”Œ ์œ ์ € ๋“ฑ๋ก ๋กœ์ง ์ˆ˜์ •

* docs: jsdoc return type ์ˆ˜์ •

* feat: apple login ๋กœ์ง ์ˆ˜์ •(appleToken, clientSecret ๋กœ์ง ์‚ญ์ œ)

* feat: refreshAccessToken ํ•จ์ˆ˜์—์„œ refreshToken๋„ ํ•จ๊ป˜ ๋ฐ˜ํ™˜ํ•ด์ฃผ๋„๋ก ๋กœ์ง ์ˆ˜์ •

* [Server] Clova Studio api  ๊ตฌํ˜„ (#126)

* feat:  checklist-ai ๋ฆฌ์†Œ์Šค ์ƒ์„ฑ

* feat: create-checklist-items.dto.ts ์š”์ฒญ dto ์ƒ์„ฑ

* feat: ๋ฌธ์ž์—ด ๋ฐ ๊ฐ์ข… ์˜ต์…˜ ์ƒ์ˆ˜ํ™”

* feat: user-role const ํŒŒ์ผ ์‚ญ์ œ => ํ•จ์ˆ˜ํ™”

* feat: /checklist-ai POST ์š”์ฒญ api ์ƒ์„ฑ

๋Œ€,์ค‘,์†Œ ์นดํ…Œ๊ณ ๋ฆฌ๋ฅผ body๋กœ ๋ฐ›์•„์˜ค๋ฉด clova studio์—์„œ ์ฒดํฌ๋ฆฌ์ŠคํŠธ ํ•ญ๋ชฉ 10๊ฐœ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

* feat: AccessTokenGuard ๊ตฌํ˜„ ๋ฐ ์ ์šฉ (#129)

* feat: access token guard ๊ตฌํ˜„

* feat: access token guard ์ „์—ญ ์ ์šฉ

* style: access-token.guard.ts ์ฃผ์„ ์ถ”๊ฐ€

* feat: userId decorator ๊ตฌํ˜„

* feat: folders controller์— userId ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* feat: ํด๋” ์„œ๋น„์Šค์— user ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* feat: ๊ฐœ์ธ ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์ปจํŠธ๋กค๋Ÿฌ์— ์œ ์ € ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* feat: private-checklists service์— user ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* fix: ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ˆ˜์ •

* Server/feature/#128 (#139)

* feat: json ๊ตฌ์กฐ๋กœ ์นดํ…Œ๊ณ ๋ฆฌ ๋ฐ์ดํ„ฐ ์ •์˜

* feat: categories ์˜์กด์„ฑ ์ฃผ์ž…

* feat: endpoint๋งŒ๋“ค๊ณ , ์‹ค์ œ ์กด์žฌํ•˜๋Š” id์ธ์ง€ ๊ฒ€์ฆํ•˜๋Š” dto ์ƒ์„ฑ

* fix: ์˜คํƒ€์ˆ˜์ • forder->folder

* feat: param์— dto ์ ์šฉํ•˜์ง€ ๋ชปํ•ด ์‚ญ์ œ

* feat: ์นดํ…Œ๊ณ ๋ฆฌ json ๋ฐ์ดํ„ฐ ๋ณ€์ˆ˜๋ช… ๋ณ€๊ฒฝ, ๋Œ€๋ฌธ์ž๋กœ

* feat: ๋Œ€,์ค‘,์†Œ ์นดํ…Œ๊ณ ๋ฆฌ ๋ฐ˜ํ™˜ api ๊ตฌํ˜„

* test: categories.service.spec.ts ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ

* test: categories.service.spec.ts ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ˆ˜์ • ์ปค๋ฒ„๋ฆฌ์ง€ 100

* feat: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ API ๋ฐ ์†Œ์ผ“ ์ž‘์—… ๊ตฌํ˜„ (#140)

* feat: shared checklist item entity ๊ตฌํ˜„

* style: SharedChecklistItemModel ์˜คํƒ€ ์ˆ˜์ •

* feat: shared checklist id uuid๋กœ ๋ณ€๊ฒฝ

* feat: create shared checklist ๋””ํ‹ฐ์˜ค ์ˆ˜์ •

* feat: shared-checklists ์ƒ์„ฑ ๊ตฌํ˜„

* refactor: shared-checklists ์ €์žฅํ•˜๋Š” ํ•จ์ˆ˜ ๋ถ„๋ฆฌ

* feat: shared-checklists 1๊ฐœ, ์ „๋ถ€ ๊ฐ€์ ธ์˜ค๋Š” ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: ์œ ์ € ์ดˆ๋Œ€ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์‚ญ์ œ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* style: shared-checklists service ์ฃผ์„ ์ถ”๊ฐ€

* feature: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์†Œ์ผ“์— ๋ฐ์ดํ„ฐ ๋ˆ„์  ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: shared-checklists ์†Œ์ผ“ ํ†ต์‹  ์‹œ ๋ฐ์ดํ„ฐ ๋ฐ๋ฒ ์— ์ €์žฅ ๊ตฌํ˜„

* feat: ์†Œ์ผ“ ์—ฐ๊ฒฐ์‹œ ๋ฐฉ์˜ ๋ฐ์ดํ„ฐ ํžˆ์Šคํ† ๋ฆฌ๋ฅผ ์ „์†กํ•˜๋Š” ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* style: ์†Œ์ผ“ ์ฃผ์„ ์ถ”๊ฐ€

* ๐Ÿ”feat: ๊ฐœ๋ฐœ์šฉ ์ž„์‹œ๋กœ ์•ก์„ธ์Šค,๋ฆฌํ”„๋ ˆ์‹œ ํ† ํฐ๋“ค ๋งŒ๋ฃŒ๊ธฐํ•œ ์ผ์ฃผ์ผ๋กœ ์„ค์ • (#142)

* feat: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์•„์ดํ…œ ๊ถŒํ•œ ๋ฌธ์ œ ๋ฐ uuid ๋ฌธ์ œ ํ•ด๊ฒฐ (#146)

* fix: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์•„์ดํ…œ ๊ถŒํ•œ ์—†์œผ๋ฉด ์ ‘๊ทผ ๋ชปํ•˜๊ฒŒ ์ˆ˜์ •

* fix: ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์ถ”๊ฐ€์‹œ ์‚ฌ์šฉ์ž๊ฐ€ ์žˆ๋Š”์ง€ ๊ฒ€์‚ฌ

* fix: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์ƒ์„ฑ์‹œ uuid๊ฐ€ ์•„๋‹ˆ๋ฉด ์„œ๋ฒ„๊ฐ€ ์ฃฝ๋Š” ํ˜„์ƒ ์ˆ˜์ •

* style: ๋ถˆํ•„์š”ํ•œ ์ฝ”๋“œ ์ œ๊ฑฐ

* feat: ์†Œ์ผ“ ๋‹ค์ค‘ ์„œ๋ฒ„ ์ง€์›  (#159)

* chore: docker-compose.yaml์— ๋ ˆ๋””์Šค ์ถ”๊ฐ€

* chore: redis ๋ชจ๋“ˆ ์ถ”๊ฐ€

* feature: nest ๋‹ค์ค‘ ํฌํŠธ ์„œ๋ฒ„ ๊ตฌ์„ฑ

* feature: redis.module.ts ๊ตฌํ˜„ ๋ฐ ์ ์šฉ

* feature: ์†Œ์ผ“์— ๋ ˆ๋””์Šค ์‚ฝ์ž…

* feature: ์†Œ์ผ“ pub/sub ๊ตฌํ˜„

* feat: ์†Œ์ผ“ ๋ ˆ๋””์Šค์— ์ด ์ ‘์†์ž์ˆ˜ ์ฆ๊ฐ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: ์†Œ์ผ“ ํžˆ์Šคํ† ๋ฆฌ ๊ธฐ๋Šฅ ๋ ˆ๋””์Šค ์ ์šฉ

* refactor: shared-checklists.gateway.ts ๋ฆฌํŒฉํ† ๋ง

* feat: ์†Œ์ผ“ editing ์ด๋ฒคํŠธ ์ถ”๊ฐ€ (#164)

---------

Co-authored-by: Minseong Park <52368015+pminsung12@users.noreply.github.com>
yangdongsuk added a commit that referenced this pull request Dec 4, 2023
* [Server] ๊ฐœ๋ฐœํ™˜๊ฒฝ ์„ธํŒ… (#4)

* build: open-list-server init

* chore: @nestjs/config class-validator class-transformer ์„ค์น˜

* chore: ๋ฃจํŠธ ๋ ˆ๋ฒจ์—์„œ ์„ค์น˜ํ•œ ํŒจํ‚ค์ง€ ์‚ญ์ œ

* chore: NestJs ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์„ธํŒ…

* chore: @nestjs/config class-validator class-transformer ์„ค์น˜

* Server/feature/#13 (#25)

* chore: postgresql, nestjs docker ์„ธํŒ…

* chore: @nestjs/typeorm, typeorm, pg ์„ค์น˜

* chore: Typeorm ์„ธํŒ… ๋ฐ TestModel ํ…Œ์ด๋ธ” ์ƒ์„ฑ

* ํ…Œ์ŠคํŠธ์šฉ ์œ ์ € API ๊ตฌํ˜„ (#30)

* chore: common resource ์ถ”๊ฐ€

* chore: users resource ์ถ”๊ฐ€

* feature: base entity ๊ตฌํ˜„

* feature: usersEntity ๊ตฌํ˜„

* feature: ๋ชจ๋“ˆ์— usersModel ์ถ”๊ฐ€

* style: entity,dto์˜ users -> user๋กœ ๋ณ€๊ฒฝ

* feature: CreateUserDto ๊ตฌํ˜„

* feature: userEntity ์ด๋ฉ”์ผ ํ•„๋“œ ์ถ”๊ฐ€

* feature: createUserDto ์ด๋ฉ”์ผ ํ•„๋“œ ์ถ”๊ฐ€

* feature: user patch->put์œผ๋กœ ๋ณ€๊ฒฝ

* feature: updateUserDto ๊ตฌํ˜„

* feature : create user ๊ตฌํ˜„

* feature: ๋ชจ๋“  ์œ ์ €์˜ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” API ๊ตฌํ˜„

* feature: ํŠน์ • ์œ ์ €์˜ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” API ๊ตฌํ˜„

* feature: user ์ •๋ณด ์ˆ˜์ • API ๊ตฌํ˜„

* feature: user ์‚ญ์ œ API ๊ตฌํ˜„

* feature: ValidationPipe ์ ์šฉ

* refactor: usersService ๋ฆฌํŒฉํ† ๋ง

* [Server] ์œ ๋‹› ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ ์„ธํŒ… (#32)

* chore: test ๊ฒฝ๋กœ ์„ค์ •

* feature: TestCommonModule ๊ตฌํ˜„

* feature: users.service.spec.ts ์˜์กด์„ฑ ์ฃผ์ž…

* feature: users.controller.spec.ts ์˜์กด์„ฑ ์ฃผ์ž…

* [Server] Users resource ์ด๋ฆ„ ๋ณ€๊ฒฝ (#34)

* style: usersController ๋„ค์ด๋ฐ์— ์ปจ๋ฒค์…˜ ๋งž๊ฒŒ ๋ณ€๊ฒฝ

* style: usersService ์ปจ๋ฒค์…˜์— ๋”ฐ๋ฅธ ๋„ค์ด๋ฐ ๋ณ€๊ฒฝ

* style: UsersModel -> UserModel ์ปจ๋ฒค์…˜์— ๋”ฐ๋ฅธ ๋„ค์ด๋ฐ ๋ณ€๊ฒฝ

* feature: usersService ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ (#39)

* [Server] Folder entity ์ƒ์„ฑ ๋ฐ crud ๊ตฌํ˜„ (#42)

* feat: folders crud ๊ตฌํ˜„

* chore: TestModel ์‚ญ์ œ ๋ฐ ๊ด€๋ จ๋œ ์ข…์†์„ฑ ์ œ๊ฑฐ

* feat: folders.controller.spec.ts ์‚ญ์ œ, folders.service.spec.ts ๊ตฌํ˜„

* feature: dockerํŒŒ์ผ ์ˆ˜์ • (#57)

* feat: private checklist entity ์ƒ์„ฑ ๋ฐ crud ๊ตฌํ˜„ (#61)

* chore: ๊ฐœ๋ฐœ์šฉ postgres ํฌํŠธ๋ณ€๊ฒฝ 5432->5433, .env๋„ port 5433์œผ๋กœ ๋ณ€๊ฒฝํ•„์š”

* feat: checklists res ์ƒ์„ฑ

* feat: checklist, private-checklist, shared-checklisst ์—”ํ‹ฐํ‹ฐ ์ƒ์„ฑ, user๋ชจ๋ธ๊ณผ folder๋ชจ๋ธ๊ณผ์˜ ์˜์กด๊ด€๊ณ„ ์ฃผ์ž…

* feat: author->editor๋กœ ์ˆ˜์ •, ๊ณต์œ ์ฒดํฌ๋ฆฌ์ŠคํŠธ์™€ ์‚ฌ์šฉ์ž์˜ relation์„ many to many๋กœ ์—…๋ฐ์ดํŠธ

* feat: ๊ฐœ์ธ, ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ์— ๋Œ€ํ•ด ์ƒ์„ฑ๊ณผ ์—…๋ฐ์ดํŠธ ์‹œ dto ์ƒ์„ฑ

* fix: class ์ด๋ฆ„ ์˜คํƒ€ ์ˆ˜์ •

* refactor: rest api ๋ฐฉ์‹์— ๋”ฐ๋ผ ํ•จ์ˆ˜๋ช… ๋ณ€๊ฒฝ

* feat: CheckListModel์—์„œ ์ง„ํ–‰๋ฅ  ์ปฌ๋Ÿผ ์‚ญ์ œ

* feat: folder์™€ user๊ฐ„์˜ manyToOne relation์ ์šฉ

* feat: private-checklist crud ์ž‘์„ฑ

* feat: folder service ์ปค๋ฒ„๋ฆฌ์ง€ 100 ๋‹ฌ์„ฑ

* test: private-checklist test code ์ž‘์„ฑ, ์ปค๋ฒ„๋ฆฌ์ง€ 92ํผ์„ผํŠธ

* feat: checklist ํด๋” ๋ถ„๋ฆฌ & dto ๋นˆ๋ฌธ์ž์—ด ๊ฒ€์ฆ ์ถ”๊ฐ€ (#66)

* refactor: checklists๋ฅผ private, sharedํด๋”๋กœ ๋ถ„๋ฆฌ.

* refactor: private-checklists๋ฅผ folders ํ•˜์œ„๋กœ ์ด๋™

* fix: ๋นˆ๋ฌธ์ž์—ด ๊ฒ€์ฆ ์ถ”๊ฐ€

* [Server] Winston์œผ๋กœ ๋กœ๊ทธ ๊ด€๋ฆฌ (#70)

* chore: nest-winston winston winston-daily-rotate-file ์„ค์น˜

* feat: winston logger ์„ค์ • ํŒŒ์ผ ๊ตฌํ˜„

* feat: winston logger middleware ๊ตฌํ˜„

* feat: ์š”์ฒญ logger middleware ๊ตฌํ˜„

* feat: ๋กœ๊ทธ์— ์š”์ฒญ ์ฒ˜๋ฆฌ ์‹œ๊ฐ„ ์ถ”๊ฐ€๋˜๋„๋ก ๊ฐœ์„ 

* chore: PR ํ…œํ”Œ๋ฆฟ ์ˆ˜์ •

* chore: PR ํ…œํ”Œ๋ฆฟ ์ˆ˜์ •

* feat: jwt access, refresh token ๊ธฐ๋ฐ˜ ์ธ๊ฐ€ ๊ตฌํ˜„

* chore: auth resource ์ถ”๊ฐ€

* chore: jwt ๋ชจ๋“ˆ ์ถ”๊ฐ€

* feature: signToken ๊ตฌํ˜„

* feature: ํ† ํฐ ๊ฒ€์ฆ, ํ† ํฐ ์žฌ๋ฐœ๊ธ‰ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* feature: ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* feature: ๋กœ๊ทธ์ธ ๊ด€๋ จ ์„œ๋น„์Šค ๊ตฌํ˜„

* feature: login ์ปจํŠธ๋กค๋Ÿฌ ๊ตฌํ˜„

* style: loginDto -> loginUserDto๋กœ ๋ณ€๊ฒฝ

* feature: access ํ† ํฐ ์žฌ๋ฐœ๊ธ‰ ์ปจํŠธ๋กค๋Ÿฌ ๊ตฌํ˜„

* refactor: accessํ† ํฐ ์žฌ๋ฐœ๊ธ‰ ํ˜•์‹ ๋ณ€๊ฒฝ

* feature: ์œ ์ € register ๊ธฐ๋Šฅ ๊ตฌํ˜„

* feature: auth.service.ts ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ

* fix: ์ด๋ฉ”์ผ ์ค‘๋ณต์‹œ ์—๋Ÿฌ ๋ฉ”์‹œ์ง€ ์ˆ˜์ •

---------

Co-authored-by: Minseong Park <52368015+pminsung12@users.noreply.github.com>

* [Server] shared-checklist ์†Œ์ผ“ ๊ตฌํ˜„ (#78)

* [Server] apple oauth api ๊ตฌํ˜„ (#86)

* chore: @nestjs/axios ์„ค์น˜

* chore: axios ์„ค์น˜

* chore: axios ์„ค์น˜

* feat: dto์ˆ˜์ •, userId ์ปฌ๋Ÿผ์ถ”๊ฐ€, providerId ์ˆ˜์ •, fullName ์ปฌ๋Ÿผ ์ถ”๊ฐ€

* feat: entity์— ๋”ฐ๋ผ dto ํ•ญ๋ชฉ ์ˆ˜์ •

* feat: apple oauth ๋กœ๊ทธ์ธ ์„œ๋น„์Šค ํ•จ์ˆ˜ ์ถ”๊ฐ€

client secret ๋งŒ๋“ค๊ณ , axios post๋กœ user ์ •๋ณด ๊ฐ€์ง€๊ณ ์˜ด.

* feat: apple oauth ๋กœ๊ทธ์ธ ์—”๋“œํฌ์ธํŠธ ์ถ”๊ฐ€

* feat: apple ์œ ์ €์—๋Œ€ํ•ด create, update ํ•จ์ˆ˜ ๊ตฌํ˜„

* feat: publicKey ๋ฐœ๊ธ‰๋ฐ›๋Š” ๋กœ์ง์ถ”๊ฐ€

* [Server] access ํ† ํฐ ์žฌ๋ฐœ๊ธ‰์‹œ ์œ ์ € ์ •๋ณด ์—†๋Š” ๋ฒ„๊ทธ ์ˆ˜์ • (#83)

* [Server] privateChecklist์˜ ๋‚ด์šฉ ์ €์žฅ api ๊ตฌํ˜„ (#88)

* [Server] apple oauth ๋กœ๊ทธ์ธ ๋กœ์ง ์ˆ˜์ • (#118)

* feat: env ์‚ฌ์šฉ๋ฐฉ์‹ ๋ณ€๊ฒฝ + idToken ๊ฒ€์ฆ๋กœ์ง ์ถ”๊ฐ€

* chore: jwk๋ฅผ pem์œผ๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ ์œ„ํ•œ jose ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ค์น˜

* chore: jose ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ œ๊ฑฐ @panva/jose ์„ค์น˜

* feat: request body๋กœ ๋“ค์–ด์˜ค๋Š” auth-user.dto.ts ์ˆ˜์ •

* feat: ์• ํ”Œ ์œ ์ € ๋“ฑ๋ก ๋กœ์ง ์ˆ˜์ •

* docs: jsdoc return type ์ˆ˜์ •

* feat: apple login ๋กœ์ง ์ˆ˜์ •(appleToken, clientSecret ๋กœ์ง ์‚ญ์ œ)

* feat: refreshAccessToken ํ•จ์ˆ˜์—์„œ refreshToken๋„ ํ•จ๊ป˜ ๋ฐ˜ํ™˜ํ•ด์ฃผ๋„๋ก ๋กœ์ง ์ˆ˜์ •

* [Server] Clova Studio api  ๊ตฌํ˜„ (#126)

* feat:  checklist-ai ๋ฆฌ์†Œ์Šค ์ƒ์„ฑ

* feat: create-checklist-items.dto.ts ์š”์ฒญ dto ์ƒ์„ฑ

* feat: ๋ฌธ์ž์—ด ๋ฐ ๊ฐ์ข… ์˜ต์…˜ ์ƒ์ˆ˜ํ™”

* feat: user-role const ํŒŒ์ผ ์‚ญ์ œ => ํ•จ์ˆ˜ํ™”

* feat: /checklist-ai POST ์š”์ฒญ api ์ƒ์„ฑ

๋Œ€,์ค‘,์†Œ ์นดํ…Œ๊ณ ๋ฆฌ๋ฅผ body๋กœ ๋ฐ›์•„์˜ค๋ฉด clova studio์—์„œ ์ฒดํฌ๋ฆฌ์ŠคํŠธ ํ•ญ๋ชฉ 10๊ฐœ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

* feat: AccessTokenGuard ๊ตฌํ˜„ ๋ฐ ์ ์šฉ (#129)

* feat: access token guard ๊ตฌํ˜„

* feat: access token guard ์ „์—ญ ์ ์šฉ

* style: access-token.guard.ts ์ฃผ์„ ์ถ”๊ฐ€

* feat: userId decorator ๊ตฌํ˜„

* feat: folders controller์— userId ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* feat: ํด๋” ์„œ๋น„์Šค์— user ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* feat: ๊ฐœ์ธ ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์ปจํŠธ๋กค๋Ÿฌ์— ์œ ์ € ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* feat: private-checklists service์— user ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* fix: ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ˆ˜์ •

* Server/feature/#128 (#139)

* feat: json ๊ตฌ์กฐ๋กœ ์นดํ…Œ๊ณ ๋ฆฌ ๋ฐ์ดํ„ฐ ์ •์˜

* feat: categories ์˜์กด์„ฑ ์ฃผ์ž…

* feat: endpoint๋งŒ๋“ค๊ณ , ์‹ค์ œ ์กด์žฌํ•˜๋Š” id์ธ์ง€ ๊ฒ€์ฆํ•˜๋Š” dto ์ƒ์„ฑ

* fix: ์˜คํƒ€์ˆ˜์ • forder->folder

* feat: param์— dto ์ ์šฉํ•˜์ง€ ๋ชปํ•ด ์‚ญ์ œ

* feat: ์นดํ…Œ๊ณ ๋ฆฌ json ๋ฐ์ดํ„ฐ ๋ณ€์ˆ˜๋ช… ๋ณ€๊ฒฝ, ๋Œ€๋ฌธ์ž๋กœ

* feat: ๋Œ€,์ค‘,์†Œ ์นดํ…Œ๊ณ ๋ฆฌ ๋ฐ˜ํ™˜ api ๊ตฌํ˜„

* test: categories.service.spec.ts ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ

* test: categories.service.spec.ts ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ˆ˜์ • ์ปค๋ฒ„๋ฆฌ์ง€ 100

* feat: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ API ๋ฐ ์†Œ์ผ“ ์ž‘์—… ๊ตฌํ˜„ (#140)

* feat: shared checklist item entity ๊ตฌํ˜„

* style: SharedChecklistItemModel ์˜คํƒ€ ์ˆ˜์ •

* feat: shared checklist id uuid๋กœ ๋ณ€๊ฒฝ

* feat: create shared checklist ๋””ํ‹ฐ์˜ค ์ˆ˜์ •

* feat: shared-checklists ์ƒ์„ฑ ๊ตฌํ˜„

* refactor: shared-checklists ์ €์žฅํ•˜๋Š” ํ•จ์ˆ˜ ๋ถ„๋ฆฌ

* feat: shared-checklists 1๊ฐœ, ์ „๋ถ€ ๊ฐ€์ ธ์˜ค๋Š” ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: ์œ ์ € ์ดˆ๋Œ€ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์‚ญ์ œ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* style: shared-checklists service ์ฃผ์„ ์ถ”๊ฐ€

* feature: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์†Œ์ผ“์— ๋ฐ์ดํ„ฐ ๋ˆ„์  ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: shared-checklists ์†Œ์ผ“ ํ†ต์‹  ์‹œ ๋ฐ์ดํ„ฐ ๋ฐ๋ฒ ์— ์ €์žฅ ๊ตฌํ˜„

* feat: ์†Œ์ผ“ ์—ฐ๊ฒฐ์‹œ ๋ฐฉ์˜ ๋ฐ์ดํ„ฐ ํžˆ์Šคํ† ๋ฆฌ๋ฅผ ์ „์†กํ•˜๋Š” ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* style: ์†Œ์ผ“ ์ฃผ์„ ์ถ”๊ฐ€

* ๐Ÿ”feat: ๊ฐœ๋ฐœ์šฉ ์ž„์‹œ๋กœ ์•ก์„ธ์Šค,๋ฆฌํ”„๋ ˆ์‹œ ํ† ํฐ๋“ค ๋งŒ๋ฃŒ๊ธฐํ•œ ์ผ์ฃผ์ผ๋กœ ์„ค์ • (#142)

* feat: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์•„์ดํ…œ ๊ถŒํ•œ ๋ฌธ์ œ ๋ฐ uuid ๋ฌธ์ œ ํ•ด๊ฒฐ (#146)

* fix: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์•„์ดํ…œ ๊ถŒํ•œ ์—†์œผ๋ฉด ์ ‘๊ทผ ๋ชปํ•˜๊ฒŒ ์ˆ˜์ •

* fix: ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์ถ”๊ฐ€์‹œ ์‚ฌ์šฉ์ž๊ฐ€ ์žˆ๋Š”์ง€ ๊ฒ€์‚ฌ

* fix: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์ƒ์„ฑ์‹œ uuid๊ฐ€ ์•„๋‹ˆ๋ฉด ์„œ๋ฒ„๊ฐ€ ์ฃฝ๋Š” ํ˜„์ƒ ์ˆ˜์ •

* style: ๋ถˆํ•„์š”ํ•œ ์ฝ”๋“œ ์ œ๊ฑฐ

* feat: ์†Œ์ผ“ ๋‹ค์ค‘ ์„œ๋ฒ„ ์ง€์›  (#159)

* chore: docker-compose.yaml์— ๋ ˆ๋””์Šค ์ถ”๊ฐ€

* chore: redis ๋ชจ๋“ˆ ์ถ”๊ฐ€

* feature: nest ๋‹ค์ค‘ ํฌํŠธ ์„œ๋ฒ„ ๊ตฌ์„ฑ

* feature: redis.module.ts ๊ตฌํ˜„ ๋ฐ ์ ์šฉ

* feature: ์†Œ์ผ“์— ๋ ˆ๋””์Šค ์‚ฝ์ž…

* feature: ์†Œ์ผ“ pub/sub ๊ตฌํ˜„

* feat: ์†Œ์ผ“ ๋ ˆ๋””์Šค์— ์ด ์ ‘์†์ž์ˆ˜ ์ฆ๊ฐ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: ์†Œ์ผ“ ํžˆ์Šคํ† ๋ฆฌ ๊ธฐ๋Šฅ ๋ ˆ๋””์Šค ์ ์šฉ

* refactor: shared-checklists.gateway.ts ๋ฆฌํŒฉํ† ๋ง

* feat: ์†Œ์ผ“ editing ์ด๋ฒคํŠธ ์ถ”๊ฐ€ (#164)

* fix: ๋ ˆ๋””์Šค ์—ฐ๊ฒฐ ์ˆ˜์ • (#168)

---------

Co-authored-by: Minseong Park <52368015+pminsung12@users.noreply.github.com>
yangdongsuk added a commit that referenced this pull request Dec 4, 2023
* [Server] ๊ฐœ๋ฐœํ™˜๊ฒฝ ์„ธํŒ… (#4)

* build: open-list-server init

* chore: @nestjs/config class-validator class-transformer ์„ค์น˜

* chore: ๋ฃจํŠธ ๋ ˆ๋ฒจ์—์„œ ์„ค์น˜ํ•œ ํŒจํ‚ค์ง€ ์‚ญ์ œ

* chore: NestJs ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์„ธํŒ…

* chore: @nestjs/config class-validator class-transformer ์„ค์น˜

* Server/feature/#13 (#25)

* chore: postgresql, nestjs docker ์„ธํŒ…

* chore: @nestjs/typeorm, typeorm, pg ์„ค์น˜

* chore: Typeorm ์„ธํŒ… ๋ฐ TestModel ํ…Œ์ด๋ธ” ์ƒ์„ฑ

* ํ…Œ์ŠคํŠธ์šฉ ์œ ์ € API ๊ตฌํ˜„ (#30)

* chore: common resource ์ถ”๊ฐ€

* chore: users resource ์ถ”๊ฐ€

* feature: base entity ๊ตฌํ˜„

* feature: usersEntity ๊ตฌํ˜„

* feature: ๋ชจ๋“ˆ์— usersModel ์ถ”๊ฐ€

* style: entity,dto์˜ users -> user๋กœ ๋ณ€๊ฒฝ

* feature: CreateUserDto ๊ตฌํ˜„

* feature: userEntity ์ด๋ฉ”์ผ ํ•„๋“œ ์ถ”๊ฐ€

* feature: createUserDto ์ด๋ฉ”์ผ ํ•„๋“œ ์ถ”๊ฐ€

* feature: user patch->put์œผ๋กœ ๋ณ€๊ฒฝ

* feature: updateUserDto ๊ตฌํ˜„

* feature : create user ๊ตฌํ˜„

* feature: ๋ชจ๋“  ์œ ์ €์˜ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” API ๊ตฌํ˜„

* feature: ํŠน์ • ์œ ์ €์˜ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” API ๊ตฌํ˜„

* feature: user ์ •๋ณด ์ˆ˜์ • API ๊ตฌํ˜„

* feature: user ์‚ญ์ œ API ๊ตฌํ˜„

* feature: ValidationPipe ์ ์šฉ

* refactor: usersService ๋ฆฌํŒฉํ† ๋ง

* [Server] ์œ ๋‹› ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ ์„ธํŒ… (#32)

* chore: test ๊ฒฝ๋กœ ์„ค์ •

* feature: TestCommonModule ๊ตฌํ˜„

* feature: users.service.spec.ts ์˜์กด์„ฑ ์ฃผ์ž…

* feature: users.controller.spec.ts ์˜์กด์„ฑ ์ฃผ์ž…

* [Server] Users resource ์ด๋ฆ„ ๋ณ€๊ฒฝ (#34)

* style: usersController ๋„ค์ด๋ฐ์— ์ปจ๋ฒค์…˜ ๋งž๊ฒŒ ๋ณ€๊ฒฝ

* style: usersService ์ปจ๋ฒค์…˜์— ๋”ฐ๋ฅธ ๋„ค์ด๋ฐ ๋ณ€๊ฒฝ

* style: UsersModel -> UserModel ์ปจ๋ฒค์…˜์— ๋”ฐ๋ฅธ ๋„ค์ด๋ฐ ๋ณ€๊ฒฝ

* feature: usersService ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ (#39)

* [Server] Folder entity ์ƒ์„ฑ ๋ฐ crud ๊ตฌํ˜„ (#42)

* feat: folders crud ๊ตฌํ˜„

* chore: TestModel ์‚ญ์ œ ๋ฐ ๊ด€๋ จ๋œ ์ข…์†์„ฑ ์ œ๊ฑฐ

* feat: folders.controller.spec.ts ์‚ญ์ œ, folders.service.spec.ts ๊ตฌํ˜„

* feature: dockerํŒŒ์ผ ์ˆ˜์ • (#57)

* feat: private checklist entity ์ƒ์„ฑ ๋ฐ crud ๊ตฌํ˜„ (#61)

* chore: ๊ฐœ๋ฐœ์šฉ postgres ํฌํŠธ๋ณ€๊ฒฝ 5432->5433, .env๋„ port 5433์œผ๋กœ ๋ณ€๊ฒฝํ•„์š”

* feat: checklists res ์ƒ์„ฑ

* feat: checklist, private-checklist, shared-checklisst ์—”ํ‹ฐํ‹ฐ ์ƒ์„ฑ, user๋ชจ๋ธ๊ณผ folder๋ชจ๋ธ๊ณผ์˜ ์˜์กด๊ด€๊ณ„ ์ฃผ์ž…

* feat: author->editor๋กœ ์ˆ˜์ •, ๊ณต์œ ์ฒดํฌ๋ฆฌ์ŠคํŠธ์™€ ์‚ฌ์šฉ์ž์˜ relation์„ many to many๋กœ ์—…๋ฐ์ดํŠธ

* feat: ๊ฐœ์ธ, ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ์— ๋Œ€ํ•ด ์ƒ์„ฑ๊ณผ ์—…๋ฐ์ดํŠธ ์‹œ dto ์ƒ์„ฑ

* fix: class ์ด๋ฆ„ ์˜คํƒ€ ์ˆ˜์ •

* refactor: rest api ๋ฐฉ์‹์— ๋”ฐ๋ผ ํ•จ์ˆ˜๋ช… ๋ณ€๊ฒฝ

* feat: CheckListModel์—์„œ ์ง„ํ–‰๋ฅ  ์ปฌ๋Ÿผ ์‚ญ์ œ

* feat: folder์™€ user๊ฐ„์˜ manyToOne relation์ ์šฉ

* feat: private-checklist crud ์ž‘์„ฑ

* feat: folder service ์ปค๋ฒ„๋ฆฌ์ง€ 100 ๋‹ฌ์„ฑ

* test: private-checklist test code ์ž‘์„ฑ, ์ปค๋ฒ„๋ฆฌ์ง€ 92ํผ์„ผํŠธ

* feat: checklist ํด๋” ๋ถ„๋ฆฌ & dto ๋นˆ๋ฌธ์ž์—ด ๊ฒ€์ฆ ์ถ”๊ฐ€ (#66)

* refactor: checklists๋ฅผ private, sharedํด๋”๋กœ ๋ถ„๋ฆฌ.

* refactor: private-checklists๋ฅผ folders ํ•˜์œ„๋กœ ์ด๋™

* fix: ๋นˆ๋ฌธ์ž์—ด ๊ฒ€์ฆ ์ถ”๊ฐ€

* [Server] Winston์œผ๋กœ ๋กœ๊ทธ ๊ด€๋ฆฌ (#70)

* chore: nest-winston winston winston-daily-rotate-file ์„ค์น˜

* feat: winston logger ์„ค์ • ํŒŒ์ผ ๊ตฌํ˜„

* feat: winston logger middleware ๊ตฌํ˜„

* feat: ์š”์ฒญ logger middleware ๊ตฌํ˜„

* feat: ๋กœ๊ทธ์— ์š”์ฒญ ์ฒ˜๋ฆฌ ์‹œ๊ฐ„ ์ถ”๊ฐ€๋˜๋„๋ก ๊ฐœ์„ 

* chore: PR ํ…œํ”Œ๋ฆฟ ์ˆ˜์ •

* chore: PR ํ…œํ”Œ๋ฆฟ ์ˆ˜์ •

* feat: jwt access, refresh token ๊ธฐ๋ฐ˜ ์ธ๊ฐ€ ๊ตฌํ˜„

* chore: auth resource ์ถ”๊ฐ€

* chore: jwt ๋ชจ๋“ˆ ์ถ”๊ฐ€

* feature: signToken ๊ตฌํ˜„

* feature: ํ† ํฐ ๊ฒ€์ฆ, ํ† ํฐ ์žฌ๋ฐœ๊ธ‰ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* feature: ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* feature: ๋กœ๊ทธ์ธ ๊ด€๋ จ ์„œ๋น„์Šค ๊ตฌํ˜„

* feature: login ์ปจํŠธ๋กค๋Ÿฌ ๊ตฌํ˜„

* style: loginDto -> loginUserDto๋กœ ๋ณ€๊ฒฝ

* feature: access ํ† ํฐ ์žฌ๋ฐœ๊ธ‰ ์ปจํŠธ๋กค๋Ÿฌ ๊ตฌํ˜„

* refactor: accessํ† ํฐ ์žฌ๋ฐœ๊ธ‰ ํ˜•์‹ ๋ณ€๊ฒฝ

* feature: ์œ ์ € register ๊ธฐ๋Šฅ ๊ตฌํ˜„

* feature: auth.service.ts ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ

* fix: ์ด๋ฉ”์ผ ์ค‘๋ณต์‹œ ์—๋Ÿฌ ๋ฉ”์‹œ์ง€ ์ˆ˜์ •

---------

Co-authored-by: Minseong Park <52368015+pminsung12@users.noreply.github.com>

* [Server] shared-checklist ์†Œ์ผ“ ๊ตฌํ˜„ (#78)

* [Server] apple oauth api ๊ตฌํ˜„ (#86)

* chore: @nestjs/axios ์„ค์น˜

* chore: axios ์„ค์น˜

* chore: axios ์„ค์น˜

* feat: dto์ˆ˜์ •, userId ์ปฌ๋Ÿผ์ถ”๊ฐ€, providerId ์ˆ˜์ •, fullName ์ปฌ๋Ÿผ ์ถ”๊ฐ€

* feat: entity์— ๋”ฐ๋ผ dto ํ•ญ๋ชฉ ์ˆ˜์ •

* feat: apple oauth ๋กœ๊ทธ์ธ ์„œ๋น„์Šค ํ•จ์ˆ˜ ์ถ”๊ฐ€

client secret ๋งŒ๋“ค๊ณ , axios post๋กœ user ์ •๋ณด ๊ฐ€์ง€๊ณ ์˜ด.

* feat: apple oauth ๋กœ๊ทธ์ธ ์—”๋“œํฌ์ธํŠธ ์ถ”๊ฐ€

* feat: apple ์œ ์ €์—๋Œ€ํ•ด create, update ํ•จ์ˆ˜ ๊ตฌํ˜„

* feat: publicKey ๋ฐœ๊ธ‰๋ฐ›๋Š” ๋กœ์ง์ถ”๊ฐ€

* [Server] access ํ† ํฐ ์žฌ๋ฐœ๊ธ‰์‹œ ์œ ์ € ์ •๋ณด ์—†๋Š” ๋ฒ„๊ทธ ์ˆ˜์ • (#83)

* [Server] privateChecklist์˜ ๋‚ด์šฉ ์ €์žฅ api ๊ตฌํ˜„ (#88)

* [Server] apple oauth ๋กœ๊ทธ์ธ ๋กœ์ง ์ˆ˜์ • (#118)

* feat: env ์‚ฌ์šฉ๋ฐฉ์‹ ๋ณ€๊ฒฝ + idToken ๊ฒ€์ฆ๋กœ์ง ์ถ”๊ฐ€

* chore: jwk๋ฅผ pem์œผ๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ ์œ„ํ•œ jose ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ค์น˜

* chore: jose ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ œ๊ฑฐ @panva/jose ์„ค์น˜

* feat: request body๋กœ ๋“ค์–ด์˜ค๋Š” auth-user.dto.ts ์ˆ˜์ •

* feat: ์• ํ”Œ ์œ ์ € ๋“ฑ๋ก ๋กœ์ง ์ˆ˜์ •

* docs: jsdoc return type ์ˆ˜์ •

* feat: apple login ๋กœ์ง ์ˆ˜์ •(appleToken, clientSecret ๋กœ์ง ์‚ญ์ œ)

* feat: refreshAccessToken ํ•จ์ˆ˜์—์„œ refreshToken๋„ ํ•จ๊ป˜ ๋ฐ˜ํ™˜ํ•ด์ฃผ๋„๋ก ๋กœ์ง ์ˆ˜์ •

* [Server] Clova Studio api  ๊ตฌํ˜„ (#126)

* feat:  checklist-ai ๋ฆฌ์†Œ์Šค ์ƒ์„ฑ

* feat: create-checklist-items.dto.ts ์š”์ฒญ dto ์ƒ์„ฑ

* feat: ๋ฌธ์ž์—ด ๋ฐ ๊ฐ์ข… ์˜ต์…˜ ์ƒ์ˆ˜ํ™”

* feat: user-role const ํŒŒ์ผ ์‚ญ์ œ => ํ•จ์ˆ˜ํ™”

* feat: /checklist-ai POST ์š”์ฒญ api ์ƒ์„ฑ

๋Œ€,์ค‘,์†Œ ์นดํ…Œ๊ณ ๋ฆฌ๋ฅผ body๋กœ ๋ฐ›์•„์˜ค๋ฉด clova studio์—์„œ ์ฒดํฌ๋ฆฌ์ŠคํŠธ ํ•ญ๋ชฉ 10๊ฐœ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

* feat: AccessTokenGuard ๊ตฌํ˜„ ๋ฐ ์ ์šฉ (#129)

* feat: access token guard ๊ตฌํ˜„

* feat: access token guard ์ „์—ญ ์ ์šฉ

* style: access-token.guard.ts ์ฃผ์„ ์ถ”๊ฐ€

* feat: userId decorator ๊ตฌํ˜„

* feat: folders controller์— userId ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* feat: ํด๋” ์„œ๋น„์Šค์— user ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* feat: ๊ฐœ์ธ ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์ปจํŠธ๋กค๋Ÿฌ์— ์œ ์ € ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* feat: private-checklists service์— user ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* fix: ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ˆ˜์ •

* Server/feature/#128 (#139)

* feat: json ๊ตฌ์กฐ๋กœ ์นดํ…Œ๊ณ ๋ฆฌ ๋ฐ์ดํ„ฐ ์ •์˜

* feat: categories ์˜์กด์„ฑ ์ฃผ์ž…

* feat: endpoint๋งŒ๋“ค๊ณ , ์‹ค์ œ ์กด์žฌํ•˜๋Š” id์ธ์ง€ ๊ฒ€์ฆํ•˜๋Š” dto ์ƒ์„ฑ

* fix: ์˜คํƒ€์ˆ˜์ • forder->folder

* feat: param์— dto ์ ์šฉํ•˜์ง€ ๋ชปํ•ด ์‚ญ์ œ

* feat: ์นดํ…Œ๊ณ ๋ฆฌ json ๋ฐ์ดํ„ฐ ๋ณ€์ˆ˜๋ช… ๋ณ€๊ฒฝ, ๋Œ€๋ฌธ์ž๋กœ

* feat: ๋Œ€,์ค‘,์†Œ ์นดํ…Œ๊ณ ๋ฆฌ ๋ฐ˜ํ™˜ api ๊ตฌํ˜„

* test: categories.service.spec.ts ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ

* test: categories.service.spec.ts ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ˆ˜์ • ์ปค๋ฒ„๋ฆฌ์ง€ 100

* feat: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ API ๋ฐ ์†Œ์ผ“ ์ž‘์—… ๊ตฌํ˜„ (#140)

* feat: shared checklist item entity ๊ตฌํ˜„

* style: SharedChecklistItemModel ์˜คํƒ€ ์ˆ˜์ •

* feat: shared checklist id uuid๋กœ ๋ณ€๊ฒฝ

* feat: create shared checklist ๋””ํ‹ฐ์˜ค ์ˆ˜์ •

* feat: shared-checklists ์ƒ์„ฑ ๊ตฌํ˜„

* refactor: shared-checklists ์ €์žฅํ•˜๋Š” ํ•จ์ˆ˜ ๋ถ„๋ฆฌ

* feat: shared-checklists 1๊ฐœ, ์ „๋ถ€ ๊ฐ€์ ธ์˜ค๋Š” ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: ์œ ์ € ์ดˆ๋Œ€ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์‚ญ์ œ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* style: shared-checklists service ์ฃผ์„ ์ถ”๊ฐ€

* feature: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์†Œ์ผ“์— ๋ฐ์ดํ„ฐ ๋ˆ„์  ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: shared-checklists ์†Œ์ผ“ ํ†ต์‹  ์‹œ ๋ฐ์ดํ„ฐ ๋ฐ๋ฒ ์— ์ €์žฅ ๊ตฌํ˜„

* feat: ์†Œ์ผ“ ์—ฐ๊ฒฐ์‹œ ๋ฐฉ์˜ ๋ฐ์ดํ„ฐ ํžˆ์Šคํ† ๋ฆฌ๋ฅผ ์ „์†กํ•˜๋Š” ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* style: ์†Œ์ผ“ ์ฃผ์„ ์ถ”๊ฐ€

* ๐Ÿ”feat: ๊ฐœ๋ฐœ์šฉ ์ž„์‹œ๋กœ ์•ก์„ธ์Šค,๋ฆฌํ”„๋ ˆ์‹œ ํ† ํฐ๋“ค ๋งŒ๋ฃŒ๊ธฐํ•œ ์ผ์ฃผ์ผ๋กœ ์„ค์ • (#142)

* feat: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์•„์ดํ…œ ๊ถŒํ•œ ๋ฌธ์ œ ๋ฐ uuid ๋ฌธ์ œ ํ•ด๊ฒฐ (#146)

* fix: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์•„์ดํ…œ ๊ถŒํ•œ ์—†์œผ๋ฉด ์ ‘๊ทผ ๋ชปํ•˜๊ฒŒ ์ˆ˜์ •

* fix: ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์ถ”๊ฐ€์‹œ ์‚ฌ์šฉ์ž๊ฐ€ ์žˆ๋Š”์ง€ ๊ฒ€์‚ฌ

* fix: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์ƒ์„ฑ์‹œ uuid๊ฐ€ ์•„๋‹ˆ๋ฉด ์„œ๋ฒ„๊ฐ€ ์ฃฝ๋Š” ํ˜„์ƒ ์ˆ˜์ •

* style: ๋ถˆํ•„์š”ํ•œ ์ฝ”๋“œ ์ œ๊ฑฐ

* feat: ์†Œ์ผ“ ๋‹ค์ค‘ ์„œ๋ฒ„ ์ง€์›  (#159)

* chore: docker-compose.yaml์— ๋ ˆ๋””์Šค ์ถ”๊ฐ€

* chore: redis ๋ชจ๋“ˆ ์ถ”๊ฐ€

* feature: nest ๋‹ค์ค‘ ํฌํŠธ ์„œ๋ฒ„ ๊ตฌ์„ฑ

* feature: redis.module.ts ๊ตฌํ˜„ ๋ฐ ์ ์šฉ

* feature: ์†Œ์ผ“์— ๋ ˆ๋””์Šค ์‚ฝ์ž…

* feature: ์†Œ์ผ“ pub/sub ๊ตฌํ˜„

* feat: ์†Œ์ผ“ ๋ ˆ๋””์Šค์— ์ด ์ ‘์†์ž์ˆ˜ ์ฆ๊ฐ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: ์†Œ์ผ“ ํžˆ์Šคํ† ๋ฆฌ ๊ธฐ๋Šฅ ๋ ˆ๋””์Šค ์ ์šฉ

* refactor: shared-checklists.gateway.ts ๋ฆฌํŒฉํ† ๋ง

* feat: ์†Œ์ผ“ editing ์ด๋ฒคํŠธ ์ถ”๊ฐ€ (#164)

* fix: ๋ ˆ๋””์Šค ์—ฐ๊ฒฐ ์ˆ˜์ • (#168)

* [Server] object ํ˜•ํƒœ๊ฐ€ ๋“ค์–ด์˜ค๋ฉด redis์— ์ €์žฅ ์•ˆ๋˜๋Š” ๋ฌธ์ œ ์ˆ˜์ • (#171)

* ๐Ÿ›fix: ์›น์†Œ์ผ“ data๋ฅผ json์œผ๋กœ ๋ณ€๊ฒฝ ํ›„ emit

* ๐Ÿ›fix: history []์ œ๊ฑฐ

* ๐Ÿ›fix: data[0] -> data

---------

Co-authored-by: Minseong Park <52368015+pminsung12@users.noreply.github.com>
yangdongsuk added a commit that referenced this pull request Dec 4, 2023
* [Server] ๊ฐœ๋ฐœํ™˜๊ฒฝ ์„ธํŒ… (#4)

* build: open-list-server init

* chore: @nestjs/config class-validator class-transformer ์„ค์น˜

* chore: ๋ฃจํŠธ ๋ ˆ๋ฒจ์—์„œ ์„ค์น˜ํ•œ ํŒจํ‚ค์ง€ ์‚ญ์ œ

* chore: NestJs ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์„ธํŒ…

* chore: @nestjs/config class-validator class-transformer ์„ค์น˜

* Server/feature/#13 (#25)

* chore: postgresql, nestjs docker ์„ธํŒ…

* chore: @nestjs/typeorm, typeorm, pg ์„ค์น˜

* chore: Typeorm ์„ธํŒ… ๋ฐ TestModel ํ…Œ์ด๋ธ” ์ƒ์„ฑ

* ํ…Œ์ŠคํŠธ์šฉ ์œ ์ € API ๊ตฌํ˜„ (#30)

* chore: common resource ์ถ”๊ฐ€

* chore: users resource ์ถ”๊ฐ€

* feature: base entity ๊ตฌํ˜„

* feature: usersEntity ๊ตฌํ˜„

* feature: ๋ชจ๋“ˆ์— usersModel ์ถ”๊ฐ€

* style: entity,dto์˜ users -> user๋กœ ๋ณ€๊ฒฝ

* feature: CreateUserDto ๊ตฌํ˜„

* feature: userEntity ์ด๋ฉ”์ผ ํ•„๋“œ ์ถ”๊ฐ€

* feature: createUserDto ์ด๋ฉ”์ผ ํ•„๋“œ ์ถ”๊ฐ€

* feature: user patch->put์œผ๋กœ ๋ณ€๊ฒฝ

* feature: updateUserDto ๊ตฌํ˜„

* feature : create user ๊ตฌํ˜„

* feature: ๋ชจ๋“  ์œ ์ €์˜ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” API ๊ตฌํ˜„

* feature: ํŠน์ • ์œ ์ €์˜ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” API ๊ตฌํ˜„

* feature: user ์ •๋ณด ์ˆ˜์ • API ๊ตฌํ˜„

* feature: user ์‚ญ์ œ API ๊ตฌํ˜„

* feature: ValidationPipe ์ ์šฉ

* refactor: usersService ๋ฆฌํŒฉํ† ๋ง

* [Server] ์œ ๋‹› ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ ์„ธํŒ… (#32)

* chore: test ๊ฒฝ๋กœ ์„ค์ •

* feature: TestCommonModule ๊ตฌํ˜„

* feature: users.service.spec.ts ์˜์กด์„ฑ ์ฃผ์ž…

* feature: users.controller.spec.ts ์˜์กด์„ฑ ์ฃผ์ž…

* [Server] Users resource ์ด๋ฆ„ ๋ณ€๊ฒฝ (#34)

* style: usersController ๋„ค์ด๋ฐ์— ์ปจ๋ฒค์…˜ ๋งž๊ฒŒ ๋ณ€๊ฒฝ

* style: usersService ์ปจ๋ฒค์…˜์— ๋”ฐ๋ฅธ ๋„ค์ด๋ฐ ๋ณ€๊ฒฝ

* style: UsersModel -> UserModel ์ปจ๋ฒค์…˜์— ๋”ฐ๋ฅธ ๋„ค์ด๋ฐ ๋ณ€๊ฒฝ

* feature: usersService ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ (#39)

* [Server] Folder entity ์ƒ์„ฑ ๋ฐ crud ๊ตฌํ˜„ (#42)

* feat: folders crud ๊ตฌํ˜„

* chore: TestModel ์‚ญ์ œ ๋ฐ ๊ด€๋ จ๋œ ์ข…์†์„ฑ ์ œ๊ฑฐ

* feat: folders.controller.spec.ts ์‚ญ์ œ, folders.service.spec.ts ๊ตฌํ˜„

* feature: dockerํŒŒ์ผ ์ˆ˜์ • (#57)

* feat: private checklist entity ์ƒ์„ฑ ๋ฐ crud ๊ตฌํ˜„ (#61)

* chore: ๊ฐœ๋ฐœ์šฉ postgres ํฌํŠธ๋ณ€๊ฒฝ 5432->5433, .env๋„ port 5433์œผ๋กœ ๋ณ€๊ฒฝํ•„์š”

* feat: checklists res ์ƒ์„ฑ

* feat: checklist, private-checklist, shared-checklisst ์—”ํ‹ฐํ‹ฐ ์ƒ์„ฑ, user๋ชจ๋ธ๊ณผ folder๋ชจ๋ธ๊ณผ์˜ ์˜์กด๊ด€๊ณ„ ์ฃผ์ž…

* feat: author->editor๋กœ ์ˆ˜์ •, ๊ณต์œ ์ฒดํฌ๋ฆฌ์ŠคํŠธ์™€ ์‚ฌ์šฉ์ž์˜ relation์„ many to many๋กœ ์—…๋ฐ์ดํŠธ

* feat: ๊ฐœ์ธ, ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ์— ๋Œ€ํ•ด ์ƒ์„ฑ๊ณผ ์—…๋ฐ์ดํŠธ ์‹œ dto ์ƒ์„ฑ

* fix: class ์ด๋ฆ„ ์˜คํƒ€ ์ˆ˜์ •

* refactor: rest api ๋ฐฉ์‹์— ๋”ฐ๋ผ ํ•จ์ˆ˜๋ช… ๋ณ€๊ฒฝ

* feat: CheckListModel์—์„œ ์ง„ํ–‰๋ฅ  ์ปฌ๋Ÿผ ์‚ญ์ œ

* feat: folder์™€ user๊ฐ„์˜ manyToOne relation์ ์šฉ

* feat: private-checklist crud ์ž‘์„ฑ

* feat: folder service ์ปค๋ฒ„๋ฆฌ์ง€ 100 ๋‹ฌ์„ฑ

* test: private-checklist test code ์ž‘์„ฑ, ์ปค๋ฒ„๋ฆฌ์ง€ 92ํผ์„ผํŠธ

* feat: checklist ํด๋” ๋ถ„๋ฆฌ & dto ๋นˆ๋ฌธ์ž์—ด ๊ฒ€์ฆ ์ถ”๊ฐ€ (#66)

* refactor: checklists๋ฅผ private, sharedํด๋”๋กœ ๋ถ„๋ฆฌ.

* refactor: private-checklists๋ฅผ folders ํ•˜์œ„๋กœ ์ด๋™

* fix: ๋นˆ๋ฌธ์ž์—ด ๊ฒ€์ฆ ์ถ”๊ฐ€

* [Server] Winston์œผ๋กœ ๋กœ๊ทธ ๊ด€๋ฆฌ (#70)

* chore: nest-winston winston winston-daily-rotate-file ์„ค์น˜

* feat: winston logger ์„ค์ • ํŒŒ์ผ ๊ตฌํ˜„

* feat: winston logger middleware ๊ตฌํ˜„

* feat: ์š”์ฒญ logger middleware ๊ตฌํ˜„

* feat: ๋กœ๊ทธ์— ์š”์ฒญ ์ฒ˜๋ฆฌ ์‹œ๊ฐ„ ์ถ”๊ฐ€๋˜๋„๋ก ๊ฐœ์„ 

* chore: PR ํ…œํ”Œ๋ฆฟ ์ˆ˜์ •

* chore: PR ํ…œํ”Œ๋ฆฟ ์ˆ˜์ •

* feat: jwt access, refresh token ๊ธฐ๋ฐ˜ ์ธ๊ฐ€ ๊ตฌํ˜„

* chore: auth resource ์ถ”๊ฐ€

* chore: jwt ๋ชจ๋“ˆ ์ถ”๊ฐ€

* feature: signToken ๊ตฌํ˜„

* feature: ํ† ํฐ ๊ฒ€์ฆ, ํ† ํฐ ์žฌ๋ฐœ๊ธ‰ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* feature: ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* feature: ๋กœ๊ทธ์ธ ๊ด€๋ จ ์„œ๋น„์Šค ๊ตฌํ˜„

* feature: login ์ปจํŠธ๋กค๋Ÿฌ ๊ตฌํ˜„

* style: loginDto -> loginUserDto๋กœ ๋ณ€๊ฒฝ

* feature: access ํ† ํฐ ์žฌ๋ฐœ๊ธ‰ ์ปจํŠธ๋กค๋Ÿฌ ๊ตฌํ˜„

* refactor: accessํ† ํฐ ์žฌ๋ฐœ๊ธ‰ ํ˜•์‹ ๋ณ€๊ฒฝ

* feature: ์œ ์ € register ๊ธฐ๋Šฅ ๊ตฌํ˜„

* feature: auth.service.ts ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ

* fix: ์ด๋ฉ”์ผ ์ค‘๋ณต์‹œ ์—๋Ÿฌ ๋ฉ”์‹œ์ง€ ์ˆ˜์ •

---------

Co-authored-by: Minseong Park <52368015+pminsung12@users.noreply.github.com>

* [Server] shared-checklist ์†Œ์ผ“ ๊ตฌํ˜„ (#78)

* [Server] apple oauth api ๊ตฌํ˜„ (#86)

* chore: @nestjs/axios ์„ค์น˜

* chore: axios ์„ค์น˜

* chore: axios ์„ค์น˜

* feat: dto์ˆ˜์ •, userId ์ปฌ๋Ÿผ์ถ”๊ฐ€, providerId ์ˆ˜์ •, fullName ์ปฌ๋Ÿผ ์ถ”๊ฐ€

* feat: entity์— ๋”ฐ๋ผ dto ํ•ญ๋ชฉ ์ˆ˜์ •

* feat: apple oauth ๋กœ๊ทธ์ธ ์„œ๋น„์Šค ํ•จ์ˆ˜ ์ถ”๊ฐ€

client secret ๋งŒ๋“ค๊ณ , axios post๋กœ user ์ •๋ณด ๊ฐ€์ง€๊ณ ์˜ด.

* feat: apple oauth ๋กœ๊ทธ์ธ ์—”๋“œํฌ์ธํŠธ ์ถ”๊ฐ€

* feat: apple ์œ ์ €์—๋Œ€ํ•ด create, update ํ•จ์ˆ˜ ๊ตฌํ˜„

* feat: publicKey ๋ฐœ๊ธ‰๋ฐ›๋Š” ๋กœ์ง์ถ”๊ฐ€

* [Server] access ํ† ํฐ ์žฌ๋ฐœ๊ธ‰์‹œ ์œ ์ € ์ •๋ณด ์—†๋Š” ๋ฒ„๊ทธ ์ˆ˜์ • (#83)

* [Server] privateChecklist์˜ ๋‚ด์šฉ ์ €์žฅ api ๊ตฌํ˜„ (#88)

* [Server] apple oauth ๋กœ๊ทธ์ธ ๋กœ์ง ์ˆ˜์ • (#118)

* feat: env ์‚ฌ์šฉ๋ฐฉ์‹ ๋ณ€๊ฒฝ + idToken ๊ฒ€์ฆ๋กœ์ง ์ถ”๊ฐ€

* chore: jwk๋ฅผ pem์œผ๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ ์œ„ํ•œ jose ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ค์น˜

* chore: jose ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ œ๊ฑฐ @panva/jose ์„ค์น˜

* feat: request body๋กœ ๋“ค์–ด์˜ค๋Š” auth-user.dto.ts ์ˆ˜์ •

* feat: ์• ํ”Œ ์œ ์ € ๋“ฑ๋ก ๋กœ์ง ์ˆ˜์ •

* docs: jsdoc return type ์ˆ˜์ •

* feat: apple login ๋กœ์ง ์ˆ˜์ •(appleToken, clientSecret ๋กœ์ง ์‚ญ์ œ)

* feat: refreshAccessToken ํ•จ์ˆ˜์—์„œ refreshToken๋„ ํ•จ๊ป˜ ๋ฐ˜ํ™˜ํ•ด์ฃผ๋„๋ก ๋กœ์ง ์ˆ˜์ •

* [Server] Clova Studio api  ๊ตฌํ˜„ (#126)

* feat:  checklist-ai ๋ฆฌ์†Œ์Šค ์ƒ์„ฑ

* feat: create-checklist-items.dto.ts ์š”์ฒญ dto ์ƒ์„ฑ

* feat: ๋ฌธ์ž์—ด ๋ฐ ๊ฐ์ข… ์˜ต์…˜ ์ƒ์ˆ˜ํ™”

* feat: user-role const ํŒŒ์ผ ์‚ญ์ œ => ํ•จ์ˆ˜ํ™”

* feat: /checklist-ai POST ์š”์ฒญ api ์ƒ์„ฑ

๋Œ€,์ค‘,์†Œ ์นดํ…Œ๊ณ ๋ฆฌ๋ฅผ body๋กœ ๋ฐ›์•„์˜ค๋ฉด clova studio์—์„œ ์ฒดํฌ๋ฆฌ์ŠคํŠธ ํ•ญ๋ชฉ 10๊ฐœ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

* feat: AccessTokenGuard ๊ตฌํ˜„ ๋ฐ ์ ์šฉ (#129)

* feat: access token guard ๊ตฌํ˜„

* feat: access token guard ์ „์—ญ ์ ์šฉ

* style: access-token.guard.ts ์ฃผ์„ ์ถ”๊ฐ€

* feat: userId decorator ๊ตฌํ˜„

* feat: folders controller์— userId ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* feat: ํด๋” ์„œ๋น„์Šค์— user ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* feat: ๊ฐœ์ธ ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์ปจํŠธ๋กค๋Ÿฌ์— ์œ ์ € ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* feat: private-checklists service์— user ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* fix: ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ˆ˜์ •

* Server/feature/#128 (#139)

* feat: json ๊ตฌ์กฐ๋กœ ์นดํ…Œ๊ณ ๋ฆฌ ๋ฐ์ดํ„ฐ ์ •์˜

* feat: categories ์˜์กด์„ฑ ์ฃผ์ž…

* feat: endpoint๋งŒ๋“ค๊ณ , ์‹ค์ œ ์กด์žฌํ•˜๋Š” id์ธ์ง€ ๊ฒ€์ฆํ•˜๋Š” dto ์ƒ์„ฑ

* fix: ์˜คํƒ€์ˆ˜์ • forder->folder

* feat: param์— dto ์ ์šฉํ•˜์ง€ ๋ชปํ•ด ์‚ญ์ œ

* feat: ์นดํ…Œ๊ณ ๋ฆฌ json ๋ฐ์ดํ„ฐ ๋ณ€์ˆ˜๋ช… ๋ณ€๊ฒฝ, ๋Œ€๋ฌธ์ž๋กœ

* feat: ๋Œ€,์ค‘,์†Œ ์นดํ…Œ๊ณ ๋ฆฌ ๋ฐ˜ํ™˜ api ๊ตฌํ˜„

* test: categories.service.spec.ts ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ

* test: categories.service.spec.ts ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ˆ˜์ • ์ปค๋ฒ„๋ฆฌ์ง€ 100

* feat: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ API ๋ฐ ์†Œ์ผ“ ์ž‘์—… ๊ตฌํ˜„ (#140)

* feat: shared checklist item entity ๊ตฌํ˜„

* style: SharedChecklistItemModel ์˜คํƒ€ ์ˆ˜์ •

* feat: shared checklist id uuid๋กœ ๋ณ€๊ฒฝ

* feat: create shared checklist ๋””ํ‹ฐ์˜ค ์ˆ˜์ •

* feat: shared-checklists ์ƒ์„ฑ ๊ตฌํ˜„

* refactor: shared-checklists ์ €์žฅํ•˜๋Š” ํ•จ์ˆ˜ ๋ถ„๋ฆฌ

* feat: shared-checklists 1๊ฐœ, ์ „๋ถ€ ๊ฐ€์ ธ์˜ค๋Š” ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: ์œ ์ € ์ดˆ๋Œ€ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์‚ญ์ œ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* style: shared-checklists service ์ฃผ์„ ์ถ”๊ฐ€

* feature: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์†Œ์ผ“์— ๋ฐ์ดํ„ฐ ๋ˆ„์  ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: shared-checklists ์†Œ์ผ“ ํ†ต์‹  ์‹œ ๋ฐ์ดํ„ฐ ๋ฐ๋ฒ ์— ์ €์žฅ ๊ตฌํ˜„

* feat: ์†Œ์ผ“ ์—ฐ๊ฒฐ์‹œ ๋ฐฉ์˜ ๋ฐ์ดํ„ฐ ํžˆ์Šคํ† ๋ฆฌ๋ฅผ ์ „์†กํ•˜๋Š” ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* style: ์†Œ์ผ“ ์ฃผ์„ ์ถ”๊ฐ€

* ๐Ÿ”feat: ๊ฐœ๋ฐœ์šฉ ์ž„์‹œ๋กœ ์•ก์„ธ์Šค,๋ฆฌํ”„๋ ˆ์‹œ ํ† ํฐ๋“ค ๋งŒ๋ฃŒ๊ธฐํ•œ ์ผ์ฃผ์ผ๋กœ ์„ค์ • (#142)

* feat: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์•„์ดํ…œ ๊ถŒํ•œ ๋ฌธ์ œ ๋ฐ uuid ๋ฌธ์ œ ํ•ด๊ฒฐ (#146)

* fix: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์•„์ดํ…œ ๊ถŒํ•œ ์—†์œผ๋ฉด ์ ‘๊ทผ ๋ชปํ•˜๊ฒŒ ์ˆ˜์ •

* fix: ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์ถ”๊ฐ€์‹œ ์‚ฌ์šฉ์ž๊ฐ€ ์žˆ๋Š”์ง€ ๊ฒ€์‚ฌ

* fix: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์ƒ์„ฑ์‹œ uuid๊ฐ€ ์•„๋‹ˆ๋ฉด ์„œ๋ฒ„๊ฐ€ ์ฃฝ๋Š” ํ˜„์ƒ ์ˆ˜์ •

* style: ๋ถˆํ•„์š”ํ•œ ์ฝ”๋“œ ์ œ๊ฑฐ

* feat: ์†Œ์ผ“ ๋‹ค์ค‘ ์„œ๋ฒ„ ์ง€์›  (#159)

* chore: docker-compose.yaml์— ๋ ˆ๋””์Šค ์ถ”๊ฐ€

* chore: redis ๋ชจ๋“ˆ ์ถ”๊ฐ€

* feature: nest ๋‹ค์ค‘ ํฌํŠธ ์„œ๋ฒ„ ๊ตฌ์„ฑ

* feature: redis.module.ts ๊ตฌํ˜„ ๋ฐ ์ ์šฉ

* feature: ์†Œ์ผ“์— ๋ ˆ๋””์Šค ์‚ฝ์ž…

* feature: ์†Œ์ผ“ pub/sub ๊ตฌํ˜„

* feat: ์†Œ์ผ“ ๋ ˆ๋””์Šค์— ์ด ์ ‘์†์ž์ˆ˜ ์ฆ๊ฐ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: ์†Œ์ผ“ ํžˆ์Šคํ† ๋ฆฌ ๊ธฐ๋Šฅ ๋ ˆ๋””์Šค ์ ์šฉ

* refactor: shared-checklists.gateway.ts ๋ฆฌํŒฉํ† ๋ง

* feat: ์†Œ์ผ“ editing ์ด๋ฒคํŠธ ์ถ”๊ฐ€ (#164)

* fix: ๋ ˆ๋””์Šค ์—ฐ๊ฒฐ ์ˆ˜์ • (#168)

* [Server] object ํ˜•ํƒœ๊ฐ€ ๋“ค์–ด์˜ค๋ฉด redis์— ์ €์žฅ ์•ˆ๋˜๋Š” ๋ฌธ์ œ ์ˆ˜์ • (#171)

* ๐Ÿ›fix: ์›น์†Œ์ผ“ data๋ฅผ json์œผ๋กœ ๋ณ€๊ฒฝ ํ›„ emit

* ๐Ÿ›fix: history []์ œ๊ฑฐ

* ๐Ÿ›fix: data[0] -> data

* feat: ์›น์†Œ์ผ“ ํžˆ์Šคํ† ๋ฆฌ ๋ฒ„๊ทธ ์ˆ˜์ • ๋ฐ ์ฝ˜์†” ๋กœ๊ทธ ์ถ”๊ฐ€ (#175)

* fix: docker-compose ๋ ˆ๋””์Šค ์„ค์ • ์˜ค๋ฅ˜ ํ•ด๊ฒฐ

* feat: ์†Œ์ผ“ console.log ์ถ”๊ฐ€

* fix: ์†Œ์ผ“ ํžˆ์Šคํ† ๋ฆฌ ์ €์žฅ์‹œ ํ˜•์‹ ์˜ค๋ฅ˜ ์ˆ˜์ •

* [Server] ๋กœ๊ฑฐ ๊ธฐ๋Šฅ ํ™•๋Œ€ (#176)

* feat: no auth ๋ฒ„๊ทธ -> password ์ฃผ์„ ํ•ด์ œ

* feat: ๋กœ๊ทธ์— ํ•œ๊ตญ ์‹œ๊ฐ„๋Œ€ ์ถ”๊ฐ€

* feat: ๋กœ๊ทธํŒŒ์ผ์ด dist ๋‚ด๋ถ€์— ์กด์žฌํ•ด ํ•œ ๋‹จ๊ณ„ ์œ„๋กœ ์˜ฎ๊ฒจ์คŒ.

* feat: ์‘๋‹ต๋กœ๊ทธ๋Š” interceptor์—์„œ ์ฒ˜๋ฆฌํ•˜๋„๋ก ๋กœ์ง ์ˆ˜์ •

* feat: ๋กœ๊ทธ ์ธํ„ฐ์…‰ํ„ฐ app.module.ts ํ”„๋กœ๋ฐ”์ด๋”์— ์ถ”๊ฐ€

---------

Co-authored-by: Minseong Park <52368015+pminsung12@users.noreply.github.com>
yangdongsuk added a commit that referenced this pull request Dec 4, 2023
* [Server] ๊ฐœ๋ฐœํ™˜๊ฒฝ ์„ธํŒ… (#4)

* build: open-list-server init

* chore: @nestjs/config class-validator class-transformer ์„ค์น˜

* chore: ๋ฃจํŠธ ๋ ˆ๋ฒจ์—์„œ ์„ค์น˜ํ•œ ํŒจํ‚ค์ง€ ์‚ญ์ œ

* chore: NestJs ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์„ธํŒ…

* chore: @nestjs/config class-validator class-transformer ์„ค์น˜

* Server/feature/#13 (#25)

* chore: postgresql, nestjs docker ์„ธํŒ…

* chore: @nestjs/typeorm, typeorm, pg ์„ค์น˜

* chore: Typeorm ์„ธํŒ… ๋ฐ TestModel ํ…Œ์ด๋ธ” ์ƒ์„ฑ

* ํ…Œ์ŠคํŠธ์šฉ ์œ ์ € API ๊ตฌํ˜„ (#30)

* chore: common resource ์ถ”๊ฐ€

* chore: users resource ์ถ”๊ฐ€

* feature: base entity ๊ตฌํ˜„

* feature: usersEntity ๊ตฌํ˜„

* feature: ๋ชจ๋“ˆ์— usersModel ์ถ”๊ฐ€

* style: entity,dto์˜ users -> user๋กœ ๋ณ€๊ฒฝ

* feature: CreateUserDto ๊ตฌํ˜„

* feature: userEntity ์ด๋ฉ”์ผ ํ•„๋“œ ์ถ”๊ฐ€

* feature: createUserDto ์ด๋ฉ”์ผ ํ•„๋“œ ์ถ”๊ฐ€

* feature: user patch->put์œผ๋กœ ๋ณ€๊ฒฝ

* feature: updateUserDto ๊ตฌํ˜„

* feature : create user ๊ตฌํ˜„

* feature: ๋ชจ๋“  ์œ ์ €์˜ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” API ๊ตฌํ˜„

* feature: ํŠน์ • ์œ ์ €์˜ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” API ๊ตฌํ˜„

* feature: user ์ •๋ณด ์ˆ˜์ • API ๊ตฌํ˜„

* feature: user ์‚ญ์ œ API ๊ตฌํ˜„

* feature: ValidationPipe ์ ์šฉ

* refactor: usersService ๋ฆฌํŒฉํ† ๋ง

* [Server] ์œ ๋‹› ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ ์„ธํŒ… (#32)

* chore: test ๊ฒฝ๋กœ ์„ค์ •

* feature: TestCommonModule ๊ตฌํ˜„

* feature: users.service.spec.ts ์˜์กด์„ฑ ์ฃผ์ž…

* feature: users.controller.spec.ts ์˜์กด์„ฑ ์ฃผ์ž…

* [Server] Users resource ์ด๋ฆ„ ๋ณ€๊ฒฝ (#34)

* style: usersController ๋„ค์ด๋ฐ์— ์ปจ๋ฒค์…˜ ๋งž๊ฒŒ ๋ณ€๊ฒฝ

* style: usersService ์ปจ๋ฒค์…˜์— ๋”ฐ๋ฅธ ๋„ค์ด๋ฐ ๋ณ€๊ฒฝ

* style: UsersModel -> UserModel ์ปจ๋ฒค์…˜์— ๋”ฐ๋ฅธ ๋„ค์ด๋ฐ ๋ณ€๊ฒฝ

* feature: usersService ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ (#39)

* [Server] Folder entity ์ƒ์„ฑ ๋ฐ crud ๊ตฌํ˜„ (#42)

* feat: folders crud ๊ตฌํ˜„

* chore: TestModel ์‚ญ์ œ ๋ฐ ๊ด€๋ จ๋œ ์ข…์†์„ฑ ์ œ๊ฑฐ

* feat: folders.controller.spec.ts ์‚ญ์ œ, folders.service.spec.ts ๊ตฌํ˜„

* feature: dockerํŒŒ์ผ ์ˆ˜์ • (#57)

* feat: private checklist entity ์ƒ์„ฑ ๋ฐ crud ๊ตฌํ˜„ (#61)

* chore: ๊ฐœ๋ฐœ์šฉ postgres ํฌํŠธ๋ณ€๊ฒฝ 5432->5433, .env๋„ port 5433์œผ๋กœ ๋ณ€๊ฒฝํ•„์š”

* feat: checklists res ์ƒ์„ฑ

* feat: checklist, private-checklist, shared-checklisst ์—”ํ‹ฐํ‹ฐ ์ƒ์„ฑ, user๋ชจ๋ธ๊ณผ folder๋ชจ๋ธ๊ณผ์˜ ์˜์กด๊ด€๊ณ„ ์ฃผ์ž…

* feat: author->editor๋กœ ์ˆ˜์ •, ๊ณต์œ ์ฒดํฌ๋ฆฌ์ŠคํŠธ์™€ ์‚ฌ์šฉ์ž์˜ relation์„ many to many๋กœ ์—…๋ฐ์ดํŠธ

* feat: ๊ฐœ์ธ, ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ์— ๋Œ€ํ•ด ์ƒ์„ฑ๊ณผ ์—…๋ฐ์ดํŠธ ์‹œ dto ์ƒ์„ฑ

* fix: class ์ด๋ฆ„ ์˜คํƒ€ ์ˆ˜์ •

* refactor: rest api ๋ฐฉ์‹์— ๋”ฐ๋ผ ํ•จ์ˆ˜๋ช… ๋ณ€๊ฒฝ

* feat: CheckListModel์—์„œ ์ง„ํ–‰๋ฅ  ์ปฌ๋Ÿผ ์‚ญ์ œ

* feat: folder์™€ user๊ฐ„์˜ manyToOne relation์ ์šฉ

* feat: private-checklist crud ์ž‘์„ฑ

* feat: folder service ์ปค๋ฒ„๋ฆฌ์ง€ 100 ๋‹ฌ์„ฑ

* test: private-checklist test code ์ž‘์„ฑ, ์ปค๋ฒ„๋ฆฌ์ง€ 92ํผ์„ผํŠธ

* feat: checklist ํด๋” ๋ถ„๋ฆฌ & dto ๋นˆ๋ฌธ์ž์—ด ๊ฒ€์ฆ ์ถ”๊ฐ€ (#66)

* refactor: checklists๋ฅผ private, sharedํด๋”๋กœ ๋ถ„๋ฆฌ.

* refactor: private-checklists๋ฅผ folders ํ•˜์œ„๋กœ ์ด๋™

* fix: ๋นˆ๋ฌธ์ž์—ด ๊ฒ€์ฆ ์ถ”๊ฐ€

* [Server] Winston์œผ๋กœ ๋กœ๊ทธ ๊ด€๋ฆฌ (#70)

* chore: nest-winston winston winston-daily-rotate-file ์„ค์น˜

* feat: winston logger ์„ค์ • ํŒŒ์ผ ๊ตฌํ˜„

* feat: winston logger middleware ๊ตฌํ˜„

* feat: ์š”์ฒญ logger middleware ๊ตฌํ˜„

* feat: ๋กœ๊ทธ์— ์š”์ฒญ ์ฒ˜๋ฆฌ ์‹œ๊ฐ„ ์ถ”๊ฐ€๋˜๋„๋ก ๊ฐœ์„ 

* chore: PR ํ…œํ”Œ๋ฆฟ ์ˆ˜์ •

* chore: PR ํ…œํ”Œ๋ฆฟ ์ˆ˜์ •

* feat: jwt access, refresh token ๊ธฐ๋ฐ˜ ์ธ๊ฐ€ ๊ตฌํ˜„

* chore: auth resource ์ถ”๊ฐ€

* chore: jwt ๋ชจ๋“ˆ ์ถ”๊ฐ€

* feature: signToken ๊ตฌํ˜„

* feature: ํ† ํฐ ๊ฒ€์ฆ, ํ† ํฐ ์žฌ๋ฐœ๊ธ‰ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* feature: ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* feature: ๋กœ๊ทธ์ธ ๊ด€๋ จ ์„œ๋น„์Šค ๊ตฌํ˜„

* feature: login ์ปจํŠธ๋กค๋Ÿฌ ๊ตฌํ˜„

* style: loginDto -> loginUserDto๋กœ ๋ณ€๊ฒฝ

* feature: access ํ† ํฐ ์žฌ๋ฐœ๊ธ‰ ์ปจํŠธ๋กค๋Ÿฌ ๊ตฌํ˜„

* refactor: accessํ† ํฐ ์žฌ๋ฐœ๊ธ‰ ํ˜•์‹ ๋ณ€๊ฒฝ

* feature: ์œ ์ € register ๊ธฐ๋Šฅ ๊ตฌํ˜„

* feature: auth.service.ts ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ

* fix: ์ด๋ฉ”์ผ ์ค‘๋ณต์‹œ ์—๋Ÿฌ ๋ฉ”์‹œ์ง€ ์ˆ˜์ •

---------

Co-authored-by: Minseong Park <52368015+pminsung12@users.noreply.github.com>

* [Server] shared-checklist ์†Œ์ผ“ ๊ตฌํ˜„ (#78)

* [Server] apple oauth api ๊ตฌํ˜„ (#86)

* chore: @nestjs/axios ์„ค์น˜

* chore: axios ์„ค์น˜

* chore: axios ์„ค์น˜

* feat: dto์ˆ˜์ •, userId ์ปฌ๋Ÿผ์ถ”๊ฐ€, providerId ์ˆ˜์ •, fullName ์ปฌ๋Ÿผ ์ถ”๊ฐ€

* feat: entity์— ๋”ฐ๋ผ dto ํ•ญ๋ชฉ ์ˆ˜์ •

* feat: apple oauth ๋กœ๊ทธ์ธ ์„œ๋น„์Šค ํ•จ์ˆ˜ ์ถ”๊ฐ€

client secret ๋งŒ๋“ค๊ณ , axios post๋กœ user ์ •๋ณด ๊ฐ€์ง€๊ณ ์˜ด.

* feat: apple oauth ๋กœ๊ทธ์ธ ์—”๋“œํฌ์ธํŠธ ์ถ”๊ฐ€

* feat: apple ์œ ์ €์—๋Œ€ํ•ด create, update ํ•จ์ˆ˜ ๊ตฌํ˜„

* feat: publicKey ๋ฐœ๊ธ‰๋ฐ›๋Š” ๋กœ์ง์ถ”๊ฐ€

* [Server] access ํ† ํฐ ์žฌ๋ฐœ๊ธ‰์‹œ ์œ ์ € ์ •๋ณด ์—†๋Š” ๋ฒ„๊ทธ ์ˆ˜์ • (#83)

* [Server] privateChecklist์˜ ๋‚ด์šฉ ์ €์žฅ api ๊ตฌํ˜„ (#88)

* [Server] apple oauth ๋กœ๊ทธ์ธ ๋กœ์ง ์ˆ˜์ • (#118)

* feat: env ์‚ฌ์šฉ๋ฐฉ์‹ ๋ณ€๊ฒฝ + idToken ๊ฒ€์ฆ๋กœ์ง ์ถ”๊ฐ€

* chore: jwk๋ฅผ pem์œผ๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ ์œ„ํ•œ jose ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ค์น˜

* chore: jose ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ œ๊ฑฐ @panva/jose ์„ค์น˜

* feat: request body๋กœ ๋“ค์–ด์˜ค๋Š” auth-user.dto.ts ์ˆ˜์ •

* feat: ์• ํ”Œ ์œ ์ € ๋“ฑ๋ก ๋กœ์ง ์ˆ˜์ •

* docs: jsdoc return type ์ˆ˜์ •

* feat: apple login ๋กœ์ง ์ˆ˜์ •(appleToken, clientSecret ๋กœ์ง ์‚ญ์ œ)

* feat: refreshAccessToken ํ•จ์ˆ˜์—์„œ refreshToken๋„ ํ•จ๊ป˜ ๋ฐ˜ํ™˜ํ•ด์ฃผ๋„๋ก ๋กœ์ง ์ˆ˜์ •

* [Server] Clova Studio api  ๊ตฌํ˜„ (#126)

* feat:  checklist-ai ๋ฆฌ์†Œ์Šค ์ƒ์„ฑ

* feat: create-checklist-items.dto.ts ์š”์ฒญ dto ์ƒ์„ฑ

* feat: ๋ฌธ์ž์—ด ๋ฐ ๊ฐ์ข… ์˜ต์…˜ ์ƒ์ˆ˜ํ™”

* feat: user-role const ํŒŒ์ผ ์‚ญ์ œ => ํ•จ์ˆ˜ํ™”

* feat: /checklist-ai POST ์š”์ฒญ api ์ƒ์„ฑ

๋Œ€,์ค‘,์†Œ ์นดํ…Œ๊ณ ๋ฆฌ๋ฅผ body๋กœ ๋ฐ›์•„์˜ค๋ฉด clova studio์—์„œ ์ฒดํฌ๋ฆฌ์ŠคํŠธ ํ•ญ๋ชฉ 10๊ฐœ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

* feat: AccessTokenGuard ๊ตฌํ˜„ ๋ฐ ์ ์šฉ (#129)

* feat: access token guard ๊ตฌํ˜„

* feat: access token guard ์ „์—ญ ์ ์šฉ

* style: access-token.guard.ts ์ฃผ์„ ์ถ”๊ฐ€

* feat: userId decorator ๊ตฌํ˜„

* feat: folders controller์— userId ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* feat: ํด๋” ์„œ๋น„์Šค์— user ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* feat: ๊ฐœ์ธ ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์ปจํŠธ๋กค๋Ÿฌ์— ์œ ์ € ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* feat: private-checklists service์— user ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* fix: ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ˆ˜์ •

* Server/feature/#128 (#139)

* feat: json ๊ตฌ์กฐ๋กœ ์นดํ…Œ๊ณ ๋ฆฌ ๋ฐ์ดํ„ฐ ์ •์˜

* feat: categories ์˜์กด์„ฑ ์ฃผ์ž…

* feat: endpoint๋งŒ๋“ค๊ณ , ์‹ค์ œ ์กด์žฌํ•˜๋Š” id์ธ์ง€ ๊ฒ€์ฆํ•˜๋Š” dto ์ƒ์„ฑ

* fix: ์˜คํƒ€์ˆ˜์ • forder->folder

* feat: param์— dto ์ ์šฉํ•˜์ง€ ๋ชปํ•ด ์‚ญ์ œ

* feat: ์นดํ…Œ๊ณ ๋ฆฌ json ๋ฐ์ดํ„ฐ ๋ณ€์ˆ˜๋ช… ๋ณ€๊ฒฝ, ๋Œ€๋ฌธ์ž๋กœ

* feat: ๋Œ€,์ค‘,์†Œ ์นดํ…Œ๊ณ ๋ฆฌ ๋ฐ˜ํ™˜ api ๊ตฌํ˜„

* test: categories.service.spec.ts ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ

* test: categories.service.spec.ts ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ˆ˜์ • ์ปค๋ฒ„๋ฆฌ์ง€ 100

* feat: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ API ๋ฐ ์†Œ์ผ“ ์ž‘์—… ๊ตฌํ˜„ (#140)

* feat: shared checklist item entity ๊ตฌํ˜„

* style: SharedChecklistItemModel ์˜คํƒ€ ์ˆ˜์ •

* feat: shared checklist id uuid๋กœ ๋ณ€๊ฒฝ

* feat: create shared checklist ๋””ํ‹ฐ์˜ค ์ˆ˜์ •

* feat: shared-checklists ์ƒ์„ฑ ๊ตฌํ˜„

* refactor: shared-checklists ์ €์žฅํ•˜๋Š” ํ•จ์ˆ˜ ๋ถ„๋ฆฌ

* feat: shared-checklists 1๊ฐœ, ์ „๋ถ€ ๊ฐ€์ ธ์˜ค๋Š” ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: ์œ ์ € ์ดˆ๋Œ€ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์‚ญ์ œ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* style: shared-checklists service ์ฃผ์„ ์ถ”๊ฐ€

* feature: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์†Œ์ผ“์— ๋ฐ์ดํ„ฐ ๋ˆ„์  ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: shared-checklists ์†Œ์ผ“ ํ†ต์‹  ์‹œ ๋ฐ์ดํ„ฐ ๋ฐ๋ฒ ์— ์ €์žฅ ๊ตฌํ˜„

* feat: ์†Œ์ผ“ ์—ฐ๊ฒฐ์‹œ ๋ฐฉ์˜ ๋ฐ์ดํ„ฐ ํžˆ์Šคํ† ๋ฆฌ๋ฅผ ์ „์†กํ•˜๋Š” ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* style: ์†Œ์ผ“ ์ฃผ์„ ์ถ”๊ฐ€

* ๐Ÿ”feat: ๊ฐœ๋ฐœ์šฉ ์ž„์‹œ๋กœ ์•ก์„ธ์Šค,๋ฆฌํ”„๋ ˆ์‹œ ํ† ํฐ๋“ค ๋งŒ๋ฃŒ๊ธฐํ•œ ์ผ์ฃผ์ผ๋กœ ์„ค์ • (#142)

* feat: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์•„์ดํ…œ ๊ถŒํ•œ ๋ฌธ์ œ ๋ฐ uuid ๋ฌธ์ œ ํ•ด๊ฒฐ (#146)

* fix: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์•„์ดํ…œ ๊ถŒํ•œ ์—†์œผ๋ฉด ์ ‘๊ทผ ๋ชปํ•˜๊ฒŒ ์ˆ˜์ •

* fix: ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์ถ”๊ฐ€์‹œ ์‚ฌ์šฉ์ž๊ฐ€ ์žˆ๋Š”์ง€ ๊ฒ€์‚ฌ

* fix: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์ƒ์„ฑ์‹œ uuid๊ฐ€ ์•„๋‹ˆ๋ฉด ์„œ๋ฒ„๊ฐ€ ์ฃฝ๋Š” ํ˜„์ƒ ์ˆ˜์ •

* style: ๋ถˆํ•„์š”ํ•œ ์ฝ”๋“œ ์ œ๊ฑฐ

* feat: ์†Œ์ผ“ ๋‹ค์ค‘ ์„œ๋ฒ„ ์ง€์›  (#159)

* chore: docker-compose.yaml์— ๋ ˆ๋””์Šค ์ถ”๊ฐ€

* chore: redis ๋ชจ๋“ˆ ์ถ”๊ฐ€

* feature: nest ๋‹ค์ค‘ ํฌํŠธ ์„œ๋ฒ„ ๊ตฌ์„ฑ

* feature: redis.module.ts ๊ตฌํ˜„ ๋ฐ ์ ์šฉ

* feature: ์†Œ์ผ“์— ๋ ˆ๋””์Šค ์‚ฝ์ž…

* feature: ์†Œ์ผ“ pub/sub ๊ตฌํ˜„

* feat: ์†Œ์ผ“ ๋ ˆ๋””์Šค์— ์ด ์ ‘์†์ž์ˆ˜ ์ฆ๊ฐ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: ์†Œ์ผ“ ํžˆ์Šคํ† ๋ฆฌ ๊ธฐ๋Šฅ ๋ ˆ๋””์Šค ์ ์šฉ

* refactor: shared-checklists.gateway.ts ๋ฆฌํŒฉํ† ๋ง

* feat: ์†Œ์ผ“ editing ์ด๋ฒคํŠธ ์ถ”๊ฐ€ (#164)

* fix: ๋ ˆ๋””์Šค ์—ฐ๊ฒฐ ์ˆ˜์ • (#168)

* [Server] object ํ˜•ํƒœ๊ฐ€ ๋“ค์–ด์˜ค๋ฉด redis์— ์ €์žฅ ์•ˆ๋˜๋Š” ๋ฌธ์ œ ์ˆ˜์ • (#171)

* ๐Ÿ›fix: ์›น์†Œ์ผ“ data๋ฅผ json์œผ๋กœ ๋ณ€๊ฒฝ ํ›„ emit

* ๐Ÿ›fix: history []์ œ๊ฑฐ

* ๐Ÿ›fix: data[0] -> data

* feat: ์›น์†Œ์ผ“ ํžˆ์Šคํ† ๋ฆฌ ๋ฒ„๊ทธ ์ˆ˜์ • ๋ฐ ์ฝ˜์†” ๋กœ๊ทธ ์ถ”๊ฐ€ (#175)

* fix: docker-compose ๋ ˆ๋””์Šค ์„ค์ • ์˜ค๋ฅ˜ ํ•ด๊ฒฐ

* feat: ์†Œ์ผ“ console.log ์ถ”๊ฐ€

* fix: ์†Œ์ผ“ ํžˆ์Šคํ† ๋ฆฌ ์ €์žฅ์‹œ ํ˜•์‹ ์˜ค๋ฅ˜ ์ˆ˜์ •

* [Server] ๋กœ๊ฑฐ ๊ธฐ๋Šฅ ํ™•๋Œ€ (#176)

* feat: no auth ๋ฒ„๊ทธ -> password ์ฃผ์„ ํ•ด์ œ

* feat: ๋กœ๊ทธ์— ํ•œ๊ตญ ์‹œ๊ฐ„๋Œ€ ์ถ”๊ฐ€

* feat: ๋กœ๊ทธํŒŒ์ผ์ด dist ๋‚ด๋ถ€์— ์กด์žฌํ•ด ํ•œ ๋‹จ๊ณ„ ์œ„๋กœ ์˜ฎ๊ฒจ์คŒ.

* feat: ์‘๋‹ต๋กœ๊ทธ๋Š” interceptor์—์„œ ์ฒ˜๋ฆฌํ•˜๋„๋ก ๋กœ์ง ์ˆ˜์ •

* feat: ๋กœ๊ทธ ์ธํ„ฐ์…‰ํ„ฐ app.module.ts ํ”„๋กœ๋ฐ”์ด๋”์— ์ถ”๊ฐ€

* ๐Ÿ›fix: redis module password ๋ถ€๋ถ„ ์ฃผ์„์ฒ˜๋ฆฌ (#180)

---------

Co-authored-by: Minseong Park <52368015+pminsung12@users.noreply.github.com>
yangdongsuk added a commit that referenced this pull request Dec 7, 2023
* [Server] ๊ฐœ๋ฐœํ™˜๊ฒฝ ์„ธํŒ… (#4)

* build: open-list-server init

* chore: @nestjs/config class-validator class-transformer ์„ค์น˜

* chore: ๋ฃจํŠธ ๋ ˆ๋ฒจ์—์„œ ์„ค์น˜ํ•œ ํŒจํ‚ค์ง€ ์‚ญ์ œ

* chore: NestJs ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์„ธํŒ…

* chore: @nestjs/config class-validator class-transformer ์„ค์น˜

* Server/feature/#13 (#25)

* chore: postgresql, nestjs docker ์„ธํŒ…

* chore: @nestjs/typeorm, typeorm, pg ์„ค์น˜

* chore: Typeorm ์„ธํŒ… ๋ฐ TestModel ํ…Œ์ด๋ธ” ์ƒ์„ฑ

* ํ…Œ์ŠคํŠธ์šฉ ์œ ์ € API ๊ตฌํ˜„ (#30)

* chore: common resource ์ถ”๊ฐ€

* chore: users resource ์ถ”๊ฐ€

* feature: base entity ๊ตฌํ˜„

* feature: usersEntity ๊ตฌํ˜„

* feature: ๋ชจ๋“ˆ์— usersModel ์ถ”๊ฐ€

* style: entity,dto์˜ users -> user๋กœ ๋ณ€๊ฒฝ

* feature: CreateUserDto ๊ตฌํ˜„

* feature: userEntity ์ด๋ฉ”์ผ ํ•„๋“œ ์ถ”๊ฐ€

* feature: createUserDto ์ด๋ฉ”์ผ ํ•„๋“œ ์ถ”๊ฐ€

* feature: user patch->put์œผ๋กœ ๋ณ€๊ฒฝ

* feature: updateUserDto ๊ตฌํ˜„

* feature : create user ๊ตฌํ˜„

* feature: ๋ชจ๋“  ์œ ์ €์˜ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” API ๊ตฌํ˜„

* feature: ํŠน์ • ์œ ์ €์˜ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” API ๊ตฌํ˜„

* feature: user ์ •๋ณด ์ˆ˜์ • API ๊ตฌํ˜„

* feature: user ์‚ญ์ œ API ๊ตฌํ˜„

* feature: ValidationPipe ์ ์šฉ

* refactor: usersService ๋ฆฌํŒฉํ† ๋ง

* [Server] ์œ ๋‹› ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ ์„ธํŒ… (#32)

* chore: test ๊ฒฝ๋กœ ์„ค์ •

* feature: TestCommonModule ๊ตฌํ˜„

* feature: users.service.spec.ts ์˜์กด์„ฑ ์ฃผ์ž…

* feature: users.controller.spec.ts ์˜์กด์„ฑ ์ฃผ์ž…

* [Server] Users resource ์ด๋ฆ„ ๋ณ€๊ฒฝ (#34)

* style: usersController ๋„ค์ด๋ฐ์— ์ปจ๋ฒค์…˜ ๋งž๊ฒŒ ๋ณ€๊ฒฝ

* style: usersService ์ปจ๋ฒค์…˜์— ๋”ฐ๋ฅธ ๋„ค์ด๋ฐ ๋ณ€๊ฒฝ

* style: UsersModel -> UserModel ์ปจ๋ฒค์…˜์— ๋”ฐ๋ฅธ ๋„ค์ด๋ฐ ๋ณ€๊ฒฝ

* feature: usersService ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ (#39)

* [Server] Folder entity ์ƒ์„ฑ ๋ฐ crud ๊ตฌํ˜„ (#42)

* feat: folders crud ๊ตฌํ˜„

* chore: TestModel ์‚ญ์ œ ๋ฐ ๊ด€๋ จ๋œ ์ข…์†์„ฑ ์ œ๊ฑฐ

* feat: folders.controller.spec.ts ์‚ญ์ œ, folders.service.spec.ts ๊ตฌํ˜„

* feature: dockerํŒŒ์ผ ์ˆ˜์ • (#57)

* feat: private checklist entity ์ƒ์„ฑ ๋ฐ crud ๊ตฌํ˜„ (#61)

* chore: ๊ฐœ๋ฐœ์šฉ postgres ํฌํŠธ๋ณ€๊ฒฝ 5432->5433, .env๋„ port 5433์œผ๋กœ ๋ณ€๊ฒฝํ•„์š”

* feat: checklists res ์ƒ์„ฑ

* feat: checklist, private-checklist, shared-checklisst ์—”ํ‹ฐํ‹ฐ ์ƒ์„ฑ, user๋ชจ๋ธ๊ณผ folder๋ชจ๋ธ๊ณผ์˜ ์˜์กด๊ด€๊ณ„ ์ฃผ์ž…

* feat: author->editor๋กœ ์ˆ˜์ •, ๊ณต์œ ์ฒดํฌ๋ฆฌ์ŠคํŠธ์™€ ์‚ฌ์šฉ์ž์˜ relation์„ many to many๋กœ ์—…๋ฐ์ดํŠธ

* feat: ๊ฐœ์ธ, ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ์— ๋Œ€ํ•ด ์ƒ์„ฑ๊ณผ ์—…๋ฐ์ดํŠธ ์‹œ dto ์ƒ์„ฑ

* fix: class ์ด๋ฆ„ ์˜คํƒ€ ์ˆ˜์ •

* refactor: rest api ๋ฐฉ์‹์— ๋”ฐ๋ผ ํ•จ์ˆ˜๋ช… ๋ณ€๊ฒฝ

* feat: CheckListModel์—์„œ ์ง„ํ–‰๋ฅ  ์ปฌ๋Ÿผ ์‚ญ์ œ

* feat: folder์™€ user๊ฐ„์˜ manyToOne relation์ ์šฉ

* feat: private-checklist crud ์ž‘์„ฑ

* feat: folder service ์ปค๋ฒ„๋ฆฌ์ง€ 100 ๋‹ฌ์„ฑ

* test: private-checklist test code ์ž‘์„ฑ, ์ปค๋ฒ„๋ฆฌ์ง€ 92ํผ์„ผํŠธ

* feat: checklist ํด๋” ๋ถ„๋ฆฌ & dto ๋นˆ๋ฌธ์ž์—ด ๊ฒ€์ฆ ์ถ”๊ฐ€ (#66)

* refactor: checklists๋ฅผ private, sharedํด๋”๋กœ ๋ถ„๋ฆฌ.

* refactor: private-checklists๋ฅผ folders ํ•˜์œ„๋กœ ์ด๋™

* fix: ๋นˆ๋ฌธ์ž์—ด ๊ฒ€์ฆ ์ถ”๊ฐ€

* [Server] Winston์œผ๋กœ ๋กœ๊ทธ ๊ด€๋ฆฌ (#70)

* chore: nest-winston winston winston-daily-rotate-file ์„ค์น˜

* feat: winston logger ์„ค์ • ํŒŒ์ผ ๊ตฌํ˜„

* feat: winston logger middleware ๊ตฌํ˜„

* feat: ์š”์ฒญ logger middleware ๊ตฌํ˜„

* feat: ๋กœ๊ทธ์— ์š”์ฒญ ์ฒ˜๋ฆฌ ์‹œ๊ฐ„ ์ถ”๊ฐ€๋˜๋„๋ก ๊ฐœ์„ 

* chore: PR ํ…œํ”Œ๋ฆฟ ์ˆ˜์ •

* chore: PR ํ…œํ”Œ๋ฆฟ ์ˆ˜์ •

* feat: jwt access, refresh token ๊ธฐ๋ฐ˜ ์ธ๊ฐ€ ๊ตฌํ˜„

* chore: auth resource ์ถ”๊ฐ€

* chore: jwt ๋ชจ๋“ˆ ์ถ”๊ฐ€

* feature: signToken ๊ตฌํ˜„

* feature: ํ† ํฐ ๊ฒ€์ฆ, ํ† ํฐ ์žฌ๋ฐœ๊ธ‰ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* feature: ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* feature: ๋กœ๊ทธ์ธ ๊ด€๋ จ ์„œ๋น„์Šค ๊ตฌํ˜„

* feature: login ์ปจํŠธ๋กค๋Ÿฌ ๊ตฌํ˜„

* style: loginDto -> loginUserDto๋กœ ๋ณ€๊ฒฝ

* feature: access ํ† ํฐ ์žฌ๋ฐœ๊ธ‰ ์ปจํŠธ๋กค๋Ÿฌ ๊ตฌํ˜„

* refactor: accessํ† ํฐ ์žฌ๋ฐœ๊ธ‰ ํ˜•์‹ ๋ณ€๊ฒฝ

* feature: ์œ ์ € register ๊ธฐ๋Šฅ ๊ตฌํ˜„

* feature: auth.service.ts ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ

* fix: ์ด๋ฉ”์ผ ์ค‘๋ณต์‹œ ์—๋Ÿฌ ๋ฉ”์‹œ์ง€ ์ˆ˜์ •

---------

Co-authored-by: Minseong Park <52368015+pminsung12@users.noreply.github.com>

* [Server] shared-checklist ์†Œ์ผ“ ๊ตฌํ˜„ (#78)

* [Server] apple oauth api ๊ตฌํ˜„ (#86)

* chore: @nestjs/axios ์„ค์น˜

* chore: axios ์„ค์น˜

* chore: axios ์„ค์น˜

* feat: dto์ˆ˜์ •, userId ์ปฌ๋Ÿผ์ถ”๊ฐ€, providerId ์ˆ˜์ •, fullName ์ปฌ๋Ÿผ ์ถ”๊ฐ€

* feat: entity์— ๋”ฐ๋ผ dto ํ•ญ๋ชฉ ์ˆ˜์ •

* feat: apple oauth ๋กœ๊ทธ์ธ ์„œ๋น„์Šค ํ•จ์ˆ˜ ์ถ”๊ฐ€

client secret ๋งŒ๋“ค๊ณ , axios post๋กœ user ์ •๋ณด ๊ฐ€์ง€๊ณ ์˜ด.

* feat: apple oauth ๋กœ๊ทธ์ธ ์—”๋“œํฌ์ธํŠธ ์ถ”๊ฐ€

* feat: apple ์œ ์ €์—๋Œ€ํ•ด create, update ํ•จ์ˆ˜ ๊ตฌํ˜„

* feat: publicKey ๋ฐœ๊ธ‰๋ฐ›๋Š” ๋กœ์ง์ถ”๊ฐ€

* [Server] access ํ† ํฐ ์žฌ๋ฐœ๊ธ‰์‹œ ์œ ์ € ์ •๋ณด ์—†๋Š” ๋ฒ„๊ทธ ์ˆ˜์ • (#83)

* [Server] privateChecklist์˜ ๋‚ด์šฉ ์ €์žฅ api ๊ตฌํ˜„ (#88)

* [Server] apple oauth ๋กœ๊ทธ์ธ ๋กœ์ง ์ˆ˜์ • (#118)

* feat: env ์‚ฌ์šฉ๋ฐฉ์‹ ๋ณ€๊ฒฝ + idToken ๊ฒ€์ฆ๋กœ์ง ์ถ”๊ฐ€

* chore: jwk๋ฅผ pem์œผ๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ ์œ„ํ•œ jose ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ค์น˜

* chore: jose ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ œ๊ฑฐ @panva/jose ์„ค์น˜

* feat: request body๋กœ ๋“ค์–ด์˜ค๋Š” auth-user.dto.ts ์ˆ˜์ •

* feat: ์• ํ”Œ ์œ ์ € ๋“ฑ๋ก ๋กœ์ง ์ˆ˜์ •

* docs: jsdoc return type ์ˆ˜์ •

* feat: apple login ๋กœ์ง ์ˆ˜์ •(appleToken, clientSecret ๋กœ์ง ์‚ญ์ œ)

* feat: refreshAccessToken ํ•จ์ˆ˜์—์„œ refreshToken๋„ ํ•จ๊ป˜ ๋ฐ˜ํ™˜ํ•ด์ฃผ๋„๋ก ๋กœ์ง ์ˆ˜์ •

* [Server] Clova Studio api  ๊ตฌํ˜„ (#126)

* feat:  checklist-ai ๋ฆฌ์†Œ์Šค ์ƒ์„ฑ

* feat: create-checklist-items.dto.ts ์š”์ฒญ dto ์ƒ์„ฑ

* feat: ๋ฌธ์ž์—ด ๋ฐ ๊ฐ์ข… ์˜ต์…˜ ์ƒ์ˆ˜ํ™”

* feat: user-role const ํŒŒ์ผ ์‚ญ์ œ => ํ•จ์ˆ˜ํ™”

* feat: /checklist-ai POST ์š”์ฒญ api ์ƒ์„ฑ

๋Œ€,์ค‘,์†Œ ์นดํ…Œ๊ณ ๋ฆฌ๋ฅผ body๋กœ ๋ฐ›์•„์˜ค๋ฉด clova studio์—์„œ ์ฒดํฌ๋ฆฌ์ŠคํŠธ ํ•ญ๋ชฉ 10๊ฐœ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

* feat: AccessTokenGuard ๊ตฌํ˜„ ๋ฐ ์ ์šฉ (#129)

* feat: access token guard ๊ตฌํ˜„

* feat: access token guard ์ „์—ญ ์ ์šฉ

* style: access-token.guard.ts ์ฃผ์„ ์ถ”๊ฐ€

* feat: userId decorator ๊ตฌํ˜„

* feat: folders controller์— userId ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* feat: ํด๋” ์„œ๋น„์Šค์— user ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* feat: ๊ฐœ์ธ ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์ปจํŠธ๋กค๋Ÿฌ์— ์œ ์ € ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* feat: private-checklists service์— user ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* fix: ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ˆ˜์ •

* Server/feature/#128 (#139)

* feat: json ๊ตฌ์กฐ๋กœ ์นดํ…Œ๊ณ ๋ฆฌ ๋ฐ์ดํ„ฐ ์ •์˜

* feat: categories ์˜์กด์„ฑ ์ฃผ์ž…

* feat: endpoint๋งŒ๋“ค๊ณ , ์‹ค์ œ ์กด์žฌํ•˜๋Š” id์ธ์ง€ ๊ฒ€์ฆํ•˜๋Š” dto ์ƒ์„ฑ

* fix: ์˜คํƒ€์ˆ˜์ • forder->folder

* feat: param์— dto ์ ์šฉํ•˜์ง€ ๋ชปํ•ด ์‚ญ์ œ

* feat: ์นดํ…Œ๊ณ ๋ฆฌ json ๋ฐ์ดํ„ฐ ๋ณ€์ˆ˜๋ช… ๋ณ€๊ฒฝ, ๋Œ€๋ฌธ์ž๋กœ

* feat: ๋Œ€,์ค‘,์†Œ ์นดํ…Œ๊ณ ๋ฆฌ ๋ฐ˜ํ™˜ api ๊ตฌํ˜„

* test: categories.service.spec.ts ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ

* test: categories.service.spec.ts ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ˆ˜์ • ์ปค๋ฒ„๋ฆฌ์ง€ 100

* feat: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ API ๋ฐ ์†Œ์ผ“ ์ž‘์—… ๊ตฌํ˜„ (#140)

* feat: shared checklist item entity ๊ตฌํ˜„

* style: SharedChecklistItemModel ์˜คํƒ€ ์ˆ˜์ •

* feat: shared checklist id uuid๋กœ ๋ณ€๊ฒฝ

* feat: create shared checklist ๋””ํ‹ฐ์˜ค ์ˆ˜์ •

* feat: shared-checklists ์ƒ์„ฑ ๊ตฌํ˜„

* refactor: shared-checklists ์ €์žฅํ•˜๋Š” ํ•จ์ˆ˜ ๋ถ„๋ฆฌ

* feat: shared-checklists 1๊ฐœ, ์ „๋ถ€ ๊ฐ€์ ธ์˜ค๋Š” ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: ์œ ์ € ์ดˆ๋Œ€ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์‚ญ์ œ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* style: shared-checklists service ์ฃผ์„ ์ถ”๊ฐ€

* feature: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์†Œ์ผ“์— ๋ฐ์ดํ„ฐ ๋ˆ„์  ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: shared-checklists ์†Œ์ผ“ ํ†ต์‹  ์‹œ ๋ฐ์ดํ„ฐ ๋ฐ๋ฒ ์— ์ €์žฅ ๊ตฌํ˜„

* feat: ์†Œ์ผ“ ์—ฐ๊ฒฐ์‹œ ๋ฐฉ์˜ ๋ฐ์ดํ„ฐ ํžˆ์Šคํ† ๋ฆฌ๋ฅผ ์ „์†กํ•˜๋Š” ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* style: ์†Œ์ผ“ ์ฃผ์„ ์ถ”๊ฐ€

* ๐Ÿ”feat: ๊ฐœ๋ฐœ์šฉ ์ž„์‹œ๋กœ ์•ก์„ธ์Šค,๋ฆฌํ”„๋ ˆ์‹œ ํ† ํฐ๋“ค ๋งŒ๋ฃŒ๊ธฐํ•œ ์ผ์ฃผ์ผ๋กœ ์„ค์ • (#142)

* feat: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์•„์ดํ…œ ๊ถŒํ•œ ๋ฌธ์ œ ๋ฐ uuid ๋ฌธ์ œ ํ•ด๊ฒฐ (#146)

* fix: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์•„์ดํ…œ ๊ถŒํ•œ ์—†์œผ๋ฉด ์ ‘๊ทผ ๋ชปํ•˜๊ฒŒ ์ˆ˜์ •

* fix: ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์ถ”๊ฐ€์‹œ ์‚ฌ์šฉ์ž๊ฐ€ ์žˆ๋Š”์ง€ ๊ฒ€์‚ฌ

* fix: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์ƒ์„ฑ์‹œ uuid๊ฐ€ ์•„๋‹ˆ๋ฉด ์„œ๋ฒ„๊ฐ€ ์ฃฝ๋Š” ํ˜„์ƒ ์ˆ˜์ •

* style: ๋ถˆํ•„์š”ํ•œ ์ฝ”๋“œ ์ œ๊ฑฐ

* feat: ์†Œ์ผ“ ๋‹ค์ค‘ ์„œ๋ฒ„ ์ง€์›  (#159)

* chore: docker-compose.yaml์— ๋ ˆ๋””์Šค ์ถ”๊ฐ€

* chore: redis ๋ชจ๋“ˆ ์ถ”๊ฐ€

* feature: nest ๋‹ค์ค‘ ํฌํŠธ ์„œ๋ฒ„ ๊ตฌ์„ฑ

* feature: redis.module.ts ๊ตฌํ˜„ ๋ฐ ์ ์šฉ

* feature: ์†Œ์ผ“์— ๋ ˆ๋””์Šค ์‚ฝ์ž…

* feature: ์†Œ์ผ“ pub/sub ๊ตฌํ˜„

* feat: ์†Œ์ผ“ ๋ ˆ๋””์Šค์— ์ด ์ ‘์†์ž์ˆ˜ ์ฆ๊ฐ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: ์†Œ์ผ“ ํžˆ์Šคํ† ๋ฆฌ ๊ธฐ๋Šฅ ๋ ˆ๋””์Šค ์ ์šฉ

* refactor: shared-checklists.gateway.ts ๋ฆฌํŒฉํ† ๋ง

* feat: ์†Œ์ผ“ editing ์ด๋ฒคํŠธ ์ถ”๊ฐ€ (#164)

* fix: ๋ ˆ๋””์Šค ์—ฐ๊ฒฐ ์ˆ˜์ • (#168)

* [Server] object ํ˜•ํƒœ๊ฐ€ ๋“ค์–ด์˜ค๋ฉด redis์— ์ €์žฅ ์•ˆ๋˜๋Š” ๋ฌธ์ œ ์ˆ˜์ • (#171)

* ๐Ÿ›fix: ์›น์†Œ์ผ“ data๋ฅผ json์œผ๋กœ ๋ณ€๊ฒฝ ํ›„ emit

* ๐Ÿ›fix: history []์ œ๊ฑฐ

* ๐Ÿ›fix: data[0] -> data

* feat: ์›น์†Œ์ผ“ ํžˆ์Šคํ† ๋ฆฌ ๋ฒ„๊ทธ ์ˆ˜์ • ๋ฐ ์ฝ˜์†” ๋กœ๊ทธ ์ถ”๊ฐ€ (#175)

* fix: docker-compose ๋ ˆ๋””์Šค ์„ค์ • ์˜ค๋ฅ˜ ํ•ด๊ฒฐ

* feat: ์†Œ์ผ“ console.log ์ถ”๊ฐ€

* fix: ์†Œ์ผ“ ํžˆ์Šคํ† ๋ฆฌ ์ €์žฅ์‹œ ํ˜•์‹ ์˜ค๋ฅ˜ ์ˆ˜์ •

* [Server] ๋กœ๊ฑฐ ๊ธฐ๋Šฅ ํ™•๋Œ€ (#176)

* feat: no auth ๋ฒ„๊ทธ -> password ์ฃผ์„ ํ•ด์ œ

* feat: ๋กœ๊ทธ์— ํ•œ๊ตญ ์‹œ๊ฐ„๋Œ€ ์ถ”๊ฐ€

* feat: ๋กœ๊ทธํŒŒ์ผ์ด dist ๋‚ด๋ถ€์— ์กด์žฌํ•ด ํ•œ ๋‹จ๊ณ„ ์œ„๋กœ ์˜ฎ๊ฒจ์คŒ.

* feat: ์‘๋‹ต๋กœ๊ทธ๋Š” interceptor์—์„œ ์ฒ˜๋ฆฌํ•˜๋„๋ก ๋กœ์ง ์ˆ˜์ •

* feat: ๋กœ๊ทธ ์ธํ„ฐ์…‰ํ„ฐ app.module.ts ํ”„๋กœ๋ฐ”์ด๋”์— ์ถ”๊ฐ€

* ๐Ÿ›fix: redis module password ๋ถ€๋ถ„ ์ฃผ์„์ฒ˜๋ฆฌ (#180)

* [Server] ํ”ผ๋“œํ™”๋ฉด api ๊ตฌํ˜„ (#196)

* chore: import ๋ฌธ ์ตœ์ ํ™”

* feat: ํ”ผ๋“œ resource ์ƒ์„ฑ

* feat: checklist entity์— ์นดํ…Œ๊ณ ๋ฆฌ ์ปฌ๋Ÿผ ์ถ”๊ฐ€

* feat: feedmodel ์ •์˜

private checklist model์—์„œ likeCount์™€ downloadCount ์ปฌ๋Ÿผ ์ถ”๊ฐ€

* chore: ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” dto ํŒŒ์ผ ์‚ญ์ œ

* chore: ์นดํ…Œ๊ณ ๋ฆฌ ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€

* chore: ์•ˆ์“ฐ๋Š” ํ…Œ์ŠคํŠธ ํŒŒ์ผ ์‚ญ์ œ

* feat: ํ”ผ๋“œ ํ™”๋ฉด api ๊ตฌํ˜„

* feat: feeds.service.spec.ts ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ

* feat: api ์—๋Ÿฌ ํ•ธ๋“ค๋ง ๋กœ์ง ์ถ”๊ฐ€

* test: feeds.service.spec.ts ์˜ˆ์™ธ ์ผ€์ด์Šค์— ๋Œ€ํ•œ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ถ”๊ฐ€

* feat: ์—๋Ÿฌ๋ฉ”์‹œ์ง€ ์ˆ˜์ •

* feat: ๊ด€๋ฆฌ ํŽ˜์ด์ง€์™€ api ๊ตฌํ˜„ (#197)

* feat: admin resource ๊ตฌํ˜„

* feat: ๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€ ์ถ”๊ฐ€

* feat: cors ์„ค์ • ์ถ”๊ฐ€

* feat: ์ž„์‹œ๋กœ ๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€ ๊ถŒํ•œ ์ œ๊ฑฐ

* feat: admin sse api ๊ตฌํ˜„

* refactor: redis sub ์„œ๋น„์Šค ๊ตฌํ˜„

* feat: ์–ด๋“œ๋ฏผ ํŽ˜์ด์ง€ api ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: redis pub ์„œ๋น„์Šค ์ถ”๊ฐ€

* refactor: admin controller์— redis service๋กœ ๊ต์ฒด

* feat: log interceptor์— redis pub ์ถ”๊ฐ€

* refactor: channels const๋กœ ๋ถ„๋ฆฌ

* style: ๋ถˆํ•„์š”ํ•œ ์ฃผ์„ ์ œ๊ฑฐ

* feat: ws ๋กœ๊ทธ redis pub ์ถ”๊ฐ€

* feat: admin page ๋ฐ•์Šค ๋ˆ„๋ฅด๋ฉด ํŽผ์น˜๊ธฐ/์ ‘๊ธฐ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: admin ํŽ˜์ด์ง€ ์ƒ‰๊น” ๋ณ€๊ฒฝ

* feat: ๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€ ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ ๊ตฌํ˜„

---------

Co-authored-by: Minseong Park <52368015+pminsung12@users.noreply.github.com>
yangdongsuk added a commit that referenced this pull request Dec 7, 2023
* [Server] ๊ฐœ๋ฐœํ™˜๊ฒฝ ์„ธํŒ… (#4)

* build: open-list-server init

* chore: @nestjs/config class-validator class-transformer ์„ค์น˜

* chore: ๋ฃจํŠธ ๋ ˆ๋ฒจ์—์„œ ์„ค์น˜ํ•œ ํŒจํ‚ค์ง€ ์‚ญ์ œ

* chore: NestJs ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์„ธํŒ…

* chore: @nestjs/config class-validator class-transformer ์„ค์น˜

* Server/feature/#13 (#25)

* chore: postgresql, nestjs docker ์„ธํŒ…

* chore: @nestjs/typeorm, typeorm, pg ์„ค์น˜

* chore: Typeorm ์„ธํŒ… ๋ฐ TestModel ํ…Œ์ด๋ธ” ์ƒ์„ฑ

* ํ…Œ์ŠคํŠธ์šฉ ์œ ์ € API ๊ตฌํ˜„ (#30)

* chore: common resource ์ถ”๊ฐ€

* chore: users resource ์ถ”๊ฐ€

* feature: base entity ๊ตฌํ˜„

* feature: usersEntity ๊ตฌํ˜„

* feature: ๋ชจ๋“ˆ์— usersModel ์ถ”๊ฐ€

* style: entity,dto์˜ users -> user๋กœ ๋ณ€๊ฒฝ

* feature: CreateUserDto ๊ตฌํ˜„

* feature: userEntity ์ด๋ฉ”์ผ ํ•„๋“œ ์ถ”๊ฐ€

* feature: createUserDto ์ด๋ฉ”์ผ ํ•„๋“œ ์ถ”๊ฐ€

* feature: user patch->put์œผ๋กœ ๋ณ€๊ฒฝ

* feature: updateUserDto ๊ตฌํ˜„

* feature : create user ๊ตฌํ˜„

* feature: ๋ชจ๋“  ์œ ์ €์˜ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” API ๊ตฌํ˜„

* feature: ํŠน์ • ์œ ์ €์˜ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” API ๊ตฌํ˜„

* feature: user ์ •๋ณด ์ˆ˜์ • API ๊ตฌํ˜„

* feature: user ์‚ญ์ œ API ๊ตฌํ˜„

* feature: ValidationPipe ์ ์šฉ

* refactor: usersService ๋ฆฌํŒฉํ† ๋ง

* [Server] ์œ ๋‹› ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ ์„ธํŒ… (#32)

* chore: test ๊ฒฝ๋กœ ์„ค์ •

* feature: TestCommonModule ๊ตฌํ˜„

* feature: users.service.spec.ts ์˜์กด์„ฑ ์ฃผ์ž…

* feature: users.controller.spec.ts ์˜์กด์„ฑ ์ฃผ์ž…

* [Server] Users resource ์ด๋ฆ„ ๋ณ€๊ฒฝ (#34)

* style: usersController ๋„ค์ด๋ฐ์— ์ปจ๋ฒค์…˜ ๋งž๊ฒŒ ๋ณ€๊ฒฝ

* style: usersService ์ปจ๋ฒค์…˜์— ๋”ฐ๋ฅธ ๋„ค์ด๋ฐ ๋ณ€๊ฒฝ

* style: UsersModel -> UserModel ์ปจ๋ฒค์…˜์— ๋”ฐ๋ฅธ ๋„ค์ด๋ฐ ๋ณ€๊ฒฝ

* feature: usersService ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ (#39)

* [Server] Folder entity ์ƒ์„ฑ ๋ฐ crud ๊ตฌํ˜„ (#42)

* feat: folders crud ๊ตฌํ˜„

* chore: TestModel ์‚ญ์ œ ๋ฐ ๊ด€๋ จ๋œ ์ข…์†์„ฑ ์ œ๊ฑฐ

* feat: folders.controller.spec.ts ์‚ญ์ œ, folders.service.spec.ts ๊ตฌํ˜„

* feature: dockerํŒŒ์ผ ์ˆ˜์ • (#57)

* feat: private checklist entity ์ƒ์„ฑ ๋ฐ crud ๊ตฌํ˜„ (#61)

* chore: ๊ฐœ๋ฐœ์šฉ postgres ํฌํŠธ๋ณ€๊ฒฝ 5432->5433, .env๋„ port 5433์œผ๋กœ ๋ณ€๊ฒฝํ•„์š”

* feat: checklists res ์ƒ์„ฑ

* feat: checklist, private-checklist, shared-checklisst ์—”ํ‹ฐํ‹ฐ ์ƒ์„ฑ, user๋ชจ๋ธ๊ณผ folder๋ชจ๋ธ๊ณผ์˜ ์˜์กด๊ด€๊ณ„ ์ฃผ์ž…

* feat: author->editor๋กœ ์ˆ˜์ •, ๊ณต์œ ์ฒดํฌ๋ฆฌ์ŠคํŠธ์™€ ์‚ฌ์šฉ์ž์˜ relation์„ many to many๋กœ ์—…๋ฐ์ดํŠธ

* feat: ๊ฐœ์ธ, ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ์— ๋Œ€ํ•ด ์ƒ์„ฑ๊ณผ ์—…๋ฐ์ดํŠธ ์‹œ dto ์ƒ์„ฑ

* fix: class ์ด๋ฆ„ ์˜คํƒ€ ์ˆ˜์ •

* refactor: rest api ๋ฐฉ์‹์— ๋”ฐ๋ผ ํ•จ์ˆ˜๋ช… ๋ณ€๊ฒฝ

* feat: CheckListModel์—์„œ ์ง„ํ–‰๋ฅ  ์ปฌ๋Ÿผ ์‚ญ์ œ

* feat: folder์™€ user๊ฐ„์˜ manyToOne relation์ ์šฉ

* feat: private-checklist crud ์ž‘์„ฑ

* feat: folder service ์ปค๋ฒ„๋ฆฌ์ง€ 100 ๋‹ฌ์„ฑ

* test: private-checklist test code ์ž‘์„ฑ, ์ปค๋ฒ„๋ฆฌ์ง€ 92ํผ์„ผํŠธ

* feat: checklist ํด๋” ๋ถ„๋ฆฌ & dto ๋นˆ๋ฌธ์ž์—ด ๊ฒ€์ฆ ์ถ”๊ฐ€ (#66)

* refactor: checklists๋ฅผ private, sharedํด๋”๋กœ ๋ถ„๋ฆฌ.

* refactor: private-checklists๋ฅผ folders ํ•˜์œ„๋กœ ์ด๋™

* fix: ๋นˆ๋ฌธ์ž์—ด ๊ฒ€์ฆ ์ถ”๊ฐ€

* [Server] Winston์œผ๋กœ ๋กœ๊ทธ ๊ด€๋ฆฌ (#70)

* chore: nest-winston winston winston-daily-rotate-file ์„ค์น˜

* feat: winston logger ์„ค์ • ํŒŒ์ผ ๊ตฌํ˜„

* feat: winston logger middleware ๊ตฌํ˜„

* feat: ์š”์ฒญ logger middleware ๊ตฌํ˜„

* feat: ๋กœ๊ทธ์— ์š”์ฒญ ์ฒ˜๋ฆฌ ์‹œ๊ฐ„ ์ถ”๊ฐ€๋˜๋„๋ก ๊ฐœ์„ 

* chore: PR ํ…œํ”Œ๋ฆฟ ์ˆ˜์ •

* chore: PR ํ…œํ”Œ๋ฆฟ ์ˆ˜์ •

* feat: jwt access, refresh token ๊ธฐ๋ฐ˜ ์ธ๊ฐ€ ๊ตฌํ˜„

* chore: auth resource ์ถ”๊ฐ€

* chore: jwt ๋ชจ๋“ˆ ์ถ”๊ฐ€

* feature: signToken ๊ตฌํ˜„

* feature: ํ† ํฐ ๊ฒ€์ฆ, ํ† ํฐ ์žฌ๋ฐœ๊ธ‰ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* feature: ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* feature: ๋กœ๊ทธ์ธ ๊ด€๋ จ ์„œ๋น„์Šค ๊ตฌํ˜„

* feature: login ์ปจํŠธ๋กค๋Ÿฌ ๊ตฌํ˜„

* style: loginDto -> loginUserDto๋กœ ๋ณ€๊ฒฝ

* feature: access ํ† ํฐ ์žฌ๋ฐœ๊ธ‰ ์ปจํŠธ๋กค๋Ÿฌ ๊ตฌํ˜„

* refactor: accessํ† ํฐ ์žฌ๋ฐœ๊ธ‰ ํ˜•์‹ ๋ณ€๊ฒฝ

* feature: ์œ ์ € register ๊ธฐ๋Šฅ ๊ตฌํ˜„

* feature: auth.service.ts ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ

* fix: ์ด๋ฉ”์ผ ์ค‘๋ณต์‹œ ์—๋Ÿฌ ๋ฉ”์‹œ์ง€ ์ˆ˜์ •

---------

Co-authored-by: Minseong Park <52368015+pminsung12@users.noreply.github.com>

* [Server] shared-checklist ์†Œ์ผ“ ๊ตฌํ˜„ (#78)

* [Server] apple oauth api ๊ตฌํ˜„ (#86)

* chore: @nestjs/axios ์„ค์น˜

* chore: axios ์„ค์น˜

* chore: axios ์„ค์น˜

* feat: dto์ˆ˜์ •, userId ์ปฌ๋Ÿผ์ถ”๊ฐ€, providerId ์ˆ˜์ •, fullName ์ปฌ๋Ÿผ ์ถ”๊ฐ€

* feat: entity์— ๋”ฐ๋ผ dto ํ•ญ๋ชฉ ์ˆ˜์ •

* feat: apple oauth ๋กœ๊ทธ์ธ ์„œ๋น„์Šค ํ•จ์ˆ˜ ์ถ”๊ฐ€

client secret ๋งŒ๋“ค๊ณ , axios post๋กœ user ์ •๋ณด ๊ฐ€์ง€๊ณ ์˜ด.

* feat: apple oauth ๋กœ๊ทธ์ธ ์—”๋“œํฌ์ธํŠธ ์ถ”๊ฐ€

* feat: apple ์œ ์ €์—๋Œ€ํ•ด create, update ํ•จ์ˆ˜ ๊ตฌํ˜„

* feat: publicKey ๋ฐœ๊ธ‰๋ฐ›๋Š” ๋กœ์ง์ถ”๊ฐ€

* [Server] access ํ† ํฐ ์žฌ๋ฐœ๊ธ‰์‹œ ์œ ์ € ์ •๋ณด ์—†๋Š” ๋ฒ„๊ทธ ์ˆ˜์ • (#83)

* [Server] privateChecklist์˜ ๋‚ด์šฉ ์ €์žฅ api ๊ตฌํ˜„ (#88)

* [Server] apple oauth ๋กœ๊ทธ์ธ ๋กœ์ง ์ˆ˜์ • (#118)

* feat: env ์‚ฌ์šฉ๋ฐฉ์‹ ๋ณ€๊ฒฝ + idToken ๊ฒ€์ฆ๋กœ์ง ์ถ”๊ฐ€

* chore: jwk๋ฅผ pem์œผ๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ ์œ„ํ•œ jose ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ค์น˜

* chore: jose ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ œ๊ฑฐ @panva/jose ์„ค์น˜

* feat: request body๋กœ ๋“ค์–ด์˜ค๋Š” auth-user.dto.ts ์ˆ˜์ •

* feat: ์• ํ”Œ ์œ ์ € ๋“ฑ๋ก ๋กœ์ง ์ˆ˜์ •

* docs: jsdoc return type ์ˆ˜์ •

* feat: apple login ๋กœ์ง ์ˆ˜์ •(appleToken, clientSecret ๋กœ์ง ์‚ญ์ œ)

* feat: refreshAccessToken ํ•จ์ˆ˜์—์„œ refreshToken๋„ ํ•จ๊ป˜ ๋ฐ˜ํ™˜ํ•ด์ฃผ๋„๋ก ๋กœ์ง ์ˆ˜์ •

* [Server] Clova Studio api  ๊ตฌํ˜„ (#126)

* feat:  checklist-ai ๋ฆฌ์†Œ์Šค ์ƒ์„ฑ

* feat: create-checklist-items.dto.ts ์š”์ฒญ dto ์ƒ์„ฑ

* feat: ๋ฌธ์ž์—ด ๋ฐ ๊ฐ์ข… ์˜ต์…˜ ์ƒ์ˆ˜ํ™”

* feat: user-role const ํŒŒ์ผ ์‚ญ์ œ => ํ•จ์ˆ˜ํ™”

* feat: /checklist-ai POST ์š”์ฒญ api ์ƒ์„ฑ

๋Œ€,์ค‘,์†Œ ์นดํ…Œ๊ณ ๋ฆฌ๋ฅผ body๋กœ ๋ฐ›์•„์˜ค๋ฉด clova studio์—์„œ ์ฒดํฌ๋ฆฌ์ŠคํŠธ ํ•ญ๋ชฉ 10๊ฐœ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

* feat: AccessTokenGuard ๊ตฌํ˜„ ๋ฐ ์ ์šฉ (#129)

* feat: access token guard ๊ตฌํ˜„

* feat: access token guard ์ „์—ญ ์ ์šฉ

* style: access-token.guard.ts ์ฃผ์„ ์ถ”๊ฐ€

* feat: userId decorator ๊ตฌํ˜„

* feat: folders controller์— userId ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* feat: ํด๋” ์„œ๋น„์Šค์— user ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* feat: ๊ฐœ์ธ ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์ปจํŠธ๋กค๋Ÿฌ์— ์œ ์ € ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* feat: private-checklists service์— user ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* fix: ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ˆ˜์ •

* Server/feature/#128 (#139)

* feat: json ๊ตฌ์กฐ๋กœ ์นดํ…Œ๊ณ ๋ฆฌ ๋ฐ์ดํ„ฐ ์ •์˜

* feat: categories ์˜์กด์„ฑ ์ฃผ์ž…

* feat: endpoint๋งŒ๋“ค๊ณ , ์‹ค์ œ ์กด์žฌํ•˜๋Š” id์ธ์ง€ ๊ฒ€์ฆํ•˜๋Š” dto ์ƒ์„ฑ

* fix: ์˜คํƒ€์ˆ˜์ • forder->folder

* feat: param์— dto ์ ์šฉํ•˜์ง€ ๋ชปํ•ด ์‚ญ์ œ

* feat: ์นดํ…Œ๊ณ ๋ฆฌ json ๋ฐ์ดํ„ฐ ๋ณ€์ˆ˜๋ช… ๋ณ€๊ฒฝ, ๋Œ€๋ฌธ์ž๋กœ

* feat: ๋Œ€,์ค‘,์†Œ ์นดํ…Œ๊ณ ๋ฆฌ ๋ฐ˜ํ™˜ api ๊ตฌํ˜„

* test: categories.service.spec.ts ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ

* test: categories.service.spec.ts ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ˆ˜์ • ์ปค๋ฒ„๋ฆฌ์ง€ 100

* feat: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ API ๋ฐ ์†Œ์ผ“ ์ž‘์—… ๊ตฌํ˜„ (#140)

* feat: shared checklist item entity ๊ตฌํ˜„

* style: SharedChecklistItemModel ์˜คํƒ€ ์ˆ˜์ •

* feat: shared checklist id uuid๋กœ ๋ณ€๊ฒฝ

* feat: create shared checklist ๋””ํ‹ฐ์˜ค ์ˆ˜์ •

* feat: shared-checklists ์ƒ์„ฑ ๊ตฌํ˜„

* refactor: shared-checklists ์ €์žฅํ•˜๋Š” ํ•จ์ˆ˜ ๋ถ„๋ฆฌ

* feat: shared-checklists 1๊ฐœ, ์ „๋ถ€ ๊ฐ€์ ธ์˜ค๋Š” ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: ์œ ์ € ์ดˆ๋Œ€ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์‚ญ์ œ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* style: shared-checklists service ์ฃผ์„ ์ถ”๊ฐ€

* feature: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์†Œ์ผ“์— ๋ฐ์ดํ„ฐ ๋ˆ„์  ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: shared-checklists ์†Œ์ผ“ ํ†ต์‹  ์‹œ ๋ฐ์ดํ„ฐ ๋ฐ๋ฒ ์— ์ €์žฅ ๊ตฌํ˜„

* feat: ์†Œ์ผ“ ์—ฐ๊ฒฐ์‹œ ๋ฐฉ์˜ ๋ฐ์ดํ„ฐ ํžˆ์Šคํ† ๋ฆฌ๋ฅผ ์ „์†กํ•˜๋Š” ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* style: ์†Œ์ผ“ ์ฃผ์„ ์ถ”๊ฐ€

* ๐Ÿ”feat: ๊ฐœ๋ฐœ์šฉ ์ž„์‹œ๋กœ ์•ก์„ธ์Šค,๋ฆฌํ”„๋ ˆ์‹œ ํ† ํฐ๋“ค ๋งŒ๋ฃŒ๊ธฐํ•œ ์ผ์ฃผ์ผ๋กœ ์„ค์ • (#142)

* feat: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์•„์ดํ…œ ๊ถŒํ•œ ๋ฌธ์ œ ๋ฐ uuid ๋ฌธ์ œ ํ•ด๊ฒฐ (#146)

* fix: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์•„์ดํ…œ ๊ถŒํ•œ ์—†์œผ๋ฉด ์ ‘๊ทผ ๋ชปํ•˜๊ฒŒ ์ˆ˜์ •

* fix: ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์ถ”๊ฐ€์‹œ ์‚ฌ์šฉ์ž๊ฐ€ ์žˆ๋Š”์ง€ ๊ฒ€์‚ฌ

* fix: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์ƒ์„ฑ์‹œ uuid๊ฐ€ ์•„๋‹ˆ๋ฉด ์„œ๋ฒ„๊ฐ€ ์ฃฝ๋Š” ํ˜„์ƒ ์ˆ˜์ •

* style: ๋ถˆํ•„์š”ํ•œ ์ฝ”๋“œ ์ œ๊ฑฐ

* feat: ์†Œ์ผ“ ๋‹ค์ค‘ ์„œ๋ฒ„ ์ง€์›  (#159)

* chore: docker-compose.yaml์— ๋ ˆ๋””์Šค ์ถ”๊ฐ€

* chore: redis ๋ชจ๋“ˆ ์ถ”๊ฐ€

* feature: nest ๋‹ค์ค‘ ํฌํŠธ ์„œ๋ฒ„ ๊ตฌ์„ฑ

* feature: redis.module.ts ๊ตฌํ˜„ ๋ฐ ์ ์šฉ

* feature: ์†Œ์ผ“์— ๋ ˆ๋””์Šค ์‚ฝ์ž…

* feature: ์†Œ์ผ“ pub/sub ๊ตฌํ˜„

* feat: ์†Œ์ผ“ ๋ ˆ๋””์Šค์— ์ด ์ ‘์†์ž์ˆ˜ ์ฆ๊ฐ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: ์†Œ์ผ“ ํžˆ์Šคํ† ๋ฆฌ ๊ธฐ๋Šฅ ๋ ˆ๋””์Šค ์ ์šฉ

* refactor: shared-checklists.gateway.ts ๋ฆฌํŒฉํ† ๋ง

* feat: ์†Œ์ผ“ editing ์ด๋ฒคํŠธ ์ถ”๊ฐ€ (#164)

* fix: ๋ ˆ๋””์Šค ์—ฐ๊ฒฐ ์ˆ˜์ • (#168)

* [Server] object ํ˜•ํƒœ๊ฐ€ ๋“ค์–ด์˜ค๋ฉด redis์— ์ €์žฅ ์•ˆ๋˜๋Š” ๋ฌธ์ œ ์ˆ˜์ • (#171)

* ๐Ÿ›fix: ์›น์†Œ์ผ“ data๋ฅผ json์œผ๋กœ ๋ณ€๊ฒฝ ํ›„ emit

* ๐Ÿ›fix: history []์ œ๊ฑฐ

* ๐Ÿ›fix: data[0] -> data

* feat: ์›น์†Œ์ผ“ ํžˆ์Šคํ† ๋ฆฌ ๋ฒ„๊ทธ ์ˆ˜์ • ๋ฐ ์ฝ˜์†” ๋กœ๊ทธ ์ถ”๊ฐ€ (#175)

* fix: docker-compose ๋ ˆ๋””์Šค ์„ค์ • ์˜ค๋ฅ˜ ํ•ด๊ฒฐ

* feat: ์†Œ์ผ“ console.log ์ถ”๊ฐ€

* fix: ์†Œ์ผ“ ํžˆ์Šคํ† ๋ฆฌ ์ €์žฅ์‹œ ํ˜•์‹ ์˜ค๋ฅ˜ ์ˆ˜์ •

* [Server] ๋กœ๊ฑฐ ๊ธฐ๋Šฅ ํ™•๋Œ€ (#176)

* feat: no auth ๋ฒ„๊ทธ -> password ์ฃผ์„ ํ•ด์ œ

* feat: ๋กœ๊ทธ์— ํ•œ๊ตญ ์‹œ๊ฐ„๋Œ€ ์ถ”๊ฐ€

* feat: ๋กœ๊ทธํŒŒ์ผ์ด dist ๋‚ด๋ถ€์— ์กด์žฌํ•ด ํ•œ ๋‹จ๊ณ„ ์œ„๋กœ ์˜ฎ๊ฒจ์คŒ.

* feat: ์‘๋‹ต๋กœ๊ทธ๋Š” interceptor์—์„œ ์ฒ˜๋ฆฌํ•˜๋„๋ก ๋กœ์ง ์ˆ˜์ •

* feat: ๋กœ๊ทธ ์ธํ„ฐ์…‰ํ„ฐ app.module.ts ํ”„๋กœ๋ฐ”์ด๋”์— ์ถ”๊ฐ€

* ๐Ÿ›fix: redis module password ๋ถ€๋ถ„ ์ฃผ์„์ฒ˜๋ฆฌ (#180)

* [Server] ํ”ผ๋“œํ™”๋ฉด api ๊ตฌํ˜„ (#196)

* chore: import ๋ฌธ ์ตœ์ ํ™”

* feat: ํ”ผ๋“œ resource ์ƒ์„ฑ

* feat: checklist entity์— ์นดํ…Œ๊ณ ๋ฆฌ ์ปฌ๋Ÿผ ์ถ”๊ฐ€

* feat: feedmodel ์ •์˜

private checklist model์—์„œ likeCount์™€ downloadCount ์ปฌ๋Ÿผ ์ถ”๊ฐ€

* chore: ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” dto ํŒŒ์ผ ์‚ญ์ œ

* chore: ์นดํ…Œ๊ณ ๋ฆฌ ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€

* chore: ์•ˆ์“ฐ๋Š” ํ…Œ์ŠคํŠธ ํŒŒ์ผ ์‚ญ์ œ

* feat: ํ”ผ๋“œ ํ™”๋ฉด api ๊ตฌํ˜„

* feat: feeds.service.spec.ts ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ

* feat: api ์—๋Ÿฌ ํ•ธ๋“ค๋ง ๋กœ์ง ์ถ”๊ฐ€

* test: feeds.service.spec.ts ์˜ˆ์™ธ ์ผ€์ด์Šค์— ๋Œ€ํ•œ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ถ”๊ฐ€

* feat: ์—๋Ÿฌ๋ฉ”์‹œ์ง€ ์ˆ˜์ •

* feat: ๊ด€๋ฆฌ ํŽ˜์ด์ง€์™€ api ๊ตฌํ˜„ (#197)

* feat: admin resource ๊ตฌํ˜„

* feat: ๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€ ์ถ”๊ฐ€

* feat: cors ์„ค์ • ์ถ”๊ฐ€

* feat: ์ž„์‹œ๋กœ ๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€ ๊ถŒํ•œ ์ œ๊ฑฐ

* feat: admin sse api ๊ตฌํ˜„

* refactor: redis sub ์„œ๋น„์Šค ๊ตฌํ˜„

* feat: ์–ด๋“œ๋ฏผ ํŽ˜์ด์ง€ api ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: redis pub ์„œ๋น„์Šค ์ถ”๊ฐ€

* refactor: admin controller์— redis service๋กœ ๊ต์ฒด

* feat: log interceptor์— redis pub ์ถ”๊ฐ€

* refactor: channels const๋กœ ๋ถ„๋ฆฌ

* style: ๋ถˆํ•„์š”ํ•œ ์ฃผ์„ ์ œ๊ฑฐ

* feat: ws ๋กœ๊ทธ redis pub ์ถ”๊ฐ€

* feat: admin page ๋ฐ•์Šค ๋ˆ„๋ฅด๋ฉด ํŽผ์น˜๊ธฐ/์ ‘๊ธฐ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: admin ํŽ˜์ด์ง€ ์ƒ‰๊น” ๋ณ€๊ฒฝ

* feat: ๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€ ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* [Server] ํด๋ผ์ด์–ธํŠธ์™€ api ์—ฐ๋™ ์ž‘์—… (login, socket history)  (#209)

* feat: socket ๋นˆ ํžˆ์Šคํ† ๋ฆฌ๋ฉด [] ๋ณด๋‚ด๊ธฐ

* feat: ๋กœ๊ทธ์ธ์‹œ ์œ ์ € ๋‹‰๋„ค์ž„๋„ ๊ฐ™์ด ๋ณด๋‚ด์ฃผ๊ธฐ

---------

Co-authored-by: Minseong Park <52368015+pminsung12@users.noreply.github.com>
yangdongsuk added a commit that referenced this pull request Dec 10, 2023
* [Server] ๊ฐœ๋ฐœํ™˜๊ฒฝ ์„ธํŒ… (#4)

* build: open-list-server init

* chore: @nestjs/config class-validator class-transformer ์„ค์น˜

* chore: ๋ฃจํŠธ ๋ ˆ๋ฒจ์—์„œ ์„ค์น˜ํ•œ ํŒจํ‚ค์ง€ ์‚ญ์ œ

* chore: NestJs ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์„ธํŒ…

* chore: @nestjs/config class-validator class-transformer ์„ค์น˜

* Server/feature/#13 (#25)

* chore: postgresql, nestjs docker ์„ธํŒ…

* chore: @nestjs/typeorm, typeorm, pg ์„ค์น˜

* chore: Typeorm ์„ธํŒ… ๋ฐ TestModel ํ…Œ์ด๋ธ” ์ƒ์„ฑ

* ํ…Œ์ŠคํŠธ์šฉ ์œ ์ € API ๊ตฌํ˜„ (#30)

* chore: common resource ์ถ”๊ฐ€

* chore: users resource ์ถ”๊ฐ€

* feature: base entity ๊ตฌํ˜„

* feature: usersEntity ๊ตฌํ˜„

* feature: ๋ชจ๋“ˆ์— usersModel ์ถ”๊ฐ€

* style: entity,dto์˜ users -> user๋กœ ๋ณ€๊ฒฝ

* feature: CreateUserDto ๊ตฌํ˜„

* feature: userEntity ์ด๋ฉ”์ผ ํ•„๋“œ ์ถ”๊ฐ€

* feature: createUserDto ์ด๋ฉ”์ผ ํ•„๋“œ ์ถ”๊ฐ€

* feature: user patch->put์œผ๋กœ ๋ณ€๊ฒฝ

* feature: updateUserDto ๊ตฌํ˜„

* feature : create user ๊ตฌํ˜„

* feature: ๋ชจ๋“  ์œ ์ €์˜ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” API ๊ตฌํ˜„

* feature: ํŠน์ • ์œ ์ €์˜ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” API ๊ตฌํ˜„

* feature: user ์ •๋ณด ์ˆ˜์ • API ๊ตฌํ˜„

* feature: user ์‚ญ์ œ API ๊ตฌํ˜„

* feature: ValidationPipe ์ ์šฉ

* refactor: usersService ๋ฆฌํŒฉํ† ๋ง

* [Server] ์œ ๋‹› ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ ์„ธํŒ… (#32)

* chore: test ๊ฒฝ๋กœ ์„ค์ •

* feature: TestCommonModule ๊ตฌํ˜„

* feature: users.service.spec.ts ์˜์กด์„ฑ ์ฃผ์ž…

* feature: users.controller.spec.ts ์˜์กด์„ฑ ์ฃผ์ž…

* [Server] Users resource ์ด๋ฆ„ ๋ณ€๊ฒฝ (#34)

* style: usersController ๋„ค์ด๋ฐ์— ์ปจ๋ฒค์…˜ ๋งž๊ฒŒ ๋ณ€๊ฒฝ

* style: usersService ์ปจ๋ฒค์…˜์— ๋”ฐ๋ฅธ ๋„ค์ด๋ฐ ๋ณ€๊ฒฝ

* style: UsersModel -> UserModel ์ปจ๋ฒค์…˜์— ๋”ฐ๋ฅธ ๋„ค์ด๋ฐ ๋ณ€๊ฒฝ

* feature: usersService ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ (#39)

* [Server] Folder entity ์ƒ์„ฑ ๋ฐ crud ๊ตฌํ˜„ (#42)

* feat: folders crud ๊ตฌํ˜„

* chore: TestModel ์‚ญ์ œ ๋ฐ ๊ด€๋ จ๋œ ์ข…์†์„ฑ ์ œ๊ฑฐ

* feat: folders.controller.spec.ts ์‚ญ์ œ, folders.service.spec.ts ๊ตฌํ˜„

* feature: dockerํŒŒ์ผ ์ˆ˜์ • (#57)

* feat: private checklist entity ์ƒ์„ฑ ๋ฐ crud ๊ตฌํ˜„ (#61)

* chore: ๊ฐœ๋ฐœ์šฉ postgres ํฌํŠธ๋ณ€๊ฒฝ 5432->5433, .env๋„ port 5433์œผ๋กœ ๋ณ€๊ฒฝํ•„์š”

* feat: checklists res ์ƒ์„ฑ

* feat: checklist, private-checklist, shared-checklisst ์—”ํ‹ฐํ‹ฐ ์ƒ์„ฑ, user๋ชจ๋ธ๊ณผ folder๋ชจ๋ธ๊ณผ์˜ ์˜์กด๊ด€๊ณ„ ์ฃผ์ž…

* feat: author->editor๋กœ ์ˆ˜์ •, ๊ณต์œ ์ฒดํฌ๋ฆฌ์ŠคํŠธ์™€ ์‚ฌ์šฉ์ž์˜ relation์„ many to many๋กœ ์—…๋ฐ์ดํŠธ

* feat: ๊ฐœ์ธ, ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ์— ๋Œ€ํ•ด ์ƒ์„ฑ๊ณผ ์—…๋ฐ์ดํŠธ ์‹œ dto ์ƒ์„ฑ

* fix: class ์ด๋ฆ„ ์˜คํƒ€ ์ˆ˜์ •

* refactor: rest api ๋ฐฉ์‹์— ๋”ฐ๋ผ ํ•จ์ˆ˜๋ช… ๋ณ€๊ฒฝ

* feat: CheckListModel์—์„œ ์ง„ํ–‰๋ฅ  ์ปฌ๋Ÿผ ์‚ญ์ œ

* feat: folder์™€ user๊ฐ„์˜ manyToOne relation์ ์šฉ

* feat: private-checklist crud ์ž‘์„ฑ

* feat: folder service ์ปค๋ฒ„๋ฆฌ์ง€ 100 ๋‹ฌ์„ฑ

* test: private-checklist test code ์ž‘์„ฑ, ์ปค๋ฒ„๋ฆฌ์ง€ 92ํผ์„ผํŠธ

* feat: checklist ํด๋” ๋ถ„๋ฆฌ & dto ๋นˆ๋ฌธ์ž์—ด ๊ฒ€์ฆ ์ถ”๊ฐ€ (#66)

* refactor: checklists๋ฅผ private, sharedํด๋”๋กœ ๋ถ„๋ฆฌ.

* refactor: private-checklists๋ฅผ folders ํ•˜์œ„๋กœ ์ด๋™

* fix: ๋นˆ๋ฌธ์ž์—ด ๊ฒ€์ฆ ์ถ”๊ฐ€

* [Server] Winston์œผ๋กœ ๋กœ๊ทธ ๊ด€๋ฆฌ (#70)

* chore: nest-winston winston winston-daily-rotate-file ์„ค์น˜

* feat: winston logger ์„ค์ • ํŒŒ์ผ ๊ตฌํ˜„

* feat: winston logger middleware ๊ตฌํ˜„

* feat: ์š”์ฒญ logger middleware ๊ตฌํ˜„

* feat: ๋กœ๊ทธ์— ์š”์ฒญ ์ฒ˜๋ฆฌ ์‹œ๊ฐ„ ์ถ”๊ฐ€๋˜๋„๋ก ๊ฐœ์„ 

* chore: PR ํ…œํ”Œ๋ฆฟ ์ˆ˜์ •

* chore: PR ํ…œํ”Œ๋ฆฟ ์ˆ˜์ •

* feat: jwt access, refresh token ๊ธฐ๋ฐ˜ ์ธ๊ฐ€ ๊ตฌํ˜„

* chore: auth resource ์ถ”๊ฐ€

* chore: jwt ๋ชจ๋“ˆ ์ถ”๊ฐ€

* feature: signToken ๊ตฌํ˜„

* feature: ํ† ํฐ ๊ฒ€์ฆ, ํ† ํฐ ์žฌ๋ฐœ๊ธ‰ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* feature: ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* feature: ๋กœ๊ทธ์ธ ๊ด€๋ จ ์„œ๋น„์Šค ๊ตฌํ˜„

* feature: login ์ปจํŠธ๋กค๋Ÿฌ ๊ตฌํ˜„

* style: loginDto -> loginUserDto๋กœ ๋ณ€๊ฒฝ

* feature: access ํ† ํฐ ์žฌ๋ฐœ๊ธ‰ ์ปจํŠธ๋กค๋Ÿฌ ๊ตฌํ˜„

* refactor: accessํ† ํฐ ์žฌ๋ฐœ๊ธ‰ ํ˜•์‹ ๋ณ€๊ฒฝ

* feature: ์œ ์ € register ๊ธฐ๋Šฅ ๊ตฌํ˜„

* feature: auth.service.ts ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ

* fix: ์ด๋ฉ”์ผ ์ค‘๋ณต์‹œ ์—๋Ÿฌ ๋ฉ”์‹œ์ง€ ์ˆ˜์ •

---------

Co-authored-by: Minseong Park <52368015+pminsung12@users.noreply.github.com>

* [Server] shared-checklist ์†Œ์ผ“ ๊ตฌํ˜„ (#78)

* [Server] apple oauth api ๊ตฌํ˜„ (#86)

* chore: @nestjs/axios ์„ค์น˜

* chore: axios ์„ค์น˜

* chore: axios ์„ค์น˜

* feat: dto์ˆ˜์ •, userId ์ปฌ๋Ÿผ์ถ”๊ฐ€, providerId ์ˆ˜์ •, fullName ์ปฌ๋Ÿผ ์ถ”๊ฐ€

* feat: entity์— ๋”ฐ๋ผ dto ํ•ญ๋ชฉ ์ˆ˜์ •

* feat: apple oauth ๋กœ๊ทธ์ธ ์„œ๋น„์Šค ํ•จ์ˆ˜ ์ถ”๊ฐ€

client secret ๋งŒ๋“ค๊ณ , axios post๋กœ user ์ •๋ณด ๊ฐ€์ง€๊ณ ์˜ด.

* feat: apple oauth ๋กœ๊ทธ์ธ ์—”๋“œํฌ์ธํŠธ ์ถ”๊ฐ€

* feat: apple ์œ ์ €์—๋Œ€ํ•ด create, update ํ•จ์ˆ˜ ๊ตฌํ˜„

* feat: publicKey ๋ฐœ๊ธ‰๋ฐ›๋Š” ๋กœ์ง์ถ”๊ฐ€

* [Server] access ํ† ํฐ ์žฌ๋ฐœ๊ธ‰์‹œ ์œ ์ € ์ •๋ณด ์—†๋Š” ๋ฒ„๊ทธ ์ˆ˜์ • (#83)

* [Server] privateChecklist์˜ ๋‚ด์šฉ ์ €์žฅ api ๊ตฌํ˜„ (#88)

* [Server] apple oauth ๋กœ๊ทธ์ธ ๋กœ์ง ์ˆ˜์ • (#118)

* feat: env ์‚ฌ์šฉ๋ฐฉ์‹ ๋ณ€๊ฒฝ + idToken ๊ฒ€์ฆ๋กœ์ง ์ถ”๊ฐ€

* chore: jwk๋ฅผ pem์œผ๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ ์œ„ํ•œ jose ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ค์น˜

* chore: jose ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ œ๊ฑฐ @panva/jose ์„ค์น˜

* feat: request body๋กœ ๋“ค์–ด์˜ค๋Š” auth-user.dto.ts ์ˆ˜์ •

* feat: ์• ํ”Œ ์œ ์ € ๋“ฑ๋ก ๋กœ์ง ์ˆ˜์ •

* docs: jsdoc return type ์ˆ˜์ •

* feat: apple login ๋กœ์ง ์ˆ˜์ •(appleToken, clientSecret ๋กœ์ง ์‚ญ์ œ)

* feat: refreshAccessToken ํ•จ์ˆ˜์—์„œ refreshToken๋„ ํ•จ๊ป˜ ๋ฐ˜ํ™˜ํ•ด์ฃผ๋„๋ก ๋กœ์ง ์ˆ˜์ •

* [Server] Clova Studio api  ๊ตฌํ˜„ (#126)

* feat:  checklist-ai ๋ฆฌ์†Œ์Šค ์ƒ์„ฑ

* feat: create-checklist-items.dto.ts ์š”์ฒญ dto ์ƒ์„ฑ

* feat: ๋ฌธ์ž์—ด ๋ฐ ๊ฐ์ข… ์˜ต์…˜ ์ƒ์ˆ˜ํ™”

* feat: user-role const ํŒŒ์ผ ์‚ญ์ œ => ํ•จ์ˆ˜ํ™”

* feat: /checklist-ai POST ์š”์ฒญ api ์ƒ์„ฑ

๋Œ€,์ค‘,์†Œ ์นดํ…Œ๊ณ ๋ฆฌ๋ฅผ body๋กœ ๋ฐ›์•„์˜ค๋ฉด clova studio์—์„œ ์ฒดํฌ๋ฆฌ์ŠคํŠธ ํ•ญ๋ชฉ 10๊ฐœ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

* feat: AccessTokenGuard ๊ตฌํ˜„ ๋ฐ ์ ์šฉ (#129)

* feat: access token guard ๊ตฌํ˜„

* feat: access token guard ์ „์—ญ ์ ์šฉ

* style: access-token.guard.ts ์ฃผ์„ ์ถ”๊ฐ€

* feat: userId decorator ๊ตฌํ˜„

* feat: folders controller์— userId ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* feat: ํด๋” ์„œ๋น„์Šค์— user ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* feat: ๊ฐœ์ธ ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์ปจํŠธ๋กค๋Ÿฌ์— ์œ ์ € ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* feat: private-checklists service์— user ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* fix: ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ˆ˜์ •

* Server/feature/#128 (#139)

* feat: json ๊ตฌ์กฐ๋กœ ์นดํ…Œ๊ณ ๋ฆฌ ๋ฐ์ดํ„ฐ ์ •์˜

* feat: categories ์˜์กด์„ฑ ์ฃผ์ž…

* feat: endpoint๋งŒ๋“ค๊ณ , ์‹ค์ œ ์กด์žฌํ•˜๋Š” id์ธ์ง€ ๊ฒ€์ฆํ•˜๋Š” dto ์ƒ์„ฑ

* fix: ์˜คํƒ€์ˆ˜์ • forder->folder

* feat: param์— dto ์ ์šฉํ•˜์ง€ ๋ชปํ•ด ์‚ญ์ œ

* feat: ์นดํ…Œ๊ณ ๋ฆฌ json ๋ฐ์ดํ„ฐ ๋ณ€์ˆ˜๋ช… ๋ณ€๊ฒฝ, ๋Œ€๋ฌธ์ž๋กœ

* feat: ๋Œ€,์ค‘,์†Œ ์นดํ…Œ๊ณ ๋ฆฌ ๋ฐ˜ํ™˜ api ๊ตฌํ˜„

* test: categories.service.spec.ts ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ

* test: categories.service.spec.ts ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ˆ˜์ • ์ปค๋ฒ„๋ฆฌ์ง€ 100

* feat: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ API ๋ฐ ์†Œ์ผ“ ์ž‘์—… ๊ตฌํ˜„ (#140)

* feat: shared checklist item entity ๊ตฌํ˜„

* style: SharedChecklistItemModel ์˜คํƒ€ ์ˆ˜์ •

* feat: shared checklist id uuid๋กœ ๋ณ€๊ฒฝ

* feat: create shared checklist ๋””ํ‹ฐ์˜ค ์ˆ˜์ •

* feat: shared-checklists ์ƒ์„ฑ ๊ตฌํ˜„

* refactor: shared-checklists ์ €์žฅํ•˜๋Š” ํ•จ์ˆ˜ ๋ถ„๋ฆฌ

* feat: shared-checklists 1๊ฐœ, ์ „๋ถ€ ๊ฐ€์ ธ์˜ค๋Š” ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: ์œ ์ € ์ดˆ๋Œ€ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์‚ญ์ œ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* style: shared-checklists service ์ฃผ์„ ์ถ”๊ฐ€

* feature: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์†Œ์ผ“์— ๋ฐ์ดํ„ฐ ๋ˆ„์  ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: shared-checklists ์†Œ์ผ“ ํ†ต์‹  ์‹œ ๋ฐ์ดํ„ฐ ๋ฐ๋ฒ ์— ์ €์žฅ ๊ตฌํ˜„

* feat: ์†Œ์ผ“ ์—ฐ๊ฒฐ์‹œ ๋ฐฉ์˜ ๋ฐ์ดํ„ฐ ํžˆ์Šคํ† ๋ฆฌ๋ฅผ ์ „์†กํ•˜๋Š” ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* style: ์†Œ์ผ“ ์ฃผ์„ ์ถ”๊ฐ€

* ๐Ÿ”feat: ๊ฐœ๋ฐœ์šฉ ์ž„์‹œ๋กœ ์•ก์„ธ์Šค,๋ฆฌํ”„๋ ˆ์‹œ ํ† ํฐ๋“ค ๋งŒ๋ฃŒ๊ธฐํ•œ ์ผ์ฃผ์ผ๋กœ ์„ค์ • (#142)

* feat: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์•„์ดํ…œ ๊ถŒํ•œ ๋ฌธ์ œ ๋ฐ uuid ๋ฌธ์ œ ํ•ด๊ฒฐ (#146)

* fix: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์•„์ดํ…œ ๊ถŒํ•œ ์—†์œผ๋ฉด ์ ‘๊ทผ ๋ชปํ•˜๊ฒŒ ์ˆ˜์ •

* fix: ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์ถ”๊ฐ€์‹œ ์‚ฌ์šฉ์ž๊ฐ€ ์žˆ๋Š”์ง€ ๊ฒ€์‚ฌ

* fix: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์ƒ์„ฑ์‹œ uuid๊ฐ€ ์•„๋‹ˆ๋ฉด ์„œ๋ฒ„๊ฐ€ ์ฃฝ๋Š” ํ˜„์ƒ ์ˆ˜์ •

* style: ๋ถˆํ•„์š”ํ•œ ์ฝ”๋“œ ์ œ๊ฑฐ

* feat: ์†Œ์ผ“ ๋‹ค์ค‘ ์„œ๋ฒ„ ์ง€์›  (#159)

* chore: docker-compose.yaml์— ๋ ˆ๋””์Šค ์ถ”๊ฐ€

* chore: redis ๋ชจ๋“ˆ ์ถ”๊ฐ€

* feature: nest ๋‹ค์ค‘ ํฌํŠธ ์„œ๋ฒ„ ๊ตฌ์„ฑ

* feature: redis.module.ts ๊ตฌํ˜„ ๋ฐ ์ ์šฉ

* feature: ์†Œ์ผ“์— ๋ ˆ๋””์Šค ์‚ฝ์ž…

* feature: ์†Œ์ผ“ pub/sub ๊ตฌํ˜„

* feat: ์†Œ์ผ“ ๋ ˆ๋””์Šค์— ์ด ์ ‘์†์ž์ˆ˜ ์ฆ๊ฐ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: ์†Œ์ผ“ ํžˆ์Šคํ† ๋ฆฌ ๊ธฐ๋Šฅ ๋ ˆ๋””์Šค ์ ์šฉ

* refactor: shared-checklists.gateway.ts ๋ฆฌํŒฉํ† ๋ง

* feat: ์†Œ์ผ“ editing ์ด๋ฒคํŠธ ์ถ”๊ฐ€ (#164)

* fix: ๋ ˆ๋””์Šค ์—ฐ๊ฒฐ ์ˆ˜์ • (#168)

* [Server] object ํ˜•ํƒœ๊ฐ€ ๋“ค์–ด์˜ค๋ฉด redis์— ์ €์žฅ ์•ˆ๋˜๋Š” ๋ฌธ์ œ ์ˆ˜์ • (#171)

* ๐Ÿ›fix: ์›น์†Œ์ผ“ data๋ฅผ json์œผ๋กœ ๋ณ€๊ฒฝ ํ›„ emit

* ๐Ÿ›fix: history []์ œ๊ฑฐ

* ๐Ÿ›fix: data[0] -> data

* feat: ์›น์†Œ์ผ“ ํžˆ์Šคํ† ๋ฆฌ ๋ฒ„๊ทธ ์ˆ˜์ • ๋ฐ ์ฝ˜์†” ๋กœ๊ทธ ์ถ”๊ฐ€ (#175)

* fix: docker-compose ๋ ˆ๋””์Šค ์„ค์ • ์˜ค๋ฅ˜ ํ•ด๊ฒฐ

* feat: ์†Œ์ผ“ console.log ์ถ”๊ฐ€

* fix: ์†Œ์ผ“ ํžˆ์Šคํ† ๋ฆฌ ์ €์žฅ์‹œ ํ˜•์‹ ์˜ค๋ฅ˜ ์ˆ˜์ •

* [Server] ๋กœ๊ฑฐ ๊ธฐ๋Šฅ ํ™•๋Œ€ (#176)

* feat: no auth ๋ฒ„๊ทธ -> password ์ฃผ์„ ํ•ด์ œ

* feat: ๋กœ๊ทธ์— ํ•œ๊ตญ ์‹œ๊ฐ„๋Œ€ ์ถ”๊ฐ€

* feat: ๋กœ๊ทธํŒŒ์ผ์ด dist ๋‚ด๋ถ€์— ์กด์žฌํ•ด ํ•œ ๋‹จ๊ณ„ ์œ„๋กœ ์˜ฎ๊ฒจ์คŒ.

* feat: ์‘๋‹ต๋กœ๊ทธ๋Š” interceptor์—์„œ ์ฒ˜๋ฆฌํ•˜๋„๋ก ๋กœ์ง ์ˆ˜์ •

* feat: ๋กœ๊ทธ ์ธํ„ฐ์…‰ํ„ฐ app.module.ts ํ”„๋กœ๋ฐ”์ด๋”์— ์ถ”๊ฐ€

* ๐Ÿ›fix: redis module password ๋ถ€๋ถ„ ์ฃผ์„์ฒ˜๋ฆฌ (#180)

* [Server] ํ”ผ๋“œํ™”๋ฉด api ๊ตฌํ˜„ (#196)

* chore: import ๋ฌธ ์ตœ์ ํ™”

* feat: ํ”ผ๋“œ resource ์ƒ์„ฑ

* feat: checklist entity์— ์นดํ…Œ๊ณ ๋ฆฌ ์ปฌ๋Ÿผ ์ถ”๊ฐ€

* feat: feedmodel ์ •์˜

private checklist model์—์„œ likeCount์™€ downloadCount ์ปฌ๋Ÿผ ์ถ”๊ฐ€

* chore: ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” dto ํŒŒ์ผ ์‚ญ์ œ

* chore: ์นดํ…Œ๊ณ ๋ฆฌ ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€

* chore: ์•ˆ์“ฐ๋Š” ํ…Œ์ŠคํŠธ ํŒŒ์ผ ์‚ญ์ œ

* feat: ํ”ผ๋“œ ํ™”๋ฉด api ๊ตฌํ˜„

* feat: feeds.service.spec.ts ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ

* feat: api ์—๋Ÿฌ ํ•ธ๋“ค๋ง ๋กœ์ง ์ถ”๊ฐ€

* test: feeds.service.spec.ts ์˜ˆ์™ธ ์ผ€์ด์Šค์— ๋Œ€ํ•œ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ถ”๊ฐ€

* feat: ์—๋Ÿฌ๋ฉ”์‹œ์ง€ ์ˆ˜์ •

* feat: ๊ด€๋ฆฌ ํŽ˜์ด์ง€์™€ api ๊ตฌํ˜„ (#197)

* feat: admin resource ๊ตฌํ˜„

* feat: ๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€ ์ถ”๊ฐ€

* feat: cors ์„ค์ • ์ถ”๊ฐ€

* feat: ์ž„์‹œ๋กœ ๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€ ๊ถŒํ•œ ์ œ๊ฑฐ

* feat: admin sse api ๊ตฌํ˜„

* refactor: redis sub ์„œ๋น„์Šค ๊ตฌํ˜„

* feat: ์–ด๋“œ๋ฏผ ํŽ˜์ด์ง€ api ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: redis pub ์„œ๋น„์Šค ์ถ”๊ฐ€

* refactor: admin controller์— redis service๋กœ ๊ต์ฒด

* feat: log interceptor์— redis pub ์ถ”๊ฐ€

* refactor: channels const๋กœ ๋ถ„๋ฆฌ

* style: ๋ถˆํ•„์š”ํ•œ ์ฃผ์„ ์ œ๊ฑฐ

* feat: ws ๋กœ๊ทธ redis pub ์ถ”๊ฐ€

* feat: admin page ๋ฐ•์Šค ๋ˆ„๋ฅด๋ฉด ํŽผ์น˜๊ธฐ/์ ‘๊ธฐ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: admin ํŽ˜์ด์ง€ ์ƒ‰๊น” ๋ณ€๊ฒฝ

* feat: ๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€ ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* [Server] ํด๋ผ์ด์–ธํŠธ์™€ api ์—ฐ๋™ ์ž‘์—… (login, socket history)  (#209)

* feat: socket ๋นˆ ํžˆ์Šคํ† ๋ฆฌ๋ฉด [] ๋ณด๋‚ด๊ธฐ

* feat: ๋กœ๊ทธ์ธ์‹œ ์œ ์ € ๋‹‰๋„ค์ž„๋„ ๊ฐ™์ด ๋ณด๋‚ด์ฃผ๊ธฐ

* [Server] ai์™€ ๊ด€๋ จํ•œ db ๊ตฌ์กฐ ๊ฐœ์„  (#220)

* refactor: ๊ฒฝ๋กœ ์ด๋ฆ„ ์ˆ˜์ • entity->entities

* feat: category ์—”ํ‹ฐํ‹ฐ ์ƒ์„ฑ

* feat: reason ๋ชจ๋ธ ์ƒ์„ฑ ๋ฐ ๊ฐ ํ…Œ์ด๋ธ” relation ์„ค์ •

* feat: ๊ฐ ํ…Œ์ด๋ธ” relation ์ˆ˜์ • ๋ฐ ์˜์กด์„ฑ ์ฃผ์ž…

* feat: relation ๋ฐฉ์‹ ๋ณ€๊ฒฝ์œผ๋กœ ์ธํ•œfolders.service.ts ๋ฉ”์„œ๋“œ ์ˆ˜์ •, ์˜์กด์„ฑ ์ฃผ์ž…

* feat: admin ํŽ˜์ด์ง€ ํ•ญ๋ชฉ ์ž๋™ ์ถ”๊ฐ€ , ์‹œ์Šคํ…œ ์ƒํƒœ ๊ทธ๋ž˜ํ”„ ์ถ”๊ฐ€ (#223)

* feat: serverStatus ํ™•์ธ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: serverStatus ํ™•์ธ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: ๋ชจ๋“  ๊ตฌ๋…์„ ๋ฐ›์•„์˜ค๋Š” ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* chore: ๋ถˆํ•„์š”ํ•œ ์ƒ์ˆ˜ ์ œ๊ฑฐ

* feat: admin page ์„œ๋ฒ„ ์ƒํƒœ ํ™•์ธ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

---------

Co-authored-by: Minseong Park <52368015+pminsung12@users.noreply.github.com>
yangdongsuk added a commit that referenced this pull request Dec 10, 2023
* [Server] ๊ฐœ๋ฐœํ™˜๊ฒฝ ์„ธํŒ… (#4)

* build: open-list-server init

* chore: @nestjs/config class-validator class-transformer ์„ค์น˜

* chore: ๋ฃจํŠธ ๋ ˆ๋ฒจ์—์„œ ์„ค์น˜ํ•œ ํŒจํ‚ค์ง€ ์‚ญ์ œ

* chore: NestJs ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์„ธํŒ…

* chore: @nestjs/config class-validator class-transformer ์„ค์น˜

* Server/feature/#13 (#25)

* chore: postgresql, nestjs docker ์„ธํŒ…

* chore: @nestjs/typeorm, typeorm, pg ์„ค์น˜

* chore: Typeorm ์„ธํŒ… ๋ฐ TestModel ํ…Œ์ด๋ธ” ์ƒ์„ฑ

* ํ…Œ์ŠคํŠธ์šฉ ์œ ์ € API ๊ตฌํ˜„ (#30)

* chore: common resource ์ถ”๊ฐ€

* chore: users resource ์ถ”๊ฐ€

* feature: base entity ๊ตฌํ˜„

* feature: usersEntity ๊ตฌํ˜„

* feature: ๋ชจ๋“ˆ์— usersModel ์ถ”๊ฐ€

* style: entity,dto์˜ users -> user๋กœ ๋ณ€๊ฒฝ

* feature: CreateUserDto ๊ตฌํ˜„

* feature: userEntity ์ด๋ฉ”์ผ ํ•„๋“œ ์ถ”๊ฐ€

* feature: createUserDto ์ด๋ฉ”์ผ ํ•„๋“œ ์ถ”๊ฐ€

* feature: user patch->put์œผ๋กœ ๋ณ€๊ฒฝ

* feature: updateUserDto ๊ตฌํ˜„

* feature : create user ๊ตฌํ˜„

* feature: ๋ชจ๋“  ์œ ์ €์˜ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” API ๊ตฌํ˜„

* feature: ํŠน์ • ์œ ์ €์˜ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” API ๊ตฌํ˜„

* feature: user ์ •๋ณด ์ˆ˜์ • API ๊ตฌํ˜„

* feature: user ์‚ญ์ œ API ๊ตฌํ˜„

* feature: ValidationPipe ์ ์šฉ

* refactor: usersService ๋ฆฌํŒฉํ† ๋ง

* [Server] ์œ ๋‹› ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ ์„ธํŒ… (#32)

* chore: test ๊ฒฝ๋กœ ์„ค์ •

* feature: TestCommonModule ๊ตฌํ˜„

* feature: users.service.spec.ts ์˜์กด์„ฑ ์ฃผ์ž…

* feature: users.controller.spec.ts ์˜์กด์„ฑ ์ฃผ์ž…

* [Server] Users resource ์ด๋ฆ„ ๋ณ€๊ฒฝ (#34)

* style: usersController ๋„ค์ด๋ฐ์— ์ปจ๋ฒค์…˜ ๋งž๊ฒŒ ๋ณ€๊ฒฝ

* style: usersService ์ปจ๋ฒค์…˜์— ๋”ฐ๋ฅธ ๋„ค์ด๋ฐ ๋ณ€๊ฒฝ

* style: UsersModel -> UserModel ์ปจ๋ฒค์…˜์— ๋”ฐ๋ฅธ ๋„ค์ด๋ฐ ๋ณ€๊ฒฝ

* feature: usersService ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ (#39)

* [Server] Folder entity ์ƒ์„ฑ ๋ฐ crud ๊ตฌํ˜„ (#42)

* feat: folders crud ๊ตฌํ˜„

* chore: TestModel ์‚ญ์ œ ๋ฐ ๊ด€๋ จ๋œ ์ข…์†์„ฑ ์ œ๊ฑฐ

* feat: folders.controller.spec.ts ์‚ญ์ œ, folders.service.spec.ts ๊ตฌํ˜„

* feature: dockerํŒŒ์ผ ์ˆ˜์ • (#57)

* feat: private checklist entity ์ƒ์„ฑ ๋ฐ crud ๊ตฌํ˜„ (#61)

* chore: ๊ฐœ๋ฐœ์šฉ postgres ํฌํŠธ๋ณ€๊ฒฝ 5432->5433, .env๋„ port 5433์œผ๋กœ ๋ณ€๊ฒฝํ•„์š”

* feat: checklists res ์ƒ์„ฑ

* feat: checklist, private-checklist, shared-checklisst ์—”ํ‹ฐํ‹ฐ ์ƒ์„ฑ, user๋ชจ๋ธ๊ณผ folder๋ชจ๋ธ๊ณผ์˜ ์˜์กด๊ด€๊ณ„ ์ฃผ์ž…

* feat: author->editor๋กœ ์ˆ˜์ •, ๊ณต์œ ์ฒดํฌ๋ฆฌ์ŠคํŠธ์™€ ์‚ฌ์šฉ์ž์˜ relation์„ many to many๋กœ ์—…๋ฐ์ดํŠธ

* feat: ๊ฐœ์ธ, ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ์— ๋Œ€ํ•ด ์ƒ์„ฑ๊ณผ ์—…๋ฐ์ดํŠธ ์‹œ dto ์ƒ์„ฑ

* fix: class ์ด๋ฆ„ ์˜คํƒ€ ์ˆ˜์ •

* refactor: rest api ๋ฐฉ์‹์— ๋”ฐ๋ผ ํ•จ์ˆ˜๋ช… ๋ณ€๊ฒฝ

* feat: CheckListModel์—์„œ ์ง„ํ–‰๋ฅ  ์ปฌ๋Ÿผ ์‚ญ์ œ

* feat: folder์™€ user๊ฐ„์˜ manyToOne relation์ ์šฉ

* feat: private-checklist crud ์ž‘์„ฑ

* feat: folder service ์ปค๋ฒ„๋ฆฌ์ง€ 100 ๋‹ฌ์„ฑ

* test: private-checklist test code ์ž‘์„ฑ, ์ปค๋ฒ„๋ฆฌ์ง€ 92ํผ์„ผํŠธ

* feat: checklist ํด๋” ๋ถ„๋ฆฌ & dto ๋นˆ๋ฌธ์ž์—ด ๊ฒ€์ฆ ์ถ”๊ฐ€ (#66)

* refactor: checklists๋ฅผ private, sharedํด๋”๋กœ ๋ถ„๋ฆฌ.

* refactor: private-checklists๋ฅผ folders ํ•˜์œ„๋กœ ์ด๋™

* fix: ๋นˆ๋ฌธ์ž์—ด ๊ฒ€์ฆ ์ถ”๊ฐ€

* [Server] Winston์œผ๋กœ ๋กœ๊ทธ ๊ด€๋ฆฌ (#70)

* chore: nest-winston winston winston-daily-rotate-file ์„ค์น˜

* feat: winston logger ์„ค์ • ํŒŒ์ผ ๊ตฌํ˜„

* feat: winston logger middleware ๊ตฌํ˜„

* feat: ์š”์ฒญ logger middleware ๊ตฌํ˜„

* feat: ๋กœ๊ทธ์— ์š”์ฒญ ์ฒ˜๋ฆฌ ์‹œ๊ฐ„ ์ถ”๊ฐ€๋˜๋„๋ก ๊ฐœ์„ 

* chore: PR ํ…œํ”Œ๋ฆฟ ์ˆ˜์ •

* chore: PR ํ…œํ”Œ๋ฆฟ ์ˆ˜์ •

* feat: jwt access, refresh token ๊ธฐ๋ฐ˜ ์ธ๊ฐ€ ๊ตฌํ˜„

* chore: auth resource ์ถ”๊ฐ€

* chore: jwt ๋ชจ๋“ˆ ์ถ”๊ฐ€

* feature: signToken ๊ตฌํ˜„

* feature: ํ† ํฐ ๊ฒ€์ฆ, ํ† ํฐ ์žฌ๋ฐœ๊ธ‰ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* feature: ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* feature: ๋กœ๊ทธ์ธ ๊ด€๋ จ ์„œ๋น„์Šค ๊ตฌํ˜„

* feature: login ์ปจํŠธ๋กค๋Ÿฌ ๊ตฌํ˜„

* style: loginDto -> loginUserDto๋กœ ๋ณ€๊ฒฝ

* feature: access ํ† ํฐ ์žฌ๋ฐœ๊ธ‰ ์ปจํŠธ๋กค๋Ÿฌ ๊ตฌํ˜„

* refactor: accessํ† ํฐ ์žฌ๋ฐœ๊ธ‰ ํ˜•์‹ ๋ณ€๊ฒฝ

* feature: ์œ ์ € register ๊ธฐ๋Šฅ ๊ตฌํ˜„

* feature: auth.service.ts ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ

* fix: ์ด๋ฉ”์ผ ์ค‘๋ณต์‹œ ์—๋Ÿฌ ๋ฉ”์‹œ์ง€ ์ˆ˜์ •

---------

Co-authored-by: Minseong Park <52368015+pminsung12@users.noreply.github.com>

* [Server] shared-checklist ์†Œ์ผ“ ๊ตฌํ˜„ (#78)

* [Server] apple oauth api ๊ตฌํ˜„ (#86)

* chore: @nestjs/axios ์„ค์น˜

* chore: axios ์„ค์น˜

* chore: axios ์„ค์น˜

* feat: dto์ˆ˜์ •, userId ์ปฌ๋Ÿผ์ถ”๊ฐ€, providerId ์ˆ˜์ •, fullName ์ปฌ๋Ÿผ ์ถ”๊ฐ€

* feat: entity์— ๋”ฐ๋ผ dto ํ•ญ๋ชฉ ์ˆ˜์ •

* feat: apple oauth ๋กœ๊ทธ์ธ ์„œ๋น„์Šค ํ•จ์ˆ˜ ์ถ”๊ฐ€

client secret ๋งŒ๋“ค๊ณ , axios post๋กœ user ์ •๋ณด ๊ฐ€์ง€๊ณ ์˜ด.

* feat: apple oauth ๋กœ๊ทธ์ธ ์—”๋“œํฌ์ธํŠธ ์ถ”๊ฐ€

* feat: apple ์œ ์ €์—๋Œ€ํ•ด create, update ํ•จ์ˆ˜ ๊ตฌํ˜„

* feat: publicKey ๋ฐœ๊ธ‰๋ฐ›๋Š” ๋กœ์ง์ถ”๊ฐ€

* [Server] access ํ† ํฐ ์žฌ๋ฐœ๊ธ‰์‹œ ์œ ์ € ์ •๋ณด ์—†๋Š” ๋ฒ„๊ทธ ์ˆ˜์ • (#83)

* [Server] privateChecklist์˜ ๋‚ด์šฉ ์ €์žฅ api ๊ตฌํ˜„ (#88)

* [Server] apple oauth ๋กœ๊ทธ์ธ ๋กœ์ง ์ˆ˜์ • (#118)

* feat: env ์‚ฌ์šฉ๋ฐฉ์‹ ๋ณ€๊ฒฝ + idToken ๊ฒ€์ฆ๋กœ์ง ์ถ”๊ฐ€

* chore: jwk๋ฅผ pem์œผ๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ ์œ„ํ•œ jose ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ค์น˜

* chore: jose ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ œ๊ฑฐ @panva/jose ์„ค์น˜

* feat: request body๋กœ ๋“ค์–ด์˜ค๋Š” auth-user.dto.ts ์ˆ˜์ •

* feat: ์• ํ”Œ ์œ ์ € ๋“ฑ๋ก ๋กœ์ง ์ˆ˜์ •

* docs: jsdoc return type ์ˆ˜์ •

* feat: apple login ๋กœ์ง ์ˆ˜์ •(appleToken, clientSecret ๋กœ์ง ์‚ญ์ œ)

* feat: refreshAccessToken ํ•จ์ˆ˜์—์„œ refreshToken๋„ ํ•จ๊ป˜ ๋ฐ˜ํ™˜ํ•ด์ฃผ๋„๋ก ๋กœ์ง ์ˆ˜์ •

* [Server] Clova Studio api  ๊ตฌํ˜„ (#126)

* feat:  checklist-ai ๋ฆฌ์†Œ์Šค ์ƒ์„ฑ

* feat: create-checklist-items.dto.ts ์š”์ฒญ dto ์ƒ์„ฑ

* feat: ๋ฌธ์ž์—ด ๋ฐ ๊ฐ์ข… ์˜ต์…˜ ์ƒ์ˆ˜ํ™”

* feat: user-role const ํŒŒ์ผ ์‚ญ์ œ => ํ•จ์ˆ˜ํ™”

* feat: /checklist-ai POST ์š”์ฒญ api ์ƒ์„ฑ

๋Œ€,์ค‘,์†Œ ์นดํ…Œ๊ณ ๋ฆฌ๋ฅผ body๋กœ ๋ฐ›์•„์˜ค๋ฉด clova studio์—์„œ ์ฒดํฌ๋ฆฌ์ŠคํŠธ ํ•ญ๋ชฉ 10๊ฐœ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

* feat: AccessTokenGuard ๊ตฌํ˜„ ๋ฐ ์ ์šฉ (#129)

* feat: access token guard ๊ตฌํ˜„

* feat: access token guard ์ „์—ญ ์ ์šฉ

* style: access-token.guard.ts ์ฃผ์„ ์ถ”๊ฐ€

* feat: userId decorator ๊ตฌํ˜„

* feat: folders controller์— userId ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* feat: ํด๋” ์„œ๋น„์Šค์— user ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* feat: ๊ฐœ์ธ ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์ปจํŠธ๋กค๋Ÿฌ์— ์œ ์ € ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* feat: private-checklists service์— user ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* fix: ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ˆ˜์ •

* Server/feature/#128 (#139)

* feat: json ๊ตฌ์กฐ๋กœ ์นดํ…Œ๊ณ ๋ฆฌ ๋ฐ์ดํ„ฐ ์ •์˜

* feat: categories ์˜์กด์„ฑ ์ฃผ์ž…

* feat: endpoint๋งŒ๋“ค๊ณ , ์‹ค์ œ ์กด์žฌํ•˜๋Š” id์ธ์ง€ ๊ฒ€์ฆํ•˜๋Š” dto ์ƒ์„ฑ

* fix: ์˜คํƒ€์ˆ˜์ • forder->folder

* feat: param์— dto ์ ์šฉํ•˜์ง€ ๋ชปํ•ด ์‚ญ์ œ

* feat: ์นดํ…Œ๊ณ ๋ฆฌ json ๋ฐ์ดํ„ฐ ๋ณ€์ˆ˜๋ช… ๋ณ€๊ฒฝ, ๋Œ€๋ฌธ์ž๋กœ

* feat: ๋Œ€,์ค‘,์†Œ ์นดํ…Œ๊ณ ๋ฆฌ ๋ฐ˜ํ™˜ api ๊ตฌํ˜„

* test: categories.service.spec.ts ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ

* test: categories.service.spec.ts ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ˆ˜์ • ์ปค๋ฒ„๋ฆฌ์ง€ 100

* feat: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ API ๋ฐ ์†Œ์ผ“ ์ž‘์—… ๊ตฌํ˜„ (#140)

* feat: shared checklist item entity ๊ตฌํ˜„

* style: SharedChecklistItemModel ์˜คํƒ€ ์ˆ˜์ •

* feat: shared checklist id uuid๋กœ ๋ณ€๊ฒฝ

* feat: create shared checklist ๋””ํ‹ฐ์˜ค ์ˆ˜์ •

* feat: shared-checklists ์ƒ์„ฑ ๊ตฌํ˜„

* refactor: shared-checklists ์ €์žฅํ•˜๋Š” ํ•จ์ˆ˜ ๋ถ„๋ฆฌ

* feat: shared-checklists 1๊ฐœ, ์ „๋ถ€ ๊ฐ€์ ธ์˜ค๋Š” ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: ์œ ์ € ์ดˆ๋Œ€ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์‚ญ์ œ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* style: shared-checklists service ์ฃผ์„ ์ถ”๊ฐ€

* feature: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์†Œ์ผ“์— ๋ฐ์ดํ„ฐ ๋ˆ„์  ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: shared-checklists ์†Œ์ผ“ ํ†ต์‹  ์‹œ ๋ฐ์ดํ„ฐ ๋ฐ๋ฒ ์— ์ €์žฅ ๊ตฌํ˜„

* feat: ์†Œ์ผ“ ์—ฐ๊ฒฐ์‹œ ๋ฐฉ์˜ ๋ฐ์ดํ„ฐ ํžˆ์Šคํ† ๋ฆฌ๋ฅผ ์ „์†กํ•˜๋Š” ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* style: ์†Œ์ผ“ ์ฃผ์„ ์ถ”๊ฐ€

* ๐Ÿ”feat: ๊ฐœ๋ฐœ์šฉ ์ž„์‹œ๋กœ ์•ก์„ธ์Šค,๋ฆฌํ”„๋ ˆ์‹œ ํ† ํฐ๋“ค ๋งŒ๋ฃŒ๊ธฐํ•œ ์ผ์ฃผ์ผ๋กœ ์„ค์ • (#142)

* feat: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์•„์ดํ…œ ๊ถŒํ•œ ๋ฌธ์ œ ๋ฐ uuid ๋ฌธ์ œ ํ•ด๊ฒฐ (#146)

* fix: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์•„์ดํ…œ ๊ถŒํ•œ ์—†์œผ๋ฉด ์ ‘๊ทผ ๋ชปํ•˜๊ฒŒ ์ˆ˜์ •

* fix: ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์ถ”๊ฐ€์‹œ ์‚ฌ์šฉ์ž๊ฐ€ ์žˆ๋Š”์ง€ ๊ฒ€์‚ฌ

* fix: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์ƒ์„ฑ์‹œ uuid๊ฐ€ ์•„๋‹ˆ๋ฉด ์„œ๋ฒ„๊ฐ€ ์ฃฝ๋Š” ํ˜„์ƒ ์ˆ˜์ •

* style: ๋ถˆํ•„์š”ํ•œ ์ฝ”๋“œ ์ œ๊ฑฐ

* feat: ์†Œ์ผ“ ๋‹ค์ค‘ ์„œ๋ฒ„ ์ง€์›  (#159)

* chore: docker-compose.yaml์— ๋ ˆ๋””์Šค ์ถ”๊ฐ€

* chore: redis ๋ชจ๋“ˆ ์ถ”๊ฐ€

* feature: nest ๋‹ค์ค‘ ํฌํŠธ ์„œ๋ฒ„ ๊ตฌ์„ฑ

* feature: redis.module.ts ๊ตฌํ˜„ ๋ฐ ์ ์šฉ

* feature: ์†Œ์ผ“์— ๋ ˆ๋””์Šค ์‚ฝ์ž…

* feature: ์†Œ์ผ“ pub/sub ๊ตฌํ˜„

* feat: ์†Œ์ผ“ ๋ ˆ๋””์Šค์— ์ด ์ ‘์†์ž์ˆ˜ ์ฆ๊ฐ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: ์†Œ์ผ“ ํžˆ์Šคํ† ๋ฆฌ ๊ธฐ๋Šฅ ๋ ˆ๋””์Šค ์ ์šฉ

* refactor: shared-checklists.gateway.ts ๋ฆฌํŒฉํ† ๋ง

* feat: ์†Œ์ผ“ editing ์ด๋ฒคํŠธ ์ถ”๊ฐ€ (#164)

* fix: ๋ ˆ๋””์Šค ์—ฐ๊ฒฐ ์ˆ˜์ • (#168)

* [Server] object ํ˜•ํƒœ๊ฐ€ ๋“ค์–ด์˜ค๋ฉด redis์— ์ €์žฅ ์•ˆ๋˜๋Š” ๋ฌธ์ œ ์ˆ˜์ • (#171)

* ๐Ÿ›fix: ์›น์†Œ์ผ“ data๋ฅผ json์œผ๋กœ ๋ณ€๊ฒฝ ํ›„ emit

* ๐Ÿ›fix: history []์ œ๊ฑฐ

* ๐Ÿ›fix: data[0] -> data

* feat: ์›น์†Œ์ผ“ ํžˆ์Šคํ† ๋ฆฌ ๋ฒ„๊ทธ ์ˆ˜์ • ๋ฐ ์ฝ˜์†” ๋กœ๊ทธ ์ถ”๊ฐ€ (#175)

* fix: docker-compose ๋ ˆ๋””์Šค ์„ค์ • ์˜ค๋ฅ˜ ํ•ด๊ฒฐ

* feat: ์†Œ์ผ“ console.log ์ถ”๊ฐ€

* fix: ์†Œ์ผ“ ํžˆ์Šคํ† ๋ฆฌ ์ €์žฅ์‹œ ํ˜•์‹ ์˜ค๋ฅ˜ ์ˆ˜์ •

* [Server] ๋กœ๊ฑฐ ๊ธฐ๋Šฅ ํ™•๋Œ€ (#176)

* feat: no auth ๋ฒ„๊ทธ -> password ์ฃผ์„ ํ•ด์ œ

* feat: ๋กœ๊ทธ์— ํ•œ๊ตญ ์‹œ๊ฐ„๋Œ€ ์ถ”๊ฐ€

* feat: ๋กœ๊ทธํŒŒ์ผ์ด dist ๋‚ด๋ถ€์— ์กด์žฌํ•ด ํ•œ ๋‹จ๊ณ„ ์œ„๋กœ ์˜ฎ๊ฒจ์คŒ.

* feat: ์‘๋‹ต๋กœ๊ทธ๋Š” interceptor์—์„œ ์ฒ˜๋ฆฌํ•˜๋„๋ก ๋กœ์ง ์ˆ˜์ •

* feat: ๋กœ๊ทธ ์ธํ„ฐ์…‰ํ„ฐ app.module.ts ํ”„๋กœ๋ฐ”์ด๋”์— ์ถ”๊ฐ€

* ๐Ÿ›fix: redis module password ๋ถ€๋ถ„ ์ฃผ์„์ฒ˜๋ฆฌ (#180)

* [Server] ํ”ผ๋“œํ™”๋ฉด api ๊ตฌํ˜„ (#196)

* chore: import ๋ฌธ ์ตœ์ ํ™”

* feat: ํ”ผ๋“œ resource ์ƒ์„ฑ

* feat: checklist entity์— ์นดํ…Œ๊ณ ๋ฆฌ ์ปฌ๋Ÿผ ์ถ”๊ฐ€

* feat: feedmodel ์ •์˜

private checklist model์—์„œ likeCount์™€ downloadCount ์ปฌ๋Ÿผ ์ถ”๊ฐ€

* chore: ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” dto ํŒŒ์ผ ์‚ญ์ œ

* chore: ์นดํ…Œ๊ณ ๋ฆฌ ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€

* chore: ์•ˆ์“ฐ๋Š” ํ…Œ์ŠคํŠธ ํŒŒ์ผ ์‚ญ์ œ

* feat: ํ”ผ๋“œ ํ™”๋ฉด api ๊ตฌํ˜„

* feat: feeds.service.spec.ts ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ

* feat: api ์—๋Ÿฌ ํ•ธ๋“ค๋ง ๋กœ์ง ์ถ”๊ฐ€

* test: feeds.service.spec.ts ์˜ˆ์™ธ ์ผ€์ด์Šค์— ๋Œ€ํ•œ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ถ”๊ฐ€

* feat: ์—๋Ÿฌ๋ฉ”์‹œ์ง€ ์ˆ˜์ •

* feat: ๊ด€๋ฆฌ ํŽ˜์ด์ง€์™€ api ๊ตฌํ˜„ (#197)

* feat: admin resource ๊ตฌํ˜„

* feat: ๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€ ์ถ”๊ฐ€

* feat: cors ์„ค์ • ์ถ”๊ฐ€

* feat: ์ž„์‹œ๋กœ ๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€ ๊ถŒํ•œ ์ œ๊ฑฐ

* feat: admin sse api ๊ตฌํ˜„

* refactor: redis sub ์„œ๋น„์Šค ๊ตฌํ˜„

* feat: ์–ด๋“œ๋ฏผ ํŽ˜์ด์ง€ api ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: redis pub ์„œ๋น„์Šค ์ถ”๊ฐ€

* refactor: admin controller์— redis service๋กœ ๊ต์ฒด

* feat: log interceptor์— redis pub ์ถ”๊ฐ€

* refactor: channels const๋กœ ๋ถ„๋ฆฌ

* style: ๋ถˆํ•„์š”ํ•œ ์ฃผ์„ ์ œ๊ฑฐ

* feat: ws ๋กœ๊ทธ redis pub ์ถ”๊ฐ€

* feat: admin page ๋ฐ•์Šค ๋ˆ„๋ฅด๋ฉด ํŽผ์น˜๊ธฐ/์ ‘๊ธฐ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: admin ํŽ˜์ด์ง€ ์ƒ‰๊น” ๋ณ€๊ฒฝ

* feat: ๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€ ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* [Server] ํด๋ผ์ด์–ธํŠธ์™€ api ์—ฐ๋™ ์ž‘์—… (login, socket history)  (#209)

* feat: socket ๋นˆ ํžˆ์Šคํ† ๋ฆฌ๋ฉด [] ๋ณด๋‚ด๊ธฐ

* feat: ๋กœ๊ทธ์ธ์‹œ ์œ ์ € ๋‹‰๋„ค์ž„๋„ ๊ฐ™์ด ๋ณด๋‚ด์ฃผ๊ธฐ

* [Server] ai์™€ ๊ด€๋ จํ•œ db ๊ตฌ์กฐ ๊ฐœ์„  (#220)

* refactor: ๊ฒฝ๋กœ ์ด๋ฆ„ ์ˆ˜์ • entity->entities

* feat: category ์—”ํ‹ฐํ‹ฐ ์ƒ์„ฑ

* feat: reason ๋ชจ๋ธ ์ƒ์„ฑ ๋ฐ ๊ฐ ํ…Œ์ด๋ธ” relation ์„ค์ •

* feat: ๊ฐ ํ…Œ์ด๋ธ” relation ์ˆ˜์ • ๋ฐ ์˜์กด์„ฑ ์ฃผ์ž…

* feat: relation ๋ฐฉ์‹ ๋ณ€๊ฒฝ์œผ๋กœ ์ธํ•œfolders.service.ts ๋ฉ”์„œ๋“œ ์ˆ˜์ •, ์˜์กด์„ฑ ์ฃผ์ž…

* feat: admin ํŽ˜์ด์ง€ ํ•ญ๋ชฉ ์ž๋™ ์ถ”๊ฐ€ , ์‹œ์Šคํ…œ ์ƒํƒœ ๊ทธ๋ž˜ํ”„ ์ถ”๊ฐ€ (#223)

* feat: serverStatus ํ™•์ธ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: serverStatus ํ™•์ธ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: ๋ชจ๋“  ๊ตฌ๋…์„ ๋ฐ›์•„์˜ค๋Š” ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* chore: ๋ถˆํ•„์š”ํ•œ ์ƒ์ˆ˜ ์ œ๊ฑฐ

* feat: admin page ์„œ๋ฒ„ ์ƒํƒœ ํ™•์ธ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

---------

Co-authored-by: Minseong Park <52368015+pminsung12@users.noreply.github.com>
yangdongsuk added a commit that referenced this pull request Dec 10, 2023
* [Server] ๊ฐœ๋ฐœํ™˜๊ฒฝ ์„ธํŒ… (#4)

* build: open-list-server init

* chore: @nestjs/config class-validator class-transformer ์„ค์น˜

* chore: ๋ฃจํŠธ ๋ ˆ๋ฒจ์—์„œ ์„ค์น˜ํ•œ ํŒจํ‚ค์ง€ ์‚ญ์ œ

* chore: NestJs ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์„ธํŒ…

* chore: @nestjs/config class-validator class-transformer ์„ค์น˜

* Server/feature/#13 (#25)

* chore: postgresql, nestjs docker ์„ธํŒ…

* chore: @nestjs/typeorm, typeorm, pg ์„ค์น˜

* chore: Typeorm ์„ธํŒ… ๋ฐ TestModel ํ…Œ์ด๋ธ” ์ƒ์„ฑ

* ํ…Œ์ŠคํŠธ์šฉ ์œ ์ € API ๊ตฌํ˜„ (#30)

* chore: common resource ์ถ”๊ฐ€

* chore: users resource ์ถ”๊ฐ€

* feature: base entity ๊ตฌํ˜„

* feature: usersEntity ๊ตฌํ˜„

* feature: ๋ชจ๋“ˆ์— usersModel ์ถ”๊ฐ€

* style: entity,dto์˜ users -> user๋กœ ๋ณ€๊ฒฝ

* feature: CreateUserDto ๊ตฌํ˜„

* feature: userEntity ์ด๋ฉ”์ผ ํ•„๋“œ ์ถ”๊ฐ€

* feature: createUserDto ์ด๋ฉ”์ผ ํ•„๋“œ ์ถ”๊ฐ€

* feature: user patch->put์œผ๋กœ ๋ณ€๊ฒฝ

* feature: updateUserDto ๊ตฌํ˜„

* feature : create user ๊ตฌํ˜„

* feature: ๋ชจ๋“  ์œ ์ €์˜ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” API ๊ตฌํ˜„

* feature: ํŠน์ • ์œ ์ €์˜ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” API ๊ตฌํ˜„

* feature: user ์ •๋ณด ์ˆ˜์ • API ๊ตฌํ˜„

* feature: user ์‚ญ์ œ API ๊ตฌํ˜„

* feature: ValidationPipe ์ ์šฉ

* refactor: usersService ๋ฆฌํŒฉํ† ๋ง

* [Server] ์œ ๋‹› ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ ์„ธํŒ… (#32)

* chore: test ๊ฒฝ๋กœ ์„ค์ •

* feature: TestCommonModule ๊ตฌํ˜„

* feature: users.service.spec.ts ์˜์กด์„ฑ ์ฃผ์ž…

* feature: users.controller.spec.ts ์˜์กด์„ฑ ์ฃผ์ž…

* [Server] Users resource ์ด๋ฆ„ ๋ณ€๊ฒฝ (#34)

* style: usersController ๋„ค์ด๋ฐ์— ์ปจ๋ฒค์…˜ ๋งž๊ฒŒ ๋ณ€๊ฒฝ

* style: usersService ์ปจ๋ฒค์…˜์— ๋”ฐ๋ฅธ ๋„ค์ด๋ฐ ๋ณ€๊ฒฝ

* style: UsersModel -> UserModel ์ปจ๋ฒค์…˜์— ๋”ฐ๋ฅธ ๋„ค์ด๋ฐ ๋ณ€๊ฒฝ

* feature: usersService ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ (#39)

* [Server] Folder entity ์ƒ์„ฑ ๋ฐ crud ๊ตฌํ˜„ (#42)

* feat: folders crud ๊ตฌํ˜„

* chore: TestModel ์‚ญ์ œ ๋ฐ ๊ด€๋ จ๋œ ์ข…์†์„ฑ ์ œ๊ฑฐ

* feat: folders.controller.spec.ts ์‚ญ์ œ, folders.service.spec.ts ๊ตฌํ˜„

* feature: dockerํŒŒ์ผ ์ˆ˜์ • (#57)

* feat: private checklist entity ์ƒ์„ฑ ๋ฐ crud ๊ตฌํ˜„ (#61)

* chore: ๊ฐœ๋ฐœ์šฉ postgres ํฌํŠธ๋ณ€๊ฒฝ 5432->5433, .env๋„ port 5433์œผ๋กœ ๋ณ€๊ฒฝํ•„์š”

* feat: checklists res ์ƒ์„ฑ

* feat: checklist, private-checklist, shared-checklisst ์—”ํ‹ฐํ‹ฐ ์ƒ์„ฑ, user๋ชจ๋ธ๊ณผ folder๋ชจ๋ธ๊ณผ์˜ ์˜์กด๊ด€๊ณ„ ์ฃผ์ž…

* feat: author->editor๋กœ ์ˆ˜์ •, ๊ณต์œ ์ฒดํฌ๋ฆฌ์ŠคํŠธ์™€ ์‚ฌ์šฉ์ž์˜ relation์„ many to many๋กœ ์—…๋ฐ์ดํŠธ

* feat: ๊ฐœ์ธ, ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ์— ๋Œ€ํ•ด ์ƒ์„ฑ๊ณผ ์—…๋ฐ์ดํŠธ ์‹œ dto ์ƒ์„ฑ

* fix: class ์ด๋ฆ„ ์˜คํƒ€ ์ˆ˜์ •

* refactor: rest api ๋ฐฉ์‹์— ๋”ฐ๋ผ ํ•จ์ˆ˜๋ช… ๋ณ€๊ฒฝ

* feat: CheckListModel์—์„œ ์ง„ํ–‰๋ฅ  ์ปฌ๋Ÿผ ์‚ญ์ œ

* feat: folder์™€ user๊ฐ„์˜ manyToOne relation์ ์šฉ

* feat: private-checklist crud ์ž‘์„ฑ

* feat: folder service ์ปค๋ฒ„๋ฆฌ์ง€ 100 ๋‹ฌ์„ฑ

* test: private-checklist test code ์ž‘์„ฑ, ์ปค๋ฒ„๋ฆฌ์ง€ 92ํผ์„ผํŠธ

* feat: checklist ํด๋” ๋ถ„๋ฆฌ & dto ๋นˆ๋ฌธ์ž์—ด ๊ฒ€์ฆ ์ถ”๊ฐ€ (#66)

* refactor: checklists๋ฅผ private, sharedํด๋”๋กœ ๋ถ„๋ฆฌ.

* refactor: private-checklists๋ฅผ folders ํ•˜์œ„๋กœ ์ด๋™

* fix: ๋นˆ๋ฌธ์ž์—ด ๊ฒ€์ฆ ์ถ”๊ฐ€

* [Server] Winston์œผ๋กœ ๋กœ๊ทธ ๊ด€๋ฆฌ (#70)

* chore: nest-winston winston winston-daily-rotate-file ์„ค์น˜

* feat: winston logger ์„ค์ • ํŒŒ์ผ ๊ตฌํ˜„

* feat: winston logger middleware ๊ตฌํ˜„

* feat: ์š”์ฒญ logger middleware ๊ตฌํ˜„

* feat: ๋กœ๊ทธ์— ์š”์ฒญ ์ฒ˜๋ฆฌ ์‹œ๊ฐ„ ์ถ”๊ฐ€๋˜๋„๋ก ๊ฐœ์„ 

* chore: PR ํ…œํ”Œ๋ฆฟ ์ˆ˜์ •

* chore: PR ํ…œํ”Œ๋ฆฟ ์ˆ˜์ •

* feat: jwt access, refresh token ๊ธฐ๋ฐ˜ ์ธ๊ฐ€ ๊ตฌํ˜„

* chore: auth resource ์ถ”๊ฐ€

* chore: jwt ๋ชจ๋“ˆ ์ถ”๊ฐ€

* feature: signToken ๊ตฌํ˜„

* feature: ํ† ํฐ ๊ฒ€์ฆ, ํ† ํฐ ์žฌ๋ฐœ๊ธ‰ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* feature: ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* feature: ๋กœ๊ทธ์ธ ๊ด€๋ จ ์„œ๋น„์Šค ๊ตฌํ˜„

* feature: login ์ปจํŠธ๋กค๋Ÿฌ ๊ตฌํ˜„

* style: loginDto -> loginUserDto๋กœ ๋ณ€๊ฒฝ

* feature: access ํ† ํฐ ์žฌ๋ฐœ๊ธ‰ ์ปจํŠธ๋กค๋Ÿฌ ๊ตฌํ˜„

* refactor: accessํ† ํฐ ์žฌ๋ฐœ๊ธ‰ ํ˜•์‹ ๋ณ€๊ฒฝ

* feature: ์œ ์ € register ๊ธฐ๋Šฅ ๊ตฌํ˜„

* feature: auth.service.ts ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ

* fix: ์ด๋ฉ”์ผ ์ค‘๋ณต์‹œ ์—๋Ÿฌ ๋ฉ”์‹œ์ง€ ์ˆ˜์ •

---------

Co-authored-by: Minseong Park <52368015+pminsung12@users.noreply.github.com>

* [Server] shared-checklist ์†Œ์ผ“ ๊ตฌํ˜„ (#78)

* [Server] apple oauth api ๊ตฌํ˜„ (#86)

* chore: @nestjs/axios ์„ค์น˜

* chore: axios ์„ค์น˜

* chore: axios ์„ค์น˜

* feat: dto์ˆ˜์ •, userId ์ปฌ๋Ÿผ์ถ”๊ฐ€, providerId ์ˆ˜์ •, fullName ์ปฌ๋Ÿผ ์ถ”๊ฐ€

* feat: entity์— ๋”ฐ๋ผ dto ํ•ญ๋ชฉ ์ˆ˜์ •

* feat: apple oauth ๋กœ๊ทธ์ธ ์„œ๋น„์Šค ํ•จ์ˆ˜ ์ถ”๊ฐ€

client secret ๋งŒ๋“ค๊ณ , axios post๋กœ user ์ •๋ณด ๊ฐ€์ง€๊ณ ์˜ด.

* feat: apple oauth ๋กœ๊ทธ์ธ ์—”๋“œํฌ์ธํŠธ ์ถ”๊ฐ€

* feat: apple ์œ ์ €์—๋Œ€ํ•ด create, update ํ•จ์ˆ˜ ๊ตฌํ˜„

* feat: publicKey ๋ฐœ๊ธ‰๋ฐ›๋Š” ๋กœ์ง์ถ”๊ฐ€

* [Server] access ํ† ํฐ ์žฌ๋ฐœ๊ธ‰์‹œ ์œ ์ € ์ •๋ณด ์—†๋Š” ๋ฒ„๊ทธ ์ˆ˜์ • (#83)

* [Server] privateChecklist์˜ ๋‚ด์šฉ ์ €์žฅ api ๊ตฌํ˜„ (#88)

* [Server] apple oauth ๋กœ๊ทธ์ธ ๋กœ์ง ์ˆ˜์ • (#118)

* feat: env ์‚ฌ์šฉ๋ฐฉ์‹ ๋ณ€๊ฒฝ + idToken ๊ฒ€์ฆ๋กœ์ง ์ถ”๊ฐ€

* chore: jwk๋ฅผ pem์œผ๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ ์œ„ํ•œ jose ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ค์น˜

* chore: jose ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ œ๊ฑฐ @panva/jose ์„ค์น˜

* feat: request body๋กœ ๋“ค์–ด์˜ค๋Š” auth-user.dto.ts ์ˆ˜์ •

* feat: ์• ํ”Œ ์œ ์ € ๋“ฑ๋ก ๋กœ์ง ์ˆ˜์ •

* docs: jsdoc return type ์ˆ˜์ •

* feat: apple login ๋กœ์ง ์ˆ˜์ •(appleToken, clientSecret ๋กœ์ง ์‚ญ์ œ)

* feat: refreshAccessToken ํ•จ์ˆ˜์—์„œ refreshToken๋„ ํ•จ๊ป˜ ๋ฐ˜ํ™˜ํ•ด์ฃผ๋„๋ก ๋กœ์ง ์ˆ˜์ •

* [Server] Clova Studio api  ๊ตฌํ˜„ (#126)

* feat:  checklist-ai ๋ฆฌ์†Œ์Šค ์ƒ์„ฑ

* feat: create-checklist-items.dto.ts ์š”์ฒญ dto ์ƒ์„ฑ

* feat: ๋ฌธ์ž์—ด ๋ฐ ๊ฐ์ข… ์˜ต์…˜ ์ƒ์ˆ˜ํ™”

* feat: user-role const ํŒŒ์ผ ์‚ญ์ œ => ํ•จ์ˆ˜ํ™”

* feat: /checklist-ai POST ์š”์ฒญ api ์ƒ์„ฑ

๋Œ€,์ค‘,์†Œ ์นดํ…Œ๊ณ ๋ฆฌ๋ฅผ body๋กœ ๋ฐ›์•„์˜ค๋ฉด clova studio์—์„œ ์ฒดํฌ๋ฆฌ์ŠคํŠธ ํ•ญ๋ชฉ 10๊ฐœ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

* feat: AccessTokenGuard ๊ตฌํ˜„ ๋ฐ ์ ์šฉ (#129)

* feat: access token guard ๊ตฌํ˜„

* feat: access token guard ์ „์—ญ ์ ์šฉ

* style: access-token.guard.ts ์ฃผ์„ ์ถ”๊ฐ€

* feat: userId decorator ๊ตฌํ˜„

* feat: folders controller์— userId ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* feat: ํด๋” ์„œ๋น„์Šค์— user ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* feat: ๊ฐœ์ธ ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์ปจํŠธ๋กค๋Ÿฌ์— ์œ ์ € ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* feat: private-checklists service์— user ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* fix: ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ˆ˜์ •

* Server/feature/#128 (#139)

* feat: json ๊ตฌ์กฐ๋กœ ์นดํ…Œ๊ณ ๋ฆฌ ๋ฐ์ดํ„ฐ ์ •์˜

* feat: categories ์˜์กด์„ฑ ์ฃผ์ž…

* feat: endpoint๋งŒ๋“ค๊ณ , ์‹ค์ œ ์กด์žฌํ•˜๋Š” id์ธ์ง€ ๊ฒ€์ฆํ•˜๋Š” dto ์ƒ์„ฑ

* fix: ์˜คํƒ€์ˆ˜์ • forder->folder

* feat: param์— dto ์ ์šฉํ•˜์ง€ ๋ชปํ•ด ์‚ญ์ œ

* feat: ์นดํ…Œ๊ณ ๋ฆฌ json ๋ฐ์ดํ„ฐ ๋ณ€์ˆ˜๋ช… ๋ณ€๊ฒฝ, ๋Œ€๋ฌธ์ž๋กœ

* feat: ๋Œ€,์ค‘,์†Œ ์นดํ…Œ๊ณ ๋ฆฌ ๋ฐ˜ํ™˜ api ๊ตฌํ˜„

* test: categories.service.spec.ts ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ

* test: categories.service.spec.ts ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ˆ˜์ • ์ปค๋ฒ„๋ฆฌ์ง€ 100

* feat: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ API ๋ฐ ์†Œ์ผ“ ์ž‘์—… ๊ตฌํ˜„ (#140)

* feat: shared checklist item entity ๊ตฌํ˜„

* style: SharedChecklistItemModel ์˜คํƒ€ ์ˆ˜์ •

* feat: shared checklist id uuid๋กœ ๋ณ€๊ฒฝ

* feat: create shared checklist ๋””ํ‹ฐ์˜ค ์ˆ˜์ •

* feat: shared-checklists ์ƒ์„ฑ ๊ตฌํ˜„

* refactor: shared-checklists ์ €์žฅํ•˜๋Š” ํ•จ์ˆ˜ ๋ถ„๋ฆฌ

* feat: shared-checklists 1๊ฐœ, ์ „๋ถ€ ๊ฐ€์ ธ์˜ค๋Š” ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: ์œ ์ € ์ดˆ๋Œ€ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์‚ญ์ œ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* style: shared-checklists service ์ฃผ์„ ์ถ”๊ฐ€

* feature: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์†Œ์ผ“์— ๋ฐ์ดํ„ฐ ๋ˆ„์  ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: shared-checklists ์†Œ์ผ“ ํ†ต์‹  ์‹œ ๋ฐ์ดํ„ฐ ๋ฐ๋ฒ ์— ์ €์žฅ ๊ตฌํ˜„

* feat: ์†Œ์ผ“ ์—ฐ๊ฒฐ์‹œ ๋ฐฉ์˜ ๋ฐ์ดํ„ฐ ํžˆ์Šคํ† ๋ฆฌ๋ฅผ ์ „์†กํ•˜๋Š” ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* style: ์†Œ์ผ“ ์ฃผ์„ ์ถ”๊ฐ€

* ๐Ÿ”feat: ๊ฐœ๋ฐœ์šฉ ์ž„์‹œ๋กœ ์•ก์„ธ์Šค,๋ฆฌํ”„๋ ˆ์‹œ ํ† ํฐ๋“ค ๋งŒ๋ฃŒ๊ธฐํ•œ ์ผ์ฃผ์ผ๋กœ ์„ค์ • (#142)

* feat: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์•„์ดํ…œ ๊ถŒํ•œ ๋ฌธ์ œ ๋ฐ uuid ๋ฌธ์ œ ํ•ด๊ฒฐ (#146)

* fix: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์•„์ดํ…œ ๊ถŒํ•œ ์—†์œผ๋ฉด ์ ‘๊ทผ ๋ชปํ•˜๊ฒŒ ์ˆ˜์ •

* fix: ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์ถ”๊ฐ€์‹œ ์‚ฌ์šฉ์ž๊ฐ€ ์žˆ๋Š”์ง€ ๊ฒ€์‚ฌ

* fix: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์ƒ์„ฑ์‹œ uuid๊ฐ€ ์•„๋‹ˆ๋ฉด ์„œ๋ฒ„๊ฐ€ ์ฃฝ๋Š” ํ˜„์ƒ ์ˆ˜์ •

* style: ๋ถˆํ•„์š”ํ•œ ์ฝ”๋“œ ์ œ๊ฑฐ

* feat: ์†Œ์ผ“ ๋‹ค์ค‘ ์„œ๋ฒ„ ์ง€์›  (#159)

* chore: docker-compose.yaml์— ๋ ˆ๋””์Šค ์ถ”๊ฐ€

* chore: redis ๋ชจ๋“ˆ ์ถ”๊ฐ€

* feature: nest ๋‹ค์ค‘ ํฌํŠธ ์„œ๋ฒ„ ๊ตฌ์„ฑ

* feature: redis.module.ts ๊ตฌํ˜„ ๋ฐ ์ ์šฉ

* feature: ์†Œ์ผ“์— ๋ ˆ๋””์Šค ์‚ฝ์ž…

* feature: ์†Œ์ผ“ pub/sub ๊ตฌํ˜„

* feat: ์†Œ์ผ“ ๋ ˆ๋””์Šค์— ์ด ์ ‘์†์ž์ˆ˜ ์ฆ๊ฐ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: ์†Œ์ผ“ ํžˆ์Šคํ† ๋ฆฌ ๊ธฐ๋Šฅ ๋ ˆ๋””์Šค ์ ์šฉ

* refactor: shared-checklists.gateway.ts ๋ฆฌํŒฉํ† ๋ง

* feat: ์†Œ์ผ“ editing ์ด๋ฒคํŠธ ์ถ”๊ฐ€ (#164)

* fix: ๋ ˆ๋””์Šค ์—ฐ๊ฒฐ ์ˆ˜์ • (#168)

* [Server] object ํ˜•ํƒœ๊ฐ€ ๋“ค์–ด์˜ค๋ฉด redis์— ์ €์žฅ ์•ˆ๋˜๋Š” ๋ฌธ์ œ ์ˆ˜์ • (#171)

* ๐Ÿ›fix: ์›น์†Œ์ผ“ data๋ฅผ json์œผ๋กœ ๋ณ€๊ฒฝ ํ›„ emit

* ๐Ÿ›fix: history []์ œ๊ฑฐ

* ๐Ÿ›fix: data[0] -> data

* feat: ์›น์†Œ์ผ“ ํžˆ์Šคํ† ๋ฆฌ ๋ฒ„๊ทธ ์ˆ˜์ • ๋ฐ ์ฝ˜์†” ๋กœ๊ทธ ์ถ”๊ฐ€ (#175)

* fix: docker-compose ๋ ˆ๋””์Šค ์„ค์ • ์˜ค๋ฅ˜ ํ•ด๊ฒฐ

* feat: ์†Œ์ผ“ console.log ์ถ”๊ฐ€

* fix: ์†Œ์ผ“ ํžˆ์Šคํ† ๋ฆฌ ์ €์žฅ์‹œ ํ˜•์‹ ์˜ค๋ฅ˜ ์ˆ˜์ •

* [Server] ๋กœ๊ฑฐ ๊ธฐ๋Šฅ ํ™•๋Œ€ (#176)

* feat: no auth ๋ฒ„๊ทธ -> password ์ฃผ์„ ํ•ด์ œ

* feat: ๋กœ๊ทธ์— ํ•œ๊ตญ ์‹œ๊ฐ„๋Œ€ ์ถ”๊ฐ€

* feat: ๋กœ๊ทธํŒŒ์ผ์ด dist ๋‚ด๋ถ€์— ์กด์žฌํ•ด ํ•œ ๋‹จ๊ณ„ ์œ„๋กœ ์˜ฎ๊ฒจ์คŒ.

* feat: ์‘๋‹ต๋กœ๊ทธ๋Š” interceptor์—์„œ ์ฒ˜๋ฆฌํ•˜๋„๋ก ๋กœ์ง ์ˆ˜์ •

* feat: ๋กœ๊ทธ ์ธํ„ฐ์…‰ํ„ฐ app.module.ts ํ”„๋กœ๋ฐ”์ด๋”์— ์ถ”๊ฐ€

* ๐Ÿ›fix: redis module password ๋ถ€๋ถ„ ์ฃผ์„์ฒ˜๋ฆฌ (#180)

* [Server] ํ”ผ๋“œํ™”๋ฉด api ๊ตฌํ˜„ (#196)

* chore: import ๋ฌธ ์ตœ์ ํ™”

* feat: ํ”ผ๋“œ resource ์ƒ์„ฑ

* feat: checklist entity์— ์นดํ…Œ๊ณ ๋ฆฌ ์ปฌ๋Ÿผ ์ถ”๊ฐ€

* feat: feedmodel ์ •์˜

private checklist model์—์„œ likeCount์™€ downloadCount ์ปฌ๋Ÿผ ์ถ”๊ฐ€

* chore: ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” dto ํŒŒ์ผ ์‚ญ์ œ

* chore: ์นดํ…Œ๊ณ ๋ฆฌ ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€

* chore: ์•ˆ์“ฐ๋Š” ํ…Œ์ŠคํŠธ ํŒŒ์ผ ์‚ญ์ œ

* feat: ํ”ผ๋“œ ํ™”๋ฉด api ๊ตฌํ˜„

* feat: feeds.service.spec.ts ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ

* feat: api ์—๋Ÿฌ ํ•ธ๋“ค๋ง ๋กœ์ง ์ถ”๊ฐ€

* test: feeds.service.spec.ts ์˜ˆ์™ธ ์ผ€์ด์Šค์— ๋Œ€ํ•œ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ถ”๊ฐ€

* feat: ์—๋Ÿฌ๋ฉ”์‹œ์ง€ ์ˆ˜์ •

* feat: ๊ด€๋ฆฌ ํŽ˜์ด์ง€์™€ api ๊ตฌํ˜„ (#197)

* feat: admin resource ๊ตฌํ˜„

* feat: ๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€ ์ถ”๊ฐ€

* feat: cors ์„ค์ • ์ถ”๊ฐ€

* feat: ์ž„์‹œ๋กœ ๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€ ๊ถŒํ•œ ์ œ๊ฑฐ

* feat: admin sse api ๊ตฌํ˜„

* refactor: redis sub ์„œ๋น„์Šค ๊ตฌํ˜„

* feat: ์–ด๋“œ๋ฏผ ํŽ˜์ด์ง€ api ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: redis pub ์„œ๋น„์Šค ์ถ”๊ฐ€

* refactor: admin controller์— redis service๋กœ ๊ต์ฒด

* feat: log interceptor์— redis pub ์ถ”๊ฐ€

* refactor: channels const๋กœ ๋ถ„๋ฆฌ

* style: ๋ถˆํ•„์š”ํ•œ ์ฃผ์„ ์ œ๊ฑฐ

* feat: ws ๋กœ๊ทธ redis pub ์ถ”๊ฐ€

* feat: admin page ๋ฐ•์Šค ๋ˆ„๋ฅด๋ฉด ํŽผ์น˜๊ธฐ/์ ‘๊ธฐ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: admin ํŽ˜์ด์ง€ ์ƒ‰๊น” ๋ณ€๊ฒฝ

* feat: ๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€ ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* [Server] ํด๋ผ์ด์–ธํŠธ์™€ api ์—ฐ๋™ ์ž‘์—… (login, socket history)  (#209)

* feat: socket ๋นˆ ํžˆ์Šคํ† ๋ฆฌ๋ฉด [] ๋ณด๋‚ด๊ธฐ

* feat: ๋กœ๊ทธ์ธ์‹œ ์œ ์ € ๋‹‰๋„ค์ž„๋„ ๊ฐ™์ด ๋ณด๋‚ด์ฃผ๊ธฐ

* [Server] ai์™€ ๊ด€๋ จํ•œ db ๊ตฌ์กฐ ๊ฐœ์„  (#220)

* refactor: ๊ฒฝ๋กœ ์ด๋ฆ„ ์ˆ˜์ • entity->entities

* feat: category ์—”ํ‹ฐํ‹ฐ ์ƒ์„ฑ

* feat: reason ๋ชจ๋ธ ์ƒ์„ฑ ๋ฐ ๊ฐ ํ…Œ์ด๋ธ” relation ์„ค์ •

* feat: ๊ฐ ํ…Œ์ด๋ธ” relation ์ˆ˜์ • ๋ฐ ์˜์กด์„ฑ ์ฃผ์ž…

* feat: relation ๋ฐฉ์‹ ๋ณ€๊ฒฝ์œผ๋กœ ์ธํ•œfolders.service.ts ๋ฉ”์„œ๋“œ ์ˆ˜์ •, ์˜์กด์„ฑ ์ฃผ์ž…

* feat: admin ํŽ˜์ด์ง€ ํ•ญ๋ชฉ ์ž๋™ ์ถ”๊ฐ€ , ์‹œ์Šคํ…œ ์ƒํƒœ ๊ทธ๋ž˜ํ”„ ์ถ”๊ฐ€ (#223)

* feat: serverStatus ํ™•์ธ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: serverStatus ํ™•์ธ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: ๋ชจ๋“  ๊ตฌ๋…์„ ๋ฐ›์•„์˜ค๋Š” ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* chore: ๋ถˆํ•„์š”ํ•œ ์ƒ์ˆ˜ ์ œ๊ฑฐ

* feat: admin page ์„œ๋ฒ„ ์ƒํƒœ ํ™•์ธ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

---------

Co-authored-by: Minseong Park <52368015+pminsung12@users.noreply.github.com>
yangdongsuk added a commit that referenced this pull request Dec 12, 2023
* [Server] ๊ฐœ๋ฐœํ™˜๊ฒฝ ์„ธํŒ… (#4)

* build: open-list-server init

* chore: @nestjs/config class-validator class-transformer ์„ค์น˜

* chore: ๋ฃจํŠธ ๋ ˆ๋ฒจ์—์„œ ์„ค์น˜ํ•œ ํŒจํ‚ค์ง€ ์‚ญ์ œ

* chore: NestJs ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์„ธํŒ…

* chore: @nestjs/config class-validator class-transformer ์„ค์น˜

* Server/feature/#13 (#25)

* chore: postgresql, nestjs docker ์„ธํŒ…

* chore: @nestjs/typeorm, typeorm, pg ์„ค์น˜

* chore: Typeorm ์„ธํŒ… ๋ฐ TestModel ํ…Œ์ด๋ธ” ์ƒ์„ฑ

* ํ…Œ์ŠคํŠธ์šฉ ์œ ์ € API ๊ตฌํ˜„ (#30)

* chore: common resource ์ถ”๊ฐ€

* chore: users resource ์ถ”๊ฐ€

* feature: base entity ๊ตฌํ˜„

* feature: usersEntity ๊ตฌํ˜„

* feature: ๋ชจ๋“ˆ์— usersModel ์ถ”๊ฐ€

* style: entity,dto์˜ users -> user๋กœ ๋ณ€๊ฒฝ

* feature: CreateUserDto ๊ตฌํ˜„

* feature: userEntity ์ด๋ฉ”์ผ ํ•„๋“œ ์ถ”๊ฐ€

* feature: createUserDto ์ด๋ฉ”์ผ ํ•„๋“œ ์ถ”๊ฐ€

* feature: user patch->put์œผ๋กœ ๋ณ€๊ฒฝ

* feature: updateUserDto ๊ตฌํ˜„

* feature : create user ๊ตฌํ˜„

* feature: ๋ชจ๋“  ์œ ์ €์˜ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” API ๊ตฌํ˜„

* feature: ํŠน์ • ์œ ์ €์˜ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” API ๊ตฌํ˜„

* feature: user ์ •๋ณด ์ˆ˜์ • API ๊ตฌํ˜„

* feature: user ์‚ญ์ œ API ๊ตฌํ˜„

* feature: ValidationPipe ์ ์šฉ

* refactor: usersService ๋ฆฌํŒฉํ† ๋ง

* [Server] ์œ ๋‹› ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ ์„ธํŒ… (#32)

* chore: test ๊ฒฝ๋กœ ์„ค์ •

* feature: TestCommonModule ๊ตฌํ˜„

* feature: users.service.spec.ts ์˜์กด์„ฑ ์ฃผ์ž…

* feature: users.controller.spec.ts ์˜์กด์„ฑ ์ฃผ์ž…

* [Server] Users resource ์ด๋ฆ„ ๋ณ€๊ฒฝ (#34)

* style: usersController ๋„ค์ด๋ฐ์— ์ปจ๋ฒค์…˜ ๋งž๊ฒŒ ๋ณ€๊ฒฝ

* style: usersService ์ปจ๋ฒค์…˜์— ๋”ฐ๋ฅธ ๋„ค์ด๋ฐ ๋ณ€๊ฒฝ

* style: UsersModel -> UserModel ์ปจ๋ฒค์…˜์— ๋”ฐ๋ฅธ ๋„ค์ด๋ฐ ๋ณ€๊ฒฝ

* feature: usersService ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ (#39)

* [Server] Folder entity ์ƒ์„ฑ ๋ฐ crud ๊ตฌํ˜„ (#42)

* feat: folders crud ๊ตฌํ˜„

* chore: TestModel ์‚ญ์ œ ๋ฐ ๊ด€๋ จ๋œ ์ข…์†์„ฑ ์ œ๊ฑฐ

* feat: folders.controller.spec.ts ์‚ญ์ œ, folders.service.spec.ts ๊ตฌํ˜„

* feature: dockerํŒŒ์ผ ์ˆ˜์ • (#57)

* feat: private checklist entity ์ƒ์„ฑ ๋ฐ crud ๊ตฌํ˜„ (#61)

* chore: ๊ฐœ๋ฐœ์šฉ postgres ํฌํŠธ๋ณ€๊ฒฝ 5432->5433, .env๋„ port 5433์œผ๋กœ ๋ณ€๊ฒฝํ•„์š”

* feat: checklists res ์ƒ์„ฑ

* feat: checklist, private-checklist, shared-checklisst ์—”ํ‹ฐํ‹ฐ ์ƒ์„ฑ, user๋ชจ๋ธ๊ณผ folder๋ชจ๋ธ๊ณผ์˜ ์˜์กด๊ด€๊ณ„ ์ฃผ์ž…

* feat: author->editor๋กœ ์ˆ˜์ •, ๊ณต์œ ์ฒดํฌ๋ฆฌ์ŠคํŠธ์™€ ์‚ฌ์šฉ์ž์˜ relation์„ many to many๋กœ ์—…๋ฐ์ดํŠธ

* feat: ๊ฐœ์ธ, ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ์— ๋Œ€ํ•ด ์ƒ์„ฑ๊ณผ ์—…๋ฐ์ดํŠธ ์‹œ dto ์ƒ์„ฑ

* fix: class ์ด๋ฆ„ ์˜คํƒ€ ์ˆ˜์ •

* refactor: rest api ๋ฐฉ์‹์— ๋”ฐ๋ผ ํ•จ์ˆ˜๋ช… ๋ณ€๊ฒฝ

* feat: CheckListModel์—์„œ ์ง„ํ–‰๋ฅ  ์ปฌ๋Ÿผ ์‚ญ์ œ

* feat: folder์™€ user๊ฐ„์˜ manyToOne relation์ ์šฉ

* feat: private-checklist crud ์ž‘์„ฑ

* feat: folder service ์ปค๋ฒ„๋ฆฌ์ง€ 100 ๋‹ฌ์„ฑ

* test: private-checklist test code ์ž‘์„ฑ, ์ปค๋ฒ„๋ฆฌ์ง€ 92ํผ์„ผํŠธ

* feat: checklist ํด๋” ๋ถ„๋ฆฌ & dto ๋นˆ๋ฌธ์ž์—ด ๊ฒ€์ฆ ์ถ”๊ฐ€ (#66)

* refactor: checklists๋ฅผ private, sharedํด๋”๋กœ ๋ถ„๋ฆฌ.

* refactor: private-checklists๋ฅผ folders ํ•˜์œ„๋กœ ์ด๋™

* fix: ๋นˆ๋ฌธ์ž์—ด ๊ฒ€์ฆ ์ถ”๊ฐ€

* [Server] Winston์œผ๋กœ ๋กœ๊ทธ ๊ด€๋ฆฌ (#70)

* chore: nest-winston winston winston-daily-rotate-file ์„ค์น˜

* feat: winston logger ์„ค์ • ํŒŒ์ผ ๊ตฌํ˜„

* feat: winston logger middleware ๊ตฌํ˜„

* feat: ์š”์ฒญ logger middleware ๊ตฌํ˜„

* feat: ๋กœ๊ทธ์— ์š”์ฒญ ์ฒ˜๋ฆฌ ์‹œ๊ฐ„ ์ถ”๊ฐ€๋˜๋„๋ก ๊ฐœ์„ 

* chore: PR ํ…œํ”Œ๋ฆฟ ์ˆ˜์ •

* chore: PR ํ…œํ”Œ๋ฆฟ ์ˆ˜์ •

* feat: jwt access, refresh token ๊ธฐ๋ฐ˜ ์ธ๊ฐ€ ๊ตฌํ˜„

* chore: auth resource ์ถ”๊ฐ€

* chore: jwt ๋ชจ๋“ˆ ์ถ”๊ฐ€

* feature: signToken ๊ตฌํ˜„

* feature: ํ† ํฐ ๊ฒ€์ฆ, ํ† ํฐ ์žฌ๋ฐœ๊ธ‰ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* feature: ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* feature: ๋กœ๊ทธ์ธ ๊ด€๋ จ ์„œ๋น„์Šค ๊ตฌํ˜„

* feature: login ์ปจํŠธ๋กค๋Ÿฌ ๊ตฌํ˜„

* style: loginDto -> loginUserDto๋กœ ๋ณ€๊ฒฝ

* feature: access ํ† ํฐ ์žฌ๋ฐœ๊ธ‰ ์ปจํŠธ๋กค๋Ÿฌ ๊ตฌํ˜„

* refactor: accessํ† ํฐ ์žฌ๋ฐœ๊ธ‰ ํ˜•์‹ ๋ณ€๊ฒฝ

* feature: ์œ ์ € register ๊ธฐ๋Šฅ ๊ตฌํ˜„

* feature: auth.service.ts ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ

* fix: ์ด๋ฉ”์ผ ์ค‘๋ณต์‹œ ์—๋Ÿฌ ๋ฉ”์‹œ์ง€ ์ˆ˜์ •

---------

Co-authored-by: Minseong Park <52368015+pminsung12@users.noreply.github.com>

* [Server] shared-checklist ์†Œ์ผ“ ๊ตฌํ˜„ (#78)

* [Server] apple oauth api ๊ตฌํ˜„ (#86)

* chore: @nestjs/axios ์„ค์น˜

* chore: axios ์„ค์น˜

* chore: axios ์„ค์น˜

* feat: dto์ˆ˜์ •, userId ์ปฌ๋Ÿผ์ถ”๊ฐ€, providerId ์ˆ˜์ •, fullName ์ปฌ๋Ÿผ ์ถ”๊ฐ€

* feat: entity์— ๋”ฐ๋ผ dto ํ•ญ๋ชฉ ์ˆ˜์ •

* feat: apple oauth ๋กœ๊ทธ์ธ ์„œ๋น„์Šค ํ•จ์ˆ˜ ์ถ”๊ฐ€

client secret ๋งŒ๋“ค๊ณ , axios post๋กœ user ์ •๋ณด ๊ฐ€์ง€๊ณ ์˜ด.

* feat: apple oauth ๋กœ๊ทธ์ธ ์—”๋“œํฌ์ธํŠธ ์ถ”๊ฐ€

* feat: apple ์œ ์ €์—๋Œ€ํ•ด create, update ํ•จ์ˆ˜ ๊ตฌํ˜„

* feat: publicKey ๋ฐœ๊ธ‰๋ฐ›๋Š” ๋กœ์ง์ถ”๊ฐ€

* [Server] access ํ† ํฐ ์žฌ๋ฐœ๊ธ‰์‹œ ์œ ์ € ์ •๋ณด ์—†๋Š” ๋ฒ„๊ทธ ์ˆ˜์ • (#83)

* [Server] privateChecklist์˜ ๋‚ด์šฉ ์ €์žฅ api ๊ตฌํ˜„ (#88)

* [Server] apple oauth ๋กœ๊ทธ์ธ ๋กœ์ง ์ˆ˜์ • (#118)

* feat: env ์‚ฌ์šฉ๋ฐฉ์‹ ๋ณ€๊ฒฝ + idToken ๊ฒ€์ฆ๋กœ์ง ์ถ”๊ฐ€

* chore: jwk๋ฅผ pem์œผ๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ ์œ„ํ•œ jose ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ค์น˜

* chore: jose ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ œ๊ฑฐ @panva/jose ์„ค์น˜

* feat: request body๋กœ ๋“ค์–ด์˜ค๋Š” auth-user.dto.ts ์ˆ˜์ •

* feat: ์• ํ”Œ ์œ ์ € ๋“ฑ๋ก ๋กœ์ง ์ˆ˜์ •

* docs: jsdoc return type ์ˆ˜์ •

* feat: apple login ๋กœ์ง ์ˆ˜์ •(appleToken, clientSecret ๋กœ์ง ์‚ญ์ œ)

* feat: refreshAccessToken ํ•จ์ˆ˜์—์„œ refreshToken๋„ ํ•จ๊ป˜ ๋ฐ˜ํ™˜ํ•ด์ฃผ๋„๋ก ๋กœ์ง ์ˆ˜์ •

* [Server] Clova Studio api  ๊ตฌํ˜„ (#126)

* feat:  checklist-ai ๋ฆฌ์†Œ์Šค ์ƒ์„ฑ

* feat: create-checklist-items.dto.ts ์š”์ฒญ dto ์ƒ์„ฑ

* feat: ๋ฌธ์ž์—ด ๋ฐ ๊ฐ์ข… ์˜ต์…˜ ์ƒ์ˆ˜ํ™”

* feat: user-role const ํŒŒ์ผ ์‚ญ์ œ => ํ•จ์ˆ˜ํ™”

* feat: /checklist-ai POST ์š”์ฒญ api ์ƒ์„ฑ

๋Œ€,์ค‘,์†Œ ์นดํ…Œ๊ณ ๋ฆฌ๋ฅผ body๋กœ ๋ฐ›์•„์˜ค๋ฉด clova studio์—์„œ ์ฒดํฌ๋ฆฌ์ŠคํŠธ ํ•ญ๋ชฉ 10๊ฐœ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

* feat: AccessTokenGuard ๊ตฌํ˜„ ๋ฐ ์ ์šฉ (#129)

* feat: access token guard ๊ตฌํ˜„

* feat: access token guard ์ „์—ญ ์ ์šฉ

* style: access-token.guard.ts ์ฃผ์„ ์ถ”๊ฐ€

* feat: userId decorator ๊ตฌํ˜„

* feat: folders controller์— userId ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* feat: ํด๋” ์„œ๋น„์Šค์— user ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* feat: ๊ฐœ์ธ ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์ปจํŠธ๋กค๋Ÿฌ์— ์œ ์ € ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* feat: private-checklists service์— user ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* fix: ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ˆ˜์ •

* Server/feature/#128 (#139)

* feat: json ๊ตฌ์กฐ๋กœ ์นดํ…Œ๊ณ ๋ฆฌ ๋ฐ์ดํ„ฐ ์ •์˜

* feat: categories ์˜์กด์„ฑ ์ฃผ์ž…

* feat: endpoint๋งŒ๋“ค๊ณ , ์‹ค์ œ ์กด์žฌํ•˜๋Š” id์ธ์ง€ ๊ฒ€์ฆํ•˜๋Š” dto ์ƒ์„ฑ

* fix: ์˜คํƒ€์ˆ˜์ • forder->folder

* feat: param์— dto ์ ์šฉํ•˜์ง€ ๋ชปํ•ด ์‚ญ์ œ

* feat: ์นดํ…Œ๊ณ ๋ฆฌ json ๋ฐ์ดํ„ฐ ๋ณ€์ˆ˜๋ช… ๋ณ€๊ฒฝ, ๋Œ€๋ฌธ์ž๋กœ

* feat: ๋Œ€,์ค‘,์†Œ ์นดํ…Œ๊ณ ๋ฆฌ ๋ฐ˜ํ™˜ api ๊ตฌํ˜„

* test: categories.service.spec.ts ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ

* test: categories.service.spec.ts ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ˆ˜์ • ์ปค๋ฒ„๋ฆฌ์ง€ 100

* feat: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ API ๋ฐ ์†Œ์ผ“ ์ž‘์—… ๊ตฌํ˜„ (#140)

* feat: shared checklist item entity ๊ตฌํ˜„

* style: SharedChecklistItemModel ์˜คํƒ€ ์ˆ˜์ •

* feat: shared checklist id uuid๋กœ ๋ณ€๊ฒฝ

* feat: create shared checklist ๋””ํ‹ฐ์˜ค ์ˆ˜์ •

* feat: shared-checklists ์ƒ์„ฑ ๊ตฌํ˜„

* refactor: shared-checklists ์ €์žฅํ•˜๋Š” ํ•จ์ˆ˜ ๋ถ„๋ฆฌ

* feat: shared-checklists 1๊ฐœ, ์ „๋ถ€ ๊ฐ€์ ธ์˜ค๋Š” ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: ์œ ์ € ์ดˆ๋Œ€ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์‚ญ์ œ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* style: shared-checklists service ์ฃผ์„ ์ถ”๊ฐ€

* feature: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์†Œ์ผ“์— ๋ฐ์ดํ„ฐ ๋ˆ„์  ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: shared-checklists ์†Œ์ผ“ ํ†ต์‹  ์‹œ ๋ฐ์ดํ„ฐ ๋ฐ๋ฒ ์— ์ €์žฅ ๊ตฌํ˜„

* feat: ์†Œ์ผ“ ์—ฐ๊ฒฐ์‹œ ๋ฐฉ์˜ ๋ฐ์ดํ„ฐ ํžˆ์Šคํ† ๋ฆฌ๋ฅผ ์ „์†กํ•˜๋Š” ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* style: ์†Œ์ผ“ ์ฃผ์„ ์ถ”๊ฐ€

* ๐Ÿ”feat: ๊ฐœ๋ฐœ์šฉ ์ž„์‹œ๋กœ ์•ก์„ธ์Šค,๋ฆฌํ”„๋ ˆ์‹œ ํ† ํฐ๋“ค ๋งŒ๋ฃŒ๊ธฐํ•œ ์ผ์ฃผ์ผ๋กœ ์„ค์ • (#142)

* feat: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์•„์ดํ…œ ๊ถŒํ•œ ๋ฌธ์ œ ๋ฐ uuid ๋ฌธ์ œ ํ•ด๊ฒฐ (#146)

* fix: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์•„์ดํ…œ ๊ถŒํ•œ ์—†์œผ๋ฉด ์ ‘๊ทผ ๋ชปํ•˜๊ฒŒ ์ˆ˜์ •

* fix: ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์ถ”๊ฐ€์‹œ ์‚ฌ์šฉ์ž๊ฐ€ ์žˆ๋Š”์ง€ ๊ฒ€์‚ฌ

* fix: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์ƒ์„ฑ์‹œ uuid๊ฐ€ ์•„๋‹ˆ๋ฉด ์„œ๋ฒ„๊ฐ€ ์ฃฝ๋Š” ํ˜„์ƒ ์ˆ˜์ •

* style: ๋ถˆํ•„์š”ํ•œ ์ฝ”๋“œ ์ œ๊ฑฐ

* feat: ์†Œ์ผ“ ๋‹ค์ค‘ ์„œ๋ฒ„ ์ง€์›  (#159)

* chore: docker-compose.yaml์— ๋ ˆ๋””์Šค ์ถ”๊ฐ€

* chore: redis ๋ชจ๋“ˆ ์ถ”๊ฐ€

* feature: nest ๋‹ค์ค‘ ํฌํŠธ ์„œ๋ฒ„ ๊ตฌ์„ฑ

* feature: redis.module.ts ๊ตฌํ˜„ ๋ฐ ์ ์šฉ

* feature: ์†Œ์ผ“์— ๋ ˆ๋””์Šค ์‚ฝ์ž…

* feature: ์†Œ์ผ“ pub/sub ๊ตฌํ˜„

* feat: ์†Œ์ผ“ ๋ ˆ๋””์Šค์— ์ด ์ ‘์†์ž์ˆ˜ ์ฆ๊ฐ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: ์†Œ์ผ“ ํžˆ์Šคํ† ๋ฆฌ ๊ธฐ๋Šฅ ๋ ˆ๋””์Šค ์ ์šฉ

* refactor: shared-checklists.gateway.ts ๋ฆฌํŒฉํ† ๋ง

* feat: ์†Œ์ผ“ editing ์ด๋ฒคํŠธ ์ถ”๊ฐ€ (#164)

* fix: ๋ ˆ๋””์Šค ์—ฐ๊ฒฐ ์ˆ˜์ • (#168)

* [Server] object ํ˜•ํƒœ๊ฐ€ ๋“ค์–ด์˜ค๋ฉด redis์— ์ €์žฅ ์•ˆ๋˜๋Š” ๋ฌธ์ œ ์ˆ˜์ • (#171)

* ๐Ÿ›fix: ์›น์†Œ์ผ“ data๋ฅผ json์œผ๋กœ ๋ณ€๊ฒฝ ํ›„ emit

* ๐Ÿ›fix: history []์ œ๊ฑฐ

* ๐Ÿ›fix: data[0] -> data

* feat: ์›น์†Œ์ผ“ ํžˆ์Šคํ† ๋ฆฌ ๋ฒ„๊ทธ ์ˆ˜์ • ๋ฐ ์ฝ˜์†” ๋กœ๊ทธ ์ถ”๊ฐ€ (#175)

* fix: docker-compose ๋ ˆ๋””์Šค ์„ค์ • ์˜ค๋ฅ˜ ํ•ด๊ฒฐ

* feat: ์†Œ์ผ“ console.log ์ถ”๊ฐ€

* fix: ์†Œ์ผ“ ํžˆ์Šคํ† ๋ฆฌ ์ €์žฅ์‹œ ํ˜•์‹ ์˜ค๋ฅ˜ ์ˆ˜์ •

* [Server] ๋กœ๊ฑฐ ๊ธฐ๋Šฅ ํ™•๋Œ€ (#176)

* feat: no auth ๋ฒ„๊ทธ -> password ์ฃผ์„ ํ•ด์ œ

* feat: ๋กœ๊ทธ์— ํ•œ๊ตญ ์‹œ๊ฐ„๋Œ€ ์ถ”๊ฐ€

* feat: ๋กœ๊ทธํŒŒ์ผ์ด dist ๋‚ด๋ถ€์— ์กด์žฌํ•ด ํ•œ ๋‹จ๊ณ„ ์œ„๋กœ ์˜ฎ๊ฒจ์คŒ.

* feat: ์‘๋‹ต๋กœ๊ทธ๋Š” interceptor์—์„œ ์ฒ˜๋ฆฌํ•˜๋„๋ก ๋กœ์ง ์ˆ˜์ •

* feat: ๋กœ๊ทธ ์ธํ„ฐ์…‰ํ„ฐ app.module.ts ํ”„๋กœ๋ฐ”์ด๋”์— ์ถ”๊ฐ€

* ๐Ÿ›fix: redis module password ๋ถ€๋ถ„ ์ฃผ์„์ฒ˜๋ฆฌ (#180)

* [Server] ํ”ผ๋“œํ™”๋ฉด api ๊ตฌํ˜„ (#196)

* chore: import ๋ฌธ ์ตœ์ ํ™”

* feat: ํ”ผ๋“œ resource ์ƒ์„ฑ

* feat: checklist entity์— ์นดํ…Œ๊ณ ๋ฆฌ ์ปฌ๋Ÿผ ์ถ”๊ฐ€

* feat: feedmodel ์ •์˜

private checklist model์—์„œ likeCount์™€ downloadCount ์ปฌ๋Ÿผ ์ถ”๊ฐ€

* chore: ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” dto ํŒŒ์ผ ์‚ญ์ œ

* chore: ์นดํ…Œ๊ณ ๋ฆฌ ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€

* chore: ์•ˆ์“ฐ๋Š” ํ…Œ์ŠคํŠธ ํŒŒ์ผ ์‚ญ์ œ

* feat: ํ”ผ๋“œ ํ™”๋ฉด api ๊ตฌํ˜„

* feat: feeds.service.spec.ts ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ

* feat: api ์—๋Ÿฌ ํ•ธ๋“ค๋ง ๋กœ์ง ์ถ”๊ฐ€

* test: feeds.service.spec.ts ์˜ˆ์™ธ ์ผ€์ด์Šค์— ๋Œ€ํ•œ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ถ”๊ฐ€

* feat: ์—๋Ÿฌ๋ฉ”์‹œ์ง€ ์ˆ˜์ •

* feat: ๊ด€๋ฆฌ ํŽ˜์ด์ง€์™€ api ๊ตฌํ˜„ (#197)

* feat: admin resource ๊ตฌํ˜„

* feat: ๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€ ์ถ”๊ฐ€

* feat: cors ์„ค์ • ์ถ”๊ฐ€

* feat: ์ž„์‹œ๋กœ ๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€ ๊ถŒํ•œ ์ œ๊ฑฐ

* feat: admin sse api ๊ตฌํ˜„

* refactor: redis sub ์„œ๋น„์Šค ๊ตฌํ˜„

* feat: ์–ด๋“œ๋ฏผ ํŽ˜์ด์ง€ api ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: redis pub ์„œ๋น„์Šค ์ถ”๊ฐ€

* refactor: admin controller์— redis service๋กœ ๊ต์ฒด

* feat: log interceptor์— redis pub ์ถ”๊ฐ€

* refactor: channels const๋กœ ๋ถ„๋ฆฌ

* style: ๋ถˆํ•„์š”ํ•œ ์ฃผ์„ ์ œ๊ฑฐ

* feat: ws ๋กœ๊ทธ redis pub ์ถ”๊ฐ€

* feat: admin page ๋ฐ•์Šค ๋ˆ„๋ฅด๋ฉด ํŽผ์น˜๊ธฐ/์ ‘๊ธฐ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: admin ํŽ˜์ด์ง€ ์ƒ‰๊น” ๋ณ€๊ฒฝ

* feat: ๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€ ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* [Server] ํด๋ผ์ด์–ธํŠธ์™€ api ์—ฐ๋™ ์ž‘์—… (login, socket history)  (#209)

* feat: socket ๋นˆ ํžˆ์Šคํ† ๋ฆฌ๋ฉด [] ๋ณด๋‚ด๊ธฐ

* feat: ๋กœ๊ทธ์ธ์‹œ ์œ ์ € ๋‹‰๋„ค์ž„๋„ ๊ฐ™์ด ๋ณด๋‚ด์ฃผ๊ธฐ

* [Server] ai์™€ ๊ด€๋ จํ•œ db ๊ตฌ์กฐ ๊ฐœ์„  (#220)

* refactor: ๊ฒฝ๋กœ ์ด๋ฆ„ ์ˆ˜์ • entity->entities

* feat: category ์—”ํ‹ฐํ‹ฐ ์ƒ์„ฑ

* feat: reason ๋ชจ๋ธ ์ƒ์„ฑ ๋ฐ ๊ฐ ํ…Œ์ด๋ธ” relation ์„ค์ •

* feat: ๊ฐ ํ…Œ์ด๋ธ” relation ์ˆ˜์ • ๋ฐ ์˜์กด์„ฑ ์ฃผ์ž…

* feat: relation ๋ฐฉ์‹ ๋ณ€๊ฒฝ์œผ๋กœ ์ธํ•œfolders.service.ts ๋ฉ”์„œ๋“œ ์ˆ˜์ •, ์˜์กด์„ฑ ์ฃผ์ž…

* feat: admin ํŽ˜์ด์ง€ ํ•ญ๋ชฉ ์ž๋™ ์ถ”๊ฐ€ , ์‹œ์Šคํ…œ ์ƒํƒœ ๊ทธ๋ž˜ํ”„ ์ถ”๊ฐ€ (#223)

* feat: serverStatus ํ™•์ธ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: serverStatus ํ™•์ธ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: ๋ชจ๋“  ๊ตฌ๋…์„ ๋ฐ›์•„์˜ค๋Š” ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* chore: ๋ถˆํ•„์š”ํ•œ ์ƒ์ˆ˜ ์ œ๊ฑฐ

* feat: admin page ์„œ๋ฒ„ ์ƒํƒœ ํ™•์ธ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* [Server] ์นดํ…Œ๊ณ ๋ฆฌ๋ณ„ ์•„์ดํ…œ ๊ฐœ์ˆ˜ ํ™•์ธ ๋ฐ ๊ฐœ์ˆ˜๋กœ item ์ƒ์„ฑ ๋กœ์ง (#228)

* feat: ์นดํ…Œ๊ณ ๋ฆฌ๋ณ„ ์•„์ดํ…œ ๊ฐœ์ˆ˜ ๋ฐ˜ํ™˜ํ•ด์ฃผ๋Š” api ์ƒ์„ฑ

* feat: ์นดํ…Œ๊ณ ๋ฆฌ๋ณ„ ์•„์ดํ…œ ๊ฐœ์ˆ˜ itemCount๋กœ pub๋„ ํ•˜๊ณ  ์‘๋‹ต๋„ ๋ฐ˜ํ™˜ํ•˜๋Š” ์„œ๋น„์Šค ํ•จ์ˆ˜ ๊ตฌํ˜„

* feat: generate-item api์— ๋Œ€ํ•œ controller ํ•จ์ˆ˜ ๊ตฌํ˜„

* feat: generate-item api์— ๋Œ€ํ•œ service ํ•จ์ˆ˜ ๊ตฌํ˜„

* [Server] ์นดํ…Œ๊ณ ๋ฆฌ api db ๋ฐฉ์‹์œผ๋กœ ์—…๋ฐ์ดํŠธ, ์ธ๊ณต์ง€๋Šฅ ์‘๋‹ต api db ์บ์‹ฑ ๊ตฌ์กฐ๋กœ ๊ฐœ์„  (#240)

* feat: category service ํ•จ์ˆ˜ ์ˆ˜์ •

* feat: category service ํ•จ์ˆ˜ ์š”์ฒญ ํ˜•ํƒœ ๋ณ€๊ฒฝ

* feat: ai ์ฒดํฌ๋ฆฌ์ŠคํŠธ ํ•ญ๋ชฉ ์‘๋‹ต api db ์บ์‹ฑ ๊ตฌ์กฐ๋กœ ๋ณ€๊ฒฝ

---------

Co-authored-by: Minseong Park <52368015+pminsung12@users.noreply.github.com>
yangdongsuk added a commit that referenced this pull request Dec 13, 2023
* [Server] ๊ฐœ๋ฐœํ™˜๊ฒฝ ์„ธํŒ… (#4)

* build: open-list-server init

* chore: @nestjs/config class-validator class-transformer ์„ค์น˜

* chore: ๋ฃจํŠธ ๋ ˆ๋ฒจ์—์„œ ์„ค์น˜ํ•œ ํŒจํ‚ค์ง€ ์‚ญ์ œ

* chore: NestJs ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์„ธํŒ…

* chore: @nestjs/config class-validator class-transformer ์„ค์น˜

* Server/feature/#13 (#25)

* chore: postgresql, nestjs docker ์„ธํŒ…

* chore: @nestjs/typeorm, typeorm, pg ์„ค์น˜

* chore: Typeorm ์„ธํŒ… ๋ฐ TestModel ํ…Œ์ด๋ธ” ์ƒ์„ฑ

* ํ…Œ์ŠคํŠธ์šฉ ์œ ์ € API ๊ตฌํ˜„ (#30)

* chore: common resource ์ถ”๊ฐ€

* chore: users resource ์ถ”๊ฐ€

* feature: base entity ๊ตฌํ˜„

* feature: usersEntity ๊ตฌํ˜„

* feature: ๋ชจ๋“ˆ์— usersModel ์ถ”๊ฐ€

* style: entity,dto์˜ users -> user๋กœ ๋ณ€๊ฒฝ

* feature: CreateUserDto ๊ตฌํ˜„

* feature: userEntity ์ด๋ฉ”์ผ ํ•„๋“œ ์ถ”๊ฐ€

* feature: createUserDto ์ด๋ฉ”์ผ ํ•„๋“œ ์ถ”๊ฐ€

* feature: user patch->put์œผ๋กœ ๋ณ€๊ฒฝ

* feature: updateUserDto ๊ตฌํ˜„

* feature : create user ๊ตฌํ˜„

* feature: ๋ชจ๋“  ์œ ์ €์˜ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” API ๊ตฌํ˜„

* feature: ํŠน์ • ์œ ์ €์˜ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” API ๊ตฌํ˜„

* feature: user ์ •๋ณด ์ˆ˜์ • API ๊ตฌํ˜„

* feature: user ์‚ญ์ œ API ๊ตฌํ˜„

* feature: ValidationPipe ์ ์šฉ

* refactor: usersService ๋ฆฌํŒฉํ† ๋ง

* [Server] ์œ ๋‹› ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ ์„ธํŒ… (#32)

* chore: test ๊ฒฝ๋กœ ์„ค์ •

* feature: TestCommonModule ๊ตฌํ˜„

* feature: users.service.spec.ts ์˜์กด์„ฑ ์ฃผ์ž…

* feature: users.controller.spec.ts ์˜์กด์„ฑ ์ฃผ์ž…

* [Server] Users resource ์ด๋ฆ„ ๋ณ€๊ฒฝ (#34)

* style: usersController ๋„ค์ด๋ฐ์— ์ปจ๋ฒค์…˜ ๋งž๊ฒŒ ๋ณ€๊ฒฝ

* style: usersService ์ปจ๋ฒค์…˜์— ๋”ฐ๋ฅธ ๋„ค์ด๋ฐ ๋ณ€๊ฒฝ

* style: UsersModel -> UserModel ์ปจ๋ฒค์…˜์— ๋”ฐ๋ฅธ ๋„ค์ด๋ฐ ๋ณ€๊ฒฝ

* feature: usersService ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ (#39)

* [Server] Folder entity ์ƒ์„ฑ ๋ฐ crud ๊ตฌํ˜„ (#42)

* feat: folders crud ๊ตฌํ˜„

* chore: TestModel ์‚ญ์ œ ๋ฐ ๊ด€๋ จ๋œ ์ข…์†์„ฑ ์ œ๊ฑฐ

* feat: folders.controller.spec.ts ์‚ญ์ œ, folders.service.spec.ts ๊ตฌํ˜„

* feature: dockerํŒŒ์ผ ์ˆ˜์ • (#57)

* feat: private checklist entity ์ƒ์„ฑ ๋ฐ crud ๊ตฌํ˜„ (#61)

* chore: ๊ฐœ๋ฐœ์šฉ postgres ํฌํŠธ๋ณ€๊ฒฝ 5432->5433, .env๋„ port 5433์œผ๋กœ ๋ณ€๊ฒฝํ•„์š”

* feat: checklists res ์ƒ์„ฑ

* feat: checklist, private-checklist, shared-checklisst ์—”ํ‹ฐํ‹ฐ ์ƒ์„ฑ, user๋ชจ๋ธ๊ณผ folder๋ชจ๋ธ๊ณผ์˜ ์˜์กด๊ด€๊ณ„ ์ฃผ์ž…

* feat: author->editor๋กœ ์ˆ˜์ •, ๊ณต์œ ์ฒดํฌ๋ฆฌ์ŠคํŠธ์™€ ์‚ฌ์šฉ์ž์˜ relation์„ many to many๋กœ ์—…๋ฐ์ดํŠธ

* feat: ๊ฐœ์ธ, ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ์— ๋Œ€ํ•ด ์ƒ์„ฑ๊ณผ ์—…๋ฐ์ดํŠธ ์‹œ dto ์ƒ์„ฑ

* fix: class ์ด๋ฆ„ ์˜คํƒ€ ์ˆ˜์ •

* refactor: rest api ๋ฐฉ์‹์— ๋”ฐ๋ผ ํ•จ์ˆ˜๋ช… ๋ณ€๊ฒฝ

* feat: CheckListModel์—์„œ ์ง„ํ–‰๋ฅ  ์ปฌ๋Ÿผ ์‚ญ์ œ

* feat: folder์™€ user๊ฐ„์˜ manyToOne relation์ ์šฉ

* feat: private-checklist crud ์ž‘์„ฑ

* feat: folder service ์ปค๋ฒ„๋ฆฌ์ง€ 100 ๋‹ฌ์„ฑ

* test: private-checklist test code ์ž‘์„ฑ, ์ปค๋ฒ„๋ฆฌ์ง€ 92ํผ์„ผํŠธ

* feat: checklist ํด๋” ๋ถ„๋ฆฌ & dto ๋นˆ๋ฌธ์ž์—ด ๊ฒ€์ฆ ์ถ”๊ฐ€ (#66)

* refactor: checklists๋ฅผ private, sharedํด๋”๋กœ ๋ถ„๋ฆฌ.

* refactor: private-checklists๋ฅผ folders ํ•˜์œ„๋กœ ์ด๋™

* fix: ๋นˆ๋ฌธ์ž์—ด ๊ฒ€์ฆ ์ถ”๊ฐ€

* [Server] Winston์œผ๋กœ ๋กœ๊ทธ ๊ด€๋ฆฌ (#70)

* chore: nest-winston winston winston-daily-rotate-file ์„ค์น˜

* feat: winston logger ์„ค์ • ํŒŒ์ผ ๊ตฌํ˜„

* feat: winston logger middleware ๊ตฌํ˜„

* feat: ์š”์ฒญ logger middleware ๊ตฌํ˜„

* feat: ๋กœ๊ทธ์— ์š”์ฒญ ์ฒ˜๋ฆฌ ์‹œ๊ฐ„ ์ถ”๊ฐ€๋˜๋„๋ก ๊ฐœ์„ 

* chore: PR ํ…œํ”Œ๋ฆฟ ์ˆ˜์ •

* chore: PR ํ…œํ”Œ๋ฆฟ ์ˆ˜์ •

* feat: jwt access, refresh token ๊ธฐ๋ฐ˜ ์ธ๊ฐ€ ๊ตฌํ˜„

* chore: auth resource ์ถ”๊ฐ€

* chore: jwt ๋ชจ๋“ˆ ์ถ”๊ฐ€

* feature: signToken ๊ตฌํ˜„

* feature: ํ† ํฐ ๊ฒ€์ฆ, ํ† ํฐ ์žฌ๋ฐœ๊ธ‰ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* feature: ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* feature: ๋กœ๊ทธ์ธ ๊ด€๋ จ ์„œ๋น„์Šค ๊ตฌํ˜„

* feature: login ์ปจํŠธ๋กค๋Ÿฌ ๊ตฌํ˜„

* style: loginDto -> loginUserDto๋กœ ๋ณ€๊ฒฝ

* feature: access ํ† ํฐ ์žฌ๋ฐœ๊ธ‰ ์ปจํŠธ๋กค๋Ÿฌ ๊ตฌํ˜„

* refactor: accessํ† ํฐ ์žฌ๋ฐœ๊ธ‰ ํ˜•์‹ ๋ณ€๊ฒฝ

* feature: ์œ ์ € register ๊ธฐ๋Šฅ ๊ตฌํ˜„

* feature: auth.service.ts ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ

* fix: ์ด๋ฉ”์ผ ์ค‘๋ณต์‹œ ์—๋Ÿฌ ๋ฉ”์‹œ์ง€ ์ˆ˜์ •

---------

Co-authored-by: Minseong Park <52368015+pminsung12@users.noreply.github.com>

* [Server] shared-checklist ์†Œ์ผ“ ๊ตฌํ˜„ (#78)

* [Server] apple oauth api ๊ตฌํ˜„ (#86)

* chore: @nestjs/axios ์„ค์น˜

* chore: axios ์„ค์น˜

* chore: axios ์„ค์น˜

* feat: dto์ˆ˜์ •, userId ์ปฌ๋Ÿผ์ถ”๊ฐ€, providerId ์ˆ˜์ •, fullName ์ปฌ๋Ÿผ ์ถ”๊ฐ€

* feat: entity์— ๋”ฐ๋ผ dto ํ•ญ๋ชฉ ์ˆ˜์ •

* feat: apple oauth ๋กœ๊ทธ์ธ ์„œ๋น„์Šค ํ•จ์ˆ˜ ์ถ”๊ฐ€

client secret ๋งŒ๋“ค๊ณ , axios post๋กœ user ์ •๋ณด ๊ฐ€์ง€๊ณ ์˜ด.

* feat: apple oauth ๋กœ๊ทธ์ธ ์—”๋“œํฌ์ธํŠธ ์ถ”๊ฐ€

* feat: apple ์œ ์ €์—๋Œ€ํ•ด create, update ํ•จ์ˆ˜ ๊ตฌํ˜„

* feat: publicKey ๋ฐœ๊ธ‰๋ฐ›๋Š” ๋กœ์ง์ถ”๊ฐ€

* [Server] access ํ† ํฐ ์žฌ๋ฐœ๊ธ‰์‹œ ์œ ์ € ์ •๋ณด ์—†๋Š” ๋ฒ„๊ทธ ์ˆ˜์ • (#83)

* [Server] privateChecklist์˜ ๋‚ด์šฉ ์ €์žฅ api ๊ตฌํ˜„ (#88)

* [Server] apple oauth ๋กœ๊ทธ์ธ ๋กœ์ง ์ˆ˜์ • (#118)

* feat: env ์‚ฌ์šฉ๋ฐฉ์‹ ๋ณ€๊ฒฝ + idToken ๊ฒ€์ฆ๋กœ์ง ์ถ”๊ฐ€

* chore: jwk๋ฅผ pem์œผ๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ ์œ„ํ•œ jose ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ค์น˜

* chore: jose ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ œ๊ฑฐ @panva/jose ์„ค์น˜

* feat: request body๋กœ ๋“ค์–ด์˜ค๋Š” auth-user.dto.ts ์ˆ˜์ •

* feat: ์• ํ”Œ ์œ ์ € ๋“ฑ๋ก ๋กœ์ง ์ˆ˜์ •

* docs: jsdoc return type ์ˆ˜์ •

* feat: apple login ๋กœ์ง ์ˆ˜์ •(appleToken, clientSecret ๋กœ์ง ์‚ญ์ œ)

* feat: refreshAccessToken ํ•จ์ˆ˜์—์„œ refreshToken๋„ ํ•จ๊ป˜ ๋ฐ˜ํ™˜ํ•ด์ฃผ๋„๋ก ๋กœ์ง ์ˆ˜์ •

* [Server] Clova Studio api  ๊ตฌํ˜„ (#126)

* feat:  checklist-ai ๋ฆฌ์†Œ์Šค ์ƒ์„ฑ

* feat: create-checklist-items.dto.ts ์š”์ฒญ dto ์ƒ์„ฑ

* feat: ๋ฌธ์ž์—ด ๋ฐ ๊ฐ์ข… ์˜ต์…˜ ์ƒ์ˆ˜ํ™”

* feat: user-role const ํŒŒ์ผ ์‚ญ์ œ => ํ•จ์ˆ˜ํ™”

* feat: /checklist-ai POST ์š”์ฒญ api ์ƒ์„ฑ

๋Œ€,์ค‘,์†Œ ์นดํ…Œ๊ณ ๋ฆฌ๋ฅผ body๋กœ ๋ฐ›์•„์˜ค๋ฉด clova studio์—์„œ ์ฒดํฌ๋ฆฌ์ŠคํŠธ ํ•ญ๋ชฉ 10๊ฐœ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

* feat: AccessTokenGuard ๊ตฌํ˜„ ๋ฐ ์ ์šฉ (#129)

* feat: access token guard ๊ตฌํ˜„

* feat: access token guard ์ „์—ญ ์ ์šฉ

* style: access-token.guard.ts ์ฃผ์„ ์ถ”๊ฐ€

* feat: userId decorator ๊ตฌํ˜„

* feat: folders controller์— userId ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* feat: ํด๋” ์„œ๋น„์Šค์— user ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* feat: ๊ฐœ์ธ ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์ปจํŠธ๋กค๋Ÿฌ์— ์œ ์ € ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* feat: private-checklists service์— user ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* fix: ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ˆ˜์ •

* Server/feature/#128 (#139)

* feat: json ๊ตฌ์กฐ๋กœ ์นดํ…Œ๊ณ ๋ฆฌ ๋ฐ์ดํ„ฐ ์ •์˜

* feat: categories ์˜์กด์„ฑ ์ฃผ์ž…

* feat: endpoint๋งŒ๋“ค๊ณ , ์‹ค์ œ ์กด์žฌํ•˜๋Š” id์ธ์ง€ ๊ฒ€์ฆํ•˜๋Š” dto ์ƒ์„ฑ

* fix: ์˜คํƒ€์ˆ˜์ • forder->folder

* feat: param์— dto ์ ์šฉํ•˜์ง€ ๋ชปํ•ด ์‚ญ์ œ

* feat: ์นดํ…Œ๊ณ ๋ฆฌ json ๋ฐ์ดํ„ฐ ๋ณ€์ˆ˜๋ช… ๋ณ€๊ฒฝ, ๋Œ€๋ฌธ์ž๋กœ

* feat: ๋Œ€,์ค‘,์†Œ ์นดํ…Œ๊ณ ๋ฆฌ ๋ฐ˜ํ™˜ api ๊ตฌํ˜„

* test: categories.service.spec.ts ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ

* test: categories.service.spec.ts ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ˆ˜์ • ์ปค๋ฒ„๋ฆฌ์ง€ 100

* feat: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ API ๋ฐ ์†Œ์ผ“ ์ž‘์—… ๊ตฌํ˜„ (#140)

* feat: shared checklist item entity ๊ตฌํ˜„

* style: SharedChecklistItemModel ์˜คํƒ€ ์ˆ˜์ •

* feat: shared checklist id uuid๋กœ ๋ณ€๊ฒฝ

* feat: create shared checklist ๋””ํ‹ฐ์˜ค ์ˆ˜์ •

* feat: shared-checklists ์ƒ์„ฑ ๊ตฌํ˜„

* refactor: shared-checklists ์ €์žฅํ•˜๋Š” ํ•จ์ˆ˜ ๋ถ„๋ฆฌ

* feat: shared-checklists 1๊ฐœ, ์ „๋ถ€ ๊ฐ€์ ธ์˜ค๋Š” ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: ์œ ์ € ์ดˆ๋Œ€ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์‚ญ์ œ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* style: shared-checklists service ์ฃผ์„ ์ถ”๊ฐ€

* feature: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์†Œ์ผ“์— ๋ฐ์ดํ„ฐ ๋ˆ„์  ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: shared-checklists ์†Œ์ผ“ ํ†ต์‹  ์‹œ ๋ฐ์ดํ„ฐ ๋ฐ๋ฒ ์— ์ €์žฅ ๊ตฌํ˜„

* feat: ์†Œ์ผ“ ์—ฐ๊ฒฐ์‹œ ๋ฐฉ์˜ ๋ฐ์ดํ„ฐ ํžˆ์Šคํ† ๋ฆฌ๋ฅผ ์ „์†กํ•˜๋Š” ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* style: ์†Œ์ผ“ ์ฃผ์„ ์ถ”๊ฐ€

* ๐Ÿ”feat: ๊ฐœ๋ฐœ์šฉ ์ž„์‹œ๋กœ ์•ก์„ธ์Šค,๋ฆฌํ”„๋ ˆ์‹œ ํ† ํฐ๋“ค ๋งŒ๋ฃŒ๊ธฐํ•œ ์ผ์ฃผ์ผ๋กœ ์„ค์ • (#142)

* feat: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์•„์ดํ…œ ๊ถŒํ•œ ๋ฌธ์ œ ๋ฐ uuid ๋ฌธ์ œ ํ•ด๊ฒฐ (#146)

* fix: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์•„์ดํ…œ ๊ถŒํ•œ ์—†์œผ๋ฉด ์ ‘๊ทผ ๋ชปํ•˜๊ฒŒ ์ˆ˜์ •

* fix: ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์ถ”๊ฐ€์‹œ ์‚ฌ์šฉ์ž๊ฐ€ ์žˆ๋Š”์ง€ ๊ฒ€์‚ฌ

* fix: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์ƒ์„ฑ์‹œ uuid๊ฐ€ ์•„๋‹ˆ๋ฉด ์„œ๋ฒ„๊ฐ€ ์ฃฝ๋Š” ํ˜„์ƒ ์ˆ˜์ •

* style: ๋ถˆํ•„์š”ํ•œ ์ฝ”๋“œ ์ œ๊ฑฐ

* feat: ์†Œ์ผ“ ๋‹ค์ค‘ ์„œ๋ฒ„ ์ง€์›  (#159)

* chore: docker-compose.yaml์— ๋ ˆ๋””์Šค ์ถ”๊ฐ€

* chore: redis ๋ชจ๋“ˆ ์ถ”๊ฐ€

* feature: nest ๋‹ค์ค‘ ํฌํŠธ ์„œ๋ฒ„ ๊ตฌ์„ฑ

* feature: redis.module.ts ๊ตฌํ˜„ ๋ฐ ์ ์šฉ

* feature: ์†Œ์ผ“์— ๋ ˆ๋””์Šค ์‚ฝ์ž…

* feature: ์†Œ์ผ“ pub/sub ๊ตฌํ˜„

* feat: ์†Œ์ผ“ ๋ ˆ๋””์Šค์— ์ด ์ ‘์†์ž์ˆ˜ ์ฆ๊ฐ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: ์†Œ์ผ“ ํžˆ์Šคํ† ๋ฆฌ ๊ธฐ๋Šฅ ๋ ˆ๋””์Šค ์ ์šฉ

* refactor: shared-checklists.gateway.ts ๋ฆฌํŒฉํ† ๋ง

* feat: ์†Œ์ผ“ editing ์ด๋ฒคํŠธ ์ถ”๊ฐ€ (#164)

* fix: ๋ ˆ๋””์Šค ์—ฐ๊ฒฐ ์ˆ˜์ • (#168)

* [Server] object ํ˜•ํƒœ๊ฐ€ ๋“ค์–ด์˜ค๋ฉด redis์— ์ €์žฅ ์•ˆ๋˜๋Š” ๋ฌธ์ œ ์ˆ˜์ • (#171)

* ๐Ÿ›fix: ์›น์†Œ์ผ“ data๋ฅผ json์œผ๋กœ ๋ณ€๊ฒฝ ํ›„ emit

* ๐Ÿ›fix: history []์ œ๊ฑฐ

* ๐Ÿ›fix: data[0] -> data

* feat: ์›น์†Œ์ผ“ ํžˆ์Šคํ† ๋ฆฌ ๋ฒ„๊ทธ ์ˆ˜์ • ๋ฐ ์ฝ˜์†” ๋กœ๊ทธ ์ถ”๊ฐ€ (#175)

* fix: docker-compose ๋ ˆ๋””์Šค ์„ค์ • ์˜ค๋ฅ˜ ํ•ด๊ฒฐ

* feat: ์†Œ์ผ“ console.log ์ถ”๊ฐ€

* fix: ์†Œ์ผ“ ํžˆ์Šคํ† ๋ฆฌ ์ €์žฅ์‹œ ํ˜•์‹ ์˜ค๋ฅ˜ ์ˆ˜์ •

* [Server] ๋กœ๊ฑฐ ๊ธฐ๋Šฅ ํ™•๋Œ€ (#176)

* feat: no auth ๋ฒ„๊ทธ -> password ์ฃผ์„ ํ•ด์ œ

* feat: ๋กœ๊ทธ์— ํ•œ๊ตญ ์‹œ๊ฐ„๋Œ€ ์ถ”๊ฐ€

* feat: ๋กœ๊ทธํŒŒ์ผ์ด dist ๋‚ด๋ถ€์— ์กด์žฌํ•ด ํ•œ ๋‹จ๊ณ„ ์œ„๋กœ ์˜ฎ๊ฒจ์คŒ.

* feat: ์‘๋‹ต๋กœ๊ทธ๋Š” interceptor์—์„œ ์ฒ˜๋ฆฌํ•˜๋„๋ก ๋กœ์ง ์ˆ˜์ •

* feat: ๋กœ๊ทธ ์ธํ„ฐ์…‰ํ„ฐ app.module.ts ํ”„๋กœ๋ฐ”์ด๋”์— ์ถ”๊ฐ€

* ๐Ÿ›fix: redis module password ๋ถ€๋ถ„ ์ฃผ์„์ฒ˜๋ฆฌ (#180)

* [Server] ํ”ผ๋“œํ™”๋ฉด api ๊ตฌํ˜„ (#196)

* chore: import ๋ฌธ ์ตœ์ ํ™”

* feat: ํ”ผ๋“œ resource ์ƒ์„ฑ

* feat: checklist entity์— ์นดํ…Œ๊ณ ๋ฆฌ ์ปฌ๋Ÿผ ์ถ”๊ฐ€

* feat: feedmodel ์ •์˜

private checklist model์—์„œ likeCount์™€ downloadCount ์ปฌ๋Ÿผ ์ถ”๊ฐ€

* chore: ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” dto ํŒŒ์ผ ์‚ญ์ œ

* chore: ์นดํ…Œ๊ณ ๋ฆฌ ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€

* chore: ์•ˆ์“ฐ๋Š” ํ…Œ์ŠคํŠธ ํŒŒ์ผ ์‚ญ์ œ

* feat: ํ”ผ๋“œ ํ™”๋ฉด api ๊ตฌํ˜„

* feat: feeds.service.spec.ts ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ

* feat: api ์—๋Ÿฌ ํ•ธ๋“ค๋ง ๋กœ์ง ์ถ”๊ฐ€

* test: feeds.service.spec.ts ์˜ˆ์™ธ ์ผ€์ด์Šค์— ๋Œ€ํ•œ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ถ”๊ฐ€

* feat: ์—๋Ÿฌ๋ฉ”์‹œ์ง€ ์ˆ˜์ •

* feat: ๊ด€๋ฆฌ ํŽ˜์ด์ง€์™€ api ๊ตฌํ˜„ (#197)

* feat: admin resource ๊ตฌํ˜„

* feat: ๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€ ์ถ”๊ฐ€

* feat: cors ์„ค์ • ์ถ”๊ฐ€

* feat: ์ž„์‹œ๋กœ ๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€ ๊ถŒํ•œ ์ œ๊ฑฐ

* feat: admin sse api ๊ตฌํ˜„

* refactor: redis sub ์„œ๋น„์Šค ๊ตฌํ˜„

* feat: ์–ด๋“œ๋ฏผ ํŽ˜์ด์ง€ api ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: redis pub ์„œ๋น„์Šค ์ถ”๊ฐ€

* refactor: admin controller์— redis service๋กœ ๊ต์ฒด

* feat: log interceptor์— redis pub ์ถ”๊ฐ€

* refactor: channels const๋กœ ๋ถ„๋ฆฌ

* style: ๋ถˆํ•„์š”ํ•œ ์ฃผ์„ ์ œ๊ฑฐ

* feat: ws ๋กœ๊ทธ redis pub ์ถ”๊ฐ€

* feat: admin page ๋ฐ•์Šค ๋ˆ„๋ฅด๋ฉด ํŽผ์น˜๊ธฐ/์ ‘๊ธฐ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: admin ํŽ˜์ด์ง€ ์ƒ‰๊น” ๋ณ€๊ฒฝ

* feat: ๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€ ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* [Server] ํด๋ผ์ด์–ธํŠธ์™€ api ์—ฐ๋™ ์ž‘์—… (login, socket history)  (#209)

* feat: socket ๋นˆ ํžˆ์Šคํ† ๋ฆฌ๋ฉด [] ๋ณด๋‚ด๊ธฐ

* feat: ๋กœ๊ทธ์ธ์‹œ ์œ ์ € ๋‹‰๋„ค์ž„๋„ ๊ฐ™์ด ๋ณด๋‚ด์ฃผ๊ธฐ

* [Server] ai์™€ ๊ด€๋ จํ•œ db ๊ตฌ์กฐ ๊ฐœ์„  (#220)

* refactor: ๊ฒฝ๋กœ ์ด๋ฆ„ ์ˆ˜์ • entity->entities

* feat: category ์—”ํ‹ฐํ‹ฐ ์ƒ์„ฑ

* feat: reason ๋ชจ๋ธ ์ƒ์„ฑ ๋ฐ ๊ฐ ํ…Œ์ด๋ธ” relation ์„ค์ •

* feat: ๊ฐ ํ…Œ์ด๋ธ” relation ์ˆ˜์ • ๋ฐ ์˜์กด์„ฑ ์ฃผ์ž…

* feat: relation ๋ฐฉ์‹ ๋ณ€๊ฒฝ์œผ๋กœ ์ธํ•œfolders.service.ts ๋ฉ”์„œ๋“œ ์ˆ˜์ •, ์˜์กด์„ฑ ์ฃผ์ž…

* feat: admin ํŽ˜์ด์ง€ ํ•ญ๋ชฉ ์ž๋™ ์ถ”๊ฐ€ , ์‹œ์Šคํ…œ ์ƒํƒœ ๊ทธ๋ž˜ํ”„ ์ถ”๊ฐ€ (#223)

* feat: serverStatus ํ™•์ธ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: serverStatus ํ™•์ธ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: ๋ชจ๋“  ๊ตฌ๋…์„ ๋ฐ›์•„์˜ค๋Š” ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* chore: ๋ถˆํ•„์š”ํ•œ ์ƒ์ˆ˜ ์ œ๊ฑฐ

* feat: admin page ์„œ๋ฒ„ ์ƒํƒœ ํ™•์ธ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* [Server] ์นดํ…Œ๊ณ ๋ฆฌ๋ณ„ ์•„์ดํ…œ ๊ฐœ์ˆ˜ ํ™•์ธ ๋ฐ ๊ฐœ์ˆ˜๋กœ item ์ƒ์„ฑ ๋กœ์ง (#228)

* feat: ์นดํ…Œ๊ณ ๋ฆฌ๋ณ„ ์•„์ดํ…œ ๊ฐœ์ˆ˜ ๋ฐ˜ํ™˜ํ•ด์ฃผ๋Š” api ์ƒ์„ฑ

* feat: ์นดํ…Œ๊ณ ๋ฆฌ๋ณ„ ์•„์ดํ…œ ๊ฐœ์ˆ˜ itemCount๋กœ pub๋„ ํ•˜๊ณ  ์‘๋‹ต๋„ ๋ฐ˜ํ™˜ํ•˜๋Š” ์„œ๋น„์Šค ํ•จ์ˆ˜ ๊ตฌํ˜„

* feat: generate-item api์— ๋Œ€ํ•œ controller ํ•จ์ˆ˜ ๊ตฌํ˜„

* feat: generate-item api์— ๋Œ€ํ•œ service ํ•จ์ˆ˜ ๊ตฌํ˜„

* [Server] ์นดํ…Œ๊ณ ๋ฆฌ api db ๋ฐฉ์‹์œผ๋กœ ์—…๋ฐ์ดํŠธ, ์ธ๊ณต์ง€๋Šฅ ์‘๋‹ต api db ์บ์‹ฑ ๊ตฌ์กฐ๋กœ ๊ฐœ์„  (#240)

* feat: category service ํ•จ์ˆ˜ ์ˆ˜์ •

* feat: category service ํ•จ์ˆ˜ ์š”์ฒญ ํ˜•ํƒœ ๋ณ€๊ฒฝ

* feat: ai ์ฒดํฌ๋ฆฌ์ŠคํŠธ ํ•ญ๋ชฉ ์‘๋‹ต api db ์บ์‹ฑ ๊ตฌ์กฐ๋กœ ๋ณ€๊ฒฝ

* refactor: jwt toekn ๋งŒ๋ฃŒ ์‹œ๊ฐ„ ํ™˜๊ฒฝ๋ณ€์ˆ˜๋กœ ๋ณ€๊ฒฝ (#250)

---------

Co-authored-by: Minseong Park <52368015+pminsung12@users.noreply.github.com>
yangdongsuk added a commit that referenced this pull request Dec 13, 2023
* [Server] ๊ฐœ๋ฐœํ™˜๊ฒฝ ์„ธํŒ… (#4)

* build: open-list-server init

* chore: @nestjs/config class-validator class-transformer ์„ค์น˜

* chore: ๋ฃจํŠธ ๋ ˆ๋ฒจ์—์„œ ์„ค์น˜ํ•œ ํŒจํ‚ค์ง€ ์‚ญ์ œ

* chore: NestJs ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์„ธํŒ…

* chore: @nestjs/config class-validator class-transformer ์„ค์น˜

* Server/feature/#13 (#25)

* chore: postgresql, nestjs docker ์„ธํŒ…

* chore: @nestjs/typeorm, typeorm, pg ์„ค์น˜

* chore: Typeorm ์„ธํŒ… ๋ฐ TestModel ํ…Œ์ด๋ธ” ์ƒ์„ฑ

* ํ…Œ์ŠคํŠธ์šฉ ์œ ์ € API ๊ตฌํ˜„ (#30)

* chore: common resource ์ถ”๊ฐ€

* chore: users resource ์ถ”๊ฐ€

* feature: base entity ๊ตฌํ˜„

* feature: usersEntity ๊ตฌํ˜„

* feature: ๋ชจ๋“ˆ์— usersModel ์ถ”๊ฐ€

* style: entity,dto์˜ users -> user๋กœ ๋ณ€๊ฒฝ

* feature: CreateUserDto ๊ตฌํ˜„

* feature: userEntity ์ด๋ฉ”์ผ ํ•„๋“œ ์ถ”๊ฐ€

* feature: createUserDto ์ด๋ฉ”์ผ ํ•„๋“œ ์ถ”๊ฐ€

* feature: user patch->put์œผ๋กœ ๋ณ€๊ฒฝ

* feature: updateUserDto ๊ตฌํ˜„

* feature : create user ๊ตฌํ˜„

* feature: ๋ชจ๋“  ์œ ์ €์˜ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” API ๊ตฌํ˜„

* feature: ํŠน์ • ์œ ์ €์˜ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” API ๊ตฌํ˜„

* feature: user ์ •๋ณด ์ˆ˜์ • API ๊ตฌํ˜„

* feature: user ์‚ญ์ œ API ๊ตฌํ˜„

* feature: ValidationPipe ์ ์šฉ

* refactor: usersService ๋ฆฌํŒฉํ† ๋ง

* [Server] ์œ ๋‹› ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ ์„ธํŒ… (#32)

* chore: test ๊ฒฝ๋กœ ์„ค์ •

* feature: TestCommonModule ๊ตฌํ˜„

* feature: users.service.spec.ts ์˜์กด์„ฑ ์ฃผ์ž…

* feature: users.controller.spec.ts ์˜์กด์„ฑ ์ฃผ์ž…

* [Server] Users resource ์ด๋ฆ„ ๋ณ€๊ฒฝ (#34)

* style: usersController ๋„ค์ด๋ฐ์— ์ปจ๋ฒค์…˜ ๋งž๊ฒŒ ๋ณ€๊ฒฝ

* style: usersService ์ปจ๋ฒค์…˜์— ๋”ฐ๋ฅธ ๋„ค์ด๋ฐ ๋ณ€๊ฒฝ

* style: UsersModel -> UserModel ์ปจ๋ฒค์…˜์— ๋”ฐ๋ฅธ ๋„ค์ด๋ฐ ๋ณ€๊ฒฝ

* feature: usersService ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ (#39)

* [Server] Folder entity ์ƒ์„ฑ ๋ฐ crud ๊ตฌํ˜„ (#42)

* feat: folders crud ๊ตฌํ˜„

* chore: TestModel ์‚ญ์ œ ๋ฐ ๊ด€๋ จ๋œ ์ข…์†์„ฑ ์ œ๊ฑฐ

* feat: folders.controller.spec.ts ์‚ญ์ œ, folders.service.spec.ts ๊ตฌํ˜„

* feature: dockerํŒŒ์ผ ์ˆ˜์ • (#57)

* feat: private checklist entity ์ƒ์„ฑ ๋ฐ crud ๊ตฌํ˜„ (#61)

* chore: ๊ฐœ๋ฐœ์šฉ postgres ํฌํŠธ๋ณ€๊ฒฝ 5432->5433, .env๋„ port 5433์œผ๋กœ ๋ณ€๊ฒฝํ•„์š”

* feat: checklists res ์ƒ์„ฑ

* feat: checklist, private-checklist, shared-checklisst ์—”ํ‹ฐํ‹ฐ ์ƒ์„ฑ, user๋ชจ๋ธ๊ณผ folder๋ชจ๋ธ๊ณผ์˜ ์˜์กด๊ด€๊ณ„ ์ฃผ์ž…

* feat: author->editor๋กœ ์ˆ˜์ •, ๊ณต์œ ์ฒดํฌ๋ฆฌ์ŠคํŠธ์™€ ์‚ฌ์šฉ์ž์˜ relation์„ many to many๋กœ ์—…๋ฐ์ดํŠธ

* feat: ๊ฐœ์ธ, ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ์— ๋Œ€ํ•ด ์ƒ์„ฑ๊ณผ ์—…๋ฐ์ดํŠธ ์‹œ dto ์ƒ์„ฑ

* fix: class ์ด๋ฆ„ ์˜คํƒ€ ์ˆ˜์ •

* refactor: rest api ๋ฐฉ์‹์— ๋”ฐ๋ผ ํ•จ์ˆ˜๋ช… ๋ณ€๊ฒฝ

* feat: CheckListModel์—์„œ ์ง„ํ–‰๋ฅ  ์ปฌ๋Ÿผ ์‚ญ์ œ

* feat: folder์™€ user๊ฐ„์˜ manyToOne relation์ ์šฉ

* feat: private-checklist crud ์ž‘์„ฑ

* feat: folder service ์ปค๋ฒ„๋ฆฌ์ง€ 100 ๋‹ฌ์„ฑ

* test: private-checklist test code ์ž‘์„ฑ, ์ปค๋ฒ„๋ฆฌ์ง€ 92ํผ์„ผํŠธ

* feat: checklist ํด๋” ๋ถ„๋ฆฌ & dto ๋นˆ๋ฌธ์ž์—ด ๊ฒ€์ฆ ์ถ”๊ฐ€ (#66)

* refactor: checklists๋ฅผ private, sharedํด๋”๋กœ ๋ถ„๋ฆฌ.

* refactor: private-checklists๋ฅผ folders ํ•˜์œ„๋กœ ์ด๋™

* fix: ๋นˆ๋ฌธ์ž์—ด ๊ฒ€์ฆ ์ถ”๊ฐ€

* [Server] Winston์œผ๋กœ ๋กœ๊ทธ ๊ด€๋ฆฌ (#70)

* chore: nest-winston winston winston-daily-rotate-file ์„ค์น˜

* feat: winston logger ์„ค์ • ํŒŒ์ผ ๊ตฌํ˜„

* feat: winston logger middleware ๊ตฌํ˜„

* feat: ์š”์ฒญ logger middleware ๊ตฌํ˜„

* feat: ๋กœ๊ทธ์— ์š”์ฒญ ์ฒ˜๋ฆฌ ์‹œ๊ฐ„ ์ถ”๊ฐ€๋˜๋„๋ก ๊ฐœ์„ 

* chore: PR ํ…œํ”Œ๋ฆฟ ์ˆ˜์ •

* chore: PR ํ…œํ”Œ๋ฆฟ ์ˆ˜์ •

* feat: jwt access, refresh token ๊ธฐ๋ฐ˜ ์ธ๊ฐ€ ๊ตฌํ˜„

* chore: auth resource ์ถ”๊ฐ€

* chore: jwt ๋ชจ๋“ˆ ์ถ”๊ฐ€

* feature: signToken ๊ตฌํ˜„

* feature: ํ† ํฐ ๊ฒ€์ฆ, ํ† ํฐ ์žฌ๋ฐœ๊ธ‰ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* feature: ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* feature: ๋กœ๊ทธ์ธ ๊ด€๋ จ ์„œ๋น„์Šค ๊ตฌํ˜„

* feature: login ์ปจํŠธ๋กค๋Ÿฌ ๊ตฌํ˜„

* style: loginDto -> loginUserDto๋กœ ๋ณ€๊ฒฝ

* feature: access ํ† ํฐ ์žฌ๋ฐœ๊ธ‰ ์ปจํŠธ๋กค๋Ÿฌ ๊ตฌํ˜„

* refactor: accessํ† ํฐ ์žฌ๋ฐœ๊ธ‰ ํ˜•์‹ ๋ณ€๊ฒฝ

* feature: ์œ ์ € register ๊ธฐ๋Šฅ ๊ตฌํ˜„

* feature: auth.service.ts ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ

* fix: ์ด๋ฉ”์ผ ์ค‘๋ณต์‹œ ์—๋Ÿฌ ๋ฉ”์‹œ์ง€ ์ˆ˜์ •

---------

Co-authored-by: Minseong Park <52368015+pminsung12@users.noreply.github.com>

* [Server] shared-checklist ์†Œ์ผ“ ๊ตฌํ˜„ (#78)

* [Server] apple oauth api ๊ตฌํ˜„ (#86)

* chore: @nestjs/axios ์„ค์น˜

* chore: axios ์„ค์น˜

* chore: axios ์„ค์น˜

* feat: dto์ˆ˜์ •, userId ์ปฌ๋Ÿผ์ถ”๊ฐ€, providerId ์ˆ˜์ •, fullName ์ปฌ๋Ÿผ ์ถ”๊ฐ€

* feat: entity์— ๋”ฐ๋ผ dto ํ•ญ๋ชฉ ์ˆ˜์ •

* feat: apple oauth ๋กœ๊ทธ์ธ ์„œ๋น„์Šค ํ•จ์ˆ˜ ์ถ”๊ฐ€

client secret ๋งŒ๋“ค๊ณ , axios post๋กœ user ์ •๋ณด ๊ฐ€์ง€๊ณ ์˜ด.

* feat: apple oauth ๋กœ๊ทธ์ธ ์—”๋“œํฌ์ธํŠธ ์ถ”๊ฐ€

* feat: apple ์œ ์ €์—๋Œ€ํ•ด create, update ํ•จ์ˆ˜ ๊ตฌํ˜„

* feat: publicKey ๋ฐœ๊ธ‰๋ฐ›๋Š” ๋กœ์ง์ถ”๊ฐ€

* [Server] access ํ† ํฐ ์žฌ๋ฐœ๊ธ‰์‹œ ์œ ์ € ์ •๋ณด ์—†๋Š” ๋ฒ„๊ทธ ์ˆ˜์ • (#83)

* [Server] privateChecklist์˜ ๋‚ด์šฉ ์ €์žฅ api ๊ตฌํ˜„ (#88)

* [Server] apple oauth ๋กœ๊ทธ์ธ ๋กœ์ง ์ˆ˜์ • (#118)

* feat: env ์‚ฌ์šฉ๋ฐฉ์‹ ๋ณ€๊ฒฝ + idToken ๊ฒ€์ฆ๋กœ์ง ์ถ”๊ฐ€

* chore: jwk๋ฅผ pem์œผ๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ ์œ„ํ•œ jose ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ค์น˜

* chore: jose ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ œ๊ฑฐ @panva/jose ์„ค์น˜

* feat: request body๋กœ ๋“ค์–ด์˜ค๋Š” auth-user.dto.ts ์ˆ˜์ •

* feat: ์• ํ”Œ ์œ ์ € ๋“ฑ๋ก ๋กœ์ง ์ˆ˜์ •

* docs: jsdoc return type ์ˆ˜์ •

* feat: apple login ๋กœ์ง ์ˆ˜์ •(appleToken, clientSecret ๋กœ์ง ์‚ญ์ œ)

* feat: refreshAccessToken ํ•จ์ˆ˜์—์„œ refreshToken๋„ ํ•จ๊ป˜ ๋ฐ˜ํ™˜ํ•ด์ฃผ๋„๋ก ๋กœ์ง ์ˆ˜์ •

* [Server] Clova Studio api  ๊ตฌํ˜„ (#126)

* feat:  checklist-ai ๋ฆฌ์†Œ์Šค ์ƒ์„ฑ

* feat: create-checklist-items.dto.ts ์š”์ฒญ dto ์ƒ์„ฑ

* feat: ๋ฌธ์ž์—ด ๋ฐ ๊ฐ์ข… ์˜ต์…˜ ์ƒ์ˆ˜ํ™”

* feat: user-role const ํŒŒ์ผ ์‚ญ์ œ => ํ•จ์ˆ˜ํ™”

* feat: /checklist-ai POST ์š”์ฒญ api ์ƒ์„ฑ

๋Œ€,์ค‘,์†Œ ์นดํ…Œ๊ณ ๋ฆฌ๋ฅผ body๋กœ ๋ฐ›์•„์˜ค๋ฉด clova studio์—์„œ ์ฒดํฌ๋ฆฌ์ŠคํŠธ ํ•ญ๋ชฉ 10๊ฐœ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

* feat: AccessTokenGuard ๊ตฌํ˜„ ๋ฐ ์ ์šฉ (#129)

* feat: access token guard ๊ตฌํ˜„

* feat: access token guard ์ „์—ญ ์ ์šฉ

* style: access-token.guard.ts ์ฃผ์„ ์ถ”๊ฐ€

* feat: userId decorator ๊ตฌํ˜„

* feat: folders controller์— userId ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* feat: ํด๋” ์„œ๋น„์Šค์— user ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* feat: ๊ฐœ์ธ ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์ปจํŠธ๋กค๋Ÿฌ์— ์œ ์ € ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* feat: private-checklists service์— user ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* fix: ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ˆ˜์ •

* Server/feature/#128 (#139)

* feat: json ๊ตฌ์กฐ๋กœ ์นดํ…Œ๊ณ ๋ฆฌ ๋ฐ์ดํ„ฐ ์ •์˜

* feat: categories ์˜์กด์„ฑ ์ฃผ์ž…

* feat: endpoint๋งŒ๋“ค๊ณ , ์‹ค์ œ ์กด์žฌํ•˜๋Š” id์ธ์ง€ ๊ฒ€์ฆํ•˜๋Š” dto ์ƒ์„ฑ

* fix: ์˜คํƒ€์ˆ˜์ • forder->folder

* feat: param์— dto ์ ์šฉํ•˜์ง€ ๋ชปํ•ด ์‚ญ์ œ

* feat: ์นดํ…Œ๊ณ ๋ฆฌ json ๋ฐ์ดํ„ฐ ๋ณ€์ˆ˜๋ช… ๋ณ€๊ฒฝ, ๋Œ€๋ฌธ์ž๋กœ

* feat: ๋Œ€,์ค‘,์†Œ ์นดํ…Œ๊ณ ๋ฆฌ ๋ฐ˜ํ™˜ api ๊ตฌํ˜„

* test: categories.service.spec.ts ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ

* test: categories.service.spec.ts ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ˆ˜์ • ์ปค๋ฒ„๋ฆฌ์ง€ 100

* feat: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ API ๋ฐ ์†Œ์ผ“ ์ž‘์—… ๊ตฌํ˜„ (#140)

* feat: shared checklist item entity ๊ตฌํ˜„

* style: SharedChecklistItemModel ์˜คํƒ€ ์ˆ˜์ •

* feat: shared checklist id uuid๋กœ ๋ณ€๊ฒฝ

* feat: create shared checklist ๋””ํ‹ฐ์˜ค ์ˆ˜์ •

* feat: shared-checklists ์ƒ์„ฑ ๊ตฌํ˜„

* refactor: shared-checklists ์ €์žฅํ•˜๋Š” ํ•จ์ˆ˜ ๋ถ„๋ฆฌ

* feat: shared-checklists 1๊ฐœ, ์ „๋ถ€ ๊ฐ€์ ธ์˜ค๋Š” ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: ์œ ์ € ์ดˆ๋Œ€ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์‚ญ์ œ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* style: shared-checklists service ์ฃผ์„ ์ถ”๊ฐ€

* feature: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์†Œ์ผ“์— ๋ฐ์ดํ„ฐ ๋ˆ„์  ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: shared-checklists ์†Œ์ผ“ ํ†ต์‹  ์‹œ ๋ฐ์ดํ„ฐ ๋ฐ๋ฒ ์— ์ €์žฅ ๊ตฌํ˜„

* feat: ์†Œ์ผ“ ์—ฐ๊ฒฐ์‹œ ๋ฐฉ์˜ ๋ฐ์ดํ„ฐ ํžˆ์Šคํ† ๋ฆฌ๋ฅผ ์ „์†กํ•˜๋Š” ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* style: ์†Œ์ผ“ ์ฃผ์„ ์ถ”๊ฐ€

* ๐Ÿ”feat: ๊ฐœ๋ฐœ์šฉ ์ž„์‹œ๋กœ ์•ก์„ธ์Šค,๋ฆฌํ”„๋ ˆ์‹œ ํ† ํฐ๋“ค ๋งŒ๋ฃŒ๊ธฐํ•œ ์ผ์ฃผ์ผ๋กœ ์„ค์ • (#142)

* feat: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์•„์ดํ…œ ๊ถŒํ•œ ๋ฌธ์ œ ๋ฐ uuid ๋ฌธ์ œ ํ•ด๊ฒฐ (#146)

* fix: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์•„์ดํ…œ ๊ถŒํ•œ ์—†์œผ๋ฉด ์ ‘๊ทผ ๋ชปํ•˜๊ฒŒ ์ˆ˜์ •

* fix: ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์ถ”๊ฐ€์‹œ ์‚ฌ์šฉ์ž๊ฐ€ ์žˆ๋Š”์ง€ ๊ฒ€์‚ฌ

* fix: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์ƒ์„ฑ์‹œ uuid๊ฐ€ ์•„๋‹ˆ๋ฉด ์„œ๋ฒ„๊ฐ€ ์ฃฝ๋Š” ํ˜„์ƒ ์ˆ˜์ •

* style: ๋ถˆํ•„์š”ํ•œ ์ฝ”๋“œ ์ œ๊ฑฐ

* feat: ์†Œ์ผ“ ๋‹ค์ค‘ ์„œ๋ฒ„ ์ง€์›  (#159)

* chore: docker-compose.yaml์— ๋ ˆ๋””์Šค ์ถ”๊ฐ€

* chore: redis ๋ชจ๋“ˆ ์ถ”๊ฐ€

* feature: nest ๋‹ค์ค‘ ํฌํŠธ ์„œ๋ฒ„ ๊ตฌ์„ฑ

* feature: redis.module.ts ๊ตฌํ˜„ ๋ฐ ์ ์šฉ

* feature: ์†Œ์ผ“์— ๋ ˆ๋””์Šค ์‚ฝ์ž…

* feature: ์†Œ์ผ“ pub/sub ๊ตฌํ˜„

* feat: ์†Œ์ผ“ ๋ ˆ๋””์Šค์— ์ด ์ ‘์†์ž์ˆ˜ ์ฆ๊ฐ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: ์†Œ์ผ“ ํžˆ์Šคํ† ๋ฆฌ ๊ธฐ๋Šฅ ๋ ˆ๋””์Šค ์ ์šฉ

* refactor: shared-checklists.gateway.ts ๋ฆฌํŒฉํ† ๋ง

* feat: ์†Œ์ผ“ editing ์ด๋ฒคํŠธ ์ถ”๊ฐ€ (#164)

* fix: ๋ ˆ๋””์Šค ์—ฐ๊ฒฐ ์ˆ˜์ • (#168)

* [Server] object ํ˜•ํƒœ๊ฐ€ ๋“ค์–ด์˜ค๋ฉด redis์— ์ €์žฅ ์•ˆ๋˜๋Š” ๋ฌธ์ œ ์ˆ˜์ • (#171)

* ๐Ÿ›fix: ์›น์†Œ์ผ“ data๋ฅผ json์œผ๋กœ ๋ณ€๊ฒฝ ํ›„ emit

* ๐Ÿ›fix: history []์ œ๊ฑฐ

* ๐Ÿ›fix: data[0] -> data

* feat: ์›น์†Œ์ผ“ ํžˆ์Šคํ† ๋ฆฌ ๋ฒ„๊ทธ ์ˆ˜์ • ๋ฐ ์ฝ˜์†” ๋กœ๊ทธ ์ถ”๊ฐ€ (#175)

* fix: docker-compose ๋ ˆ๋””์Šค ์„ค์ • ์˜ค๋ฅ˜ ํ•ด๊ฒฐ

* feat: ์†Œ์ผ“ console.log ์ถ”๊ฐ€

* fix: ์†Œ์ผ“ ํžˆ์Šคํ† ๋ฆฌ ์ €์žฅ์‹œ ํ˜•์‹ ์˜ค๋ฅ˜ ์ˆ˜์ •

* [Server] ๋กœ๊ฑฐ ๊ธฐ๋Šฅ ํ™•๋Œ€ (#176)

* feat: no auth ๋ฒ„๊ทธ -> password ์ฃผ์„ ํ•ด์ œ

* feat: ๋กœ๊ทธ์— ํ•œ๊ตญ ์‹œ๊ฐ„๋Œ€ ์ถ”๊ฐ€

* feat: ๋กœ๊ทธํŒŒ์ผ์ด dist ๋‚ด๋ถ€์— ์กด์žฌํ•ด ํ•œ ๋‹จ๊ณ„ ์œ„๋กœ ์˜ฎ๊ฒจ์คŒ.

* feat: ์‘๋‹ต๋กœ๊ทธ๋Š” interceptor์—์„œ ์ฒ˜๋ฆฌํ•˜๋„๋ก ๋กœ์ง ์ˆ˜์ •

* feat: ๋กœ๊ทธ ์ธํ„ฐ์…‰ํ„ฐ app.module.ts ํ”„๋กœ๋ฐ”์ด๋”์— ์ถ”๊ฐ€

* ๐Ÿ›fix: redis module password ๋ถ€๋ถ„ ์ฃผ์„์ฒ˜๋ฆฌ (#180)

* [Server] ํ”ผ๋“œํ™”๋ฉด api ๊ตฌํ˜„ (#196)

* chore: import ๋ฌธ ์ตœ์ ํ™”

* feat: ํ”ผ๋“œ resource ์ƒ์„ฑ

* feat: checklist entity์— ์นดํ…Œ๊ณ ๋ฆฌ ์ปฌ๋Ÿผ ์ถ”๊ฐ€

* feat: feedmodel ์ •์˜

private checklist model์—์„œ likeCount์™€ downloadCount ์ปฌ๋Ÿผ ์ถ”๊ฐ€

* chore: ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” dto ํŒŒ์ผ ์‚ญ์ œ

* chore: ์นดํ…Œ๊ณ ๋ฆฌ ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€

* chore: ์•ˆ์“ฐ๋Š” ํ…Œ์ŠคํŠธ ํŒŒ์ผ ์‚ญ์ œ

* feat: ํ”ผ๋“œ ํ™”๋ฉด api ๊ตฌํ˜„

* feat: feeds.service.spec.ts ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ

* feat: api ์—๋Ÿฌ ํ•ธ๋“ค๋ง ๋กœ์ง ์ถ”๊ฐ€

* test: feeds.service.spec.ts ์˜ˆ์™ธ ์ผ€์ด์Šค์— ๋Œ€ํ•œ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ถ”๊ฐ€

* feat: ์—๋Ÿฌ๋ฉ”์‹œ์ง€ ์ˆ˜์ •

* feat: ๊ด€๋ฆฌ ํŽ˜์ด์ง€์™€ api ๊ตฌํ˜„ (#197)

* feat: admin resource ๊ตฌํ˜„

* feat: ๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€ ์ถ”๊ฐ€

* feat: cors ์„ค์ • ์ถ”๊ฐ€

* feat: ์ž„์‹œ๋กœ ๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€ ๊ถŒํ•œ ์ œ๊ฑฐ

* feat: admin sse api ๊ตฌํ˜„

* refactor: redis sub ์„œ๋น„์Šค ๊ตฌํ˜„

* feat: ์–ด๋“œ๋ฏผ ํŽ˜์ด์ง€ api ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: redis pub ์„œ๋น„์Šค ์ถ”๊ฐ€

* refactor: admin controller์— redis service๋กœ ๊ต์ฒด

* feat: log interceptor์— redis pub ์ถ”๊ฐ€

* refactor: channels const๋กœ ๋ถ„๋ฆฌ

* style: ๋ถˆํ•„์š”ํ•œ ์ฃผ์„ ์ œ๊ฑฐ

* feat: ws ๋กœ๊ทธ redis pub ์ถ”๊ฐ€

* feat: admin page ๋ฐ•์Šค ๋ˆ„๋ฅด๋ฉด ํŽผ์น˜๊ธฐ/์ ‘๊ธฐ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: admin ํŽ˜์ด์ง€ ์ƒ‰๊น” ๋ณ€๊ฒฝ

* feat: ๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€ ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* [Server] ํด๋ผ์ด์–ธํŠธ์™€ api ์—ฐ๋™ ์ž‘์—… (login, socket history)  (#209)

* feat: socket ๋นˆ ํžˆ์Šคํ† ๋ฆฌ๋ฉด [] ๋ณด๋‚ด๊ธฐ

* feat: ๋กœ๊ทธ์ธ์‹œ ์œ ์ € ๋‹‰๋„ค์ž„๋„ ๊ฐ™์ด ๋ณด๋‚ด์ฃผ๊ธฐ

* [Server] ai์™€ ๊ด€๋ จํ•œ db ๊ตฌ์กฐ ๊ฐœ์„  (#220)

* refactor: ๊ฒฝ๋กœ ์ด๋ฆ„ ์ˆ˜์ • entity->entities

* feat: category ์—”ํ‹ฐํ‹ฐ ์ƒ์„ฑ

* feat: reason ๋ชจ๋ธ ์ƒ์„ฑ ๋ฐ ๊ฐ ํ…Œ์ด๋ธ” relation ์„ค์ •

* feat: ๊ฐ ํ…Œ์ด๋ธ” relation ์ˆ˜์ • ๋ฐ ์˜์กด์„ฑ ์ฃผ์ž…

* feat: relation ๋ฐฉ์‹ ๋ณ€๊ฒฝ์œผ๋กœ ์ธํ•œfolders.service.ts ๋ฉ”์„œ๋“œ ์ˆ˜์ •, ์˜์กด์„ฑ ์ฃผ์ž…

* feat: admin ํŽ˜์ด์ง€ ํ•ญ๋ชฉ ์ž๋™ ์ถ”๊ฐ€ , ์‹œ์Šคํ…œ ์ƒํƒœ ๊ทธ๋ž˜ํ”„ ์ถ”๊ฐ€ (#223)

* feat: serverStatus ํ™•์ธ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: serverStatus ํ™•์ธ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: ๋ชจ๋“  ๊ตฌ๋…์„ ๋ฐ›์•„์˜ค๋Š” ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* chore: ๋ถˆํ•„์š”ํ•œ ์ƒ์ˆ˜ ์ œ๊ฑฐ

* feat: admin page ์„œ๋ฒ„ ์ƒํƒœ ํ™•์ธ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* [Server] ์นดํ…Œ๊ณ ๋ฆฌ๋ณ„ ์•„์ดํ…œ ๊ฐœ์ˆ˜ ํ™•์ธ ๋ฐ ๊ฐœ์ˆ˜๋กœ item ์ƒ์„ฑ ๋กœ์ง (#228)

* feat: ์นดํ…Œ๊ณ ๋ฆฌ๋ณ„ ์•„์ดํ…œ ๊ฐœ์ˆ˜ ๋ฐ˜ํ™˜ํ•ด์ฃผ๋Š” api ์ƒ์„ฑ

* feat: ์นดํ…Œ๊ณ ๋ฆฌ๋ณ„ ์•„์ดํ…œ ๊ฐœ์ˆ˜ itemCount๋กœ pub๋„ ํ•˜๊ณ  ์‘๋‹ต๋„ ๋ฐ˜ํ™˜ํ•˜๋Š” ์„œ๋น„์Šค ํ•จ์ˆ˜ ๊ตฌํ˜„

* feat: generate-item api์— ๋Œ€ํ•œ controller ํ•จ์ˆ˜ ๊ตฌํ˜„

* feat: generate-item api์— ๋Œ€ํ•œ service ํ•จ์ˆ˜ ๊ตฌํ˜„

* [Server] ์นดํ…Œ๊ณ ๋ฆฌ api db ๋ฐฉ์‹์œผ๋กœ ์—…๋ฐ์ดํŠธ, ์ธ๊ณต์ง€๋Šฅ ์‘๋‹ต api db ์บ์‹ฑ ๊ตฌ์กฐ๋กœ ๊ฐœ์„  (#240)

* feat: category service ํ•จ์ˆ˜ ์ˆ˜์ •

* feat: category service ํ•จ์ˆ˜ ์š”์ฒญ ํ˜•ํƒœ ๋ณ€๊ฒฝ

* feat: ai ์ฒดํฌ๋ฆฌ์ŠคํŠธ ํ•ญ๋ชฉ ์‘๋‹ต api db ์บ์‹ฑ ๊ตฌ์กฐ๋กœ ๋ณ€๊ฒฝ

* refactor: jwt toekn ๋งŒ๋ฃŒ ์‹œ๊ฐ„ ํ™˜๊ฒฝ๋ณ€์ˆ˜๋กœ ๋ณ€๊ฒฝ (#250)

---------

Co-authored-by: Minseong Park <52368015+pminsung12@users.noreply.github.com>
wi-seong-cheol pushed a commit that referenced this pull request Dec 14, 2023
* [Server] ๊ฐœ๋ฐœํ™˜๊ฒฝ ์„ธํŒ… (#4)

* build: open-list-server init

* chore: @nestjs/config class-validator class-transformer ์„ค์น˜

* chore: ๋ฃจํŠธ ๋ ˆ๋ฒจ์—์„œ ์„ค์น˜ํ•œ ํŒจํ‚ค์ง€ ์‚ญ์ œ

* chore: NestJs ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์„ธํŒ…

* chore: @nestjs/config class-validator class-transformer ์„ค์น˜

* Server/feature/#13 (#25)

* chore: postgresql, nestjs docker ์„ธํŒ…

* chore: @nestjs/typeorm, typeorm, pg ์„ค์น˜

* chore: Typeorm ์„ธํŒ… ๋ฐ TestModel ํ…Œ์ด๋ธ” ์ƒ์„ฑ

* ํ…Œ์ŠคํŠธ์šฉ ์œ ์ € API ๊ตฌํ˜„ (#30)

* chore: common resource ์ถ”๊ฐ€

* chore: users resource ์ถ”๊ฐ€

* feature: base entity ๊ตฌํ˜„

* feature: usersEntity ๊ตฌํ˜„

* feature: ๋ชจ๋“ˆ์— usersModel ์ถ”๊ฐ€

* style: entity,dto์˜ users -> user๋กœ ๋ณ€๊ฒฝ

* feature: CreateUserDto ๊ตฌํ˜„

* feature: userEntity ์ด๋ฉ”์ผ ํ•„๋“œ ์ถ”๊ฐ€

* feature: createUserDto ์ด๋ฉ”์ผ ํ•„๋“œ ์ถ”๊ฐ€

* feature: user patch->put์œผ๋กœ ๋ณ€๊ฒฝ

* feature: updateUserDto ๊ตฌํ˜„

* feature : create user ๊ตฌํ˜„

* feature: ๋ชจ๋“  ์œ ์ €์˜ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” API ๊ตฌํ˜„

* feature: ํŠน์ • ์œ ์ €์˜ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” API ๊ตฌํ˜„

* feature: user ์ •๋ณด ์ˆ˜์ • API ๊ตฌํ˜„

* feature: user ์‚ญ์ œ API ๊ตฌํ˜„

* feature: ValidationPipe ์ ์šฉ

* refactor: usersService ๋ฆฌํŒฉํ† ๋ง

* [Server] ์œ ๋‹› ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ ์„ธํŒ… (#32)

* chore: test ๊ฒฝ๋กœ ์„ค์ •

* feature: TestCommonModule ๊ตฌํ˜„

* feature: users.service.spec.ts ์˜์กด์„ฑ ์ฃผ์ž…

* feature: users.controller.spec.ts ์˜์กด์„ฑ ์ฃผ์ž…

* [Server] Users resource ์ด๋ฆ„ ๋ณ€๊ฒฝ (#34)

* style: usersController ๋„ค์ด๋ฐ์— ์ปจ๋ฒค์…˜ ๋งž๊ฒŒ ๋ณ€๊ฒฝ

* style: usersService ์ปจ๋ฒค์…˜์— ๋”ฐ๋ฅธ ๋„ค์ด๋ฐ ๋ณ€๊ฒฝ

* style: UsersModel -> UserModel ์ปจ๋ฒค์…˜์— ๋”ฐ๋ฅธ ๋„ค์ด๋ฐ ๋ณ€๊ฒฝ

* feature: usersService ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ (#39)

* [Server] Folder entity ์ƒ์„ฑ ๋ฐ crud ๊ตฌํ˜„ (#42)

* feat: folders crud ๊ตฌํ˜„

* chore: TestModel ์‚ญ์ œ ๋ฐ ๊ด€๋ จ๋œ ์ข…์†์„ฑ ์ œ๊ฑฐ

* feat: folders.controller.spec.ts ์‚ญ์ œ, folders.service.spec.ts ๊ตฌํ˜„

* feature: dockerํŒŒ์ผ ์ˆ˜์ • (#57)

* feat: private checklist entity ์ƒ์„ฑ ๋ฐ crud ๊ตฌํ˜„ (#61)

* chore: ๊ฐœ๋ฐœ์šฉ postgres ํฌํŠธ๋ณ€๊ฒฝ 5432->5433, .env๋„ port 5433์œผ๋กœ ๋ณ€๊ฒฝํ•„์š”

* feat: checklists res ์ƒ์„ฑ

* feat: checklist, private-checklist, shared-checklisst ์—”ํ‹ฐํ‹ฐ ์ƒ์„ฑ, user๋ชจ๋ธ๊ณผ folder๋ชจ๋ธ๊ณผ์˜ ์˜์กด๊ด€๊ณ„ ์ฃผ์ž…

* feat: author->editor๋กœ ์ˆ˜์ •, ๊ณต์œ ์ฒดํฌ๋ฆฌ์ŠคํŠธ์™€ ์‚ฌ์šฉ์ž์˜ relation์„ many to many๋กœ ์—…๋ฐ์ดํŠธ

* feat: ๊ฐœ์ธ, ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ์— ๋Œ€ํ•ด ์ƒ์„ฑ๊ณผ ์—…๋ฐ์ดํŠธ ์‹œ dto ์ƒ์„ฑ

* fix: class ์ด๋ฆ„ ์˜คํƒ€ ์ˆ˜์ •

* refactor: rest api ๋ฐฉ์‹์— ๋”ฐ๋ผ ํ•จ์ˆ˜๋ช… ๋ณ€๊ฒฝ

* feat: CheckListModel์—์„œ ์ง„ํ–‰๋ฅ  ์ปฌ๋Ÿผ ์‚ญ์ œ

* feat: folder์™€ user๊ฐ„์˜ manyToOne relation์ ์šฉ

* feat: private-checklist crud ์ž‘์„ฑ

* feat: folder service ์ปค๋ฒ„๋ฆฌ์ง€ 100 ๋‹ฌ์„ฑ

* test: private-checklist test code ์ž‘์„ฑ, ์ปค๋ฒ„๋ฆฌ์ง€ 92ํผ์„ผํŠธ

* feat: checklist ํด๋” ๋ถ„๋ฆฌ & dto ๋นˆ๋ฌธ์ž์—ด ๊ฒ€์ฆ ์ถ”๊ฐ€ (#66)

* refactor: checklists๋ฅผ private, sharedํด๋”๋กœ ๋ถ„๋ฆฌ.

* refactor: private-checklists๋ฅผ folders ํ•˜์œ„๋กœ ์ด๋™

* fix: ๋นˆ๋ฌธ์ž์—ด ๊ฒ€์ฆ ์ถ”๊ฐ€

* [Server] Winston์œผ๋กœ ๋กœ๊ทธ ๊ด€๋ฆฌ (#70)

* chore: nest-winston winston winston-daily-rotate-file ์„ค์น˜

* feat: winston logger ์„ค์ • ํŒŒ์ผ ๊ตฌํ˜„

* feat: winston logger middleware ๊ตฌํ˜„

* feat: ์š”์ฒญ logger middleware ๊ตฌํ˜„

* feat: ๋กœ๊ทธ์— ์š”์ฒญ ์ฒ˜๋ฆฌ ์‹œ๊ฐ„ ์ถ”๊ฐ€๋˜๋„๋ก ๊ฐœ์„ 

* chore: PR ํ…œํ”Œ๋ฆฟ ์ˆ˜์ •

* chore: PR ํ…œํ”Œ๋ฆฟ ์ˆ˜์ •

* feat: jwt access, refresh token ๊ธฐ๋ฐ˜ ์ธ๊ฐ€ ๊ตฌํ˜„

* chore: auth resource ์ถ”๊ฐ€

* chore: jwt ๋ชจ๋“ˆ ์ถ”๊ฐ€

* feature: signToken ๊ตฌํ˜„

* feature: ํ† ํฐ ๊ฒ€์ฆ, ํ† ํฐ ์žฌ๋ฐœ๊ธ‰ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* feature: ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* feature: ๋กœ๊ทธ์ธ ๊ด€๋ จ ์„œ๋น„์Šค ๊ตฌํ˜„

* feature: login ์ปจํŠธ๋กค๋Ÿฌ ๊ตฌํ˜„

* style: loginDto -> loginUserDto๋กœ ๋ณ€๊ฒฝ

* feature: access ํ† ํฐ ์žฌ๋ฐœ๊ธ‰ ์ปจํŠธ๋กค๋Ÿฌ ๊ตฌํ˜„

* refactor: accessํ† ํฐ ์žฌ๋ฐœ๊ธ‰ ํ˜•์‹ ๋ณ€๊ฒฝ

* feature: ์œ ์ € register ๊ธฐ๋Šฅ ๊ตฌํ˜„

* feature: auth.service.ts ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ

* fix: ์ด๋ฉ”์ผ ์ค‘๋ณต์‹œ ์—๋Ÿฌ ๋ฉ”์‹œ์ง€ ์ˆ˜์ •

---------

Co-authored-by: Minseong Park <52368015+pminsung12@users.noreply.github.com>

* [Server] shared-checklist ์†Œ์ผ“ ๊ตฌํ˜„ (#78)

* [Server] apple oauth api ๊ตฌํ˜„ (#86)

* chore: @nestjs/axios ์„ค์น˜

* chore: axios ์„ค์น˜

* chore: axios ์„ค์น˜

* feat: dto์ˆ˜์ •, userId ์ปฌ๋Ÿผ์ถ”๊ฐ€, providerId ์ˆ˜์ •, fullName ์ปฌ๋Ÿผ ์ถ”๊ฐ€

* feat: entity์— ๋”ฐ๋ผ dto ํ•ญ๋ชฉ ์ˆ˜์ •

* feat: apple oauth ๋กœ๊ทธ์ธ ์„œ๋น„์Šค ํ•จ์ˆ˜ ์ถ”๊ฐ€

client secret ๋งŒ๋“ค๊ณ , axios post๋กœ user ์ •๋ณด ๊ฐ€์ง€๊ณ ์˜ด.

* feat: apple oauth ๋กœ๊ทธ์ธ ์—”๋“œํฌ์ธํŠธ ์ถ”๊ฐ€

* feat: apple ์œ ์ €์—๋Œ€ํ•ด create, update ํ•จ์ˆ˜ ๊ตฌํ˜„

* feat: publicKey ๋ฐœ๊ธ‰๋ฐ›๋Š” ๋กœ์ง์ถ”๊ฐ€

* [Server] access ํ† ํฐ ์žฌ๋ฐœ๊ธ‰์‹œ ์œ ์ € ์ •๋ณด ์—†๋Š” ๋ฒ„๊ทธ ์ˆ˜์ • (#83)

* [Server] privateChecklist์˜ ๋‚ด์šฉ ์ €์žฅ api ๊ตฌํ˜„ (#88)

* [Server] apple oauth ๋กœ๊ทธ์ธ ๋กœ์ง ์ˆ˜์ • (#118)

* feat: env ์‚ฌ์šฉ๋ฐฉ์‹ ๋ณ€๊ฒฝ + idToken ๊ฒ€์ฆ๋กœ์ง ์ถ”๊ฐ€

* chore: jwk๋ฅผ pem์œผ๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ ์œ„ํ•œ jose ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ค์น˜

* chore: jose ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ œ๊ฑฐ @panva/jose ์„ค์น˜

* feat: request body๋กœ ๋“ค์–ด์˜ค๋Š” auth-user.dto.ts ์ˆ˜์ •

* feat: ์• ํ”Œ ์œ ์ € ๋“ฑ๋ก ๋กœ์ง ์ˆ˜์ •

* docs: jsdoc return type ์ˆ˜์ •

* feat: apple login ๋กœ์ง ์ˆ˜์ •(appleToken, clientSecret ๋กœ์ง ์‚ญ์ œ)

* feat: refreshAccessToken ํ•จ์ˆ˜์—์„œ refreshToken๋„ ํ•จ๊ป˜ ๋ฐ˜ํ™˜ํ•ด์ฃผ๋„๋ก ๋กœ์ง ์ˆ˜์ •

* [Server] Clova Studio api  ๊ตฌํ˜„ (#126)

* feat:  checklist-ai ๋ฆฌ์†Œ์Šค ์ƒ์„ฑ

* feat: create-checklist-items.dto.ts ์š”์ฒญ dto ์ƒ์„ฑ

* feat: ๋ฌธ์ž์—ด ๋ฐ ๊ฐ์ข… ์˜ต์…˜ ์ƒ์ˆ˜ํ™”

* feat: user-role const ํŒŒ์ผ ์‚ญ์ œ => ํ•จ์ˆ˜ํ™”

* feat: /checklist-ai POST ์š”์ฒญ api ์ƒ์„ฑ

๋Œ€,์ค‘,์†Œ ์นดํ…Œ๊ณ ๋ฆฌ๋ฅผ body๋กœ ๋ฐ›์•„์˜ค๋ฉด clova studio์—์„œ ์ฒดํฌ๋ฆฌ์ŠคํŠธ ํ•ญ๋ชฉ 10๊ฐœ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

* feat: AccessTokenGuard ๊ตฌํ˜„ ๋ฐ ์ ์šฉ (#129)

* feat: access token guard ๊ตฌํ˜„

* feat: access token guard ์ „์—ญ ์ ์šฉ

* style: access-token.guard.ts ์ฃผ์„ ์ถ”๊ฐ€

* feat: userId decorator ๊ตฌํ˜„

* feat: folders controller์— userId ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* feat: ํด๋” ์„œ๋น„์Šค์— user ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* feat: ๊ฐœ์ธ ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์ปจํŠธ๋กค๋Ÿฌ์— ์œ ์ € ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* feat: private-checklists service์— user ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* fix: ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ˆ˜์ •

* Server/feature/#128 (#139)

* feat: json ๊ตฌ์กฐ๋กœ ์นดํ…Œ๊ณ ๋ฆฌ ๋ฐ์ดํ„ฐ ์ •์˜

* feat: categories ์˜์กด์„ฑ ์ฃผ์ž…

* feat: endpoint๋งŒ๋“ค๊ณ , ์‹ค์ œ ์กด์žฌํ•˜๋Š” id์ธ์ง€ ๊ฒ€์ฆํ•˜๋Š” dto ์ƒ์„ฑ

* fix: ์˜คํƒ€์ˆ˜์ • forder->folder

* feat: param์— dto ์ ์šฉํ•˜์ง€ ๋ชปํ•ด ์‚ญ์ œ

* feat: ์นดํ…Œ๊ณ ๋ฆฌ json ๋ฐ์ดํ„ฐ ๋ณ€์ˆ˜๋ช… ๋ณ€๊ฒฝ, ๋Œ€๋ฌธ์ž๋กœ

* feat: ๋Œ€,์ค‘,์†Œ ์นดํ…Œ๊ณ ๋ฆฌ ๋ฐ˜ํ™˜ api ๊ตฌํ˜„

* test: categories.service.spec.ts ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ

* test: categories.service.spec.ts ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ˆ˜์ • ์ปค๋ฒ„๋ฆฌ์ง€ 100

* feat: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ API ๋ฐ ์†Œ์ผ“ ์ž‘์—… ๊ตฌํ˜„ (#140)

* feat: shared checklist item entity ๊ตฌํ˜„

* style: SharedChecklistItemModel ์˜คํƒ€ ์ˆ˜์ •

* feat: shared checklist id uuid๋กœ ๋ณ€๊ฒฝ

* feat: create shared checklist ๋””ํ‹ฐ์˜ค ์ˆ˜์ •

* feat: shared-checklists ์ƒ์„ฑ ๊ตฌํ˜„

* refactor: shared-checklists ์ €์žฅํ•˜๋Š” ํ•จ์ˆ˜ ๋ถ„๋ฆฌ

* feat: shared-checklists 1๊ฐœ, ์ „๋ถ€ ๊ฐ€์ ธ์˜ค๋Š” ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: ์œ ์ € ์ดˆ๋Œ€ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์‚ญ์ œ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* style: shared-checklists service ์ฃผ์„ ์ถ”๊ฐ€

* feature: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์†Œ์ผ“์— ๋ฐ์ดํ„ฐ ๋ˆ„์  ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: shared-checklists ์†Œ์ผ“ ํ†ต์‹  ์‹œ ๋ฐ์ดํ„ฐ ๋ฐ๋ฒ ์— ์ €์žฅ ๊ตฌํ˜„

* feat: ์†Œ์ผ“ ์—ฐ๊ฒฐ์‹œ ๋ฐฉ์˜ ๋ฐ์ดํ„ฐ ํžˆ์Šคํ† ๋ฆฌ๋ฅผ ์ „์†กํ•˜๋Š” ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* style: ์†Œ์ผ“ ์ฃผ์„ ์ถ”๊ฐ€

* ๐Ÿ”feat: ๊ฐœ๋ฐœ์šฉ ์ž„์‹œ๋กœ ์•ก์„ธ์Šค,๋ฆฌํ”„๋ ˆ์‹œ ํ† ํฐ๋“ค ๋งŒ๋ฃŒ๊ธฐํ•œ ์ผ์ฃผ์ผ๋กœ ์„ค์ • (#142)

* feat: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์•„์ดํ…œ ๊ถŒํ•œ ๋ฌธ์ œ ๋ฐ uuid ๋ฌธ์ œ ํ•ด๊ฒฐ (#146)

* fix: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์•„์ดํ…œ ๊ถŒํ•œ ์—†์œผ๋ฉด ์ ‘๊ทผ ๋ชปํ•˜๊ฒŒ ์ˆ˜์ •

* fix: ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์ถ”๊ฐ€์‹œ ์‚ฌ์šฉ์ž๊ฐ€ ์žˆ๋Š”์ง€ ๊ฒ€์‚ฌ

* fix: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์ƒ์„ฑ์‹œ uuid๊ฐ€ ์•„๋‹ˆ๋ฉด ์„œ๋ฒ„๊ฐ€ ์ฃฝ๋Š” ํ˜„์ƒ ์ˆ˜์ •

* style: ๋ถˆํ•„์š”ํ•œ ์ฝ”๋“œ ์ œ๊ฑฐ

* feat: ์†Œ์ผ“ ๋‹ค์ค‘ ์„œ๋ฒ„ ์ง€์›  (#159)

* chore: docker-compose.yaml์— ๋ ˆ๋””์Šค ์ถ”๊ฐ€

* chore: redis ๋ชจ๋“ˆ ์ถ”๊ฐ€

* feature: nest ๋‹ค์ค‘ ํฌํŠธ ์„œ๋ฒ„ ๊ตฌ์„ฑ

* feature: redis.module.ts ๊ตฌํ˜„ ๋ฐ ์ ์šฉ

* feature: ์†Œ์ผ“์— ๋ ˆ๋””์Šค ์‚ฝ์ž…

* feature: ์†Œ์ผ“ pub/sub ๊ตฌํ˜„

* feat: ์†Œ์ผ“ ๋ ˆ๋””์Šค์— ์ด ์ ‘์†์ž์ˆ˜ ์ฆ๊ฐ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: ์†Œ์ผ“ ํžˆ์Šคํ† ๋ฆฌ ๊ธฐ๋Šฅ ๋ ˆ๋””์Šค ์ ์šฉ

* refactor: shared-checklists.gateway.ts ๋ฆฌํŒฉํ† ๋ง

* feat: ์†Œ์ผ“ editing ์ด๋ฒคํŠธ ์ถ”๊ฐ€ (#164)

* fix: ๋ ˆ๋””์Šค ์—ฐ๊ฒฐ ์ˆ˜์ • (#168)

* [Server] object ํ˜•ํƒœ๊ฐ€ ๋“ค์–ด์˜ค๋ฉด redis์— ์ €์žฅ ์•ˆ๋˜๋Š” ๋ฌธ์ œ ์ˆ˜์ • (#171)

* ๐Ÿ›fix: ์›น์†Œ์ผ“ data๋ฅผ json์œผ๋กœ ๋ณ€๊ฒฝ ํ›„ emit

* ๐Ÿ›fix: history []์ œ๊ฑฐ

* ๐Ÿ›fix: data[0] -> data

* feat: ์›น์†Œ์ผ“ ํžˆ์Šคํ† ๋ฆฌ ๋ฒ„๊ทธ ์ˆ˜์ • ๋ฐ ์ฝ˜์†” ๋กœ๊ทธ ์ถ”๊ฐ€ (#175)

* fix: docker-compose ๋ ˆ๋””์Šค ์„ค์ • ์˜ค๋ฅ˜ ํ•ด๊ฒฐ

* feat: ์†Œ์ผ“ console.log ์ถ”๊ฐ€

* fix: ์†Œ์ผ“ ํžˆ์Šคํ† ๋ฆฌ ์ €์žฅ์‹œ ํ˜•์‹ ์˜ค๋ฅ˜ ์ˆ˜์ •

* [Server] ๋กœ๊ฑฐ ๊ธฐ๋Šฅ ํ™•๋Œ€ (#176)

* feat: no auth ๋ฒ„๊ทธ -> password ์ฃผ์„ ํ•ด์ œ

* feat: ๋กœ๊ทธ์— ํ•œ๊ตญ ์‹œ๊ฐ„๋Œ€ ์ถ”๊ฐ€

* feat: ๋กœ๊ทธํŒŒ์ผ์ด dist ๋‚ด๋ถ€์— ์กด์žฌํ•ด ํ•œ ๋‹จ๊ณ„ ์œ„๋กœ ์˜ฎ๊ฒจ์คŒ.

* feat: ์‘๋‹ต๋กœ๊ทธ๋Š” interceptor์—์„œ ์ฒ˜๋ฆฌํ•˜๋„๋ก ๋กœ์ง ์ˆ˜์ •

* feat: ๋กœ๊ทธ ์ธํ„ฐ์…‰ํ„ฐ app.module.ts ํ”„๋กœ๋ฐ”์ด๋”์— ์ถ”๊ฐ€

* ๐Ÿ›fix: redis module password ๋ถ€๋ถ„ ์ฃผ์„์ฒ˜๋ฆฌ (#180)

* [Server] ํ”ผ๋“œํ™”๋ฉด api ๊ตฌํ˜„ (#196)

* chore: import ๋ฌธ ์ตœ์ ํ™”

* feat: ํ”ผ๋“œ resource ์ƒ์„ฑ

* feat: checklist entity์— ์นดํ…Œ๊ณ ๋ฆฌ ์ปฌ๋Ÿผ ์ถ”๊ฐ€

* feat: feedmodel ์ •์˜

private checklist model์—์„œ likeCount์™€ downloadCount ์ปฌ๋Ÿผ ์ถ”๊ฐ€

* chore: ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” dto ํŒŒ์ผ ์‚ญ์ œ

* chore: ์นดํ…Œ๊ณ ๋ฆฌ ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€

* chore: ์•ˆ์“ฐ๋Š” ํ…Œ์ŠคํŠธ ํŒŒ์ผ ์‚ญ์ œ

* feat: ํ”ผ๋“œ ํ™”๋ฉด api ๊ตฌํ˜„

* feat: feeds.service.spec.ts ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ

* feat: api ์—๋Ÿฌ ํ•ธ๋“ค๋ง ๋กœ์ง ์ถ”๊ฐ€

* test: feeds.service.spec.ts ์˜ˆ์™ธ ์ผ€์ด์Šค์— ๋Œ€ํ•œ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ถ”๊ฐ€

* feat: ์—๋Ÿฌ๋ฉ”์‹œ์ง€ ์ˆ˜์ •

* feat: ๊ด€๋ฆฌ ํŽ˜์ด์ง€์™€ api ๊ตฌํ˜„ (#197)

* feat: admin resource ๊ตฌํ˜„

* feat: ๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€ ์ถ”๊ฐ€

* feat: cors ์„ค์ • ์ถ”๊ฐ€

* feat: ์ž„์‹œ๋กœ ๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€ ๊ถŒํ•œ ์ œ๊ฑฐ

* feat: admin sse api ๊ตฌํ˜„

* refactor: redis sub ์„œ๋น„์Šค ๊ตฌํ˜„

* feat: ์–ด๋“œ๋ฏผ ํŽ˜์ด์ง€ api ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: redis pub ์„œ๋น„์Šค ์ถ”๊ฐ€

* refactor: admin controller์— redis service๋กœ ๊ต์ฒด

* feat: log interceptor์— redis pub ์ถ”๊ฐ€

* refactor: channels const๋กœ ๋ถ„๋ฆฌ

* style: ๋ถˆํ•„์š”ํ•œ ์ฃผ์„ ์ œ๊ฑฐ

* feat: ws ๋กœ๊ทธ redis pub ์ถ”๊ฐ€

* feat: admin page ๋ฐ•์Šค ๋ˆ„๋ฅด๋ฉด ํŽผ์น˜๊ธฐ/์ ‘๊ธฐ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: admin ํŽ˜์ด์ง€ ์ƒ‰๊น” ๋ณ€๊ฒฝ

* feat: ๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€ ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* [Server] ํด๋ผ์ด์–ธํŠธ์™€ api ์—ฐ๋™ ์ž‘์—… (login, socket history)  (#209)

* feat: socket ๋นˆ ํžˆ์Šคํ† ๋ฆฌ๋ฉด [] ๋ณด๋‚ด๊ธฐ

* feat: ๋กœ๊ทธ์ธ์‹œ ์œ ์ € ๋‹‰๋„ค์ž„๋„ ๊ฐ™์ด ๋ณด๋‚ด์ฃผ๊ธฐ

* [Server] ai์™€ ๊ด€๋ จํ•œ db ๊ตฌ์กฐ ๊ฐœ์„  (#220)

* refactor: ๊ฒฝ๋กœ ์ด๋ฆ„ ์ˆ˜์ • entity->entities

* feat: category ์—”ํ‹ฐํ‹ฐ ์ƒ์„ฑ

* feat: reason ๋ชจ๋ธ ์ƒ์„ฑ ๋ฐ ๊ฐ ํ…Œ์ด๋ธ” relation ์„ค์ •

* feat: ๊ฐ ํ…Œ์ด๋ธ” relation ์ˆ˜์ • ๋ฐ ์˜์กด์„ฑ ์ฃผ์ž…

* feat: relation ๋ฐฉ์‹ ๋ณ€๊ฒฝ์œผ๋กœ ์ธํ•œfolders.service.ts ๋ฉ”์„œ๋“œ ์ˆ˜์ •, ์˜์กด์„ฑ ์ฃผ์ž…

* feat: admin ํŽ˜์ด์ง€ ํ•ญ๋ชฉ ์ž๋™ ์ถ”๊ฐ€ , ์‹œ์Šคํ…œ ์ƒํƒœ ๊ทธ๋ž˜ํ”„ ์ถ”๊ฐ€ (#223)

* feat: serverStatus ํ™•์ธ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: serverStatus ํ™•์ธ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: ๋ชจ๋“  ๊ตฌ๋…์„ ๋ฐ›์•„์˜ค๋Š” ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* chore: ๋ถˆํ•„์š”ํ•œ ์ƒ์ˆ˜ ์ œ๊ฑฐ

* feat: admin page ์„œ๋ฒ„ ์ƒํƒœ ํ™•์ธ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* [Server] ์นดํ…Œ๊ณ ๋ฆฌ๋ณ„ ์•„์ดํ…œ ๊ฐœ์ˆ˜ ํ™•์ธ ๋ฐ ๊ฐœ์ˆ˜๋กœ item ์ƒ์„ฑ ๋กœ์ง (#228)

* feat: ์นดํ…Œ๊ณ ๋ฆฌ๋ณ„ ์•„์ดํ…œ ๊ฐœ์ˆ˜ ๋ฐ˜ํ™˜ํ•ด์ฃผ๋Š” api ์ƒ์„ฑ

* feat: ์นดํ…Œ๊ณ ๋ฆฌ๋ณ„ ์•„์ดํ…œ ๊ฐœ์ˆ˜ itemCount๋กœ pub๋„ ํ•˜๊ณ  ์‘๋‹ต๋„ ๋ฐ˜ํ™˜ํ•˜๋Š” ์„œ๋น„์Šค ํ•จ์ˆ˜ ๊ตฌํ˜„

* feat: generate-item api์— ๋Œ€ํ•œ controller ํ•จ์ˆ˜ ๊ตฌํ˜„

* feat: generate-item api์— ๋Œ€ํ•œ service ํ•จ์ˆ˜ ๊ตฌํ˜„

* [Server] ์นดํ…Œ๊ณ ๋ฆฌ api db ๋ฐฉ์‹์œผ๋กœ ์—…๋ฐ์ดํŠธ, ์ธ๊ณต์ง€๋Šฅ ์‘๋‹ต api db ์บ์‹ฑ ๊ตฌ์กฐ๋กœ ๊ฐœ์„  (#240)

* feat: category service ํ•จ์ˆ˜ ์ˆ˜์ •

* feat: category service ํ•จ์ˆ˜ ์š”์ฒญ ํ˜•ํƒœ ๋ณ€๊ฒฝ

* feat: ai ์ฒดํฌ๋ฆฌ์ŠคํŠธ ํ•ญ๋ชฉ ์‘๋‹ต api db ์บ์‹ฑ ๊ตฌ์กฐ๋กœ ๋ณ€๊ฒฝ

* refactor: jwt toekn ๋งŒ๋ฃŒ ์‹œ๊ฐ„ ํ™˜๊ฒฝ๋ณ€์ˆ˜๋กœ ๋ณ€๊ฒฝ (#250)

* feat: ์–ด๋“œ๋ฏผ ํŽ˜์ด์ง€ ai๊ด€๋ จ ๋ทฐ ์ถ”๊ฐ€ ๋ฐ ๊ด€๋ จ api ์ถ”๊ฐ€ (#260)

* feat: adminํŽ˜์ด์ง€ cpu ์‚ฌ์šฉ๋Ÿ‰ ํ†ตํ•ฉํ•ด์„œ ๋ณด์—ฌ์ฃผ๊ธฐ

* refactor: serverStatus ๋„คํŠธ์›Œํฌ ๊ด€๋ จ ์ œ๊ฑฐ

* fix: ์ฒดํฌ๋ฆฌ์ŠคํŠธ ai ์ƒ์„ฑ ๊ด€๋ฆฌ์ž๋งŒ ๊ฐ€๋Šฅํ•˜๋„๋ก ์ˆ˜์ •

* feat: admin ํŽ˜์ด์ง€ ai ์—ฐ๋™

---------

Co-authored-by: Minseong Park <52368015+pminsung12@users.noreply.github.com>
yangdongsuk added a commit that referenced this pull request Dec 14, 2023
* [Server] ๊ฐœ๋ฐœํ™˜๊ฒฝ ์„ธํŒ… (#4)

* build: open-list-server init

* chore: @nestjs/config class-validator class-transformer ์„ค์น˜

* chore: ๋ฃจํŠธ ๋ ˆ๋ฒจ์—์„œ ์„ค์น˜ํ•œ ํŒจํ‚ค์ง€ ์‚ญ์ œ

* chore: NestJs ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์„ธํŒ…

* chore: @nestjs/config class-validator class-transformer ์„ค์น˜

* Server/feature/#13 (#25)

* chore: postgresql, nestjs docker ์„ธํŒ…

* chore: @nestjs/typeorm, typeorm, pg ์„ค์น˜

* chore: Typeorm ์„ธํŒ… ๋ฐ TestModel ํ…Œ์ด๋ธ” ์ƒ์„ฑ

* ํ…Œ์ŠคํŠธ์šฉ ์œ ์ € API ๊ตฌํ˜„ (#30)

* chore: common resource ์ถ”๊ฐ€

* chore: users resource ์ถ”๊ฐ€

* feature: base entity ๊ตฌํ˜„

* feature: usersEntity ๊ตฌํ˜„

* feature: ๋ชจ๋“ˆ์— usersModel ์ถ”๊ฐ€

* style: entity,dto์˜ users -> user๋กœ ๋ณ€๊ฒฝ

* feature: CreateUserDto ๊ตฌํ˜„

* feature: userEntity ์ด๋ฉ”์ผ ํ•„๋“œ ์ถ”๊ฐ€

* feature: createUserDto ์ด๋ฉ”์ผ ํ•„๋“œ ์ถ”๊ฐ€

* feature: user patch->put์œผ๋กœ ๋ณ€๊ฒฝ

* feature: updateUserDto ๊ตฌํ˜„

* feature : create user ๊ตฌํ˜„

* feature: ๋ชจ๋“  ์œ ์ €์˜ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” API ๊ตฌํ˜„

* feature: ํŠน์ • ์œ ์ €์˜ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” API ๊ตฌํ˜„

* feature: user ์ •๋ณด ์ˆ˜์ • API ๊ตฌํ˜„

* feature: user ์‚ญ์ œ API ๊ตฌํ˜„

* feature: ValidationPipe ์ ์šฉ

* refactor: usersService ๋ฆฌํŒฉํ† ๋ง

* [Server] ์œ ๋‹› ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ ์„ธํŒ… (#32)

* chore: test ๊ฒฝ๋กœ ์„ค์ •

* feature: TestCommonModule ๊ตฌํ˜„

* feature: users.service.spec.ts ์˜์กด์„ฑ ์ฃผ์ž…

* feature: users.controller.spec.ts ์˜์กด์„ฑ ์ฃผ์ž…

* [Server] Users resource ์ด๋ฆ„ ๋ณ€๊ฒฝ (#34)

* style: usersController ๋„ค์ด๋ฐ์— ์ปจ๋ฒค์…˜ ๋งž๊ฒŒ ๋ณ€๊ฒฝ

* style: usersService ์ปจ๋ฒค์…˜์— ๋”ฐ๋ฅธ ๋„ค์ด๋ฐ ๋ณ€๊ฒฝ

* style: UsersModel -> UserModel ์ปจ๋ฒค์…˜์— ๋”ฐ๋ฅธ ๋„ค์ด๋ฐ ๋ณ€๊ฒฝ

* feature: usersService ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ (#39)

* [Server] Folder entity ์ƒ์„ฑ ๋ฐ crud ๊ตฌํ˜„ (#42)

* feat: folders crud ๊ตฌํ˜„

* chore: TestModel ์‚ญ์ œ ๋ฐ ๊ด€๋ จ๋œ ์ข…์†์„ฑ ์ œ๊ฑฐ

* feat: folders.controller.spec.ts ์‚ญ์ œ, folders.service.spec.ts ๊ตฌํ˜„

* feature: dockerํŒŒ์ผ ์ˆ˜์ • (#57)

* feat: private checklist entity ์ƒ์„ฑ ๋ฐ crud ๊ตฌํ˜„ (#61)

* chore: ๊ฐœ๋ฐœ์šฉ postgres ํฌํŠธ๋ณ€๊ฒฝ 5432->5433, .env๋„ port 5433์œผ๋กœ ๋ณ€๊ฒฝํ•„์š”

* feat: checklists res ์ƒ์„ฑ

* feat: checklist, private-checklist, shared-checklisst ์—”ํ‹ฐํ‹ฐ ์ƒ์„ฑ, user๋ชจ๋ธ๊ณผ folder๋ชจ๋ธ๊ณผ์˜ ์˜์กด๊ด€๊ณ„ ์ฃผ์ž…

* feat: author->editor๋กœ ์ˆ˜์ •, ๊ณต์œ ์ฒดํฌ๋ฆฌ์ŠคํŠธ์™€ ์‚ฌ์šฉ์ž์˜ relation์„ many to many๋กœ ์—…๋ฐ์ดํŠธ

* feat: ๊ฐœ์ธ, ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ์— ๋Œ€ํ•ด ์ƒ์„ฑ๊ณผ ์—…๋ฐ์ดํŠธ ์‹œ dto ์ƒ์„ฑ

* fix: class ์ด๋ฆ„ ์˜คํƒ€ ์ˆ˜์ •

* refactor: rest api ๋ฐฉ์‹์— ๋”ฐ๋ผ ํ•จ์ˆ˜๋ช… ๋ณ€๊ฒฝ

* feat: CheckListModel์—์„œ ์ง„ํ–‰๋ฅ  ์ปฌ๋Ÿผ ์‚ญ์ œ

* feat: folder์™€ user๊ฐ„์˜ manyToOne relation์ ์šฉ

* feat: private-checklist crud ์ž‘์„ฑ

* feat: folder service ์ปค๋ฒ„๋ฆฌ์ง€ 100 ๋‹ฌ์„ฑ

* test: private-checklist test code ์ž‘์„ฑ, ์ปค๋ฒ„๋ฆฌ์ง€ 92ํผ์„ผํŠธ

* feat: checklist ํด๋” ๋ถ„๋ฆฌ & dto ๋นˆ๋ฌธ์ž์—ด ๊ฒ€์ฆ ์ถ”๊ฐ€ (#66)

* refactor: checklists๋ฅผ private, sharedํด๋”๋กœ ๋ถ„๋ฆฌ.

* refactor: private-checklists๋ฅผ folders ํ•˜์œ„๋กœ ์ด๋™

* fix: ๋นˆ๋ฌธ์ž์—ด ๊ฒ€์ฆ ์ถ”๊ฐ€

* [Server] Winston์œผ๋กœ ๋กœ๊ทธ ๊ด€๋ฆฌ (#70)

* chore: nest-winston winston winston-daily-rotate-file ์„ค์น˜

* feat: winston logger ์„ค์ • ํŒŒ์ผ ๊ตฌํ˜„

* feat: winston logger middleware ๊ตฌํ˜„

* feat: ์š”์ฒญ logger middleware ๊ตฌํ˜„

* feat: ๋กœ๊ทธ์— ์š”์ฒญ ์ฒ˜๋ฆฌ ์‹œ๊ฐ„ ์ถ”๊ฐ€๋˜๋„๋ก ๊ฐœ์„ 

* chore: PR ํ…œํ”Œ๋ฆฟ ์ˆ˜์ •

* chore: PR ํ…œํ”Œ๋ฆฟ ์ˆ˜์ •

* feat: jwt access, refresh token ๊ธฐ๋ฐ˜ ์ธ๊ฐ€ ๊ตฌํ˜„

* chore: auth resource ์ถ”๊ฐ€

* chore: jwt ๋ชจ๋“ˆ ์ถ”๊ฐ€

* feature: signToken ๊ตฌํ˜„

* feature: ํ† ํฐ ๊ฒ€์ฆ, ํ† ํฐ ์žฌ๋ฐœ๊ธ‰ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* feature: ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* feature: ๋กœ๊ทธ์ธ ๊ด€๋ จ ์„œ๋น„์Šค ๊ตฌํ˜„

* feature: login ์ปจํŠธ๋กค๋Ÿฌ ๊ตฌํ˜„

* style: loginDto -> loginUserDto๋กœ ๋ณ€๊ฒฝ

* feature: access ํ† ํฐ ์žฌ๋ฐœ๊ธ‰ ์ปจํŠธ๋กค๋Ÿฌ ๊ตฌํ˜„

* refactor: accessํ† ํฐ ์žฌ๋ฐœ๊ธ‰ ํ˜•์‹ ๋ณ€๊ฒฝ

* feature: ์œ ์ € register ๊ธฐ๋Šฅ ๊ตฌํ˜„

* feature: auth.service.ts ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ

* fix: ์ด๋ฉ”์ผ ์ค‘๋ณต์‹œ ์—๋Ÿฌ ๋ฉ”์‹œ์ง€ ์ˆ˜์ •

---------



* [Server] shared-checklist ์†Œ์ผ“ ๊ตฌํ˜„ (#78)

* [Server] apple oauth api ๊ตฌํ˜„ (#86)

* chore: @nestjs/axios ์„ค์น˜

* chore: axios ์„ค์น˜

* chore: axios ์„ค์น˜

* feat: dto์ˆ˜์ •, userId ์ปฌ๋Ÿผ์ถ”๊ฐ€, providerId ์ˆ˜์ •, fullName ์ปฌ๋Ÿผ ์ถ”๊ฐ€

* feat: entity์— ๋”ฐ๋ผ dto ํ•ญ๋ชฉ ์ˆ˜์ •

* feat: apple oauth ๋กœ๊ทธ์ธ ์„œ๋น„์Šค ํ•จ์ˆ˜ ์ถ”๊ฐ€

client secret ๋งŒ๋“ค๊ณ , axios post๋กœ user ์ •๋ณด ๊ฐ€์ง€๊ณ ์˜ด.

* feat: apple oauth ๋กœ๊ทธ์ธ ์—”๋“œํฌ์ธํŠธ ์ถ”๊ฐ€

* feat: apple ์œ ์ €์—๋Œ€ํ•ด create, update ํ•จ์ˆ˜ ๊ตฌํ˜„

* feat: publicKey ๋ฐœ๊ธ‰๋ฐ›๋Š” ๋กœ์ง์ถ”๊ฐ€

* [Server] access ํ† ํฐ ์žฌ๋ฐœ๊ธ‰์‹œ ์œ ์ € ์ •๋ณด ์—†๋Š” ๋ฒ„๊ทธ ์ˆ˜์ • (#83)

* [Server] privateChecklist์˜ ๋‚ด์šฉ ์ €์žฅ api ๊ตฌํ˜„ (#88)

* [Server] apple oauth ๋กœ๊ทธ์ธ ๋กœ์ง ์ˆ˜์ • (#118)

* feat: env ์‚ฌ์šฉ๋ฐฉ์‹ ๋ณ€๊ฒฝ + idToken ๊ฒ€์ฆ๋กœ์ง ์ถ”๊ฐ€

* chore: jwk๋ฅผ pem์œผ๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ ์œ„ํ•œ jose ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ค์น˜

* chore: jose ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ œ๊ฑฐ @panva/jose ์„ค์น˜

* feat: request body๋กœ ๋“ค์–ด์˜ค๋Š” auth-user.dto.ts ์ˆ˜์ •

* feat: ์• ํ”Œ ์œ ์ € ๋“ฑ๋ก ๋กœ์ง ์ˆ˜์ •

* docs: jsdoc return type ์ˆ˜์ •

* feat: apple login ๋กœ์ง ์ˆ˜์ •(appleToken, clientSecret ๋กœ์ง ์‚ญ์ œ)

* feat: refreshAccessToken ํ•จ์ˆ˜์—์„œ refreshToken๋„ ํ•จ๊ป˜ ๋ฐ˜ํ™˜ํ•ด์ฃผ๋„๋ก ๋กœ์ง ์ˆ˜์ •

* [Server] Clova Studio api  ๊ตฌํ˜„ (#126)

* feat:  checklist-ai ๋ฆฌ์†Œ์Šค ์ƒ์„ฑ

* feat: create-checklist-items.dto.ts ์š”์ฒญ dto ์ƒ์„ฑ

* feat: ๋ฌธ์ž์—ด ๋ฐ ๊ฐ์ข… ์˜ต์…˜ ์ƒ์ˆ˜ํ™”

* feat: user-role const ํŒŒ์ผ ์‚ญ์ œ => ํ•จ์ˆ˜ํ™”

* feat: /checklist-ai POST ์š”์ฒญ api ์ƒ์„ฑ

๋Œ€,์ค‘,์†Œ ์นดํ…Œ๊ณ ๋ฆฌ๋ฅผ body๋กœ ๋ฐ›์•„์˜ค๋ฉด clova studio์—์„œ ์ฒดํฌ๋ฆฌ์ŠคํŠธ ํ•ญ๋ชฉ 10๊ฐœ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

* feat: AccessTokenGuard ๊ตฌํ˜„ ๋ฐ ์ ์šฉ (#129)

* feat: access token guard ๊ตฌํ˜„

* feat: access token guard ์ „์—ญ ์ ์šฉ

* style: access-token.guard.ts ์ฃผ์„ ์ถ”๊ฐ€

* feat: userId decorator ๊ตฌํ˜„

* feat: folders controller์— userId ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* feat: ํด๋” ์„œ๋น„์Šค์— user ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* feat: ๊ฐœ์ธ ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์ปจํŠธ๋กค๋Ÿฌ์— ์œ ์ € ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* feat: private-checklists service์— user ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* fix: ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ˆ˜์ •

* Server/feature/#128 (#139)

* feat: json ๊ตฌ์กฐ๋กœ ์นดํ…Œ๊ณ ๋ฆฌ ๋ฐ์ดํ„ฐ ์ •์˜

* feat: categories ์˜์กด์„ฑ ์ฃผ์ž…

* feat: endpoint๋งŒ๋“ค๊ณ , ์‹ค์ œ ์กด์žฌํ•˜๋Š” id์ธ์ง€ ๊ฒ€์ฆํ•˜๋Š” dto ์ƒ์„ฑ

* fix: ์˜คํƒ€์ˆ˜์ • forder->folder

* feat: param์— dto ์ ์šฉํ•˜์ง€ ๋ชปํ•ด ์‚ญ์ œ

* feat: ์นดํ…Œ๊ณ ๋ฆฌ json ๋ฐ์ดํ„ฐ ๋ณ€์ˆ˜๋ช… ๋ณ€๊ฒฝ, ๋Œ€๋ฌธ์ž๋กœ

* feat: ๋Œ€,์ค‘,์†Œ ์นดํ…Œ๊ณ ๋ฆฌ ๋ฐ˜ํ™˜ api ๊ตฌํ˜„

* test: categories.service.spec.ts ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ

* test: categories.service.spec.ts ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ˆ˜์ • ์ปค๋ฒ„๋ฆฌ์ง€ 100

* feat: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ API ๋ฐ ์†Œ์ผ“ ์ž‘์—… ๊ตฌํ˜„ (#140)

* feat: shared checklist item entity ๊ตฌํ˜„

* style: SharedChecklistItemModel ์˜คํƒ€ ์ˆ˜์ •

* feat: shared checklist id uuid๋กœ ๋ณ€๊ฒฝ

* feat: create shared checklist ๋””ํ‹ฐ์˜ค ์ˆ˜์ •

* feat: shared-checklists ์ƒ์„ฑ ๊ตฌํ˜„

* refactor: shared-checklists ์ €์žฅํ•˜๋Š” ํ•จ์ˆ˜ ๋ถ„๋ฆฌ

* feat: shared-checklists 1๊ฐœ, ์ „๋ถ€ ๊ฐ€์ ธ์˜ค๋Š” ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: ์œ ์ € ์ดˆ๋Œ€ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์‚ญ์ œ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* style: shared-checklists service ์ฃผ์„ ์ถ”๊ฐ€

* feature: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์†Œ์ผ“์— ๋ฐ์ดํ„ฐ ๋ˆ„์  ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: shared-checklists ์†Œ์ผ“ ํ†ต์‹  ์‹œ ๋ฐ์ดํ„ฐ ๋ฐ๋ฒ ์— ์ €์žฅ ๊ตฌํ˜„

* feat: ์†Œ์ผ“ ์—ฐ๊ฒฐ์‹œ ๋ฐฉ์˜ ๋ฐ์ดํ„ฐ ํžˆ์Šคํ† ๋ฆฌ๋ฅผ ์ „์†กํ•˜๋Š” ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* style: ์†Œ์ผ“ ์ฃผ์„ ์ถ”๊ฐ€

* ๐Ÿ”feat: ๊ฐœ๋ฐœ์šฉ ์ž„์‹œ๋กœ ์•ก์„ธ์Šค,๋ฆฌํ”„๋ ˆ์‹œ ํ† ํฐ๋“ค ๋งŒ๋ฃŒ๊ธฐํ•œ ์ผ์ฃผ์ผ๋กœ ์„ค์ • (#142)

---------

Co-authored-by: yangdongsuk <51476641+yangdongsuk@users.noreply.github.com>
yangdongsuk added a commit that referenced this pull request Dec 14, 2023
* [Server] ๊ฐœ๋ฐœํ™˜๊ฒฝ ์„ธํŒ… (#4)

* build: open-list-server init

* chore: @nestjs/config class-validator class-transformer ์„ค์น˜

* chore: ๋ฃจํŠธ ๋ ˆ๋ฒจ์—์„œ ์„ค์น˜ํ•œ ํŒจํ‚ค์ง€ ์‚ญ์ œ

* chore: NestJs ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์„ธํŒ…

* chore: @nestjs/config class-validator class-transformer ์„ค์น˜

* Server/feature/#13 (#25)

* chore: postgresql, nestjs docker ์„ธํŒ…

* chore: @nestjs/typeorm, typeorm, pg ์„ค์น˜

* chore: Typeorm ์„ธํŒ… ๋ฐ TestModel ํ…Œ์ด๋ธ” ์ƒ์„ฑ

* ํ…Œ์ŠคํŠธ์šฉ ์œ ์ € API ๊ตฌํ˜„ (#30)

* chore: common resource ์ถ”๊ฐ€

* chore: users resource ์ถ”๊ฐ€

* feature: base entity ๊ตฌํ˜„

* feature: usersEntity ๊ตฌํ˜„

* feature: ๋ชจ๋“ˆ์— usersModel ์ถ”๊ฐ€

* style: entity,dto์˜ users -> user๋กœ ๋ณ€๊ฒฝ

* feature: CreateUserDto ๊ตฌํ˜„

* feature: userEntity ์ด๋ฉ”์ผ ํ•„๋“œ ์ถ”๊ฐ€

* feature: createUserDto ์ด๋ฉ”์ผ ํ•„๋“œ ์ถ”๊ฐ€

* feature: user patch->put์œผ๋กœ ๋ณ€๊ฒฝ

* feature: updateUserDto ๊ตฌํ˜„

* feature : create user ๊ตฌํ˜„

* feature: ๋ชจ๋“  ์œ ์ €์˜ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” API ๊ตฌํ˜„

* feature: ํŠน์ • ์œ ์ €์˜ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” API ๊ตฌํ˜„

* feature: user ์ •๋ณด ์ˆ˜์ • API ๊ตฌํ˜„

* feature: user ์‚ญ์ œ API ๊ตฌํ˜„

* feature: ValidationPipe ์ ์šฉ

* refactor: usersService ๋ฆฌํŒฉํ† ๋ง

* [Server] ์œ ๋‹› ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ ์„ธํŒ… (#32)

* chore: test ๊ฒฝ๋กœ ์„ค์ •

* feature: TestCommonModule ๊ตฌํ˜„

* feature: users.service.spec.ts ์˜์กด์„ฑ ์ฃผ์ž…

* feature: users.controller.spec.ts ์˜์กด์„ฑ ์ฃผ์ž…

* [Server] Users resource ์ด๋ฆ„ ๋ณ€๊ฒฝ (#34)

* style: usersController ๋„ค์ด๋ฐ์— ์ปจ๋ฒค์…˜ ๋งž๊ฒŒ ๋ณ€๊ฒฝ

* style: usersService ์ปจ๋ฒค์…˜์— ๋”ฐ๋ฅธ ๋„ค์ด๋ฐ ๋ณ€๊ฒฝ

* style: UsersModel -> UserModel ์ปจ๋ฒค์…˜์— ๋”ฐ๋ฅธ ๋„ค์ด๋ฐ ๋ณ€๊ฒฝ

* feature: usersService ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ (#39)

* [Server] Folder entity ์ƒ์„ฑ ๋ฐ crud ๊ตฌํ˜„ (#42)

* feat: folders crud ๊ตฌํ˜„

* chore: TestModel ์‚ญ์ œ ๋ฐ ๊ด€๋ จ๋œ ์ข…์†์„ฑ ์ œ๊ฑฐ

* feat: folders.controller.spec.ts ์‚ญ์ œ, folders.service.spec.ts ๊ตฌํ˜„

* feature: dockerํŒŒ์ผ ์ˆ˜์ • (#57)

* feat: private checklist entity ์ƒ์„ฑ ๋ฐ crud ๊ตฌํ˜„ (#61)

* chore: ๊ฐœ๋ฐœ์šฉ postgres ํฌํŠธ๋ณ€๊ฒฝ 5432->5433, .env๋„ port 5433์œผ๋กœ ๋ณ€๊ฒฝํ•„์š”

* feat: checklists res ์ƒ์„ฑ

* feat: checklist, private-checklist, shared-checklisst ์—”ํ‹ฐํ‹ฐ ์ƒ์„ฑ, user๋ชจ๋ธ๊ณผ folder๋ชจ๋ธ๊ณผ์˜ ์˜์กด๊ด€๊ณ„ ์ฃผ์ž…

* feat: author->editor๋กœ ์ˆ˜์ •, ๊ณต์œ ์ฒดํฌ๋ฆฌ์ŠคํŠธ์™€ ์‚ฌ์šฉ์ž์˜ relation์„ many to many๋กœ ์—…๋ฐ์ดํŠธ

* feat: ๊ฐœ์ธ, ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ์— ๋Œ€ํ•ด ์ƒ์„ฑ๊ณผ ์—…๋ฐ์ดํŠธ ์‹œ dto ์ƒ์„ฑ

* fix: class ์ด๋ฆ„ ์˜คํƒ€ ์ˆ˜์ •

* refactor: rest api ๋ฐฉ์‹์— ๋”ฐ๋ผ ํ•จ์ˆ˜๋ช… ๋ณ€๊ฒฝ

* feat: CheckListModel์—์„œ ์ง„ํ–‰๋ฅ  ์ปฌ๋Ÿผ ์‚ญ์ œ

* feat: folder์™€ user๊ฐ„์˜ manyToOne relation์ ์šฉ

* feat: private-checklist crud ์ž‘์„ฑ

* feat: folder service ์ปค๋ฒ„๋ฆฌ์ง€ 100 ๋‹ฌ์„ฑ

* test: private-checklist test code ์ž‘์„ฑ, ์ปค๋ฒ„๋ฆฌ์ง€ 92ํผ์„ผํŠธ

* feat: checklist ํด๋” ๋ถ„๋ฆฌ & dto ๋นˆ๋ฌธ์ž์—ด ๊ฒ€์ฆ ์ถ”๊ฐ€ (#66)

* refactor: checklists๋ฅผ private, sharedํด๋”๋กœ ๋ถ„๋ฆฌ.

* refactor: private-checklists๋ฅผ folders ํ•˜์œ„๋กœ ์ด๋™

* fix: ๋นˆ๋ฌธ์ž์—ด ๊ฒ€์ฆ ์ถ”๊ฐ€

* [Server] Winston์œผ๋กœ ๋กœ๊ทธ ๊ด€๋ฆฌ (#70)

* chore: nest-winston winston winston-daily-rotate-file ์„ค์น˜

* feat: winston logger ์„ค์ • ํŒŒ์ผ ๊ตฌํ˜„

* feat: winston logger middleware ๊ตฌํ˜„

* feat: ์š”์ฒญ logger middleware ๊ตฌํ˜„

* feat: ๋กœ๊ทธ์— ์š”์ฒญ ์ฒ˜๋ฆฌ ์‹œ๊ฐ„ ์ถ”๊ฐ€๋˜๋„๋ก ๊ฐœ์„ 

* chore: PR ํ…œํ”Œ๋ฆฟ ์ˆ˜์ •

* chore: PR ํ…œํ”Œ๋ฆฟ ์ˆ˜์ •

* feat: jwt access, refresh token ๊ธฐ๋ฐ˜ ์ธ๊ฐ€ ๊ตฌํ˜„

* chore: auth resource ์ถ”๊ฐ€

* chore: jwt ๋ชจ๋“ˆ ์ถ”๊ฐ€

* feature: signToken ๊ตฌํ˜„

* feature: ํ† ํฐ ๊ฒ€์ฆ, ํ† ํฐ ์žฌ๋ฐœ๊ธ‰ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* feature: ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* feature: ๋กœ๊ทธ์ธ ๊ด€๋ จ ์„œ๋น„์Šค ๊ตฌํ˜„

* feature: login ์ปจํŠธ๋กค๋Ÿฌ ๊ตฌํ˜„

* style: loginDto -> loginUserDto๋กœ ๋ณ€๊ฒฝ

* feature: access ํ† ํฐ ์žฌ๋ฐœ๊ธ‰ ์ปจํŠธ๋กค๋Ÿฌ ๊ตฌํ˜„

* refactor: accessํ† ํฐ ์žฌ๋ฐœ๊ธ‰ ํ˜•์‹ ๋ณ€๊ฒฝ

* feature: ์œ ์ € register ๊ธฐ๋Šฅ ๊ตฌํ˜„

* feature: auth.service.ts ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ

* fix: ์ด๋ฉ”์ผ ์ค‘๋ณต์‹œ ์—๋Ÿฌ ๋ฉ”์‹œ์ง€ ์ˆ˜์ •

---------

Co-authored-by: Minseong Park <52368015+pminsung12@users.noreply.github.com>

* [Server] shared-checklist ์†Œ์ผ“ ๊ตฌํ˜„ (#78)

* [Server] apple oauth api ๊ตฌํ˜„ (#86)

* chore: @nestjs/axios ์„ค์น˜

* chore: axios ์„ค์น˜

* chore: axios ์„ค์น˜

* feat: dto์ˆ˜์ •, userId ์ปฌ๋Ÿผ์ถ”๊ฐ€, providerId ์ˆ˜์ •, fullName ์ปฌ๋Ÿผ ์ถ”๊ฐ€

* feat: entity์— ๋”ฐ๋ผ dto ํ•ญ๋ชฉ ์ˆ˜์ •

* feat: apple oauth ๋กœ๊ทธ์ธ ์„œ๋น„์Šค ํ•จ์ˆ˜ ์ถ”๊ฐ€

client secret ๋งŒ๋“ค๊ณ , axios post๋กœ user ์ •๋ณด ๊ฐ€์ง€๊ณ ์˜ด.

* feat: apple oauth ๋กœ๊ทธ์ธ ์—”๋“œํฌ์ธํŠธ ์ถ”๊ฐ€

* feat: apple ์œ ์ €์—๋Œ€ํ•ด create, update ํ•จ์ˆ˜ ๊ตฌํ˜„

* feat: publicKey ๋ฐœ๊ธ‰๋ฐ›๋Š” ๋กœ์ง์ถ”๊ฐ€

* [Server] access ํ† ํฐ ์žฌ๋ฐœ๊ธ‰์‹œ ์œ ์ € ์ •๋ณด ์—†๋Š” ๋ฒ„๊ทธ ์ˆ˜์ • (#83)

* [Server] privateChecklist์˜ ๋‚ด์šฉ ์ €์žฅ api ๊ตฌํ˜„ (#88)

* [Server] apple oauth ๋กœ๊ทธ์ธ ๋กœ์ง ์ˆ˜์ • (#118)

* feat: env ์‚ฌ์šฉ๋ฐฉ์‹ ๋ณ€๊ฒฝ + idToken ๊ฒ€์ฆ๋กœ์ง ์ถ”๊ฐ€

* chore: jwk๋ฅผ pem์œผ๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ ์œ„ํ•œ jose ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ค์น˜

* chore: jose ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ œ๊ฑฐ @panva/jose ์„ค์น˜

* feat: request body๋กœ ๋“ค์–ด์˜ค๋Š” auth-user.dto.ts ์ˆ˜์ •

* feat: ์• ํ”Œ ์œ ์ € ๋“ฑ๋ก ๋กœ์ง ์ˆ˜์ •

* docs: jsdoc return type ์ˆ˜์ •

* feat: apple login ๋กœ์ง ์ˆ˜์ •(appleToken, clientSecret ๋กœ์ง ์‚ญ์ œ)

* feat: refreshAccessToken ํ•จ์ˆ˜์—์„œ refreshToken๋„ ํ•จ๊ป˜ ๋ฐ˜ํ™˜ํ•ด์ฃผ๋„๋ก ๋กœ์ง ์ˆ˜์ •

* [Server] Clova Studio api  ๊ตฌํ˜„ (#126)

* feat:  checklist-ai ๋ฆฌ์†Œ์Šค ์ƒ์„ฑ

* feat: create-checklist-items.dto.ts ์š”์ฒญ dto ์ƒ์„ฑ

* feat: ๋ฌธ์ž์—ด ๋ฐ ๊ฐ์ข… ์˜ต์…˜ ์ƒ์ˆ˜ํ™”

* feat: user-role const ํŒŒ์ผ ์‚ญ์ œ => ํ•จ์ˆ˜ํ™”

* feat: /checklist-ai POST ์š”์ฒญ api ์ƒ์„ฑ

๋Œ€,์ค‘,์†Œ ์นดํ…Œ๊ณ ๋ฆฌ๋ฅผ body๋กœ ๋ฐ›์•„์˜ค๋ฉด clova studio์—์„œ ์ฒดํฌ๋ฆฌ์ŠคํŠธ ํ•ญ๋ชฉ 10๊ฐœ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

* feat: AccessTokenGuard ๊ตฌํ˜„ ๋ฐ ์ ์šฉ (#129)

* feat: access token guard ๊ตฌํ˜„

* feat: access token guard ์ „์—ญ ์ ์šฉ

* style: access-token.guard.ts ์ฃผ์„ ์ถ”๊ฐ€

* feat: userId decorator ๊ตฌํ˜„

* feat: folders controller์— userId ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* feat: ํด๋” ์„œ๋น„์Šค์— user ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* feat: ๊ฐœ์ธ ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์ปจํŠธ๋กค๋Ÿฌ์— ์œ ์ € ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* feat: private-checklists service์— user ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* fix: ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ˆ˜์ •

* Server/feature/#128 (#139)

* feat: json ๊ตฌ์กฐ๋กœ ์นดํ…Œ๊ณ ๋ฆฌ ๋ฐ์ดํ„ฐ ์ •์˜

* feat: categories ์˜์กด์„ฑ ์ฃผ์ž…

* feat: endpoint๋งŒ๋“ค๊ณ , ์‹ค์ œ ์กด์žฌํ•˜๋Š” id์ธ์ง€ ๊ฒ€์ฆํ•˜๋Š” dto ์ƒ์„ฑ

* fix: ์˜คํƒ€์ˆ˜์ • forder->folder

* feat: param์— dto ์ ์šฉํ•˜์ง€ ๋ชปํ•ด ์‚ญ์ œ

* feat: ์นดํ…Œ๊ณ ๋ฆฌ json ๋ฐ์ดํ„ฐ ๋ณ€์ˆ˜๋ช… ๋ณ€๊ฒฝ, ๋Œ€๋ฌธ์ž๋กœ

* feat: ๋Œ€,์ค‘,์†Œ ์นดํ…Œ๊ณ ๋ฆฌ ๋ฐ˜ํ™˜ api ๊ตฌํ˜„

* test: categories.service.spec.ts ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ

* test: categories.service.spec.ts ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ˆ˜์ • ์ปค๋ฒ„๋ฆฌ์ง€ 100

* feat: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ API ๋ฐ ์†Œ์ผ“ ์ž‘์—… ๊ตฌํ˜„ (#140)

* feat: shared checklist item entity ๊ตฌํ˜„

* style: SharedChecklistItemModel ์˜คํƒ€ ์ˆ˜์ •

* feat: shared checklist id uuid๋กœ ๋ณ€๊ฒฝ

* feat: create shared checklist ๋””ํ‹ฐ์˜ค ์ˆ˜์ •

* feat: shared-checklists ์ƒ์„ฑ ๊ตฌํ˜„

* refactor: shared-checklists ์ €์žฅํ•˜๋Š” ํ•จ์ˆ˜ ๋ถ„๋ฆฌ

* feat: shared-checklists 1๊ฐœ, ์ „๋ถ€ ๊ฐ€์ ธ์˜ค๋Š” ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: ์œ ์ € ์ดˆ๋Œ€ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์‚ญ์ œ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* style: shared-checklists service ์ฃผ์„ ์ถ”๊ฐ€

* feature: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์†Œ์ผ“์— ๋ฐ์ดํ„ฐ ๋ˆ„์  ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: shared-checklists ์†Œ์ผ“ ํ†ต์‹  ์‹œ ๋ฐ์ดํ„ฐ ๋ฐ๋ฒ ์— ์ €์žฅ ๊ตฌํ˜„

* feat: ์†Œ์ผ“ ์—ฐ๊ฒฐ์‹œ ๋ฐฉ์˜ ๋ฐ์ดํ„ฐ ํžˆ์Šคํ† ๋ฆฌ๋ฅผ ์ „์†กํ•˜๋Š” ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* style: ์†Œ์ผ“ ์ฃผ์„ ์ถ”๊ฐ€

* ๐Ÿ”feat: ๊ฐœ๋ฐœ์šฉ ์ž„์‹œ๋กœ ์•ก์„ธ์Šค,๋ฆฌํ”„๋ ˆ์‹œ ํ† ํฐ๋“ค ๋งŒ๋ฃŒ๊ธฐํ•œ ์ผ์ฃผ์ผ๋กœ ์„ค์ • (#142)

* feat: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์•„์ดํ…œ ๊ถŒํ•œ ๋ฌธ์ œ ๋ฐ uuid ๋ฌธ์ œ ํ•ด๊ฒฐ (#146)

* fix: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์•„์ดํ…œ ๊ถŒํ•œ ์—†์œผ๋ฉด ์ ‘๊ทผ ๋ชปํ•˜๊ฒŒ ์ˆ˜์ •

* fix: ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์ถ”๊ฐ€์‹œ ์‚ฌ์šฉ์ž๊ฐ€ ์žˆ๋Š”์ง€ ๊ฒ€์‚ฌ

* fix: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์ƒ์„ฑ์‹œ uuid๊ฐ€ ์•„๋‹ˆ๋ฉด ์„œ๋ฒ„๊ฐ€ ์ฃฝ๋Š” ํ˜„์ƒ ์ˆ˜์ •

* style: ๋ถˆํ•„์š”ํ•œ ์ฝ”๋“œ ์ œ๊ฑฐ

* feat: ์†Œ์ผ“ ๋‹ค์ค‘ ์„œ๋ฒ„ ์ง€์›  (#159)

* chore: docker-compose.yaml์— ๋ ˆ๋””์Šค ์ถ”๊ฐ€

* chore: redis ๋ชจ๋“ˆ ์ถ”๊ฐ€

* feature: nest ๋‹ค์ค‘ ํฌํŠธ ์„œ๋ฒ„ ๊ตฌ์„ฑ

* feature: redis.module.ts ๊ตฌํ˜„ ๋ฐ ์ ์šฉ

* feature: ์†Œ์ผ“์— ๋ ˆ๋””์Šค ์‚ฝ์ž…

* feature: ์†Œ์ผ“ pub/sub ๊ตฌํ˜„

* feat: ์†Œ์ผ“ ๋ ˆ๋””์Šค์— ์ด ์ ‘์†์ž์ˆ˜ ์ฆ๊ฐ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: ์†Œ์ผ“ ํžˆ์Šคํ† ๋ฆฌ ๊ธฐ๋Šฅ ๋ ˆ๋””์Šค ์ ์šฉ

* refactor: shared-checklists.gateway.ts ๋ฆฌํŒฉํ† ๋ง

* feat: ์†Œ์ผ“ editing ์ด๋ฒคํŠธ ์ถ”๊ฐ€ (#164)

* fix: ๋ ˆ๋””์Šค ์—ฐ๊ฒฐ ์ˆ˜์ • (#168)

* [Server] object ํ˜•ํƒœ๊ฐ€ ๋“ค์–ด์˜ค๋ฉด redis์— ์ €์žฅ ์•ˆ๋˜๋Š” ๋ฌธ์ œ ์ˆ˜์ • (#171)

* ๐Ÿ›fix: ์›น์†Œ์ผ“ data๋ฅผ json์œผ๋กœ ๋ณ€๊ฒฝ ํ›„ emit

* ๐Ÿ›fix: history []์ œ๊ฑฐ

* ๐Ÿ›fix: data[0] -> data

* feat: ์›น์†Œ์ผ“ ํžˆ์Šคํ† ๋ฆฌ ๋ฒ„๊ทธ ์ˆ˜์ • ๋ฐ ์ฝ˜์†” ๋กœ๊ทธ ์ถ”๊ฐ€ (#175)

* fix: docker-compose ๋ ˆ๋””์Šค ์„ค์ • ์˜ค๋ฅ˜ ํ•ด๊ฒฐ

* feat: ์†Œ์ผ“ console.log ์ถ”๊ฐ€

* fix: ์†Œ์ผ“ ํžˆ์Šคํ† ๋ฆฌ ์ €์žฅ์‹œ ํ˜•์‹ ์˜ค๋ฅ˜ ์ˆ˜์ •

* [Server] ๋กœ๊ฑฐ ๊ธฐ๋Šฅ ํ™•๋Œ€ (#176)

* feat: no auth ๋ฒ„๊ทธ -> password ์ฃผ์„ ํ•ด์ œ

* feat: ๋กœ๊ทธ์— ํ•œ๊ตญ ์‹œ๊ฐ„๋Œ€ ์ถ”๊ฐ€

* feat: ๋กœ๊ทธํŒŒ์ผ์ด dist ๋‚ด๋ถ€์— ์กด์žฌํ•ด ํ•œ ๋‹จ๊ณ„ ์œ„๋กœ ์˜ฎ๊ฒจ์คŒ.

* feat: ์‘๋‹ต๋กœ๊ทธ๋Š” interceptor์—์„œ ์ฒ˜๋ฆฌํ•˜๋„๋ก ๋กœ์ง ์ˆ˜์ •

* feat: ๋กœ๊ทธ ์ธํ„ฐ์…‰ํ„ฐ app.module.ts ํ”„๋กœ๋ฐ”์ด๋”์— ์ถ”๊ฐ€

* ๐Ÿ›fix: redis module password ๋ถ€๋ถ„ ์ฃผ์„์ฒ˜๋ฆฌ (#180)

* [Server] ํ”ผ๋“œํ™”๋ฉด api ๊ตฌํ˜„ (#196)

* chore: import ๋ฌธ ์ตœ์ ํ™”

* feat: ํ”ผ๋“œ resource ์ƒ์„ฑ

* feat: checklist entity์— ์นดํ…Œ๊ณ ๋ฆฌ ์ปฌ๋Ÿผ ์ถ”๊ฐ€

* feat: feedmodel ์ •์˜

private checklist model์—์„œ likeCount์™€ downloadCount ์ปฌ๋Ÿผ ์ถ”๊ฐ€

* chore: ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” dto ํŒŒ์ผ ์‚ญ์ œ

* chore: ์นดํ…Œ๊ณ ๋ฆฌ ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€

* chore: ์•ˆ์“ฐ๋Š” ํ…Œ์ŠคํŠธ ํŒŒ์ผ ์‚ญ์ œ

* feat: ํ”ผ๋“œ ํ™”๋ฉด api ๊ตฌํ˜„

* feat: feeds.service.spec.ts ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ

* feat: api ์—๋Ÿฌ ํ•ธ๋“ค๋ง ๋กœ์ง ์ถ”๊ฐ€

* test: feeds.service.spec.ts ์˜ˆ์™ธ ์ผ€์ด์Šค์— ๋Œ€ํ•œ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ถ”๊ฐ€

* feat: ์—๋Ÿฌ๋ฉ”์‹œ์ง€ ์ˆ˜์ •

* feat: ๊ด€๋ฆฌ ํŽ˜์ด์ง€์™€ api ๊ตฌํ˜„ (#197)

* feat: admin resource ๊ตฌํ˜„

* feat: ๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€ ์ถ”๊ฐ€

* feat: cors ์„ค์ • ์ถ”๊ฐ€

* feat: ์ž„์‹œ๋กœ ๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€ ๊ถŒํ•œ ์ œ๊ฑฐ

* feat: admin sse api ๊ตฌํ˜„

* refactor: redis sub ์„œ๋น„์Šค ๊ตฌํ˜„

* feat: ์–ด๋“œ๋ฏผ ํŽ˜์ด์ง€ api ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: redis pub ์„œ๋น„์Šค ์ถ”๊ฐ€

* refactor: admin controller์— redis service๋กœ ๊ต์ฒด

* feat: log interceptor์— redis pub ์ถ”๊ฐ€

* refactor: channels const๋กœ ๋ถ„๋ฆฌ

* style: ๋ถˆํ•„์š”ํ•œ ์ฃผ์„ ์ œ๊ฑฐ

* feat: ws ๋กœ๊ทธ redis pub ์ถ”๊ฐ€

* feat: admin page ๋ฐ•์Šค ๋ˆ„๋ฅด๋ฉด ํŽผ์น˜๊ธฐ/์ ‘๊ธฐ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: admin ํŽ˜์ด์ง€ ์ƒ‰๊น” ๋ณ€๊ฒฝ

* feat: ๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€ ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* [Server] ํด๋ผ์ด์–ธํŠธ์™€ api ์—ฐ๋™ ์ž‘์—… (login, socket history)  (#209)

* feat: socket ๋นˆ ํžˆ์Šคํ† ๋ฆฌ๋ฉด [] ๋ณด๋‚ด๊ธฐ

* feat: ๋กœ๊ทธ์ธ์‹œ ์œ ์ € ๋‹‰๋„ค์ž„๋„ ๊ฐ™์ด ๋ณด๋‚ด์ฃผ๊ธฐ

* [Server] ai์™€ ๊ด€๋ จํ•œ db ๊ตฌ์กฐ ๊ฐœ์„  (#220)

* refactor: ๊ฒฝ๋กœ ์ด๋ฆ„ ์ˆ˜์ • entity->entities

* feat: category ์—”ํ‹ฐํ‹ฐ ์ƒ์„ฑ

* feat: reason ๋ชจ๋ธ ์ƒ์„ฑ ๋ฐ ๊ฐ ํ…Œ์ด๋ธ” relation ์„ค์ •

* feat: ๊ฐ ํ…Œ์ด๋ธ” relation ์ˆ˜์ • ๋ฐ ์˜์กด์„ฑ ์ฃผ์ž…

* feat: relation ๋ฐฉ์‹ ๋ณ€๊ฒฝ์œผ๋กœ ์ธํ•œfolders.service.ts ๋ฉ”์„œ๋“œ ์ˆ˜์ •, ์˜์กด์„ฑ ์ฃผ์ž…

* feat: admin ํŽ˜์ด์ง€ ํ•ญ๋ชฉ ์ž๋™ ์ถ”๊ฐ€ , ์‹œ์Šคํ…œ ์ƒํƒœ ๊ทธ๋ž˜ํ”„ ์ถ”๊ฐ€ (#223)

* feat: serverStatus ํ™•์ธ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: serverStatus ํ™•์ธ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: ๋ชจ๋“  ๊ตฌ๋…์„ ๋ฐ›์•„์˜ค๋Š” ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* chore: ๋ถˆํ•„์š”ํ•œ ์ƒ์ˆ˜ ์ œ๊ฑฐ

* feat: admin page ์„œ๋ฒ„ ์ƒํƒœ ํ™•์ธ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* [Server] ์นดํ…Œ๊ณ ๋ฆฌ๋ณ„ ์•„์ดํ…œ ๊ฐœ์ˆ˜ ํ™•์ธ ๋ฐ ๊ฐœ์ˆ˜๋กœ item ์ƒ์„ฑ ๋กœ์ง (#228)

* feat: ์นดํ…Œ๊ณ ๋ฆฌ๋ณ„ ์•„์ดํ…œ ๊ฐœ์ˆ˜ ๋ฐ˜ํ™˜ํ•ด์ฃผ๋Š” api ์ƒ์„ฑ

* feat: ์นดํ…Œ๊ณ ๋ฆฌ๋ณ„ ์•„์ดํ…œ ๊ฐœ์ˆ˜ itemCount๋กœ pub๋„ ํ•˜๊ณ  ์‘๋‹ต๋„ ๋ฐ˜ํ™˜ํ•˜๋Š” ์„œ๋น„์Šค ํ•จ์ˆ˜ ๊ตฌํ˜„

* feat: generate-item api์— ๋Œ€ํ•œ controller ํ•จ์ˆ˜ ๊ตฌํ˜„

* feat: generate-item api์— ๋Œ€ํ•œ service ํ•จ์ˆ˜ ๊ตฌํ˜„

* [Server] ์นดํ…Œ๊ณ ๋ฆฌ api db ๋ฐฉ์‹์œผ๋กœ ์—…๋ฐ์ดํŠธ, ์ธ๊ณต์ง€๋Šฅ ์‘๋‹ต api db ์บ์‹ฑ ๊ตฌ์กฐ๋กœ ๊ฐœ์„  (#240)

* feat: category service ํ•จ์ˆ˜ ์ˆ˜์ •

* feat: category service ํ•จ์ˆ˜ ์š”์ฒญ ํ˜•ํƒœ ๋ณ€๊ฒฝ

* feat: ai ์ฒดํฌ๋ฆฌ์ŠคํŠธ ํ•ญ๋ชฉ ์‘๋‹ต api db ์บ์‹ฑ ๊ตฌ์กฐ๋กœ ๋ณ€๊ฒฝ

* refactor: jwt toekn ๋งŒ๋ฃŒ ์‹œ๊ฐ„ ํ™˜๊ฒฝ๋ณ€์ˆ˜๋กœ ๋ณ€๊ฒฝ (#250)

* feat: ์–ด๋“œ๋ฏผ ํŽ˜์ด์ง€ ai๊ด€๋ จ ๋ทฐ ์ถ”๊ฐ€ ๋ฐ ๊ด€๋ จ api ์ถ”๊ฐ€ (#260)

* feat: adminํŽ˜์ด์ง€ cpu ์‚ฌ์šฉ๋Ÿ‰ ํ†ตํ•ฉํ•ด์„œ ๋ณด์—ฌ์ฃผ๊ธฐ

* refactor: serverStatus ๋„คํŠธ์›Œํฌ ๊ด€๋ จ ์ œ๊ฑฐ

* fix: ์ฒดํฌ๋ฆฌ์ŠคํŠธ ai ์ƒ์„ฑ ๊ด€๋ฆฌ์ž๋งŒ ๊ฐ€๋Šฅํ•˜๋„๋ก ์ˆ˜์ •

* feat: admin ํŽ˜์ด์ง€ ai ์—ฐ๋™

---------

Co-authored-by: YangDongsuk <51476641+YangDongsuk@users.noreply.github.com>
yangdongsuk added a commit that referenced this pull request Dec 14, 2023
* [Server] ๊ฐœ๋ฐœํ™˜๊ฒฝ ์„ธํŒ… (#4)

* build: open-list-server init

* chore: @nestjs/config class-validator class-transformer ์„ค์น˜

* chore: ๋ฃจํŠธ ๋ ˆ๋ฒจ์—์„œ ์„ค์น˜ํ•œ ํŒจํ‚ค์ง€ ์‚ญ์ œ

* chore: NestJs ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์„ธํŒ…

* chore: @nestjs/config class-validator class-transformer ์„ค์น˜

* Server/feature/#13 (#25)

* chore: postgresql, nestjs docker ์„ธํŒ…

* chore: @nestjs/typeorm, typeorm, pg ์„ค์น˜

* chore: Typeorm ์„ธํŒ… ๋ฐ TestModel ํ…Œ์ด๋ธ” ์ƒ์„ฑ

* ํ…Œ์ŠคํŠธ์šฉ ์œ ์ € API ๊ตฌํ˜„ (#30)

* chore: common resource ์ถ”๊ฐ€

* chore: users resource ์ถ”๊ฐ€

* feature: base entity ๊ตฌํ˜„

* feature: usersEntity ๊ตฌํ˜„

* feature: ๋ชจ๋“ˆ์— usersModel ์ถ”๊ฐ€

* style: entity,dto์˜ users -> user๋กœ ๋ณ€๊ฒฝ

* feature: CreateUserDto ๊ตฌํ˜„

* feature: userEntity ์ด๋ฉ”์ผ ํ•„๋“œ ์ถ”๊ฐ€

* feature: createUserDto ์ด๋ฉ”์ผ ํ•„๋“œ ์ถ”๊ฐ€

* feature: user patch->put์œผ๋กœ ๋ณ€๊ฒฝ

* feature: updateUserDto ๊ตฌํ˜„

* feature : create user ๊ตฌํ˜„

* feature: ๋ชจ๋“  ์œ ์ €์˜ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” API ๊ตฌํ˜„

* feature: ํŠน์ • ์œ ์ €์˜ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” API ๊ตฌํ˜„

* feature: user ์ •๋ณด ์ˆ˜์ • API ๊ตฌํ˜„

* feature: user ์‚ญ์ œ API ๊ตฌํ˜„

* feature: ValidationPipe ์ ์šฉ

* refactor: usersService ๋ฆฌํŒฉํ† ๋ง

* [Server] ์œ ๋‹› ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ ์„ธํŒ… (#32)

* chore: test ๊ฒฝ๋กœ ์„ค์ •

* feature: TestCommonModule ๊ตฌํ˜„

* feature: users.service.spec.ts ์˜์กด์„ฑ ์ฃผ์ž…

* feature: users.controller.spec.ts ์˜์กด์„ฑ ์ฃผ์ž…

* [Server] Users resource ์ด๋ฆ„ ๋ณ€๊ฒฝ (#34)

* style: usersController ๋„ค์ด๋ฐ์— ์ปจ๋ฒค์…˜ ๋งž๊ฒŒ ๋ณ€๊ฒฝ

* style: usersService ์ปจ๋ฒค์…˜์— ๋”ฐ๋ฅธ ๋„ค์ด๋ฐ ๋ณ€๊ฒฝ

* style: UsersModel -> UserModel ์ปจ๋ฒค์…˜์— ๋”ฐ๋ฅธ ๋„ค์ด๋ฐ ๋ณ€๊ฒฝ

* feature: usersService ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ (#39)

* [Server] Folder entity ์ƒ์„ฑ ๋ฐ crud ๊ตฌํ˜„ (#42)

* feat: folders crud ๊ตฌํ˜„

* chore: TestModel ์‚ญ์ œ ๋ฐ ๊ด€๋ จ๋œ ์ข…์†์„ฑ ์ œ๊ฑฐ

* feat: folders.controller.spec.ts ์‚ญ์ œ, folders.service.spec.ts ๊ตฌํ˜„

* feature: dockerํŒŒ์ผ ์ˆ˜์ • (#57)

* feat: private checklist entity ์ƒ์„ฑ ๋ฐ crud ๊ตฌํ˜„ (#61)

* chore: ๊ฐœ๋ฐœ์šฉ postgres ํฌํŠธ๋ณ€๊ฒฝ 5432->5433, .env๋„ port 5433์œผ๋กœ ๋ณ€๊ฒฝํ•„์š”

* feat: checklists res ์ƒ์„ฑ

* feat: checklist, private-checklist, shared-checklisst ์—”ํ‹ฐํ‹ฐ ์ƒ์„ฑ, user๋ชจ๋ธ๊ณผ folder๋ชจ๋ธ๊ณผ์˜ ์˜์กด๊ด€๊ณ„ ์ฃผ์ž…

* feat: author->editor๋กœ ์ˆ˜์ •, ๊ณต์œ ์ฒดํฌ๋ฆฌ์ŠคํŠธ์™€ ์‚ฌ์šฉ์ž์˜ relation์„ many to many๋กœ ์—…๋ฐ์ดํŠธ

* feat: ๊ฐœ์ธ, ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ์— ๋Œ€ํ•ด ์ƒ์„ฑ๊ณผ ์—…๋ฐ์ดํŠธ ์‹œ dto ์ƒ์„ฑ

* fix: class ์ด๋ฆ„ ์˜คํƒ€ ์ˆ˜์ •

* refactor: rest api ๋ฐฉ์‹์— ๋”ฐ๋ผ ํ•จ์ˆ˜๋ช… ๋ณ€๊ฒฝ

* feat: CheckListModel์—์„œ ์ง„ํ–‰๋ฅ  ์ปฌ๋Ÿผ ์‚ญ์ œ

* feat: folder์™€ user๊ฐ„์˜ manyToOne relation์ ์šฉ

* feat: private-checklist crud ์ž‘์„ฑ

* feat: folder service ์ปค๋ฒ„๋ฆฌ์ง€ 100 ๋‹ฌ์„ฑ

* test: private-checklist test code ์ž‘์„ฑ, ์ปค๋ฒ„๋ฆฌ์ง€ 92ํผ์„ผํŠธ

* feat: checklist ํด๋” ๋ถ„๋ฆฌ & dto ๋นˆ๋ฌธ์ž์—ด ๊ฒ€์ฆ ์ถ”๊ฐ€ (#66)

* refactor: checklists๋ฅผ private, sharedํด๋”๋กœ ๋ถ„๋ฆฌ.

* refactor: private-checklists๋ฅผ folders ํ•˜์œ„๋กœ ์ด๋™

* fix: ๋นˆ๋ฌธ์ž์—ด ๊ฒ€์ฆ ์ถ”๊ฐ€

* [Server] Winston์œผ๋กœ ๋กœ๊ทธ ๊ด€๋ฆฌ (#70)

* chore: nest-winston winston winston-daily-rotate-file ์„ค์น˜

* feat: winston logger ์„ค์ • ํŒŒ์ผ ๊ตฌํ˜„

* feat: winston logger middleware ๊ตฌํ˜„

* feat: ์š”์ฒญ logger middleware ๊ตฌํ˜„

* feat: ๋กœ๊ทธ์— ์š”์ฒญ ์ฒ˜๋ฆฌ ์‹œ๊ฐ„ ์ถ”๊ฐ€๋˜๋„๋ก ๊ฐœ์„ 

* chore: PR ํ…œํ”Œ๋ฆฟ ์ˆ˜์ •

* chore: PR ํ…œํ”Œ๋ฆฟ ์ˆ˜์ •

* feat: jwt access, refresh token ๊ธฐ๋ฐ˜ ์ธ๊ฐ€ ๊ตฌํ˜„

* chore: auth resource ์ถ”๊ฐ€

* chore: jwt ๋ชจ๋“ˆ ์ถ”๊ฐ€

* feature: signToken ๊ตฌํ˜„

* feature: ํ† ํฐ ๊ฒ€์ฆ, ํ† ํฐ ์žฌ๋ฐœ๊ธ‰ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* feature: ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* feature: ๋กœ๊ทธ์ธ ๊ด€๋ จ ์„œ๋น„์Šค ๊ตฌํ˜„

* feature: login ์ปจํŠธ๋กค๋Ÿฌ ๊ตฌํ˜„

* style: loginDto -> loginUserDto๋กœ ๋ณ€๊ฒฝ

* feature: access ํ† ํฐ ์žฌ๋ฐœ๊ธ‰ ์ปจํŠธ๋กค๋Ÿฌ ๊ตฌํ˜„

* refactor: accessํ† ํฐ ์žฌ๋ฐœ๊ธ‰ ํ˜•์‹ ๋ณ€๊ฒฝ

* feature: ์œ ์ € register ๊ธฐ๋Šฅ ๊ตฌํ˜„

* feature: auth.service.ts ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ

* fix: ์ด๋ฉ”์ผ ์ค‘๋ณต์‹œ ์—๋Ÿฌ ๋ฉ”์‹œ์ง€ ์ˆ˜์ •

---------

Co-authored-by: Minseong Park <52368015+pminsung12@users.noreply.github.com>

* [Server] shared-checklist ์†Œ์ผ“ ๊ตฌํ˜„ (#78)

* [Server] apple oauth api ๊ตฌํ˜„ (#86)

* chore: @nestjs/axios ์„ค์น˜

* chore: axios ์„ค์น˜

* chore: axios ์„ค์น˜

* feat: dto์ˆ˜์ •, userId ์ปฌ๋Ÿผ์ถ”๊ฐ€, providerId ์ˆ˜์ •, fullName ์ปฌ๋Ÿผ ์ถ”๊ฐ€

* feat: entity์— ๋”ฐ๋ผ dto ํ•ญ๋ชฉ ์ˆ˜์ •

* feat: apple oauth ๋กœ๊ทธ์ธ ์„œ๋น„์Šค ํ•จ์ˆ˜ ์ถ”๊ฐ€

client secret ๋งŒ๋“ค๊ณ , axios post๋กœ user ์ •๋ณด ๊ฐ€์ง€๊ณ ์˜ด.

* feat: apple oauth ๋กœ๊ทธ์ธ ์—”๋“œํฌ์ธํŠธ ์ถ”๊ฐ€

* feat: apple ์œ ์ €์—๋Œ€ํ•ด create, update ํ•จ์ˆ˜ ๊ตฌํ˜„

* feat: publicKey ๋ฐœ๊ธ‰๋ฐ›๋Š” ๋กœ์ง์ถ”๊ฐ€

* [Server] access ํ† ํฐ ์žฌ๋ฐœ๊ธ‰์‹œ ์œ ์ € ์ •๋ณด ์—†๋Š” ๋ฒ„๊ทธ ์ˆ˜์ • (#83)

* [Server] privateChecklist์˜ ๋‚ด์šฉ ์ €์žฅ api ๊ตฌํ˜„ (#88)

* [Server] apple oauth ๋กœ๊ทธ์ธ ๋กœ์ง ์ˆ˜์ • (#118)

* feat: env ์‚ฌ์šฉ๋ฐฉ์‹ ๋ณ€๊ฒฝ + idToken ๊ฒ€์ฆ๋กœ์ง ์ถ”๊ฐ€

* chore: jwk๋ฅผ pem์œผ๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ ์œ„ํ•œ jose ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ค์น˜

* chore: jose ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ œ๊ฑฐ @panva/jose ์„ค์น˜

* feat: request body๋กœ ๋“ค์–ด์˜ค๋Š” auth-user.dto.ts ์ˆ˜์ •

* feat: ์• ํ”Œ ์œ ์ € ๋“ฑ๋ก ๋กœ์ง ์ˆ˜์ •

* docs: jsdoc return type ์ˆ˜์ •

* feat: apple login ๋กœ์ง ์ˆ˜์ •(appleToken, clientSecret ๋กœ์ง ์‚ญ์ œ)

* feat: refreshAccessToken ํ•จ์ˆ˜์—์„œ refreshToken๋„ ํ•จ๊ป˜ ๋ฐ˜ํ™˜ํ•ด์ฃผ๋„๋ก ๋กœ์ง ์ˆ˜์ •

* [Server] Clova Studio api  ๊ตฌํ˜„ (#126)

* feat:  checklist-ai ๋ฆฌ์†Œ์Šค ์ƒ์„ฑ

* feat: create-checklist-items.dto.ts ์š”์ฒญ dto ์ƒ์„ฑ

* feat: ๋ฌธ์ž์—ด ๋ฐ ๊ฐ์ข… ์˜ต์…˜ ์ƒ์ˆ˜ํ™”

* feat: user-role const ํŒŒ์ผ ์‚ญ์ œ => ํ•จ์ˆ˜ํ™”

* feat: /checklist-ai POST ์š”์ฒญ api ์ƒ์„ฑ

๋Œ€,์ค‘,์†Œ ์นดํ…Œ๊ณ ๋ฆฌ๋ฅผ body๋กœ ๋ฐ›์•„์˜ค๋ฉด clova studio์—์„œ ์ฒดํฌ๋ฆฌ์ŠคํŠธ ํ•ญ๋ชฉ 10๊ฐœ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

* feat: AccessTokenGuard ๊ตฌํ˜„ ๋ฐ ์ ์šฉ (#129)

* feat: access token guard ๊ตฌํ˜„

* feat: access token guard ์ „์—ญ ์ ์šฉ

* style: access-token.guard.ts ์ฃผ์„ ์ถ”๊ฐ€

* feat: userId decorator ๊ตฌํ˜„

* feat: folders controller์— userId ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* feat: ํด๋” ์„œ๋น„์Šค์— user ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* feat: ๊ฐœ์ธ ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์ปจํŠธ๋กค๋Ÿฌ์— ์œ ์ € ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* feat: private-checklists service์— user ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* fix: ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ˆ˜์ •

* Server/feature/#128 (#139)

* feat: json ๊ตฌ์กฐ๋กœ ์นดํ…Œ๊ณ ๋ฆฌ ๋ฐ์ดํ„ฐ ์ •์˜

* feat: categories ์˜์กด์„ฑ ์ฃผ์ž…

* feat: endpoint๋งŒ๋“ค๊ณ , ์‹ค์ œ ์กด์žฌํ•˜๋Š” id์ธ์ง€ ๊ฒ€์ฆํ•˜๋Š” dto ์ƒ์„ฑ

* fix: ์˜คํƒ€์ˆ˜์ • forder->folder

* feat: param์— dto ์ ์šฉํ•˜์ง€ ๋ชปํ•ด ์‚ญ์ œ

* feat: ์นดํ…Œ๊ณ ๋ฆฌ json ๋ฐ์ดํ„ฐ ๋ณ€์ˆ˜๋ช… ๋ณ€๊ฒฝ, ๋Œ€๋ฌธ์ž๋กœ

* feat: ๋Œ€,์ค‘,์†Œ ์นดํ…Œ๊ณ ๋ฆฌ ๋ฐ˜ํ™˜ api ๊ตฌํ˜„

* test: categories.service.spec.ts ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ

* test: categories.service.spec.ts ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ˆ˜์ • ์ปค๋ฒ„๋ฆฌ์ง€ 100

* feat: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ API ๋ฐ ์†Œ์ผ“ ์ž‘์—… ๊ตฌํ˜„ (#140)

* feat: shared checklist item entity ๊ตฌํ˜„

* style: SharedChecklistItemModel ์˜คํƒ€ ์ˆ˜์ •

* feat: shared checklist id uuid๋กœ ๋ณ€๊ฒฝ

* feat: create shared checklist ๋””ํ‹ฐ์˜ค ์ˆ˜์ •

* feat: shared-checklists ์ƒ์„ฑ ๊ตฌํ˜„

* refactor: shared-checklists ์ €์žฅํ•˜๋Š” ํ•จ์ˆ˜ ๋ถ„๋ฆฌ

* feat: shared-checklists 1๊ฐœ, ์ „๋ถ€ ๊ฐ€์ ธ์˜ค๋Š” ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: ์œ ์ € ์ดˆ๋Œ€ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์‚ญ์ œ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* style: shared-checklists service ์ฃผ์„ ์ถ”๊ฐ€

* feature: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์†Œ์ผ“์— ๋ฐ์ดํ„ฐ ๋ˆ„์  ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: shared-checklists ์†Œ์ผ“ ํ†ต์‹  ์‹œ ๋ฐ์ดํ„ฐ ๋ฐ๋ฒ ์— ์ €์žฅ ๊ตฌํ˜„

* feat: ์†Œ์ผ“ ์—ฐ๊ฒฐ์‹œ ๋ฐฉ์˜ ๋ฐ์ดํ„ฐ ํžˆ์Šคํ† ๋ฆฌ๋ฅผ ์ „์†กํ•˜๋Š” ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* style: ์†Œ์ผ“ ์ฃผ์„ ์ถ”๊ฐ€

* ๐Ÿ”feat: ๊ฐœ๋ฐœ์šฉ ์ž„์‹œ๋กœ ์•ก์„ธ์Šค,๋ฆฌํ”„๋ ˆ์‹œ ํ† ํฐ๋“ค ๋งŒ๋ฃŒ๊ธฐํ•œ ์ผ์ฃผ์ผ๋กœ ์„ค์ • (#142)

* feat: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์•„์ดํ…œ ๊ถŒํ•œ ๋ฌธ์ œ ๋ฐ uuid ๋ฌธ์ œ ํ•ด๊ฒฐ (#146)

* fix: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์•„์ดํ…œ ๊ถŒํ•œ ์—†์œผ๋ฉด ์ ‘๊ทผ ๋ชปํ•˜๊ฒŒ ์ˆ˜์ •

* fix: ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์ถ”๊ฐ€์‹œ ์‚ฌ์šฉ์ž๊ฐ€ ์žˆ๋Š”์ง€ ๊ฒ€์‚ฌ

* fix: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์ƒ์„ฑ์‹œ uuid๊ฐ€ ์•„๋‹ˆ๋ฉด ์„œ๋ฒ„๊ฐ€ ์ฃฝ๋Š” ํ˜„์ƒ ์ˆ˜์ •

* style: ๋ถˆํ•„์š”ํ•œ ์ฝ”๋“œ ์ œ๊ฑฐ

* feat: ์†Œ์ผ“ ๋‹ค์ค‘ ์„œ๋ฒ„ ์ง€์›  (#159)

* chore: docker-compose.yaml์— ๋ ˆ๋””์Šค ์ถ”๊ฐ€

* chore: redis ๋ชจ๋“ˆ ์ถ”๊ฐ€

* feature: nest ๋‹ค์ค‘ ํฌํŠธ ์„œ๋ฒ„ ๊ตฌ์„ฑ

* feature: redis.module.ts ๊ตฌํ˜„ ๋ฐ ์ ์šฉ

* feature: ์†Œ์ผ“์— ๋ ˆ๋””์Šค ์‚ฝ์ž…

* feature: ์†Œ์ผ“ pub/sub ๊ตฌํ˜„

* feat: ์†Œ์ผ“ ๋ ˆ๋””์Šค์— ์ด ์ ‘์†์ž์ˆ˜ ์ฆ๊ฐ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: ์†Œ์ผ“ ํžˆ์Šคํ† ๋ฆฌ ๊ธฐ๋Šฅ ๋ ˆ๋””์Šค ์ ์šฉ

* refactor: shared-checklists.gateway.ts ๋ฆฌํŒฉํ† ๋ง

* feat: ์†Œ์ผ“ editing ์ด๋ฒคํŠธ ์ถ”๊ฐ€ (#164)

* fix: ๋ ˆ๋””์Šค ์—ฐ๊ฒฐ ์ˆ˜์ • (#168)

* [Server] object ํ˜•ํƒœ๊ฐ€ ๋“ค์–ด์˜ค๋ฉด redis์— ์ €์žฅ ์•ˆ๋˜๋Š” ๋ฌธ์ œ ์ˆ˜์ • (#171)

* ๐Ÿ›fix: ์›น์†Œ์ผ“ data๋ฅผ json์œผ๋กœ ๋ณ€๊ฒฝ ํ›„ emit

* ๐Ÿ›fix: history []์ œ๊ฑฐ

* ๐Ÿ›fix: data[0] -> data

* feat: ์›น์†Œ์ผ“ ํžˆ์Šคํ† ๋ฆฌ ๋ฒ„๊ทธ ์ˆ˜์ • ๋ฐ ์ฝ˜์†” ๋กœ๊ทธ ์ถ”๊ฐ€ (#175)

* fix: docker-compose ๋ ˆ๋””์Šค ์„ค์ • ์˜ค๋ฅ˜ ํ•ด๊ฒฐ

* feat: ์†Œ์ผ“ console.log ์ถ”๊ฐ€

* fix: ์†Œ์ผ“ ํžˆ์Šคํ† ๋ฆฌ ์ €์žฅ์‹œ ํ˜•์‹ ์˜ค๋ฅ˜ ์ˆ˜์ •

* [Server] ๋กœ๊ฑฐ ๊ธฐ๋Šฅ ํ™•๋Œ€ (#176)

* feat: no auth ๋ฒ„๊ทธ -> password ์ฃผ์„ ํ•ด์ œ

* feat: ๋กœ๊ทธ์— ํ•œ๊ตญ ์‹œ๊ฐ„๋Œ€ ์ถ”๊ฐ€

* feat: ๋กœ๊ทธํŒŒ์ผ์ด dist ๋‚ด๋ถ€์— ์กด์žฌํ•ด ํ•œ ๋‹จ๊ณ„ ์œ„๋กœ ์˜ฎ๊ฒจ์คŒ.

* feat: ์‘๋‹ต๋กœ๊ทธ๋Š” interceptor์—์„œ ์ฒ˜๋ฆฌํ•˜๋„๋ก ๋กœ์ง ์ˆ˜์ •

* feat: ๋กœ๊ทธ ์ธํ„ฐ์…‰ํ„ฐ app.module.ts ํ”„๋กœ๋ฐ”์ด๋”์— ์ถ”๊ฐ€

* ๐Ÿ›fix: redis module password ๋ถ€๋ถ„ ์ฃผ์„์ฒ˜๋ฆฌ (#180)

* [Server] ํ”ผ๋“œํ™”๋ฉด api ๊ตฌํ˜„ (#196)

* chore: import ๋ฌธ ์ตœ์ ํ™”

* feat: ํ”ผ๋“œ resource ์ƒ์„ฑ

* feat: checklist entity์— ์นดํ…Œ๊ณ ๋ฆฌ ์ปฌ๋Ÿผ ์ถ”๊ฐ€

* feat: feedmodel ์ •์˜

private checklist model์—์„œ likeCount์™€ downloadCount ์ปฌ๋Ÿผ ์ถ”๊ฐ€

* chore: ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” dto ํŒŒ์ผ ์‚ญ์ œ

* chore: ์นดํ…Œ๊ณ ๋ฆฌ ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€

* chore: ์•ˆ์“ฐ๋Š” ํ…Œ์ŠคํŠธ ํŒŒ์ผ ์‚ญ์ œ

* feat: ํ”ผ๋“œ ํ™”๋ฉด api ๊ตฌํ˜„

* feat: feeds.service.spec.ts ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ

* feat: api ์—๋Ÿฌ ํ•ธ๋“ค๋ง ๋กœ์ง ์ถ”๊ฐ€

* test: feeds.service.spec.ts ์˜ˆ์™ธ ์ผ€์ด์Šค์— ๋Œ€ํ•œ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ถ”๊ฐ€

* feat: ์—๋Ÿฌ๋ฉ”์‹œ์ง€ ์ˆ˜์ •

* feat: ๊ด€๋ฆฌ ํŽ˜์ด์ง€์™€ api ๊ตฌํ˜„ (#197)

* feat: admin resource ๊ตฌํ˜„

* feat: ๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€ ์ถ”๊ฐ€

* feat: cors ์„ค์ • ์ถ”๊ฐ€

* feat: ์ž„์‹œ๋กœ ๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€ ๊ถŒํ•œ ์ œ๊ฑฐ

* feat: admin sse api ๊ตฌํ˜„

* refactor: redis sub ์„œ๋น„์Šค ๊ตฌํ˜„

* feat: ์–ด๋“œ๋ฏผ ํŽ˜์ด์ง€ api ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: redis pub ์„œ๋น„์Šค ์ถ”๊ฐ€

* refactor: admin controller์— redis service๋กœ ๊ต์ฒด

* feat: log interceptor์— redis pub ์ถ”๊ฐ€

* refactor: channels const๋กœ ๋ถ„๋ฆฌ

* style: ๋ถˆํ•„์š”ํ•œ ์ฃผ์„ ์ œ๊ฑฐ

* feat: ws ๋กœ๊ทธ redis pub ์ถ”๊ฐ€

* feat: admin page ๋ฐ•์Šค ๋ˆ„๋ฅด๋ฉด ํŽผ์น˜๊ธฐ/์ ‘๊ธฐ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: admin ํŽ˜์ด์ง€ ์ƒ‰๊น” ๋ณ€๊ฒฝ

* feat: ๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€ ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* [Server] ํด๋ผ์ด์–ธํŠธ์™€ api ์—ฐ๋™ ์ž‘์—… (login, socket history)  (#209)

* feat: socket ๋นˆ ํžˆ์Šคํ† ๋ฆฌ๋ฉด [] ๋ณด๋‚ด๊ธฐ

* feat: ๋กœ๊ทธ์ธ์‹œ ์œ ์ € ๋‹‰๋„ค์ž„๋„ ๊ฐ™์ด ๋ณด๋‚ด์ฃผ๊ธฐ

* [Server] ai์™€ ๊ด€๋ จํ•œ db ๊ตฌ์กฐ ๊ฐœ์„  (#220)

* refactor: ๊ฒฝ๋กœ ์ด๋ฆ„ ์ˆ˜์ • entity->entities

* feat: category ์—”ํ‹ฐํ‹ฐ ์ƒ์„ฑ

* feat: reason ๋ชจ๋ธ ์ƒ์„ฑ ๋ฐ ๊ฐ ํ…Œ์ด๋ธ” relation ์„ค์ •

* feat: ๊ฐ ํ…Œ์ด๋ธ” relation ์ˆ˜์ • ๋ฐ ์˜์กด์„ฑ ์ฃผ์ž…

* feat: relation ๋ฐฉ์‹ ๋ณ€๊ฒฝ์œผ๋กœ ์ธํ•œfolders.service.ts ๋ฉ”์„œ๋“œ ์ˆ˜์ •, ์˜์กด์„ฑ ์ฃผ์ž…

* feat: admin ํŽ˜์ด์ง€ ํ•ญ๋ชฉ ์ž๋™ ์ถ”๊ฐ€ , ์‹œ์Šคํ…œ ์ƒํƒœ ๊ทธ๋ž˜ํ”„ ์ถ”๊ฐ€ (#223)

* feat: serverStatus ํ™•์ธ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: serverStatus ํ™•์ธ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: ๋ชจ๋“  ๊ตฌ๋…์„ ๋ฐ›์•„์˜ค๋Š” ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* chore: ๋ถˆํ•„์š”ํ•œ ์ƒ์ˆ˜ ์ œ๊ฑฐ

* feat: admin page ์„œ๋ฒ„ ์ƒํƒœ ํ™•์ธ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* [Server] ์นดํ…Œ๊ณ ๋ฆฌ๋ณ„ ์•„์ดํ…œ ๊ฐœ์ˆ˜ ํ™•์ธ ๋ฐ ๊ฐœ์ˆ˜๋กœ item ์ƒ์„ฑ ๋กœ์ง (#228)

* feat: ์นดํ…Œ๊ณ ๋ฆฌ๋ณ„ ์•„์ดํ…œ ๊ฐœ์ˆ˜ ๋ฐ˜ํ™˜ํ•ด์ฃผ๋Š” api ์ƒ์„ฑ

* feat: ์นดํ…Œ๊ณ ๋ฆฌ๋ณ„ ์•„์ดํ…œ ๊ฐœ์ˆ˜ itemCount๋กœ pub๋„ ํ•˜๊ณ  ์‘๋‹ต๋„ ๋ฐ˜ํ™˜ํ•˜๋Š” ์„œ๋น„์Šค ํ•จ์ˆ˜ ๊ตฌํ˜„

* feat: generate-item api์— ๋Œ€ํ•œ controller ํ•จ์ˆ˜ ๊ตฌํ˜„

* feat: generate-item api์— ๋Œ€ํ•œ service ํ•จ์ˆ˜ ๊ตฌํ˜„

* [Server] ์นดํ…Œ๊ณ ๋ฆฌ api db ๋ฐฉ์‹์œผ๋กœ ์—…๋ฐ์ดํŠธ, ์ธ๊ณต์ง€๋Šฅ ์‘๋‹ต api db ์บ์‹ฑ ๊ตฌ์กฐ๋กœ ๊ฐœ์„  (#240)

* feat: category service ํ•จ์ˆ˜ ์ˆ˜์ •

* feat: category service ํ•จ์ˆ˜ ์š”์ฒญ ํ˜•ํƒœ ๋ณ€๊ฒฝ

* feat: ai ์ฒดํฌ๋ฆฌ์ŠคํŠธ ํ•ญ๋ชฉ ์‘๋‹ต api db ์บ์‹ฑ ๊ตฌ์กฐ๋กœ ๋ณ€๊ฒฝ

* refactor: jwt toekn ๋งŒ๋ฃŒ ์‹œ๊ฐ„ ํ™˜๊ฒฝ๋ณ€์ˆ˜๋กœ ๋ณ€๊ฒฝ (#250)

* feat: ์–ด๋“œ๋ฏผ ํŽ˜์ด์ง€ ai๊ด€๋ จ ๋ทฐ ์ถ”๊ฐ€ ๋ฐ ๊ด€๋ จ api ์ถ”๊ฐ€ (#260)

* feat: adminํŽ˜์ด์ง€ cpu ์‚ฌ์šฉ๋Ÿ‰ ํ†ตํ•ฉํ•ด์„œ ๋ณด์—ฌ์ฃผ๊ธฐ

* refactor: serverStatus ๋„คํŠธ์›Œํฌ ๊ด€๋ จ ์ œ๊ฑฐ

* fix: ์ฒดํฌ๋ฆฌ์ŠคํŠธ ai ์ƒ์„ฑ ๊ด€๋ฆฌ์ž๋งŒ ๊ฐ€๋Šฅํ•˜๋„๋ก ์ˆ˜์ •

* feat: admin ํŽ˜์ด์ง€ ai ์—ฐ๋™

---------

Co-authored-by: Minseong Park <52368015+pminsung12@users.noreply.github.com>
yangdongsuk added a commit that referenced this pull request Dec 14, 2023
* [Server] ๊ฐœ๋ฐœํ™˜๊ฒฝ ์„ธํŒ… (#4)

* build: open-list-server init

* chore: @nestjs/config class-validator class-transformer ์„ค์น˜

* chore: ๋ฃจํŠธ ๋ ˆ๋ฒจ์—์„œ ์„ค์น˜ํ•œ ํŒจํ‚ค์ง€ ์‚ญ์ œ

* chore: NestJs ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์„ธํŒ…

* chore: @nestjs/config class-validator class-transformer ์„ค์น˜

* Server/feature/#13 (#25)

* chore: postgresql, nestjs docker ์„ธํŒ…

* chore: @nestjs/typeorm, typeorm, pg ์„ค์น˜

* chore: Typeorm ์„ธํŒ… ๋ฐ TestModel ํ…Œ์ด๋ธ” ์ƒ์„ฑ

* ํ…Œ์ŠคํŠธ์šฉ ์œ ์ € API ๊ตฌํ˜„ (#30)

* chore: common resource ์ถ”๊ฐ€

* chore: users resource ์ถ”๊ฐ€

* feature: base entity ๊ตฌํ˜„

* feature: usersEntity ๊ตฌํ˜„

* feature: ๋ชจ๋“ˆ์— usersModel ์ถ”๊ฐ€

* style: entity,dto์˜ users -> user๋กœ ๋ณ€๊ฒฝ

* feature: CreateUserDto ๊ตฌํ˜„

* feature: userEntity ์ด๋ฉ”์ผ ํ•„๋“œ ์ถ”๊ฐ€

* feature: createUserDto ์ด๋ฉ”์ผ ํ•„๋“œ ์ถ”๊ฐ€

* feature: user patch->put์œผ๋กœ ๋ณ€๊ฒฝ

* feature: updateUserDto ๊ตฌํ˜„

* feature : create user ๊ตฌํ˜„

* feature: ๋ชจ๋“  ์œ ์ €์˜ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” API ๊ตฌํ˜„

* feature: ํŠน์ • ์œ ์ €์˜ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” API ๊ตฌํ˜„

* feature: user ์ •๋ณด ์ˆ˜์ • API ๊ตฌํ˜„

* feature: user ์‚ญ์ œ API ๊ตฌํ˜„

* feature: ValidationPipe ์ ์šฉ

* refactor: usersService ๋ฆฌํŒฉํ† ๋ง

* [Server] ์œ ๋‹› ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ ์„ธํŒ… (#32)

* chore: test ๊ฒฝ๋กœ ์„ค์ •

* feature: TestCommonModule ๊ตฌํ˜„

* feature: users.service.spec.ts ์˜์กด์„ฑ ์ฃผ์ž…

* feature: users.controller.spec.ts ์˜์กด์„ฑ ์ฃผ์ž…

* [Server] Users resource ์ด๋ฆ„ ๋ณ€๊ฒฝ (#34)

* style: usersController ๋„ค์ด๋ฐ์— ์ปจ๋ฒค์…˜ ๋งž๊ฒŒ ๋ณ€๊ฒฝ

* style: usersService ์ปจ๋ฒค์…˜์— ๋”ฐ๋ฅธ ๋„ค์ด๋ฐ ๋ณ€๊ฒฝ

* style: UsersModel -> UserModel ์ปจ๋ฒค์…˜์— ๋”ฐ๋ฅธ ๋„ค์ด๋ฐ ๋ณ€๊ฒฝ

* feature: usersService ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ (#39)

* [Server] Folder entity ์ƒ์„ฑ ๋ฐ crud ๊ตฌํ˜„ (#42)

* feat: folders crud ๊ตฌํ˜„

* chore: TestModel ์‚ญ์ œ ๋ฐ ๊ด€๋ จ๋œ ์ข…์†์„ฑ ์ œ๊ฑฐ

* feat: folders.controller.spec.ts ์‚ญ์ œ, folders.service.spec.ts ๊ตฌํ˜„

* feature: dockerํŒŒ์ผ ์ˆ˜์ • (#57)

* feat: private checklist entity ์ƒ์„ฑ ๋ฐ crud ๊ตฌํ˜„ (#61)

* chore: ๊ฐœ๋ฐœ์šฉ postgres ํฌํŠธ๋ณ€๊ฒฝ 5432->5433, .env๋„ port 5433์œผ๋กœ ๋ณ€๊ฒฝํ•„์š”

* feat: checklists res ์ƒ์„ฑ

* feat: checklist, private-checklist, shared-checklisst ์—”ํ‹ฐํ‹ฐ ์ƒ์„ฑ, user๋ชจ๋ธ๊ณผ folder๋ชจ๋ธ๊ณผ์˜ ์˜์กด๊ด€๊ณ„ ์ฃผ์ž…

* feat: author->editor๋กœ ์ˆ˜์ •, ๊ณต์œ ์ฒดํฌ๋ฆฌ์ŠคํŠธ์™€ ์‚ฌ์šฉ์ž์˜ relation์„ many to many๋กœ ์—…๋ฐ์ดํŠธ

* feat: ๊ฐœ์ธ, ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ์— ๋Œ€ํ•ด ์ƒ์„ฑ๊ณผ ์—…๋ฐ์ดํŠธ ์‹œ dto ์ƒ์„ฑ

* fix: class ์ด๋ฆ„ ์˜คํƒ€ ์ˆ˜์ •

* refactor: rest api ๋ฐฉ์‹์— ๋”ฐ๋ผ ํ•จ์ˆ˜๋ช… ๋ณ€๊ฒฝ

* feat: CheckListModel์—์„œ ์ง„ํ–‰๋ฅ  ์ปฌ๋Ÿผ ์‚ญ์ œ

* feat: folder์™€ user๊ฐ„์˜ manyToOne relation์ ์šฉ

* feat: private-checklist crud ์ž‘์„ฑ

* feat: folder service ์ปค๋ฒ„๋ฆฌ์ง€ 100 ๋‹ฌ์„ฑ

* test: private-checklist test code ์ž‘์„ฑ, ์ปค๋ฒ„๋ฆฌ์ง€ 92ํผ์„ผํŠธ

* feat: checklist ํด๋” ๋ถ„๋ฆฌ & dto ๋นˆ๋ฌธ์ž์—ด ๊ฒ€์ฆ ์ถ”๊ฐ€ (#66)

* refactor: checklists๋ฅผ private, sharedํด๋”๋กœ ๋ถ„๋ฆฌ.

* refactor: private-checklists๋ฅผ folders ํ•˜์œ„๋กœ ์ด๋™

* fix: ๋นˆ๋ฌธ์ž์—ด ๊ฒ€์ฆ ์ถ”๊ฐ€

* [Server] Winston์œผ๋กœ ๋กœ๊ทธ ๊ด€๋ฆฌ (#70)

* chore: nest-winston winston winston-daily-rotate-file ์„ค์น˜

* feat: winston logger ์„ค์ • ํŒŒ์ผ ๊ตฌํ˜„

* feat: winston logger middleware ๊ตฌํ˜„

* feat: ์š”์ฒญ logger middleware ๊ตฌํ˜„

* feat: ๋กœ๊ทธ์— ์š”์ฒญ ์ฒ˜๋ฆฌ ์‹œ๊ฐ„ ์ถ”๊ฐ€๋˜๋„๋ก ๊ฐœ์„ 

* chore: PR ํ…œํ”Œ๋ฆฟ ์ˆ˜์ •

* chore: PR ํ…œํ”Œ๋ฆฟ ์ˆ˜์ •

* feat: jwt access, refresh token ๊ธฐ๋ฐ˜ ์ธ๊ฐ€ ๊ตฌํ˜„

* chore: auth resource ์ถ”๊ฐ€

* chore: jwt ๋ชจ๋“ˆ ์ถ”๊ฐ€

* feature: signToken ๊ตฌํ˜„

* feature: ํ† ํฐ ๊ฒ€์ฆ, ํ† ํฐ ์žฌ๋ฐœ๊ธ‰ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* feature: ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* feature: ๋กœ๊ทธ์ธ ๊ด€๋ จ ์„œ๋น„์Šค ๊ตฌํ˜„

* feature: login ์ปจํŠธ๋กค๋Ÿฌ ๊ตฌํ˜„

* style: loginDto -> loginUserDto๋กœ ๋ณ€๊ฒฝ

* feature: access ํ† ํฐ ์žฌ๋ฐœ๊ธ‰ ์ปจํŠธ๋กค๋Ÿฌ ๊ตฌํ˜„

* refactor: accessํ† ํฐ ์žฌ๋ฐœ๊ธ‰ ํ˜•์‹ ๋ณ€๊ฒฝ

* feature: ์œ ์ € register ๊ธฐ๋Šฅ ๊ตฌํ˜„

* feature: auth.service.ts ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ

* fix: ์ด๋ฉ”์ผ ์ค‘๋ณต์‹œ ์—๋Ÿฌ ๋ฉ”์‹œ์ง€ ์ˆ˜์ •

---------



* [Server] shared-checklist ์†Œ์ผ“ ๊ตฌํ˜„ (#78)

* [Server] apple oauth api ๊ตฌํ˜„ (#86)

* chore: @nestjs/axios ์„ค์น˜

* chore: axios ์„ค์น˜

* chore: axios ์„ค์น˜

* feat: dto์ˆ˜์ •, userId ์ปฌ๋Ÿผ์ถ”๊ฐ€, providerId ์ˆ˜์ •, fullName ์ปฌ๋Ÿผ ์ถ”๊ฐ€

* feat: entity์— ๋”ฐ๋ผ dto ํ•ญ๋ชฉ ์ˆ˜์ •

* feat: apple oauth ๋กœ๊ทธ์ธ ์„œ๋น„์Šค ํ•จ์ˆ˜ ์ถ”๊ฐ€

client secret ๋งŒ๋“ค๊ณ , axios post๋กœ user ์ •๋ณด ๊ฐ€์ง€๊ณ ์˜ด.

* feat: apple oauth ๋กœ๊ทธ์ธ ์—”๋“œํฌ์ธํŠธ ์ถ”๊ฐ€

* feat: apple ์œ ์ €์—๋Œ€ํ•ด create, update ํ•จ์ˆ˜ ๊ตฌํ˜„

* feat: publicKey ๋ฐœ๊ธ‰๋ฐ›๋Š” ๋กœ์ง์ถ”๊ฐ€

* [Server] access ํ† ํฐ ์žฌ๋ฐœ๊ธ‰์‹œ ์œ ์ € ์ •๋ณด ์—†๋Š” ๋ฒ„๊ทธ ์ˆ˜์ • (#83)

* [Server] privateChecklist์˜ ๋‚ด์šฉ ์ €์žฅ api ๊ตฌํ˜„ (#88)

* [Server] apple oauth ๋กœ๊ทธ์ธ ๋กœ์ง ์ˆ˜์ • (#118)

* feat: env ์‚ฌ์šฉ๋ฐฉ์‹ ๋ณ€๊ฒฝ + idToken ๊ฒ€์ฆ๋กœ์ง ์ถ”๊ฐ€

* chore: jwk๋ฅผ pem์œผ๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ ์œ„ํ•œ jose ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ค์น˜

* chore: jose ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ œ๊ฑฐ @panva/jose ์„ค์น˜

* feat: request body๋กœ ๋“ค์–ด์˜ค๋Š” auth-user.dto.ts ์ˆ˜์ •

* feat: ์• ํ”Œ ์œ ์ € ๋“ฑ๋ก ๋กœ์ง ์ˆ˜์ •

* docs: jsdoc return type ์ˆ˜์ •

* feat: apple login ๋กœ์ง ์ˆ˜์ •(appleToken, clientSecret ๋กœ์ง ์‚ญ์ œ)

* feat: refreshAccessToken ํ•จ์ˆ˜์—์„œ refreshToken๋„ ํ•จ๊ป˜ ๋ฐ˜ํ™˜ํ•ด์ฃผ๋„๋ก ๋กœ์ง ์ˆ˜์ •

* [Server] Clova Studio api  ๊ตฌํ˜„ (#126)

* feat:  checklist-ai ๋ฆฌ์†Œ์Šค ์ƒ์„ฑ

* feat: create-checklist-items.dto.ts ์š”์ฒญ dto ์ƒ์„ฑ

* feat: ๋ฌธ์ž์—ด ๋ฐ ๊ฐ์ข… ์˜ต์…˜ ์ƒ์ˆ˜ํ™”

* feat: user-role const ํŒŒ์ผ ์‚ญ์ œ => ํ•จ์ˆ˜ํ™”

* feat: /checklist-ai POST ์š”์ฒญ api ์ƒ์„ฑ

๋Œ€,์ค‘,์†Œ ์นดํ…Œ๊ณ ๋ฆฌ๋ฅผ body๋กœ ๋ฐ›์•„์˜ค๋ฉด clova studio์—์„œ ์ฒดํฌ๋ฆฌ์ŠคํŠธ ํ•ญ๋ชฉ 10๊ฐœ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

* feat: AccessTokenGuard ๊ตฌํ˜„ ๋ฐ ์ ์šฉ (#129)

* feat: access token guard ๊ตฌํ˜„

* feat: access token guard ์ „์—ญ ์ ์šฉ

* style: access-token.guard.ts ์ฃผ์„ ์ถ”๊ฐ€

* feat: userId decorator ๊ตฌํ˜„

* feat: folders controller์— userId ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* feat: ํด๋” ์„œ๋น„์Šค์— user ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* feat: ๊ฐœ์ธ ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์ปจํŠธ๋กค๋Ÿฌ์— ์œ ์ € ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* feat: private-checklists service์— user ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* fix: ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ˆ˜์ •

* Server/feature/#128 (#139)

* feat: json ๊ตฌ์กฐ๋กœ ์นดํ…Œ๊ณ ๋ฆฌ ๋ฐ์ดํ„ฐ ์ •์˜

* feat: categories ์˜์กด์„ฑ ์ฃผ์ž…

* feat: endpoint๋งŒ๋“ค๊ณ , ์‹ค์ œ ์กด์žฌํ•˜๋Š” id์ธ์ง€ ๊ฒ€์ฆํ•˜๋Š” dto ์ƒ์„ฑ

* fix: ์˜คํƒ€์ˆ˜์ • forder->folder

* feat: param์— dto ์ ์šฉํ•˜์ง€ ๋ชปํ•ด ์‚ญ์ œ

* feat: ์นดํ…Œ๊ณ ๋ฆฌ json ๋ฐ์ดํ„ฐ ๋ณ€์ˆ˜๋ช… ๋ณ€๊ฒฝ, ๋Œ€๋ฌธ์ž๋กœ

* feat: ๋Œ€,์ค‘,์†Œ ์นดํ…Œ๊ณ ๋ฆฌ ๋ฐ˜ํ™˜ api ๊ตฌํ˜„

* test: categories.service.spec.ts ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ

* test: categories.service.spec.ts ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ˆ˜์ • ์ปค๋ฒ„๋ฆฌ์ง€ 100

* feat: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ API ๋ฐ ์†Œ์ผ“ ์ž‘์—… ๊ตฌํ˜„ (#140)

* feat: shared checklist item entity ๊ตฌํ˜„

* style: SharedChecklistItemModel ์˜คํƒ€ ์ˆ˜์ •

* feat: shared checklist id uuid๋กœ ๋ณ€๊ฒฝ

* feat: create shared checklist ๋””ํ‹ฐ์˜ค ์ˆ˜์ •

* feat: shared-checklists ์ƒ์„ฑ ๊ตฌํ˜„

* refactor: shared-checklists ์ €์žฅํ•˜๋Š” ํ•จ์ˆ˜ ๋ถ„๋ฆฌ

* feat: shared-checklists 1๊ฐœ, ์ „๋ถ€ ๊ฐ€์ ธ์˜ค๋Š” ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: ์œ ์ € ์ดˆ๋Œ€ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์‚ญ์ œ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* style: shared-checklists service ์ฃผ์„ ์ถ”๊ฐ€

* feature: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์†Œ์ผ“์— ๋ฐ์ดํ„ฐ ๋ˆ„์  ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: shared-checklists ์†Œ์ผ“ ํ†ต์‹  ์‹œ ๋ฐ์ดํ„ฐ ๋ฐ๋ฒ ์— ์ €์žฅ ๊ตฌํ˜„

* feat: ์†Œ์ผ“ ์—ฐ๊ฒฐ์‹œ ๋ฐฉ์˜ ๋ฐ์ดํ„ฐ ํžˆ์Šคํ† ๋ฆฌ๋ฅผ ์ „์†กํ•˜๋Š” ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* style: ์†Œ์ผ“ ์ฃผ์„ ์ถ”๊ฐ€

* ๐Ÿ”feat: ๊ฐœ๋ฐœ์šฉ ์ž„์‹œ๋กœ ์•ก์„ธ์Šค,๋ฆฌํ”„๋ ˆ์‹œ ํ† ํฐ๋“ค ๋งŒ๋ฃŒ๊ธฐํ•œ ์ผ์ฃผ์ผ๋กœ ์„ค์ • (#142)

* feat: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์•„์ดํ…œ ๊ถŒํ•œ ๋ฌธ์ œ ๋ฐ uuid ๋ฌธ์ œ ํ•ด๊ฒฐ (#146)

* fix: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์•„์ดํ…œ ๊ถŒํ•œ ์—†์œผ๋ฉด ์ ‘๊ทผ ๋ชปํ•˜๊ฒŒ ์ˆ˜์ •

* fix: ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์ถ”๊ฐ€์‹œ ์‚ฌ์šฉ์ž๊ฐ€ ์žˆ๋Š”์ง€ ๊ฒ€์‚ฌ

* fix: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์ƒ์„ฑ์‹œ uuid๊ฐ€ ์•„๋‹ˆ๋ฉด ์„œ๋ฒ„๊ฐ€ ์ฃฝ๋Š” ํ˜„์ƒ ์ˆ˜์ •

* style: ๋ถˆํ•„์š”ํ•œ ์ฝ”๋“œ ์ œ๊ฑฐ

* feat: ์†Œ์ผ“ ๋‹ค์ค‘ ์„œ๋ฒ„ ์ง€์›  (#159)

* chore: docker-compose.yaml์— ๋ ˆ๋””์Šค ์ถ”๊ฐ€

* chore: redis ๋ชจ๋“ˆ ์ถ”๊ฐ€

* feature: nest ๋‹ค์ค‘ ํฌํŠธ ์„œ๋ฒ„ ๊ตฌ์„ฑ

* feature: redis.module.ts ๊ตฌํ˜„ ๋ฐ ์ ์šฉ

* feature: ์†Œ์ผ“์— ๋ ˆ๋””์Šค ์‚ฝ์ž…

* feature: ์†Œ์ผ“ pub/sub ๊ตฌํ˜„

* feat: ์†Œ์ผ“ ๋ ˆ๋””์Šค์— ์ด ์ ‘์†์ž์ˆ˜ ์ฆ๊ฐ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: ์†Œ์ผ“ ํžˆ์Šคํ† ๋ฆฌ ๊ธฐ๋Šฅ ๋ ˆ๋””์Šค ์ ์šฉ

* refactor: shared-checklists.gateway.ts ๋ฆฌํŒฉํ† ๋ง

* feat: ์†Œ์ผ“ editing ์ด๋ฒคํŠธ ์ถ”๊ฐ€ (#164)

* fix: ๋ ˆ๋””์Šค ์—ฐ๊ฒฐ ์ˆ˜์ • (#168)

* [Server] object ํ˜•ํƒœ๊ฐ€ ๋“ค์–ด์˜ค๋ฉด redis์— ์ €์žฅ ์•ˆ๋˜๋Š” ๋ฌธ์ œ ์ˆ˜์ • (#171)

* ๐Ÿ›fix: ์›น์†Œ์ผ“ data๋ฅผ json์œผ๋กœ ๋ณ€๊ฒฝ ํ›„ emit

* ๐Ÿ›fix: history []์ œ๊ฑฐ

* ๐Ÿ›fix: data[0] -> data

* feat: ์›น์†Œ์ผ“ ํžˆ์Šคํ† ๋ฆฌ ๋ฒ„๊ทธ ์ˆ˜์ • ๋ฐ ์ฝ˜์†” ๋กœ๊ทธ ์ถ”๊ฐ€ (#175)

* fix: docker-compose ๋ ˆ๋””์Šค ์„ค์ • ์˜ค๋ฅ˜ ํ•ด๊ฒฐ

* feat: ์†Œ์ผ“ console.log ์ถ”๊ฐ€

* fix: ์†Œ์ผ“ ํžˆ์Šคํ† ๋ฆฌ ์ €์žฅ์‹œ ํ˜•์‹ ์˜ค๋ฅ˜ ์ˆ˜์ •

* [Server] ๋กœ๊ฑฐ ๊ธฐ๋Šฅ ํ™•๋Œ€ (#176)

* feat: no auth ๋ฒ„๊ทธ -> password ์ฃผ์„ ํ•ด์ œ

* feat: ๋กœ๊ทธ์— ํ•œ๊ตญ ์‹œ๊ฐ„๋Œ€ ์ถ”๊ฐ€

* feat: ๋กœ๊ทธํŒŒ์ผ์ด dist ๋‚ด๋ถ€์— ์กด์žฌํ•ด ํ•œ ๋‹จ๊ณ„ ์œ„๋กœ ์˜ฎ๊ฒจ์คŒ.

* feat: ์‘๋‹ต๋กœ๊ทธ๋Š” interceptor์—์„œ ์ฒ˜๋ฆฌํ•˜๋„๋ก ๋กœ์ง ์ˆ˜์ •

* feat: ๋กœ๊ทธ ์ธํ„ฐ์…‰ํ„ฐ app.module.ts ํ”„๋กœ๋ฐ”์ด๋”์— ์ถ”๊ฐ€

* ๐Ÿ›fix: redis module password ๋ถ€๋ถ„ ์ฃผ์„์ฒ˜๋ฆฌ (#180)

* [Server] ํ”ผ๋“œํ™”๋ฉด api ๊ตฌํ˜„ (#196)

* chore: import ๋ฌธ ์ตœ์ ํ™”

* feat: ํ”ผ๋“œ resource ์ƒ์„ฑ

* feat: checklist entity์— ์นดํ…Œ๊ณ ๋ฆฌ ์ปฌ๋Ÿผ ์ถ”๊ฐ€

* feat: feedmodel ์ •์˜

private checklist model์—์„œ likeCount์™€ downloadCount ์ปฌ๋Ÿผ ์ถ”๊ฐ€

* chore: ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” dto ํŒŒ์ผ ์‚ญ์ œ

* chore: ์นดํ…Œ๊ณ ๋ฆฌ ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€

* chore: ์•ˆ์“ฐ๋Š” ํ…Œ์ŠคํŠธ ํŒŒ์ผ ์‚ญ์ œ

* feat: ํ”ผ๋“œ ํ™”๋ฉด api ๊ตฌํ˜„

* feat: feeds.service.spec.ts ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ

* feat: api ์—๋Ÿฌ ํ•ธ๋“ค๋ง ๋กœ์ง ์ถ”๊ฐ€

* test: feeds.service.spec.ts ์˜ˆ์™ธ ์ผ€์ด์Šค์— ๋Œ€ํ•œ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ถ”๊ฐ€

* feat: ์—๋Ÿฌ๋ฉ”์‹œ์ง€ ์ˆ˜์ •

* feat: ๊ด€๋ฆฌ ํŽ˜์ด์ง€์™€ api ๊ตฌํ˜„ (#197)

* feat: admin resource ๊ตฌํ˜„

* feat: ๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€ ์ถ”๊ฐ€

* feat: cors ์„ค์ • ์ถ”๊ฐ€

* feat: ์ž„์‹œ๋กœ ๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€ ๊ถŒํ•œ ์ œ๊ฑฐ

* feat: admin sse api ๊ตฌํ˜„

* refactor: redis sub ์„œ๋น„์Šค ๊ตฌํ˜„

* feat: ์–ด๋“œ๋ฏผ ํŽ˜์ด์ง€ api ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: redis pub ์„œ๋น„์Šค ์ถ”๊ฐ€

* refactor: admin controller์— redis service๋กœ ๊ต์ฒด

* feat: log interceptor์— redis pub ์ถ”๊ฐ€

* refactor: channels const๋กœ ๋ถ„๋ฆฌ

* style: ๋ถˆํ•„์š”ํ•œ ์ฃผ์„ ์ œ๊ฑฐ

* feat: ws ๋กœ๊ทธ redis pub ์ถ”๊ฐ€

* feat: admin page ๋ฐ•์Šค ๋ˆ„๋ฅด๋ฉด ํŽผ์น˜๊ธฐ/์ ‘๊ธฐ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: admin ํŽ˜์ด์ง€ ์ƒ‰๊น” ๋ณ€๊ฒฝ

* feat: ๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€ ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* [Server] ํด๋ผ์ด์–ธํŠธ์™€ api ์—ฐ๋™ ์ž‘์—… (login, socket history)  (#209)

* feat: socket ๋นˆ ํžˆ์Šคํ† ๋ฆฌ๋ฉด [] ๋ณด๋‚ด๊ธฐ

* feat: ๋กœ๊ทธ์ธ์‹œ ์œ ์ € ๋‹‰๋„ค์ž„๋„ ๊ฐ™์ด ๋ณด๋‚ด์ฃผ๊ธฐ

* [Server] ai์™€ ๊ด€๋ จํ•œ db ๊ตฌ์กฐ ๊ฐœ์„  (#220)

* refactor: ๊ฒฝ๋กœ ์ด๋ฆ„ ์ˆ˜์ • entity->entities

* feat: category ์—”ํ‹ฐํ‹ฐ ์ƒ์„ฑ

* feat: reason ๋ชจ๋ธ ์ƒ์„ฑ ๋ฐ ๊ฐ ํ…Œ์ด๋ธ” relation ์„ค์ •

* feat: ๊ฐ ํ…Œ์ด๋ธ” relation ์ˆ˜์ • ๋ฐ ์˜์กด์„ฑ ์ฃผ์ž…

* feat: relation ๋ฐฉ์‹ ๋ณ€๊ฒฝ์œผ๋กœ ์ธํ•œfolders.service.ts ๋ฉ”์„œ๋“œ ์ˆ˜์ •, ์˜์กด์„ฑ ์ฃผ์ž…

* feat: admin ํŽ˜์ด์ง€ ํ•ญ๋ชฉ ์ž๋™ ์ถ”๊ฐ€ , ์‹œ์Šคํ…œ ์ƒํƒœ ๊ทธ๋ž˜ํ”„ ์ถ”๊ฐ€ (#223)

* feat: serverStatus ํ™•์ธ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: serverStatus ํ™•์ธ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: ๋ชจ๋“  ๊ตฌ๋…์„ ๋ฐ›์•„์˜ค๋Š” ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* chore: ๋ถˆํ•„์š”ํ•œ ์ƒ์ˆ˜ ์ œ๊ฑฐ

* feat: admin page ์„œ๋ฒ„ ์ƒํƒœ ํ™•์ธ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

---------

Co-authored-by: yangdongsuk <51476641+yangdongsuk@users.noreply.github.com>
pminsung12 added a commit that referenced this pull request Dec 15, 2023
* chore: main.yml admin page ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์ ์šฉ

* chore: main.yml ๋‹ค์ค‘ ์„œ๋ฒ„ ๋ฐฐํฌ

* chore: main.yml ๋‹ค์ค‘ ์„œ๋ฒ„ ํฌํŠธ ๋ณ€๊ฒฝ

* fix: main.yml ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ๋ˆ„๋ฝ ์ถ”๊ฐ€

* ํ”„๋กœ์ ํŠธ ์†Œ๊ฐœ ์—…๋ฐ์ดํŠธ (#234)

* docs: ํ”„๋กœ์ ํŠธ ์†Œ๊ฐœ ๋ฆฌ๋“œ๋ฏธ ์ž‘์„ฑ(#237)

* chore: main.yml jwt ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์ถ”๊ฐ€

* fix: main.yml jwt ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์˜คํƒ€ ์ˆ˜์ •

* ํ”„๋กœ์ ํŠธ README ์ˆ˜์ • (#254)

* docs: ํ”„๋กœ์ ํŠธ README ์ˆ˜์ •

* <img src> width ๊ฐ’ ์ œ๊ฑฐ

* docs: Update README (#259)

* docs: Update README (#261)

* ๏ฟฝMain์— iOS ์ €์žฅ์†Œ ํ•ฉ์น˜๊ธฐ (#263)

* [Client] iOS ํ”„๋กœ์ ํŠธ ์„ค๊ณ„ (#6)

* feat: ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ

* feat: ์˜์กด์„ฑ ํ”„๋กœํ† ์ฝœ ๋ฐ ๋ทฐ ์ถ”์ƒํ™” ํ”„๋กœํ† ์ฝœ ์ถ”๊ฐ€

- ์˜์กด์„ฑ ํ”„๋กœํ† ์ฝœ : `Dependency`, `Component`
- ๋ทฐ ๊ฐ์ฒด ์ถ”์ƒํ™” ํ”„๋กœํ† ์ฝœ : `ViewControllable`
- ๋ทฐ ์ƒ์„ฑ ๋กœ์ง ์ถ”์ƒํ™” ํ”„๋กœํ† ์ฝœ : `Factoryable`

* feat: ๋ฐ”ํ…€ ํƒญ ๋ฐ ํƒญ์— ์†ํ•œ ๋ทฐ ์ปจํŠธ๋กค๋Ÿฌ ๊ตฌํ˜„

* feat: ๋ทฐ๋ชจ๋ธ, ์œ ์ฆˆ์ผ€์ด์Šค, ๋ ˆํฌ์ง€ํ† ๋ฆฌ ์—ฐ๊ฒฐ ์˜ˆ์ œ ๊ตฌํ˜„

* feat: ๋„คํŠธ์›Œํฌ, ์†Œ์ผ“ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฐ workspace ์ƒ์„ฑ

* chore: `OpenList` ํ”„๋กœ์ ํŠธ ํด๋” ์ด๋™

* chore: `pbxproj` ํŒŒ์ผ ์ถ”๊ฐ€

* feat: ๋ผ์šฐํ„ฐ์— ๋ทฐ ์˜์กด์„ฑ ์ฃผ์ž…

* style: ๋ณ€์ˆ˜ ์˜คํƒ€ ์ˆ˜์ •(`AddTap `-> `AddTab`)

* feat: factory ๋ถ€๋ชจ ํด๋ž˜์Šค ์ƒ์„ฑ

* feat: ๋ฐ”ํ…€ ํƒญ์— ์†ํ•˜๋Š” ๋ทฐ ์ปจํŠธ๋กค๋Ÿฌ ์ˆœ์„œ ๋ณ€๊ฒฝ

* feat: ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๊ณตํ†ต์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ์œ ํ‹ธ ํŒŒ์ผ ์ถ”๊ฐ€

- `ViewBindable`
- `ViewModelable`

* iOS ํ”„๋กœ์ ํŠธ ์ถ”๊ฐ€ ์„ค์ • (#26)

* feat: ์Šค์œ„ํ”„ํŠธ ๋ฆฐํŠธ ์„ค์ • ์ถ”๊ฐ€

* chore: ์Šค์œ„ํ”„ํŠธ ํ…œํ”Œ๋ฆฟ ์ถ”๊ฐ€

* feat: `*.pbxproj` ๋ณ‘ํ•ฉ ์กฐ๊ฑด ์ถ”๊ฐ€

* ์‚ฌ์šฉ์ž๋Š” ์ƒ์„ฑํ•œ ์ฒดํฌ๋ฆฌ์ŠคํŠธ๋ฅผ ๋ฆฌ์ŠคํŠธํ˜•ํƒœ๋กœ ๋ณผ์ˆ˜ ์žˆ๋‹ค. (#27)

* feat: ์ฒดํฌ๋ฆฌ์ŠคํŠธ Table ํ˜•ํƒœ๋กœ ๋ณด์—ฌ์ฃผ๋Š” ๊ธฐ๋Šฅ ๊ตฌํ˜„

* feat: ๋‹ฌ์„ฑ๋ฅ  UI ๊ตฌ์„ฑ

* style: Lint ์ ์šฉ

* feat: ๊ธธ๊ฒŒ ๋ˆ„๋ฅผ ๋•Œ action sheet menu ๋ณด์—ฌ์ฃผ๊ธฐ

* feat: ์„ฑ๊ณต๋ฅ  ํผ์„ผํŠธ ์ถ”๊ฐ€

* feat: CheckListTableItem ์ถ”๊ฐ€

* style: Code ์ปจ๋ฒค์…˜ ์ค€์ˆ˜

* ๋„คํŠธ์›Œํฌ ๋ชจ๋“ˆ ๊ตฌ์„ฑ (#37)

* feat: ์ฒดํฌ๋ฆฌ์ŠคํŠธ Table ํ˜•ํƒœ๋กœ ๋ณด์—ฌ์ฃผ๋Š” ๊ธฐ๋Šฅ ๊ตฌํ˜„

* style: Lint ์ ์šฉ

* feat: ์„ฑ๊ณต๋ฅ  ํผ์„ผํŠธ ์ถ”๊ฐ€

* feat: CheckListTableItem ์ถ”๊ฐ€

* feat: Network ๋ชจ๋“ˆ ๊ตฌ์„ฑ ๋ฐ ํ…Œ์ŠคํŠธ

* fix: pbxfile ์˜ค๋ฅ˜ ํ•ด๊ฒฐ

* feat: ๋””์ž์ธ ์‹œ์Šคํ…œ ๊ตฌ์„ฑ์š”์†Œ ์ถ”๊ฐ€ (#40)

* ์‚ฌ์šฉ์ž๋Š” ์ฒดํฌ๋ฆฌ์ŠคํŠธ์˜ ํ•ญ๋ชฉ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. (#44)

* style: ๋””์ž์ธ ๋ฆฌ์†Œ์Šค ์ถ”๊ฐ€ (`circle.png`)

- ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์„œํด ์•„์ด์ฝ˜ ์ถ”๊ฐ€

* feat: ์ƒ์„ธ ์ฒดํฌ๋ฆฌ์ŠคํŠธ ๋ทฐ ๋ฒ„ํ„ฐํ”Œ๋ผ์ด ํŒŒ์ผ ์ƒ์„ฑ

* feat: ํ…Œ์ด๋ธ” ๋ทฐ ์ต์Šคํ…์…˜ ์ถ”๊ฐ€

* feat: ์ƒ์„ธ ์ฒดํฌ๋ฆฌ์ŠคํŠธ UI ๊ตฌํ˜„

* feat: ์ƒ์„ธ ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์ œ๋ชฉ UI ๊ตฌํ˜„

* review: ์ฝ”๋“œ ๋ฆฌ๋ทฐ ๋ฐ˜์˜

* ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์ œ๋ชฉ ์ƒ์„ฑ (#43)

* feat: Title ์ž‘์„ฑ View, ViewModel, UseCase, Repository๋กœ์ง

* feat: KeyBoard์ฒ˜๋ฆฌ, OpenListTextField ๊ตฌํ˜„

* style: DesignSystem ์ ์šฉ

* style: SwiftLint ์ ์šฉ

* review: ์ฝ”๋“œ๋ฆฌ๋ทฐ ๋ฐ˜์˜- ์• ๋‹ˆ๋ฉ”์ด์…˜ ์ฝ”๋“œ

---------

Co-authored-by: ๊น€์˜๊ท  <48887389+klmyoungyun@users.noreply.github.com>

* fix: `addTabViewController`๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ํ•ด์ œ ์•ˆ ๋˜๋Š” ๋ฒ„๊ทธ ์ˆ˜์ • (#46)

* ์ฝ”์–ด๋ฐ์ดํ„ฐ ์ƒ์„ฑ ๋ฐ ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์ œ๋ชฉ ์ €์žฅ ๊ธฐ๋Šฅ ๊ตฌํ˜„ (#73)

* feat: CoreDataStorage ์ถ”๊ฐ€

* fix: AppRouter Duplicate ๋ฌธ์ œ ํ•ด๊ฒฐ

* feat: ๋กœ์ปฌ ์Šคํ† ๋ฆฌ์ง€ ๊ตฌํ˜„

* feat: Core CRUD / Data Binding

* feat: TabBar ์ด๋ฏธ์ง€ ์ถ”๊ฐ€

* feat: detailView ํ™”๋ฉด ์ „ํ™˜ ๊ตฌํ˜„

* feat: ์ฒดํฌ๋ฆฌ์ŠคํŠธ ๋””ํ…Œ์ผ ํ™”๋ฉด ์ด๋™ ๊ตฌํ˜„

* fix: DetailCheckListViewController ๋ฉ”๋ชจ๋ฆฌ ๋ฆญ ์ˆ˜์ •

* fix: placeholder๊ฐ€ ๊ณ„์† ์ƒ๊ธฐ๋˜ ๋ฒ„๊ทธ ์ˆ˜์ •

* feat: ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์‚ญ์ œ ๊ตฌํ˜„

* feat: ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์ƒ์„ฑํ•˜๋ฉด ์ฝ”์–ด๋ฐ์ดํ„ฐ์— ์ €์žฅํ•˜๋„๋ก ๋ณ€๊ฒฝ

---------

Co-authored-by: wi-seong-cheol <tjd9248@naver.com>

* CRDT ํ”„๋ ˆ์ž„์›Œํฌ ๊ตฌํ˜„ (#74)

* feat: CRDT ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌํ™”

* style: SwiftLint ์ ์šฉ

* refactor: ๊ฐ•์ œ ์–ธ๋žฉํ•‘ ์ œ๊ฑฐ

* feat: CRDT ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌํ™”

* style: SwiftLint ์ ์šฉ

* refactor: ๊ฐ•์ œ ์–ธ๋žฉํ•‘ ์ œ๊ฑฐ

---------

Co-authored-by: klmyoungyun <kyoungyun98@naver.com>

* [Client] ์ˆ˜์ • - ์ œ๋ชฉ ์ƒ์„ฑํ™”๋ฉด tap ์ œ์Šค์ฒ˜ ๊ด€๋ จ ์˜ค๋ฅ˜ ์ˆ˜์ • (#85)

* fix: tap.cancelsTouchInView ์†์„ฑ ๋ณ€๊ฒฝ

* fix: keyboard Constraint ์˜ค๋ฅ˜ ํ•ด๊ฒฐ

---------

Co-authored-by: wi-seong-cheol <tjd9248@naver.com>

* ์Šคํ‚ด ๋ฐฉ์‹์˜ ๋”ฅ๋งํฌ ๊ตฌํ˜„ (#80)

* feat: ์•ฑ ์Šคํ‚ด ๋ฐฉ์‹ ๋”ฅ๋งํฌ ๊ตฌํ˜„

* fix: project ํŒŒ์ผ ์ถฉ๋Œ ํ•ด๊ฒฐ

---------

Co-authored-by: wi-seong-cheol <tjd9248@naver.com>

* ๋””ํ…Œ์ผ ํ™”๋ฉด CRDT ์—ฐ๊ฒฐ (#112)

* feat: ๊ฐœ์ธ/ํ•จ๊ป˜ ์ฒดํฌ๋ฆฌ์ŠคํŠธ ๋ถ„๋ฆฌ

* feat: WebSocket ๊ตฌํ˜„

* feat: CRDT, WebSocket Repository ๊ตฌํ˜„

* feat:  ์ž„์‹œ device id ๋ถ€์—ฌ

* feat: Repository ํ”„๋กœํ† ์ฝœ ๊ตฌํ˜„

* feat: UseCase ๊ตฌํ˜„

* feat: Scene ๊ด€๋ จ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* feat: ์„œ๋ฒ„์˜ Socket Request ๋ฐ˜์˜

* feat: ๋ฐธ๋Ÿฐ์‹ฑ ์ž‘์—… ๋ณด๋ฅ˜

* refactor: UseCase ํ†ตํ•ฉ

* feat: WebSocket ์‹ฑ๊ธ€ํ†ค ๋ณ€๊ฒฝ

* feat: ๋ฐ์ดํ„ฐ ์ „๋‹ฌ ๋ชจ๋ธ ์ •์˜

* feat: ๋‹จ์ผ CRDT ๊ตฌํ˜„

* feat: DTO ์ •์˜๋ฅผ ์œ„ํ•œ public ๋ณ€๊ฒฝ

* feat: CRDT DTO ์ •์˜

* feat: ์—”ํ‹ฐํ‹ฐ ์ •์˜

* feat: CheckListItem ์†์„ฑ ๋ณ€๊ฒฝ

* feat: ๋‹จ๋ฐฉํ–ฅ ๋งํฌ๋“œ ๋ฆฌ์ŠคํŠธ ์ •์˜

์–‘๋ฐฉํ–ฅ์œผ๋กœ ํ•˜๋ฉด Decode ํ•  ๋•Œ ์ˆœํ™˜์ฐธ์กฐ๋กœ ์ธํ•œ ์˜ค๋ฅ˜ ๋ฐœ์ƒ

* fix: item ์ค‘๋ณต ์ œ๊ฑฐ

* fix: Delete ๋ฆฌํŒฉํ† ๋ง ์˜ค๋ฅ˜ ์ˆ˜์ •

* feat: ๋™์‹œํŽธ์ง‘ ๋กœ์ง ๊ตฌํ˜„

* feat: ๊ฐœ์ธ/ํ•จ๊ป˜ ์ฒดํฌ๋ฆฌ์ŠคํŠธ ๋ถ„๋ฆฌ

* feat: WebSocket ๊ตฌํ˜„

* feat: CRDT, WebSocket Repository ๊ตฌํ˜„

* feat:  ์ž„์‹œ device id ๋ถ€์—ฌ

* feat: Repository ํ”„๋กœํ† ์ฝœ ๊ตฌํ˜„

* feat: UseCase ๊ตฌํ˜„

* feat: Scene ๊ด€๋ จ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* feat: ์„œ๋ฒ„์˜ Socket Request ๋ฐ˜์˜

* feat: ๋ฐธ๋Ÿฐ์‹ฑ ์ž‘์—… ๋ณด๋ฅ˜

* refactor: UseCase ํ†ตํ•ฉ

* feat: WebSocket ์‹ฑ๊ธ€ํ†ค ๋ณ€๊ฒฝ

* feat: ๋ฐ์ดํ„ฐ ์ „๋‹ฌ ๋ชจ๋ธ ์ •์˜

* feat: ๋‹จ์ผ CRDT ๊ตฌํ˜„

* feat: DTO ์ •์˜๋ฅผ ์œ„ํ•œ public ๋ณ€๊ฒฝ

* feat: CRDT DTO ์ •์˜

* feat: ์—”ํ‹ฐํ‹ฐ ์ •์˜

* feat: CheckListItem ์†์„ฑ ๋ณ€๊ฒฝ

* feat: ๋‹จ๋ฐฉํ–ฅ ๋งํฌ๋“œ ๋ฆฌ์ŠคํŠธ ์ •์˜

์–‘๋ฐฉํ–ฅ์œผ๋กœ ํ•˜๋ฉด Decode ํ•  ๋•Œ ์ˆœํ™˜์ฐธ์กฐ๋กœ ์ธํ•œ ์˜ค๋ฅ˜ ๋ฐœ์ƒ

* fix: item ์ค‘๋ณต ์ œ๊ฑฐ

* fix: Delete ๋ฆฌํŒฉํ† ๋ง ์˜ค๋ฅ˜ ์ˆ˜์ •

* feat: ๋™์‹œํŽธ์ง‘ ๋กœ์ง ๊ตฌํ˜„

* ์ฒดํฌ๋ฆฌ์ŠคํŠธ ๋™์‹œํŽธ์ง‘์ž ์ดˆ๋Œ€ ๊ตฌํ˜„ (#115)

* feat: Navigation ๋ฉ”๋‰ด ์ถ”๊ฐ€

* feat: ๋”ฅ๋งํฌ ํƒ€์ดํ‹€์—์„œ ์ฒดํฌ๋ฆฌ์ŠคํŠธ ID๋กœ ๋ณ€๊ฒฝ

* fix: ๊ฐ•์ œ ์–ธ๋žฉํ•‘ ์ œ๊ฑฐ

* ์ปค์Šคํ…€ ๋„ค๋น„๊ฒŒ์ด์…˜ ๋ฐ” ๊ตฌํ˜„ (#116)

* feat: ์ปค์Šคํ…€ ๋„ค๋น„๊ฒŒ์ด์…˜ ๋ฐ” ๊ตฌํ˜„

* feat: ๋’ค๋กœ๊ฐ€๊ธฐ ๋ฒ„ํŠผ ๋ ˆ์ด์•„์›ƒ ์ˆ˜์ •

* ์ฒดํฌ๋ฆฌ์ŠคํŠธ ๋™์‹œํŽธ์ง‘์ž ์ดˆ๋Œ€ ๊ตฌํ˜„ (#115)

* feat: Navigation ๋ฉ”๋‰ด ์ถ”๊ฐ€

* feat: ๋”ฅ๋งํฌ ํƒ€์ดํ‹€์—์„œ ์ฒดํฌ๋ฆฌ์ŠคํŠธ ID๋กœ ๋ณ€๊ฒฝ

* fix: ๊ฐ•์ œ ์–ธ๋žฉํ•‘ ์ œ๊ฑฐ

* feat: ์ปค์Šคํ…€ ๋„ค๋น„๊ฒŒ์ด์…˜ ๋ฐ” ๊ตฌํ˜„

* feat: ๋’ค๋กœ๊ฐ€๊ธฐ ๋ฒ„ํŠผ ๋ ˆ์ด์•„์›ƒ ์ˆ˜์ •

---------

Co-authored-by: wi-seong-cheol <53855302+wi-seong-cheol@users.noreply.github.com>
Co-authored-by: wi-seong-cheol <tjd9248@naver.com>

* fix: ๋นŒ๋“œ ์˜ค๋ฅ˜ ์ˆ˜์ • (#121)

* ์• ํ”Œ๋กœ๊ทธ์ธ ๊ตฌํ˜„ (#117)

* chore: framework ์ ์šฉ

* feat: Login ๊ธฐ๋ณธ ์„ค์ •

* feat: App ์ง„์ž…์‹œ ๋กœ๊ทธ์ธ ๋ทฐ ๊ตฌํ˜„

* feat: ๋กœ๊ทธ์ธ ์ดํ›„ ํ™”๋ฉด ์ „ํ™˜ ๊ตฌํ˜„

* feat: ๋กœ๊ทธ์ธ ์ดํ›„ usecase -> respository ๊ตฌํ˜„

* refactor: return ๊ฐ’ Bool -> DTO

* feat: KeyChain ์„ค์ •

* refactor: ViewModel ์ดํ›„ ๋กœ์ง ์ˆ˜์ •

* fix: API parameter ์ˆ˜์ • ๋ฐ ๊ตฌํ˜„

* style: Constant ๋ณ€์ˆ˜ํ™”

* style: ํŒŒ์ผ๋ช… ๋ณ€๊ฒฝ ๋ฐ ์ฝ”๋“œ ํŒ€ ์Šคํƒ€์ผ ์ ์šฉ

* style: Optional ์ œ๊ฑฐ

* fix: Server ์š”์ฒญ์— ๋”ฐ๋ฅธ param ์ˆ˜์ •

* fix: review ๋ฐ˜์˜

* fix: ๋นŒ๋“œ ์˜ค๋ฅ˜ ์ˆ˜์ • (#130)

* CoreData CRUD ๊ธฐ๋Šฅ ๊ตฌํ˜„ (#125)

* refactor: Entity Rename

* feat: ๊ฐœ์ธ ์ฒดํฌ๋ฆฌ์ŠคํŠธ์—์„œ ์ฒดํฌ๋ฆฌ์ŠคํŠธ ํ•ญ๋ชฉ ์ €์žฅ

* feat: CoreData CRUD ๊ธฐ๋Šฅ ๊ตฌํ˜„

* feat: ๋‹ฌ์„ฑ๋ฅ  ํ‘œ์‹œ

* ์• ํ”Œ๋กœ๊ทธ์ธ ๊ตฌํ˜„ (#117)

* chore: framework ์ ์šฉ

* feat: Login ๊ธฐ๋ณธ ์„ค์ •

* feat: App ์ง„์ž…์‹œ ๋กœ๊ทธ์ธ ๋ทฐ ๊ตฌํ˜„

* feat: ๋กœ๊ทธ์ธ ์ดํ›„ ํ™”๋ฉด ์ „ํ™˜ ๊ตฌํ˜„

* feat: ๋กœ๊ทธ์ธ ์ดํ›„ usecase -> respository ๊ตฌํ˜„

* refactor: return ๊ฐ’ Bool -> DTO

* feat: KeyChain ์„ค์ •

* refactor: ViewModel ์ดํ›„ ๋กœ์ง ์ˆ˜์ •

* fix: API parameter ์ˆ˜์ • ๋ฐ ๊ตฌํ˜„

* style: Constant ๋ณ€์ˆ˜ํ™”

* style: ํŒŒ์ผ๋ช… ๋ณ€๊ฒฝ ๋ฐ ์ฝ”๋“œ ํŒ€ ์Šคํƒ€์ผ ์ ์šฉ

* style: Optional ์ œ๊ฑฐ

* fix: Server ์š”์ฒญ์— ๋”ฐ๋ฅธ param ์ˆ˜์ •

* fix: review ๋ฐ˜์˜

* fix: ๋นŒ๋“œ ์˜ค๋ฅ˜ ์ˆ˜์ • (#130)

* refactor: Entity Rename

* feat: ๊ฐœ์ธ ์ฒดํฌ๋ฆฌ์ŠคํŠธ์—์„œ ์ฒดํฌ๋ฆฌ์ŠคํŠธ ํ•ญ๋ชฉ ์ €์žฅ

* feat: CoreData CRUD ๊ธฐ๋Šฅ ๊ตฌํ˜„

* feat: ๋‹ฌ์„ฑ๋ฅ  ํ‘œ์‹œ

* fix: ์ง„ํ–‰๋ฅ  ์˜ค๋ฅ˜ ํ•ด๊ฒฐ

* fix: pbx ์˜ค๋ฅ˜ ์ˆ˜์ •

* refactor: ๋ถˆํ•„์š”ํ•œ ์ฝ”๋“œ ์ œ๊ฑฐ

---------

Co-authored-by: ๊น€์„ฑํ›ˆ <42074365+SeongHunTed@users.noreply.github.com>
Co-authored-by: ๊น€์˜๊ท  <48887389+klmyoungyun@users.noreply.github.com>

* [FD1 - 1] ์‚ฌ์šฉ์ž๊ฐ€ ๋งŒ๋“  ํด๋”๋“ค์„ ๊ฒฉ์ž ํ˜•ํƒœ๋กœ ๋ณด์—ฌ์ค€๋‹ค. (#124)

* feat: ์ฝœ๋ ‰์…˜ ๋ทฐ ์ต์Šคํ…์…˜ ์ถ”๊ฐ€

* feat: ๋ฉ”์ธ ํŽ˜์ด์ง• ๋ทฐ ์ปจํŠธ๋กค๋Ÿฌ ๊ตฌํ˜„ ๋ฐ ์ƒ๋‹จ ํƒญ ๋ฐ” ๊ตฌํ˜„

* feat: ๊ทธ๋ฆผ์ž ๋ ˆ์ด์–ด์— ์ถ”๊ฐ€ํ•˜๋Š” ๋ฉ”์„œ๋“œ ๊ตฌํ˜„ ๋ฐ ๊ทธ๋ฆผ์ž ์ƒ‰ ๋ฆฌ์†Œ์Šค ์ถ”๊ฐ€

* feat: ์ฒดํฌ๋ฆฌ์ŠคํŠธ ํด๋” ๋ทฐ ์ปจํŠธ๋กค๋Ÿฌ ๊ตฌํ˜„

* feat: ์ฒดํฌ๋ฆฌ์ŠคํŠธ ํ…Œ์ด๋ธ” ๋ทฐ ์ปจํŠธ๋กค๋Ÿฌ ๋ ˆ์ด์•„์›ƒ ์ˆ˜์ •

* feat: ์ฒดํฌ๋ฆฌ์ŠคํŠธ ๊ณต์œ  ๋ทฐ ์ปจํŠธ๋กค๋Ÿฌ ๊ตฌํ˜„

* fix: build ์˜ค๋ฅ˜ ์ˆ˜์ •

* feat: ๋„ค๋น„๊ฒŒ์ด์…˜ ์•„์ดํ…œ ํฌ๊ธฐ ์กฐ์ ˆ

* chore: ์ปจํ”Œ๋ฆญ ์ฒ˜๋ฆฌ

* fix: ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์ง„ํ–‰๋ฅ  ์˜ค๋ฅ˜ ์ˆ˜์ • (#132)

* ๋นˆ ์ฒดํฌ๋ฆฌ์ŠคํŠธ ํ™”๋ฉด ๊ตฌํ˜„ (#138)

* ๋„คํŠธ์›Œํฌ ๋ชจ๋“ˆ ์ˆ˜์ • (#136)

* refactor:  ์ฝ”๋“œ ๋ฆฌํŒฉํ† ๋ง

* fix: ์˜คํƒ€ ์ˆ˜์ •

* [AI1 - 1] ์‚ฌ์šฉ์ž๋Š” ๋Œ€ > ์ค‘ > ์†Œ ์นดํ…Œ๊ณ ๋ฆฌ๋ฅผ ์„ ํƒํ•˜๋ฉฐ AI ์ถ”์ฒœ์„ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค (#144)

* chore: ํด๋”๋ง, ํŒŒ์ผ๋ช… ๋ณ€๊ฒฝ AddTab -> AddCheckListTitle

* feat: checklist ์ œ๋ชฉ์ž…๋ ฅ ํ›„ category ํ™”๋ฉด ์ „ํ™˜

* feat: category cell ์ƒ์„ฑ

* feat: category headerView title ๊ตฌํ˜„

* style: HeaderView์—์„œ ๊ทธ๋ผ๋ฐ์ด์…˜๋ทฐ ๋ถ„๋ฆฌ

* feat: Gradient Progress Circle ๊ตฌํ˜„

* feat: Gradient Progress Stick ๊ตฌํ˜„

* feat: Progress View ๊ตฌํ˜„

* feat: navigationBar, skipButton ๊ตฌํ˜„

* feat: Routing ๋กœ์ง ๊ตฌํ˜„

* style: Cell Color ๋ฐฉ์‹ ๋ณ€๊ฒฝ

* feat: navigation back routing ๋กœ์ง, layout ์žฌ์„ค์ •

* style: ConfirmButton intrinsicContentSize ์„ค์ • ๋ฐ ๋ณ€๊ฒฝ

* style: Layout ์ž„์‹œ์ˆ˜์ • ๋ฐ ViewWillAppear ๋ถ€๋ถ„ ์‚ญ์ œ

* style: Layout literal ๊ด€๋ฆฌ ๋ฐ convention

* feat: MediumCategoryVC Routing

* chore: conflict ํ•ด๊ฒฐ

* style: cell ์„ ํƒ output ํŒจํ„ด์œผ๋กœ ๋ณ€๊ฒฝ

* chore: Category๋ช… Server์™€ ๋™๊ธฐํ™”

* feat: SubCategory View ๊ตฌํ˜„

* feat: MinorCategory ๊ตฌํ˜„

* feat: Category Data Stream ๊ตฌํ˜„

* feat: UseCase, Repository ๊ตฌํ˜„ ๋ฐ Main, Sub, Minor Category ์—ฐ๊ฒฐ

* feat: Checklist Title Stream

* feat: Skipbutton ์ œ๋ชฉ stream

* style: Dependency ์ˆ˜์ •

* feat: AccessTokenInterceptor ์ถ”๊ฐ€

* chore: Network ๋ณ€๊ฒฝ์‚ฌํ•ญ ๋ฐ˜์˜

* style: ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” Router ๋ณ€์ˆ˜์ œ๊ฑฐ

* style: Review ๋ฐ˜์˜

* [AI1 - 2] ์‚ฌ์šฉ์ž๋Š” AI ์ถ”์ฒœ์„ ๋” ๋ฐ›์„ ์ˆ˜ ์žˆ๊ณ , ๋‚ด ์ฒดํฌ๋ฆฌ์ŠคํŠธ๋กœ ์„ ํƒํ•ด์„œ ๋„ฃ๋Š”๋‹ค (#148)

* feat: ์ฒดํฌ๋ฆฌ์ŠคํŠธ ํ•ญ๋ชฉ ์ถ”๊ฐ€

* feat: Section๋ณ„ ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์ถ”๊ฐ€ ์‚ญ์ œ ๊ตฌํ˜„

* feat: AddTitle -> AddCheckListItem Routing ์ ์šฉ

* feat: AI ์ฒดํฌ๋ฆฌ์ŠคํŠธ ํ™”๋ฉด ์ ์šฉ

* feat: LoadingIndicator ๊ตฌํ˜„

* feat: AccessTokenInterceptor ์ถ”๊ฐ€

* chore: Optional Unwrapping ์ฒ˜๋ฆฌ

---------

Co-authored-by: wi-seong-cheol <tjd9248@naver.com>

* ์‚ฌ์šฉ์ž๋Š” ๋™์‹œํŽธ์ง‘ ํ™”๋ฉด์—์„œ ์ฒดํฌ๋ฆฌ์ŠคํŠธ๋ฅผ ์ˆ˜์ • ๋ฐ ์ถ”๊ฐ€ ํ•  ์ˆ˜ ์žˆ๋‹ค.  (#149)

* feat: ๊ฐœ์ธ์—์„œ ํ•จ๊ป˜๋กœ ๋ณ€๊ฒฝ ํ๋ฆ„ ๊ตฌํ˜„

* feat: crdt ๋งํฌ๋“œ ๋ฆฌ์ŠคํŠธ ๋ฐฉ์‹ ์ˆ˜์ •

* feat: ๋„ค๋น„๊ฒŒ์ด์…˜ ์ถ”๊ฐ€

* feat: ๊ฐœ์ธ์—์„œ ํ•จ๊ป˜๋กœ ๋ณ€๊ฒฝ ํ๋ฆ„ ๊ตฌํ˜„

* feat: crdt ๋งํฌ๋“œ ๋ฆฌ์ŠคํŠธ ๋ฐฉ์‹ ์ˆ˜์ •

* feat: ๋„ค๋น„๊ฒŒ์ด์…˜ ์ถ”๊ฐ€

* style: ์˜คํƒ€ ์ˆ˜์ •

* ์ฒดํฌ๋ฆฌ์ŠคํŠธ ๊ฐœ์ธ > ํ•จ๊ป˜ ์ „ํ™˜ (#147)

* feat: ๋”ฅ๋งํฌ๋กœ ์ดˆ๋Œ€๋˜์—ˆ์„ ๋•Œ ๋ฐฉ ์ดˆ๋Œ€ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* feat: ํ•จ๊ป˜ ์ฒดํฌ๋ฆฌ์ŠคํŠธ ํ…Œ์ด๋ธ”์„ ๊ฐœ์ธ ์ฒดํฌ๋ฆฌ์ŠคํŠธ ํ…Œ์ด๋ธ”๋กœ ๋ณ€๊ฒฝ

* feat: ํ•จ๊ป˜ ์ฒดํฌ๋ฆฌ์ŠคํŠธ ํ…Œ์ด๋ธ” ๊ตฌํ˜„

* feat: ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์‚ญ์ œ ๊ตฌํ˜„

* feat: ์ฒดํฌ๋ฆฌ์ŠคํŠธ ํ•จ๊ป˜ ์ž‘์„ฑํ•˜๊ธฐ ๊ตฌํ˜„

* faet: ํ•จ๊ป˜ ์ฒดํฌ๋ฆฌ์ŠคํŠธ API ์—ฐ๊ฒฐ

* feat: Socket ์—ฐ๊ฒฐ

* feat: ๋ฐ์ดํ„ฐ ํ•ฉ์น˜๊ธฐ

---------

Co-authored-by: klmyoungyun <kyoungyun98@naver.com>

* feat: ๊ฐœ์ธ ์ฒดํฌ๋ฆฌ์ŠคํŠธ ๊ธธ๊ฒŒ ๋ˆŒ๋Ÿฌ ์‚ญ์ œ ๊ตฌํ˜„

* feat: ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์ƒ์„ธ ํ™”๋ฉด์—์„œ ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์‚ญ์ œํ•˜๋Š” ๋กœ์ง ๊ตฌํ˜„

* feat: ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์ƒ์„ฑ ํ›„ ๋ฆฌ๋กœ๋“œ ๊ตฌํ˜„

---------

Co-authored-by: wi-seong-cheol <tjd9248@naver.com>
Co-authored-by: wi-seong-cheol <53855302+wi-seong-cheol@users.noreply.github.com>

* feat: ์ƒ์„ฑ๋œ ์ฒดํฌ๋ฆฌ์ŠคํŠธ ๋กœ์ปฌ์— ์ €์žฅํ•˜๋Š” ๊ธฐ๋Šฅ ๊ตฌํ˜„ (#151)

* AI ์ถ”์ฒœ ์ฒดํฌ๋ฆฌ์ŠคํŠธ ํ™”๋ฉด ๊ตฌํ˜„ (#156)

* feat: Header ๊ตฌํ˜„ ๋ฐ ๊ธฐ์กด ๋กœ์ง ์ˆ˜์ •

* feat: Header Button ๋กœ์ง ๊ตฌํ˜„ & viewDidLoad ๋กœ์ง ๋ถ„๋ฆฌ

* chore: Dark Mode ์ž‘์„ฑ

* style: Review ๋ฐ˜์˜

* CRDT ํ•œ๊ธ€ํ™” (#160)

* feat: CRDT ํ•œ๊ธ€ํ™” ๋ฐ ๋ฐธ๋Ÿฐ์‹ฑ ๋ฌธ์ œ ํ•ด๊ฒฐ

* feat: CRDT ํ•œ๊ธ€ํ™”

* refactor: ํ•จ์ˆ˜๋ช… ์ˆ˜์ •

* ์„ค์ • ํ™”๋ฉด ๊ตฌํ˜„ (#181)

* feat: Setting UI ๊ตฌ์„ฑ

* feat: ๋กœ๊ทธ์•„์›ƒ, ํšŒ์›ํƒˆํ‡ด ๊ธฐ๋Šฅ ๊ตฌํ˜„

* feat: ์Šค์™€์ดํ”„๋กœ ๋’ค๋กœ๊ฐ€๊ธฐ ๊ธฐ๋Šฅ ๊ตฌํ˜„ (#187)

* ํ”„๋กœํ•„ ํ™”๋ฉด ๊ตฌํ˜„ (#188)

* refactor: ๋ถˆํ•„์š”ํ•œ ์ฝ”๋“œ ์ œ๊ฑฐ

* feat: ํ™”๋ฉด ํ๋ฆ„ ๊ตฌ์„ฑ

* feat: profile UI ๊ตฌ์„ฑ

* feat: profile ๋‹‰๋„ค์ž„ ๋ณ€๊ฒฝ ๊ตฌํ˜„

* feat: profile ๋‹‰๋„ค์ž„ ๋ณ€๊ฒฝ ๊ตฌํ˜„

* fix: ๊ฐ•์ œ ์–ธ๋žฉํ•‘ ์ œ๊ฑฐ

* Textfield์—์„œ TextView๋กœ ๋ณ€๊ฒฝ (#189)

* feat: Textfield๋ฅผ TextView๋กœ ๋ณ€๊ฒฝ

* fix: ์…€ ์‚ญ์ œ ์˜ค๋ฅ˜ ์ˆ˜์ •

* fix: ๋ถˆํ•„์š”ํ•œ ์ฝ”๋“œ ์ œ๊ฑฐ

* [FE1 - 1] ์‚ฌ์šฉ์ž๋Š” ์นดํ…Œ๊ณ ๋ฆฌ๋ณ„ ์ถ”์ฒœ ์ฒดํฌ๋ฆฌ์ŠคํŠธ๋ฅผ ๋ฐ›๊ณ  ์œ„์•„๋ž˜, ์ขŒ์šฐ ์Šคํฌ๋กคํ•˜๋ฉฐ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. (#192)

* feat: ์ถ”์ฒœ ํƒญ UI ๊ตฌํ˜„

* feat: ์ถ”์ฒœ ํƒญ ์œ ์ฆˆ์ผ€์ด์Šค, ๋ ˆํฌ์ง€ํ† ๋ฆฌ ๊ตฌํ˜„

* fix: ์ปฌ๋ ‰์…˜ ๋ทฐ ์•ˆ์— ๋ฐ์ดํ„ฐ์†Œ์Šค๊ฐ€ ์žˆ์„ ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ์˜ค๋ฅ˜ ์ˆ˜์ •

* feat: ์ถ”์ฒœํƒญ ๊ธฐ๋ณธ ์ด๋ฏธ์ง€ ์ถ”๊ฐ€

* ์ถ”์ฒœ ํ”ผ๋“œ API ์—ฐ๊ฒฐ (#204)

* feat: ํ”ผ๋“œ API ์—ฐ๊ฒฐ

* feat: ๋นˆ ์ฒดํฌ๋ฆฌ์ŠคํŠธ ํ™”๋ฉด ํƒ€์ž… ์—ด๊ฑฐํ˜• ๋ณ€๊ฒฝ


ใ…‡

ใ…‡

* ๋™์‹œํŽธ์ง‘์‹œ์— ์‚ฌ์šฉ์ž์˜ ์œ„์น˜์™€ ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์ฒดํฌ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค (#193)

* feat: Item ์ œ๊ฑฐ

* feat: ์—ฐ์‚ฐ ํ•˜๋‚˜๋กœ ํ•ฉ์น˜๋Š” ๊ธฐ๋Šฅ ๊ตฌํ˜„

* feat: socket ์ด๋ฆ„ ์ถ”๊ฐ€

* feat: ์‚ฌ์šฉ์ž ์ด๋ฆ„ Cell ํ‘œ๊ธฐ

* feat: ListItem ์ถ”์ƒํ™” ๋ฐ ์‚ฌ์šฉ์ž ํ‘œ์‹œ

* feat: AppendDocument ์‚ฌ์šฉ์ž ์ž๋ฆฌ ์ด๋™

* feat: ์‚ฌ์šฉ์ž์œ„์น˜ ํ‘œ์‹œ

* style: delete ์ˆ˜์ •

* feat: CheckList Toggle Socket Send

* feat: CheckList ์ฒดํฌ๋ฐ•์Šค ๋™์‹œํŽธ์ง‘

* feat: ์ฒดํฌ๋ฐ•์Šค ์ƒํƒœ ์ €์žฅ

* feat: Any Type Decoding

* feat: CRDT decode

* chore: Conflict ํ•ด๊ฒฐ

* fix: Loading Indicator ํ˜ธ์ถœ ์‹œ์  ๋ณ€๊ฒฝ

* chore: Code ์ˆ˜์ • ๋ฐ ๋ ˆ์ด์•„์›ƒ ๋ณ€๊ฒฝ

* chore: ํ† ํฐ ์‚ญ์ œ ์ฒ˜๋ฆฌ

* chore: review ๋ฐ˜์˜

* fix: CheckList ์‚ญ์ œ ์•ˆ๋˜๋Š” ์˜ค๋ฅ˜ fix

* fix: CheckList ํƒ€ ์‚ฌ์šฉ์ž ํŽธ์ง‘์‹œ ์ฒดํฌ๋ฐ•์Šค ์ƒํƒœ ๋ณ€๊ฒฝ ๋ฐ˜์˜

* fix: ์‚ญ์ œ์•ˆ๋˜๋Š” ์˜ค๋ฅ˜ ํ•ด๊ฒฐ

* chore: UserDefaults ํ†ต์ผ

* chore: conflict ํ•ด๊ฒฐ

---------

Co-authored-by: wi-seong-cheol <tjd9248@naver.com>
Co-authored-by: klmyoungyun <kyoungyun98@naver.com>

* fix: ๋นˆ ์ฒดํฌ๋ฆฌ์ŠคํŠธ๊ฐ€ ์‚ญ์ œ๋˜๋„๋ก ์ˆ˜์ • (#206)

* ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์‚ญ์ œ API ์—ฐ๋™ (#207)

* feat: ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์‚ญ์ œ

* feat: ํ•จ๊ป˜ ๋””ํ…Œ์ผ ํ™”๋ฉด์—์„œ ์‚ญ์ œ

* feat: History ๋ฐ˜์˜, ์ œ๋ชฉ ๋ฐ˜์˜ (#212)

* feat: History ๋ฐ˜์˜, ์ œ๋ชฉ ๋ฐ˜์˜

* chore: Review ๋ฐ˜์˜

* feat: ํ”ผ๋“œ ๋ทฐ ๋„ค๋น„๊ฒŒ์ด์…˜ ๋ฐ” ์ถ”๊ฐ€ (#211)

* ๋™์‹œํŽธ์ง‘ ๊ธด๊ธ‰ ์˜ค๋ฅ˜ ์ˆ˜์ • (#214)

* fix: indexPath ์—…๋ฐ์ดํŠธ ์˜ค๋ฅ˜ ์ˆ˜์ •

* fix: ์ฒดํฌ ์˜ค๋ฅ˜ ์ˆ˜์ •

* fix: ์ด๋ชจ์ง€ ์˜ค๋ฅ˜ ์ˆ˜์ •

* ํ•จ๊ป˜ ์ฒดํฌ๋ฆฌ์ŠคํŠธ Subject ํ˜ธ์ถœ ๋ถ€ ๋ณ€๊ฒฝ ๋ฐ ์ธ์›์ˆ˜ ํ‘œ์‹œ (#235)

* fix: viewWillAppear -> ViewDidLoad ๋ณ€๊ฒฝ

* style: ์‚ฌ๋žŒ ์ธ์› ํ‘œ์‹œ ๋ณ€๊ฒฝ

* Custom Network ์ฟผ๋ฆฌ ํŒŒ๋ผ๋ฏธํ„ฐ ๊ธฐ๋Šฅ ์ถ”๊ฐ€, API ์ˆ˜์ • ๋ฐ˜์˜ (#243)

* feat: Network Layer Query ๊ธฐ๋Šฅ์ถ”๊ฐ€, ์นดํ…Œ๊ณ ๋ฆฌAPI ์ˆ˜์ •

* chore: Query ๊ธฐ์กด ์ฝ”๋“œ ์ˆ˜์ • ๋ฐ ์ฃผ์„์ œ๊ฑฐ

* style: ๋งค๊ฐœ๋ณ€์ˆ˜ ์ด๋ฆ„ ์ˆ˜์ •

* CRDT ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜ ํ•ด๊ฒฐ (#244)

* fix: ํŠธ๋ฆฌ<->๋…ธ๋“œ ์ˆœํ™˜์ฐธ์กฐ๋กœ ์ธํ•œ ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜ ํ•ด๊ฒฐ

* fix: ์ธํ„ฐ์…‰ํ„ฐ ๊ตฌ์กฐ์ฒด๋กœ ๋ณ€๊ฒฝ

* fix: CRDT ์…€ ์‚ญ์ œ ์˜ค๋ฅ˜ ์ˆ˜์ • (#248)

* ๏ฟฝToken ๊ฐฑ์‹  ๋กœ์ง ๊ตฌํ˜„ (#253)

* feat: Access Token ๊ฐฑ์‹ 

* feat: Refresh Token ๋งŒ๋ฃŒ ํ™•์ธ

* fix: ๋ถˆํ•„์š”ํ•œ import ์ œ๊ฑฐ

* feat: ํ•จ๊ป˜ ์…€ ๊ทธ๋ฆผ์ž ๋””์ž์ธ ์ˆ˜์ • (#256)

* ๋‹คํฌ๋ชจ๋“œ ์ง€์› (#257)

* feat: ๋‹คํฌ๋ชจ๋“œ ์ง€์›

* fix: ์„œ๋กœ ๋‹ค๋ฅธ session์œผ๋กœ ์ธํ•œ API ์ฝœ ์˜ค๋ฅ˜ ํ•ด๊ฒฐ

session์„ ์—ฌ๋Ÿฌ ๊ตฐ๋ฐ์—์„œ ๋„ฃ์–ด์ฃผ๋ฉด์„œ ๋‹ค๋ฅธ session์„ ๋„ฃ์–ด์ค˜์„œ ์ƒ๊ธฐ๋Š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐ

* refactor: Delete .DS_Store (#262)

---------

Co-authored-by: ๊น€์˜๊ท  <48887389+klmyoungyun@users.noreply.github.com>
Co-authored-by: ๊น€์„ฑํ›ˆ <42074365+SeongHunTed@users.noreply.github.com>
Co-authored-by: klmyoungyun <kyoungyun98@naver.com>

* Main์— Server ์ €์žฅ์†Œ ํ•ฉ์น˜๊ธฐ (#265)

* [Server] ๊ฐœ๋ฐœํ™˜๊ฒฝ ์„ธํŒ… (#4)

* build: open-list-server init

* chore: @nestjs/config class-validator class-transformer ์„ค์น˜

* chore: ๋ฃจํŠธ ๋ ˆ๋ฒจ์—์„œ ์„ค์น˜ํ•œ ํŒจํ‚ค์ง€ ์‚ญ์ œ

* chore: NestJs ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์„ธํŒ…

* chore: @nestjs/config class-validator class-transformer ์„ค์น˜

* Server/feature/#13 (#25)

* chore: postgresql, nestjs docker ์„ธํŒ…

* chore: @nestjs/typeorm, typeorm, pg ์„ค์น˜

* chore: Typeorm ์„ธํŒ… ๋ฐ TestModel ํ…Œ์ด๋ธ” ์ƒ์„ฑ

* ํ…Œ์ŠคํŠธ์šฉ ์œ ์ € API ๊ตฌํ˜„ (#30)

* chore: common resource ์ถ”๊ฐ€

* chore: users resource ์ถ”๊ฐ€

* feature: base entity ๊ตฌํ˜„

* feature: usersEntity ๊ตฌํ˜„

* feature: ๋ชจ๋“ˆ์— usersModel ์ถ”๊ฐ€

* style: entity,dto์˜ users -> user๋กœ ๋ณ€๊ฒฝ

* feature: CreateUserDto ๊ตฌํ˜„

* feature: userEntity ์ด๋ฉ”์ผ ํ•„๋“œ ์ถ”๊ฐ€

* feature: createUserDto ์ด๋ฉ”์ผ ํ•„๋“œ ์ถ”๊ฐ€

* feature: user patch->put์œผ๋กœ ๋ณ€๊ฒฝ

* feature: updateUserDto ๊ตฌํ˜„

* feature : create user ๊ตฌํ˜„

* feature: ๋ชจ๋“  ์œ ์ €์˜ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” API ๊ตฌํ˜„

* feature: ํŠน์ • ์œ ์ €์˜ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” API ๊ตฌํ˜„

* feature: user ์ •๋ณด ์ˆ˜์ • API ๊ตฌํ˜„

* feature: user ์‚ญ์ œ API ๊ตฌํ˜„

* feature: ValidationPipe ์ ์šฉ

* refactor: usersService ๋ฆฌํŒฉํ† ๋ง

* [Server] ์œ ๋‹› ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ ์„ธํŒ… (#32)

* chore: test ๊ฒฝ๋กœ ์„ค์ •

* feature: TestCommonModule ๊ตฌํ˜„

* feature: users.service.spec.ts ์˜์กด์„ฑ ์ฃผ์ž…

* feature: users.controller.spec.ts ์˜์กด์„ฑ ์ฃผ์ž…

* [Server] Users resource ์ด๋ฆ„ ๋ณ€๊ฒฝ (#34)

* style: usersController ๋„ค์ด๋ฐ์— ์ปจ๋ฒค์…˜ ๋งž๊ฒŒ ๋ณ€๊ฒฝ

* style: usersService ์ปจ๋ฒค์…˜์— ๋”ฐ๋ฅธ ๋„ค์ด๋ฐ ๋ณ€๊ฒฝ

* style: UsersModel -> UserModel ์ปจ๋ฒค์…˜์— ๋”ฐ๋ฅธ ๋„ค์ด๋ฐ ๋ณ€๊ฒฝ

* feature: usersService ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ (#39)

* [Server] Folder entity ์ƒ์„ฑ ๋ฐ crud ๊ตฌํ˜„ (#42)

* feat: folders crud ๊ตฌํ˜„

* chore: TestModel ์‚ญ์ œ ๋ฐ ๊ด€๋ จ๋œ ์ข…์†์„ฑ ์ œ๊ฑฐ

* feat: folders.controller.spec.ts ์‚ญ์ œ, folders.service.spec.ts ๊ตฌํ˜„

* feature: dockerํŒŒ์ผ ์ˆ˜์ • (#57)

* feat: private checklist entity ์ƒ์„ฑ ๋ฐ crud ๊ตฌํ˜„ (#61)

* chore: ๊ฐœ๋ฐœ์šฉ postgres ํฌํŠธ๋ณ€๊ฒฝ 5432->5433, .env๋„ port 5433์œผ๋กœ ๋ณ€๊ฒฝํ•„์š”

* feat: checklists res ์ƒ์„ฑ

* feat: checklist, private-checklist, shared-checklisst ์—”ํ‹ฐํ‹ฐ ์ƒ์„ฑ, user๋ชจ๋ธ๊ณผ folder๋ชจ๋ธ๊ณผ์˜ ์˜์กด๊ด€๊ณ„ ์ฃผ์ž…

* feat: author->editor๋กœ ์ˆ˜์ •, ๊ณต์œ ์ฒดํฌ๋ฆฌ์ŠคํŠธ์™€ ์‚ฌ์šฉ์ž์˜ relation์„ many to many๋กœ ์—…๋ฐ์ดํŠธ

* feat: ๊ฐœ์ธ, ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ์— ๋Œ€ํ•ด ์ƒ์„ฑ๊ณผ ์—…๋ฐ์ดํŠธ ์‹œ dto ์ƒ์„ฑ

* fix: class ์ด๋ฆ„ ์˜คํƒ€ ์ˆ˜์ •

* refactor: rest api ๋ฐฉ์‹์— ๋”ฐ๋ผ ํ•จ์ˆ˜๋ช… ๋ณ€๊ฒฝ

* feat: CheckListModel์—์„œ ์ง„ํ–‰๋ฅ  ์ปฌ๋Ÿผ ์‚ญ์ œ

* feat: folder์™€ user๊ฐ„์˜ manyToOne relation์ ์šฉ

* feat: private-checklist crud ์ž‘์„ฑ

* feat: folder service ์ปค๋ฒ„๋ฆฌ์ง€ 100 ๋‹ฌ์„ฑ

* test: private-checklist test code ์ž‘์„ฑ, ์ปค๋ฒ„๋ฆฌ์ง€ 92ํผ์„ผํŠธ

* feat: checklist ํด๋” ๋ถ„๋ฆฌ & dto ๋นˆ๋ฌธ์ž์—ด ๊ฒ€์ฆ ์ถ”๊ฐ€ (#66)

* refactor: checklists๋ฅผ private, sharedํด๋”๋กœ ๋ถ„๋ฆฌ.

* refactor: private-checklists๋ฅผ folders ํ•˜์œ„๋กœ ์ด๋™

* fix: ๋นˆ๋ฌธ์ž์—ด ๊ฒ€์ฆ ์ถ”๊ฐ€

* [Server] Winston์œผ๋กœ ๋กœ๊ทธ ๊ด€๋ฆฌ (#70)

* chore: nest-winston winston winston-daily-rotate-file ์„ค์น˜

* feat: winston logger ์„ค์ • ํŒŒ์ผ ๊ตฌํ˜„

* feat: winston logger middleware ๊ตฌํ˜„

* feat: ์š”์ฒญ logger middleware ๊ตฌํ˜„

* feat: ๋กœ๊ทธ์— ์š”์ฒญ ์ฒ˜๋ฆฌ ์‹œ๊ฐ„ ์ถ”๊ฐ€๋˜๋„๋ก ๊ฐœ์„ 

* chore: PR ํ…œํ”Œ๋ฆฟ ์ˆ˜์ •

* chore: PR ํ…œํ”Œ๋ฆฟ ์ˆ˜์ •

* feat: jwt access, refresh token ๊ธฐ๋ฐ˜ ์ธ๊ฐ€ ๊ตฌํ˜„

* chore: auth resource ์ถ”๊ฐ€

* chore: jwt ๋ชจ๋“ˆ ์ถ”๊ฐ€

* feature: signToken ๊ตฌํ˜„

* feature: ํ† ํฐ ๊ฒ€์ฆ, ํ† ํฐ ์žฌ๋ฐœ๊ธ‰ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* feature: ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* feature: ๋กœ๊ทธ์ธ ๊ด€๋ จ ์„œ๋น„์Šค ๊ตฌํ˜„

* feature: login ์ปจํŠธ๋กค๋Ÿฌ ๊ตฌํ˜„

* style: loginDto -> loginUserDto๋กœ ๋ณ€๊ฒฝ

* feature: access ํ† ํฐ ์žฌ๋ฐœ๊ธ‰ ์ปจํŠธ๋กค๋Ÿฌ ๊ตฌํ˜„

* refactor: accessํ† ํฐ ์žฌ๋ฐœ๊ธ‰ ํ˜•์‹ ๋ณ€๊ฒฝ

* feature: ์œ ์ € register ๊ธฐ๋Šฅ ๊ตฌํ˜„

* feature: auth.service.ts ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ

* fix: ์ด๋ฉ”์ผ ์ค‘๋ณต์‹œ ์—๋Ÿฌ ๋ฉ”์‹œ์ง€ ์ˆ˜์ •

---------

Co-authored-by: Minseong Park <52368015+pminsung12@users.noreply.github.com>

* [Server] shared-checklist ์†Œ์ผ“ ๊ตฌํ˜„ (#78)

* [Server] apple oauth api ๊ตฌํ˜„ (#86)

* chore: @nestjs/axios ์„ค์น˜

* chore: axios ์„ค์น˜

* chore: axios ์„ค์น˜

* feat: dto์ˆ˜์ •, userId ์ปฌ๋Ÿผ์ถ”๊ฐ€, providerId ์ˆ˜์ •, fullName ์ปฌ๋Ÿผ ์ถ”๊ฐ€

* feat: entity์— ๋”ฐ๋ผ dto ํ•ญ๋ชฉ ์ˆ˜์ •

* feat: apple oauth ๋กœ๊ทธ์ธ ์„œ๋น„์Šค ํ•จ์ˆ˜ ์ถ”๊ฐ€

client secret ๋งŒ๋“ค๊ณ , axios post๋กœ user ์ •๋ณด ๊ฐ€์ง€๊ณ ์˜ด.

* feat: apple oauth ๋กœ๊ทธ์ธ ์—”๋“œํฌ์ธํŠธ ์ถ”๊ฐ€

* feat: apple ์œ ์ €์—๋Œ€ํ•ด create, update ํ•จ์ˆ˜ ๊ตฌํ˜„

* feat: publicKey ๋ฐœ๊ธ‰๋ฐ›๋Š” ๋กœ์ง์ถ”๊ฐ€

* [Server] access ํ† ํฐ ์žฌ๋ฐœ๊ธ‰์‹œ ์œ ์ € ์ •๋ณด ์—†๋Š” ๋ฒ„๊ทธ ์ˆ˜์ • (#83)

* [Server] privateChecklist์˜ ๋‚ด์šฉ ์ €์žฅ api ๊ตฌํ˜„ (#88)

* [Server] apple oauth ๋กœ๊ทธ์ธ ๋กœ์ง ์ˆ˜์ • (#118)

* feat: env ์‚ฌ์šฉ๋ฐฉ์‹ ๋ณ€๊ฒฝ + idToken ๊ฒ€์ฆ๋กœ์ง ์ถ”๊ฐ€

* chore: jwk๋ฅผ pem์œผ๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ ์œ„ํ•œ jose ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ค์น˜

* chore: jose ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ œ๊ฑฐ @panva/jose ์„ค์น˜

* feat: request body๋กœ ๋“ค์–ด์˜ค๋Š” auth-user.dto.ts ์ˆ˜์ •

* feat: ์• ํ”Œ ์œ ์ € ๋“ฑ๋ก ๋กœ์ง ์ˆ˜์ •

* docs: jsdoc return type ์ˆ˜์ •

* feat: apple login ๋กœ์ง ์ˆ˜์ •(appleToken, clientSecret ๋กœ์ง ์‚ญ์ œ)

* feat: refreshAccessToken ํ•จ์ˆ˜์—์„œ refreshToken๋„ ํ•จ๊ป˜ ๋ฐ˜ํ™˜ํ•ด์ฃผ๋„๋ก ๋กœ์ง ์ˆ˜์ •

* [Server] Clova Studio api  ๊ตฌํ˜„ (#126)

* feat:  checklist-ai ๋ฆฌ์†Œ์Šค ์ƒ์„ฑ

* feat: create-checklist-items.dto.ts ์š”์ฒญ dto ์ƒ์„ฑ

* feat: ๋ฌธ์ž์—ด ๋ฐ ๊ฐ์ข… ์˜ต์…˜ ์ƒ์ˆ˜ํ™”

* feat: user-role const ํŒŒ์ผ ์‚ญ์ œ => ํ•จ์ˆ˜ํ™”

* feat: /checklist-ai POST ์š”์ฒญ api ์ƒ์„ฑ

๋Œ€,์ค‘,์†Œ ์นดํ…Œ๊ณ ๋ฆฌ๋ฅผ body๋กœ ๋ฐ›์•„์˜ค๋ฉด clova studio์—์„œ ์ฒดํฌ๋ฆฌ์ŠคํŠธ ํ•ญ๋ชฉ 10๊ฐœ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

* feat: AccessTokenGuard ๊ตฌํ˜„ ๋ฐ ์ ์šฉ (#129)

* feat: access token guard ๊ตฌํ˜„

* feat: access token guard ์ „์—ญ ์ ์šฉ

* style: access-token.guard.ts ์ฃผ์„ ์ถ”๊ฐ€

* feat: userId decorator ๊ตฌํ˜„

* feat: folders controller์— userId ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* feat: ํด๋” ์„œ๋น„์Šค์— user ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* feat: ๊ฐœ์ธ ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์ปจํŠธ๋กค๋Ÿฌ์— ์œ ์ € ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* feat: private-checklists service์— user ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* fix: ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ˆ˜์ •

* Server/feature/#128 (#139)

* feat: json ๊ตฌ์กฐ๋กœ ์นดํ…Œ๊ณ ๋ฆฌ ๋ฐ์ดํ„ฐ ์ •์˜

* feat: categories ์˜์กด์„ฑ ์ฃผ์ž…

* feat: endpoint๋งŒ๋“ค๊ณ , ์‹ค์ œ ์กด์žฌํ•˜๋Š” id์ธ์ง€ ๊ฒ€์ฆํ•˜๋Š” dto ์ƒ์„ฑ

* fix: ์˜คํƒ€์ˆ˜์ • forder->folder

* feat: param์— dto ์ ์šฉํ•˜์ง€ ๋ชปํ•ด ์‚ญ์ œ

* feat: ์นดํ…Œ๊ณ ๋ฆฌ json ๋ฐ์ดํ„ฐ ๋ณ€์ˆ˜๋ช… ๋ณ€๊ฒฝ, ๋Œ€๋ฌธ์ž๋กœ

* feat: ๋Œ€,์ค‘,์†Œ ์นดํ…Œ๊ณ ๋ฆฌ ๋ฐ˜ํ™˜ api ๊ตฌํ˜„

* test: categories.service.spec.ts ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ

* test: categories.service.spec.ts ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ˆ˜์ • ์ปค๋ฒ„๋ฆฌ์ง€ 100

* feat: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ API ๋ฐ ์†Œ์ผ“ ์ž‘์—… ๊ตฌํ˜„ (#140)

* feat: shared checklist item entity ๊ตฌํ˜„

* style: SharedChecklistItemModel ์˜คํƒ€ ์ˆ˜์ •

* feat: shared checklist id uuid๋กœ ๋ณ€๊ฒฝ

* feat: create shared checklist ๋””ํ‹ฐ์˜ค ์ˆ˜์ •

* feat: shared-checklists ์ƒ์„ฑ ๊ตฌํ˜„

* refactor: shared-checklists ์ €์žฅํ•˜๋Š” ํ•จ์ˆ˜ ๋ถ„๋ฆฌ

* feat: shared-checklists 1๊ฐœ, ์ „๋ถ€ ๊ฐ€์ ธ์˜ค๋Š” ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: ์œ ์ € ์ดˆ๋Œ€ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์‚ญ์ œ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* style: shared-checklists service ์ฃผ์„ ์ถ”๊ฐ€

* feature: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์†Œ์ผ“์— ๋ฐ์ดํ„ฐ ๋ˆ„์  ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: shared-checklists ์†Œ์ผ“ ํ†ต์‹  ์‹œ ๋ฐ์ดํ„ฐ ๋ฐ๋ฒ ์— ์ €์žฅ ๊ตฌํ˜„

* feat: ์†Œ์ผ“ ์—ฐ๊ฒฐ์‹œ ๋ฐฉ์˜ ๋ฐ์ดํ„ฐ ํžˆ์Šคํ† ๋ฆฌ๋ฅผ ์ „์†กํ•˜๋Š” ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* style: ์†Œ์ผ“ ์ฃผ์„ ์ถ”๊ฐ€

* ๐Ÿ”feat: ๊ฐœ๋ฐœ์šฉ ์ž„์‹œ๋กœ ์•ก์„ธ์Šค,๋ฆฌํ”„๋ ˆ์‹œ ํ† ํฐ๋“ค ๋งŒ๋ฃŒ๊ธฐํ•œ ์ผ์ฃผ์ผ๋กœ ์„ค์ • (#142)

* feat: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์•„์ดํ…œ ๊ถŒํ•œ ๋ฌธ์ œ ๋ฐ uuid ๋ฌธ์ œ ํ•ด๊ฒฐ (#146)

* fix: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์•„์ดํ…œ ๊ถŒํ•œ ์—†์œผ๋ฉด ์ ‘๊ทผ ๋ชปํ•˜๊ฒŒ ์ˆ˜์ •

* fix: ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์ถ”๊ฐ€์‹œ ์‚ฌ์šฉ์ž๊ฐ€ ์žˆ๋Š”์ง€ ๊ฒ€์‚ฌ

* fix: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์ƒ์„ฑ์‹œ uuid๊ฐ€ ์•„๋‹ˆ๋ฉด ์„œ๋ฒ„๊ฐ€ ์ฃฝ๋Š” ํ˜„์ƒ ์ˆ˜์ •

* style: ๋ถˆํ•„์š”ํ•œ ์ฝ”๋“œ ์ œ๊ฑฐ

* feat: ์†Œ์ผ“ ๋‹ค์ค‘ ์„œ๋ฒ„ ์ง€์›  (#159)

* chore: docker-compose.yaml์— ๋ ˆ๋””์Šค ์ถ”๊ฐ€

* chore: redis ๋ชจ๋“ˆ ์ถ”๊ฐ€

* feature: nest ๋‹ค์ค‘ ํฌํŠธ ์„œ๋ฒ„ ๊ตฌ์„ฑ

* feature: redis.module.ts ๊ตฌํ˜„ ๋ฐ ์ ์šฉ

* feature: ์†Œ์ผ“์— ๋ ˆ๋””์Šค ์‚ฝ์ž…

* feature: ์†Œ์ผ“ pub/sub ๊ตฌํ˜„

* feat: ์†Œ์ผ“ ๋ ˆ๋””์Šค์— ์ด ์ ‘์†์ž์ˆ˜ ์ฆ๊ฐ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: ์†Œ์ผ“ ํžˆ์Šคํ† ๋ฆฌ ๊ธฐ๋Šฅ ๋ ˆ๋””์Šค ์ ์šฉ

* refactor: shared-checklists.gateway.ts ๋ฆฌํŒฉํ† ๋ง

* feat: ์†Œ์ผ“ editing ์ด๋ฒคํŠธ ์ถ”๊ฐ€ (#164)

* fix: ๋ ˆ๋””์Šค ์—ฐ๊ฒฐ ์ˆ˜์ • (#168)

* [Server] object ํ˜•ํƒœ๊ฐ€ ๋“ค์–ด์˜ค๋ฉด redis์— ์ €์žฅ ์•ˆ๋˜๋Š” ๋ฌธ์ œ ์ˆ˜์ • (#171)

* ๐Ÿ›fix: ์›น์†Œ์ผ“ data๋ฅผ json์œผ๋กœ ๋ณ€๊ฒฝ ํ›„ emit

* ๐Ÿ›fix: history []์ œ๊ฑฐ

* ๐Ÿ›fix: data[0] -> data

* feat: ์›น์†Œ์ผ“ ํžˆ์Šคํ† ๋ฆฌ ๋ฒ„๊ทธ ์ˆ˜์ • ๋ฐ ์ฝ˜์†” ๋กœ๊ทธ ์ถ”๊ฐ€ (#175)

* fix: docker-compose ๋ ˆ๋””์Šค ์„ค์ • ์˜ค๋ฅ˜ ํ•ด๊ฒฐ

* feat: ์†Œ์ผ“ console.log ์ถ”๊ฐ€

* fix: ์†Œ์ผ“ ํžˆ์Šคํ† ๋ฆฌ ์ €์žฅ์‹œ ํ˜•์‹ ์˜ค๋ฅ˜ ์ˆ˜์ •

* [Server] ๋กœ๊ฑฐ ๊ธฐ๋Šฅ ํ™•๋Œ€ (#176)

* feat: no auth ๋ฒ„๊ทธ -> password ์ฃผ์„ ํ•ด์ œ

* feat: ๋กœ๊ทธ์— ํ•œ๊ตญ ์‹œ๊ฐ„๋Œ€ ์ถ”๊ฐ€

* feat: ๋กœ๊ทธํŒŒ์ผ์ด dist ๋‚ด๋ถ€์— ์กด์žฌํ•ด ํ•œ ๋‹จ๊ณ„ ์œ„๋กœ ์˜ฎ๊ฒจ์คŒ.

* feat: ์‘๋‹ต๋กœ๊ทธ๋Š” interceptor์—์„œ ์ฒ˜๋ฆฌํ•˜๋„๋ก ๋กœ์ง ์ˆ˜์ •

* feat: ๋กœ๊ทธ ์ธํ„ฐ์…‰ํ„ฐ app.module.ts ํ”„๋กœ๋ฐ”์ด๋”์— ์ถ”๊ฐ€

* ๐Ÿ›fix: redis module password ๋ถ€๋ถ„ ์ฃผ์„์ฒ˜๋ฆฌ (#180)

* [Server] ํ”ผ๋“œํ™”๋ฉด api ๊ตฌํ˜„ (#196)

* chore: import ๋ฌธ ์ตœ์ ํ™”

* feat: ํ”ผ๋“œ resource ์ƒ์„ฑ

* feat: checklist entity์— ์นดํ…Œ๊ณ ๋ฆฌ ์ปฌ๋Ÿผ ์ถ”๊ฐ€

* feat: feedmodel ์ •์˜

private checklist model์—์„œ likeCount์™€ downloadCount ์ปฌ๋Ÿผ ์ถ”๊ฐ€

* chore: ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” dto ํŒŒ์ผ ์‚ญ์ œ

* chore: ์นดํ…Œ๊ณ ๋ฆฌ ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€

* chore: ์•ˆ์“ฐ๋Š” ํ…Œ์ŠคํŠธ ํŒŒ์ผ ์‚ญ์ œ

* feat: ํ”ผ๋“œ ํ™”๋ฉด api ๊ตฌํ˜„

* feat: feeds.service.spec.ts ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ

* feat: api ์—๋Ÿฌ ํ•ธ๋“ค๋ง ๋กœ์ง ์ถ”๊ฐ€

* test: feeds.service.spec.ts ์˜ˆ์™ธ ์ผ€์ด์Šค์— ๋Œ€ํ•œ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ถ”๊ฐ€

* feat: ์—๋Ÿฌ๋ฉ”์‹œ์ง€ ์ˆ˜์ •

* feat: ๊ด€๋ฆฌ ํŽ˜์ด์ง€์™€ api ๊ตฌํ˜„ (#197)

* feat: admin resource ๊ตฌํ˜„

* feat: ๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€ ์ถ”๊ฐ€

* feat: cors ์„ค์ • ์ถ”๊ฐ€

* feat: ์ž„์‹œ๋กœ ๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€ ๊ถŒํ•œ ์ œ๊ฑฐ

* feat: admin sse api ๊ตฌํ˜„

* refactor: redis sub ์„œ๋น„์Šค ๊ตฌํ˜„

* feat: ์–ด๋“œ๋ฏผ ํŽ˜์ด์ง€ api ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: redis pub ์„œ๋น„์Šค ์ถ”๊ฐ€

* refactor: admin controller์— redis service๋กœ ๊ต์ฒด

* feat: log interceptor์— redis pub ์ถ”๊ฐ€

* refactor: channels const๋กœ ๋ถ„๋ฆฌ

* style: ๋ถˆํ•„์š”ํ•œ ์ฃผ์„ ์ œ๊ฑฐ

* feat: ws ๋กœ๊ทธ redis pub ์ถ”๊ฐ€

* feat: admin page ๋ฐ•์Šค ๋ˆ„๋ฅด๋ฉด ํŽผ์น˜๊ธฐ/์ ‘๊ธฐ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: admin ํŽ˜์ด์ง€ ์ƒ‰๊น” ๋ณ€๊ฒฝ

* feat: ๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€ ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* [Server] ํด๋ผ์ด์–ธํŠธ์™€ api ์—ฐ๋™ ์ž‘์—… (login, socket history)  (#209)

* feat: socket ๋นˆ ํžˆ์Šคํ† ๋ฆฌ๋ฉด [] ๋ณด๋‚ด๊ธฐ

* feat: ๋กœ๊ทธ์ธ์‹œ ์œ ์ € ๋‹‰๋„ค์ž„๋„ ๊ฐ™์ด ๋ณด๋‚ด์ฃผ๊ธฐ

* [Server] ai์™€ ๊ด€๋ จํ•œ db ๊ตฌ์กฐ ๊ฐœ์„  (#220)

* refactor: ๊ฒฝ๋กœ ์ด๋ฆ„ ์ˆ˜์ • entity->entities

* feat: category ์—”ํ‹ฐํ‹ฐ ์ƒ์„ฑ

* feat: reason ๋ชจ๋ธ ์ƒ์„ฑ ๋ฐ ๊ฐ ํ…Œ์ด๋ธ” relation ์„ค์ •

* feat: ๊ฐ ํ…Œ์ด๋ธ” relation ์ˆ˜์ • ๋ฐ ์˜์กด์„ฑ ์ฃผ์ž…

* feat: relation ๋ฐฉ์‹ ๋ณ€๊ฒฝ์œผ๋กœ ์ธํ•œfolders.service.ts ๋ฉ”์„œ๋“œ ์ˆ˜์ •, ์˜์กด์„ฑ ์ฃผ์ž…

* feat: admin ํŽ˜์ด์ง€ ํ•ญ๋ชฉ ์ž๋™ ์ถ”๊ฐ€ , ์‹œ์Šคํ…œ ์ƒํƒœ ๊ทธ๋ž˜ํ”„ ์ถ”๊ฐ€ (#223)

* feat: serverStatus ํ™•์ธ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: serverStatus ํ™•์ธ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: ๋ชจ๋“  ๊ตฌ๋…์„ ๋ฐ›์•„์˜ค๋Š” ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* chore: ๋ถˆํ•„์š”ํ•œ ์ƒ์ˆ˜ ์ œ๊ฑฐ

* feat: admin page ์„œ๋ฒ„ ์ƒํƒœ ํ™•์ธ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* [Server] ์นดํ…Œ๊ณ ๋ฆฌ๋ณ„ ์•„์ดํ…œ ๊ฐœ์ˆ˜ ํ™•์ธ ๋ฐ ๊ฐœ์ˆ˜๋กœ item ์ƒ์„ฑ ๋กœ์ง (#228)

* feat: ์นดํ…Œ๊ณ ๋ฆฌ๋ณ„ ์•„์ดํ…œ ๊ฐœ์ˆ˜ ๋ฐ˜ํ™˜ํ•ด์ฃผ๋Š” api ์ƒ์„ฑ

* feat: ์นดํ…Œ๊ณ ๋ฆฌ๋ณ„ ์•„์ดํ…œ ๊ฐœ์ˆ˜ itemCount๋กœ pub๋„ ํ•˜๊ณ  ์‘๋‹ต๋„ ๋ฐ˜ํ™˜ํ•˜๋Š” ์„œ๋น„์Šค ํ•จ์ˆ˜ ๊ตฌํ˜„

* feat: generate-item api์— ๋Œ€ํ•œ controller ํ•จ์ˆ˜ ๊ตฌํ˜„

* feat: generate-item api์— ๋Œ€ํ•œ service ํ•จ์ˆ˜ ๊ตฌํ˜„

* [Server] ์นดํ…Œ๊ณ ๋ฆฌ api db ๋ฐฉ์‹์œผ๋กœ ์—…๋ฐ์ดํŠธ, ์ธ๊ณต์ง€๋Šฅ ์‘๋‹ต api db ์บ์‹ฑ ๊ตฌ์กฐ๋กœ ๊ฐœ์„  (#240)

* feat: category service ํ•จ์ˆ˜ ์ˆ˜์ •

* feat: category service ํ•จ์ˆ˜ ์š”์ฒญ ํ˜•ํƒœ ๋ณ€๊ฒฝ

* feat: ai ์ฒดํฌ๋ฆฌ์ŠคํŠธ ํ•ญ๋ชฉ ์‘๋‹ต api db ์บ์‹ฑ ๊ตฌ์กฐ๋กœ ๋ณ€๊ฒฝ

* refactor: jwt toekn ๋งŒ๋ฃŒ ์‹œ๊ฐ„ ํ™˜๊ฒฝ๋ณ€์ˆ˜๋กœ ๋ณ€๊ฒฝ (#250)

* feat: ์–ด๋“œ๋ฏผ ํŽ˜์ด์ง€ ai๊ด€๋ จ ๋ทฐ ์ถ”๊ฐ€ ๋ฐ ๊ด€๋ จ api ์ถ”๊ฐ€ (#260)

* feat: adminํŽ˜์ด์ง€ cpu ์‚ฌ์šฉ๋Ÿ‰ ํ†ตํ•ฉํ•ด์„œ ๋ณด์—ฌ์ฃผ๊ธฐ

* refactor: serverStatus ๋„คํŠธ์›Œํฌ ๊ด€๋ จ ์ œ๊ฑฐ

* fix: ์ฒดํฌ๋ฆฌ์ŠคํŠธ ai ์ƒ์„ฑ ๊ด€๋ฆฌ์ž๋งŒ ๊ฐ€๋Šฅํ•˜๋„๋ก ์ˆ˜์ •

* feat: admin ํŽ˜์ด์ง€ ai ์—ฐ๋™

---------

Co-authored-by: Minseong Park <52368015+pminsung12@users.noreply.github.com>

* Main์— ai ์ €์žฅ์†Œ ํ•ฉ์น˜๊ธฐ (#268)

* [Server] ai generate-server ์ƒ์„ฑ (#190)

* feat: gitignore ํŒŒ์ผ ์ถ”๊ฐ€

first commit

* feat: yarn init

* feat: app.js ๊ธฐ๋ณธ ์„œ๋ฒ„ ์ƒ์„ฑ

* chore: openai ํŒจํ‚ค์ง€ ์„ค์น˜

* chore: prettier, pg ์„ค์น˜

* feat:  generateGptData ํ•จ์ˆ˜ ๊ตฌํ˜„

* feat: postgresql์— ํ•ญ๋ชฉ๋“ค ์ €์žฅ ๋กœ์ง ์ถ”๊ฐ€

* feat: gpt-4-1106-preview ๋ชจ๋ธ๋กœ ๋ณ€๊ฒฝ, ํŒŒ์‹ฑ ๋กœ์ง ์ถ”๊ฐ€

* feat: gpt์—์„œ item ๋ถˆ๋Ÿฌ์™€์„œ db์— ์ €์žฅํ•˜๋Š” ๋กœ์ง ๊ตฌํ˜„

* chore: redis ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ถ”๊ฐ€

* feat: redis publisher ์„ค์ •

* feat: ๋Œ€๋Ÿ‰ ๋ฐ์ดํ„ฐ ์ƒ์„ฑ์„ ์œ„ํ•œ ์นดํ…Œ๊ณ ๋ฆฌ ๋ฐ์ดํ„ฐ

* feat: ๋žœ๋ค์„ฑ์„ ๋†’์ผ ์ˆ˜ ์žˆ๋Š” temperature ์˜ต์…˜ ์„ค์ •

* feat: ๋Œ€๋Ÿ‰ ๋ฐ์ดํ„ฐ ์ƒ์„ฑ ์˜ต์…˜ ์ฃผ์„์ฒ˜๋ฆฌ

* feat: temperature ์˜ต์…˜ ์ฃผ์„์ฒ˜๋ฆฌ, ํ•ญ๋ชฉ๊ฐœ์ˆ˜ 10๊ฐœ๋กœ ์ œํ•œ

* feat: pr ํ…œํ”Œ๋ฆฟ ์ˆ˜์ •

* feat: gpt ๋ชจ๋ธ gpt-4-1106-preview ๋กœ ๋ณ€๊ฒฝ (#217)

* [Server] ์นดํ…Œ๊ณ ๋ฆฌ ๋ฐ์ดํ„ฐ ๋ฐฐ์—ด ์ž…๋ ฅ ์ฒ˜๋ฆฌ, promise pool ๋ฐฉ์‹ ๋„์ž…, env ๋ฐฉ์‹์œผ๋กœ ๋ณ€๊ฒฝ (#221)

* feat: subscribeํ•  ๋•Œ ์นดํ…Œ๊ณ ๋ฆฌ ๋ฐฐ์—ด์˜ ์›์†Œ ๋‹น ์ƒ์„ฑ๊ณผ ์ €์žฅ์„ for๋ฌธ์œผ๋กœ ๊ตฌํ˜„

* feat: ์นดํ…Œ๊ณ ๋ฆฌ ๋ฐ์ดํ„ฐ์˜ ๋ฐฐ์—ด์„ ๋„ฃ์—ˆ์„ ๋•Œ ์ˆœ์ฐจ์ ์œผ๋กœ ๋กœ์ง์„ ์ˆ˜ํ–‰ํ•˜๋„๋ก ๊ฐœ์„ 

* chore: @supercharge/promise-pool ์„ค์น˜

* chore: sub ๋ชจ๋“ˆ env ๋ฐฉ์‹์œผ๋กœ ๋ณ€๊ฒฝ

* feat: ๋ณ€๊ฒฝ๋œ db ์Šคํ‚ค๋งˆ ๊ตฌ์กฐ์— ๋”ฐ๋ผ sql๋ฌธ ์ˆ˜์ • ๋ฐ ์—๋Ÿฌ์— ๋Œ€ํ•œ retry ๊ตฌ์กฐ ๊ตฌํ˜„

* feat: ์ฑ„๋„๋ช… category-> ai_generate๋กœ ๋ณ€๊ฒฝ

* feat: log ์ถœ๋ ฅ์„ ์œ„ํ•œ ๊ณผ์ •์—์„œ์˜ publish ์ด๋ฒคํŠธ ์ถ”๊ฐ€

* feat: ai evaluate server ์ƒ์„ฑ (#239)

* chore: gitignore ์„ธํŒ…

* feat: evaluate api ๊ตฌํ˜„

* feat: ai ๋‹ต๋ณ€์ด ํ˜•์‹๊ณผ ๋‹ค๋ฅผ ๊ฒฝ์šฐ ์ตœ๋Œ€ 3๋ฒˆ๊นŒ์ง€ ์žฌ์‹œ๋„ ๋กœ์ง ๊ตฌํ˜„

* chore: typeorm, posgres ์„ค์น˜

* feat: postgres ๋””๋น„ ์—ฐ๊ฒฐ

* feat: array to object ํ•จ์ˆ˜ ์ถ”๊ฐ€

* chore: redis ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ถ”๊ฐ€

* feat: ๋ ˆ๋””์Šค pub/sub ๊ตฌํ˜„

* feat: pubํ•˜๋ฉด ์ธ๊ณต์ง€๋Šฅ ํ‰๊ฐ€ ์‹คํ–‰ ๊ตฌํ˜„

* feat: redis pub ํด๋ž˜์Šคํ™”

* feat: ๋””๋น„ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: redis ์—ฐ๊ฒฐ

* feat: ์ฟผ๋ฆฌ ๋ฐ ๊ฒฐ๊ณผ๋ฌผ ํŒŒ์‹ฑ ํ•จ์ˆ˜ ์ถ”๊ฐ€

* feature: api,main ์—ฐ๊ฒฐ

* feat: ํ‰๊ฐ€ ํ›„ ๊ฒฐ๊ณผ๋ฅผ DB์— ์ €์žฅํ•˜๋Š” ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: ai ์ž๋™ํ™” api ๊ตฌํ˜„

* feat: ํ‰๊ฐ€ api redis sub ์—ฐ๊ฒฐ

* refactor : ๋ถˆํ•„์š”ํ•œ ํŒŒ์ผ/์ฝ”๋“œ ์ œ๊ฑฐ

* style: ์ฃผ์„ ์ถ”๊ฐ€

* refactor: postgres ์ฟผ๋ฆฌ ๋ณ€์ˆ˜ํ™”

* feat: ์ตœ์ข… ์ ์ˆ˜ ๋งค๊ธฐ๋Š” ๊ธฐ๋Šฅ ์ถ”๊ฐ€

---------

Co-authored-by: Minseong Park <52368015+pminsung12@users.noreply.github.com>
Co-authored-by: Minseong Park <pminsung12@gmail.com>

* Update README.md (#275)

---------

Co-authored-by: yangdongsuk <51476641+yangdongsuk@users.noreply.github.com>
Co-authored-by: ๊น€์˜๊ท  <48887389+klmyoungyun@users.noreply.github.com>
Co-authored-by: wi-seong-cheol <53855302+wi-seong-cheol@users.noreply.github.com>
Co-authored-by: ๊น€์„ฑํ›ˆ <42074365+SeongHunTed@users.noreply.github.com>
Co-authored-by: klmyoungyun <kyoungyun98@naver.com>
yangdongsuk added a commit that referenced this pull request Mar 10, 2024
* [Server] ๊ฐœ๋ฐœํ™˜๊ฒฝ ์„ธํŒ… (#4)

* build: open-list-server init

* chore: @nestjs/config class-validator class-transformer ์„ค์น˜

* chore: ๋ฃจํŠธ ๋ ˆ๋ฒจ์—์„œ ์„ค์น˜ํ•œ ํŒจํ‚ค์ง€ ์‚ญ์ œ

* chore: NestJs ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์„ธํŒ…

* chore: @nestjs/config class-validator class-transformer ์„ค์น˜

* Server/feature/#13 (#25)

* chore: postgresql, nestjs docker ์„ธํŒ…

* chore: @nestjs/typeorm, typeorm, pg ์„ค์น˜

* chore: Typeorm ์„ธํŒ… ๋ฐ TestModel ํ…Œ์ด๋ธ” ์ƒ์„ฑ

* ํ…Œ์ŠคํŠธ์šฉ ์œ ์ € API ๊ตฌํ˜„ (#30)

* chore: common resource ์ถ”๊ฐ€

* chore: users resource ์ถ”๊ฐ€

* feature: base entity ๊ตฌํ˜„

* feature: usersEntity ๊ตฌํ˜„

* feature: ๋ชจ๋“ˆ์— usersModel ์ถ”๊ฐ€

* style: entity,dto์˜ users -> user๋กœ ๋ณ€๊ฒฝ

* feature: CreateUserDto ๊ตฌํ˜„

* feature: userEntity ์ด๋ฉ”์ผ ํ•„๋“œ ์ถ”๊ฐ€

* feature: createUserDto ์ด๋ฉ”์ผ ํ•„๋“œ ์ถ”๊ฐ€

* feature: user patch->put์œผ๋กœ ๋ณ€๊ฒฝ

* feature: updateUserDto ๊ตฌํ˜„

* feature : create user ๊ตฌํ˜„

* feature: ๋ชจ๋“  ์œ ์ €์˜ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” API ๊ตฌํ˜„

* feature: ํŠน์ • ์œ ์ €์˜ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” API ๊ตฌํ˜„

* feature: user ์ •๋ณด ์ˆ˜์ • API ๊ตฌํ˜„

* feature: user ์‚ญ์ œ API ๊ตฌํ˜„

* feature: ValidationPipe ์ ์šฉ

* refactor: usersService ๋ฆฌํŒฉํ† ๋ง

* [Server] ์œ ๋‹› ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ ์„ธํŒ… (#32)

* chore: test ๊ฒฝ๋กœ ์„ค์ •

* feature: TestCommonModule ๊ตฌํ˜„

* feature: users.service.spec.ts ์˜์กด์„ฑ ์ฃผ์ž…

* feature: users.controller.spec.ts ์˜์กด์„ฑ ์ฃผ์ž…

* [Server] Users resource ์ด๋ฆ„ ๋ณ€๊ฒฝ (#34)

* style: usersController ๋„ค์ด๋ฐ์— ์ปจ๋ฒค์…˜ ๋งž๊ฒŒ ๋ณ€๊ฒฝ

* style: usersService ์ปจ๋ฒค์…˜์— ๋”ฐ๋ฅธ ๋„ค์ด๋ฐ ๋ณ€๊ฒฝ

* style: UsersModel -> UserModel ์ปจ๋ฒค์…˜์— ๋”ฐ๋ฅธ ๋„ค์ด๋ฐ ๋ณ€๊ฒฝ

* feature: usersService ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ (#39)

* [Server] Folder entity ์ƒ์„ฑ ๋ฐ crud ๊ตฌํ˜„ (#42)

* feat: folders crud ๊ตฌํ˜„

* chore: TestModel ์‚ญ์ œ ๋ฐ ๊ด€๋ จ๋œ ์ข…์†์„ฑ ์ œ๊ฑฐ

* feat: folders.controller.spec.ts ์‚ญ์ œ, folders.service.spec.ts ๊ตฌํ˜„

* feature: dockerํŒŒ์ผ ์ˆ˜์ • (#57)

* feat: private checklist entity ์ƒ์„ฑ ๋ฐ crud ๊ตฌํ˜„ (#61)

* chore: ๊ฐœ๋ฐœ์šฉ postgres ํฌํŠธ๋ณ€๊ฒฝ 5432->5433, .env๋„ port 5433์œผ๋กœ ๋ณ€๊ฒฝํ•„์š”

* feat: checklists res ์ƒ์„ฑ

* feat: checklist, private-checklist, shared-checklisst ์—”ํ‹ฐํ‹ฐ ์ƒ์„ฑ, user๋ชจ๋ธ๊ณผ folder๋ชจ๋ธ๊ณผ์˜ ์˜์กด๊ด€๊ณ„ ์ฃผ์ž…

* feat: author->editor๋กœ ์ˆ˜์ •, ๊ณต์œ ์ฒดํฌ๋ฆฌ์ŠคํŠธ์™€ ์‚ฌ์šฉ์ž์˜ relation์„ many to many๋กœ ์—…๋ฐ์ดํŠธ

* feat: ๊ฐœ์ธ, ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ์— ๋Œ€ํ•ด ์ƒ์„ฑ๊ณผ ์—…๋ฐ์ดํŠธ ์‹œ dto ์ƒ์„ฑ

* fix: class ์ด๋ฆ„ ์˜คํƒ€ ์ˆ˜์ •

* refactor: rest api ๋ฐฉ์‹์— ๋”ฐ๋ผ ํ•จ์ˆ˜๋ช… ๋ณ€๊ฒฝ

* feat: CheckListModel์—์„œ ์ง„ํ–‰๋ฅ  ์ปฌ๋Ÿผ ์‚ญ์ œ

* feat: folder์™€ user๊ฐ„์˜ manyToOne relation์ ์šฉ

* feat: private-checklist crud ์ž‘์„ฑ

* feat: folder service ์ปค๋ฒ„๋ฆฌ์ง€ 100 ๋‹ฌ์„ฑ

* test: private-checklist test code ์ž‘์„ฑ, ์ปค๋ฒ„๋ฆฌ์ง€ 92ํผ์„ผํŠธ

* feat: checklist ํด๋” ๋ถ„๋ฆฌ & dto ๋นˆ๋ฌธ์ž์—ด ๊ฒ€์ฆ ์ถ”๊ฐ€ (#66)

* refactor: checklists๋ฅผ private, sharedํด๋”๋กœ ๋ถ„๋ฆฌ.

* refactor: private-checklists๋ฅผ folders ํ•˜์œ„๋กœ ์ด๋™

* fix: ๋นˆ๋ฌธ์ž์—ด ๊ฒ€์ฆ ์ถ”๊ฐ€

* [Server] Winston์œผ๋กœ ๋กœ๊ทธ ๊ด€๋ฆฌ (#70)

* chore: nest-winston winston winston-daily-rotate-file ์„ค์น˜

* feat: winston logger ์„ค์ • ํŒŒ์ผ ๊ตฌํ˜„

* feat: winston logger middleware ๊ตฌํ˜„

* feat: ์š”์ฒญ logger middleware ๊ตฌํ˜„

* feat: ๋กœ๊ทธ์— ์š”์ฒญ ์ฒ˜๋ฆฌ ์‹œ๊ฐ„ ์ถ”๊ฐ€๋˜๋„๋ก ๊ฐœ์„ 

* chore: PR ํ…œํ”Œ๋ฆฟ ์ˆ˜์ •

* chore: PR ํ…œํ”Œ๋ฆฟ ์ˆ˜์ •

* feat: jwt access, refresh token ๊ธฐ๋ฐ˜ ์ธ๊ฐ€ ๊ตฌํ˜„

* chore: auth resource ์ถ”๊ฐ€

* chore: jwt ๋ชจ๋“ˆ ์ถ”๊ฐ€

* feature: signToken ๊ตฌํ˜„

* feature: ํ† ํฐ ๊ฒ€์ฆ, ํ† ํฐ ์žฌ๋ฐœ๊ธ‰ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* feature: ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* feature: ๋กœ๊ทธ์ธ ๊ด€๋ จ ์„œ๋น„์Šค ๊ตฌํ˜„

* feature: login ์ปจํŠธ๋กค๋Ÿฌ ๊ตฌํ˜„

* style: loginDto -> loginUserDto๋กœ ๋ณ€๊ฒฝ

* feature: access ํ† ํฐ ์žฌ๋ฐœ๊ธ‰ ์ปจํŠธ๋กค๋Ÿฌ ๊ตฌํ˜„

* refactor: accessํ† ํฐ ์žฌ๋ฐœ๊ธ‰ ํ˜•์‹ ๋ณ€๊ฒฝ

* feature: ์œ ์ € register ๊ธฐ๋Šฅ ๊ตฌํ˜„

* feature: auth.service.ts ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ

* fix: ์ด๋ฉ”์ผ ์ค‘๋ณต์‹œ ์—๋Ÿฌ ๋ฉ”์‹œ์ง€ ์ˆ˜์ •

---------

Co-authored-by: Minseong Park <52368015+pminsung12@users.noreply.github.com>

* [Server] shared-checklist ์†Œ์ผ“ ๊ตฌํ˜„ (#78)

* [Server] apple oauth api ๊ตฌํ˜„ (#86)

* chore: @nestjs/axios ์„ค์น˜

* chore: axios ์„ค์น˜

* chore: axios ์„ค์น˜

* feat: dto์ˆ˜์ •, userId ์ปฌ๋Ÿผ์ถ”๊ฐ€, providerId ์ˆ˜์ •, fullName ์ปฌ๋Ÿผ ์ถ”๊ฐ€

* feat: entity์— ๋”ฐ๋ผ dto ํ•ญ๋ชฉ ์ˆ˜์ •

* feat: apple oauth ๋กœ๊ทธ์ธ ์„œ๋น„์Šค ํ•จ์ˆ˜ ์ถ”๊ฐ€

client secret ๋งŒ๋“ค๊ณ , axios post๋กœ user ์ •๋ณด ๊ฐ€์ง€๊ณ ์˜ด.

* feat: apple oauth ๋กœ๊ทธ์ธ ์—”๋“œํฌ์ธํŠธ ์ถ”๊ฐ€

* feat: apple ์œ ์ €์—๋Œ€ํ•ด create, update ํ•จ์ˆ˜ ๊ตฌํ˜„

* feat: publicKey ๋ฐœ๊ธ‰๋ฐ›๋Š” ๋กœ์ง์ถ”๊ฐ€

* [Server] access ํ† ํฐ ์žฌ๋ฐœ๊ธ‰์‹œ ์œ ์ € ์ •๋ณด ์—†๋Š” ๋ฒ„๊ทธ ์ˆ˜์ • (#83)

* [Server] privateChecklist์˜ ๋‚ด์šฉ ์ €์žฅ api ๊ตฌํ˜„ (#88)

* [Server] apple oauth ๋กœ๊ทธ์ธ ๋กœ์ง ์ˆ˜์ • (#118)

* feat: env ์‚ฌ์šฉ๋ฐฉ์‹ ๋ณ€๊ฒฝ + idToken ๊ฒ€์ฆ๋กœ์ง ์ถ”๊ฐ€

* chore: jwk๋ฅผ pem์œผ๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ ์œ„ํ•œ jose ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ค์น˜

* chore: jose ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ œ๊ฑฐ @panva/jose ์„ค์น˜

* feat: request body๋กœ ๋“ค์–ด์˜ค๋Š” auth-user.dto.ts ์ˆ˜์ •

* feat: ์• ํ”Œ ์œ ์ € ๋“ฑ๋ก ๋กœ์ง ์ˆ˜์ •

* docs: jsdoc return type ์ˆ˜์ •

* feat: apple login ๋กœ์ง ์ˆ˜์ •(appleToken, clientSecret ๋กœ์ง ์‚ญ์ œ)

* feat: refreshAccessToken ํ•จ์ˆ˜์—์„œ refreshToken๋„ ํ•จ๊ป˜ ๋ฐ˜ํ™˜ํ•ด์ฃผ๋„๋ก ๋กœ์ง ์ˆ˜์ •

* [Server] Clova Studio api  ๊ตฌํ˜„ (#126)

* feat:  checklist-ai ๋ฆฌ์†Œ์Šค ์ƒ์„ฑ

* feat: create-checklist-items.dto.ts ์š”์ฒญ dto ์ƒ์„ฑ

* feat: ๋ฌธ์ž์—ด ๋ฐ ๊ฐ์ข… ์˜ต์…˜ ์ƒ์ˆ˜ํ™”

* feat: user-role const ํŒŒ์ผ ์‚ญ์ œ => ํ•จ์ˆ˜ํ™”

* feat: /checklist-ai POST ์š”์ฒญ api ์ƒ์„ฑ

๋Œ€,์ค‘,์†Œ ์นดํ…Œ๊ณ ๋ฆฌ๋ฅผ body๋กœ ๋ฐ›์•„์˜ค๋ฉด clova studio์—์„œ ์ฒดํฌ๋ฆฌ์ŠคํŠธ ํ•ญ๋ชฉ 10๊ฐœ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

* feat: AccessTokenGuard ๊ตฌํ˜„ ๋ฐ ์ ์šฉ (#129)

* feat: access token guard ๊ตฌํ˜„

* feat: access token guard ์ „์—ญ ์ ์šฉ

* style: access-token.guard.ts ์ฃผ์„ ์ถ”๊ฐ€

* feat: userId decorator ๊ตฌํ˜„

* feat: folders controller์— userId ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* feat: ํด๋” ์„œ๋น„์Šค์— user ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* feat: ๊ฐœ์ธ ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์ปจํŠธ๋กค๋Ÿฌ์— ์œ ์ € ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* feat: private-checklists service์— user ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* fix: ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ˆ˜์ •

* Server/feature/#128 (#139)

* feat: json ๊ตฌ์กฐ๋กœ ์นดํ…Œ๊ณ ๋ฆฌ ๋ฐ์ดํ„ฐ ์ •์˜

* feat: categories ์˜์กด์„ฑ ์ฃผ์ž…

* feat: endpoint๋งŒ๋“ค๊ณ , ์‹ค์ œ ์กด์žฌํ•˜๋Š” id์ธ์ง€ ๊ฒ€์ฆํ•˜๋Š” dto ์ƒ์„ฑ

* fix: ์˜คํƒ€์ˆ˜์ • forder->folder

* feat: param์— dto ์ ์šฉํ•˜์ง€ ๋ชปํ•ด ์‚ญ์ œ

* feat: ์นดํ…Œ๊ณ ๋ฆฌ json ๋ฐ์ดํ„ฐ ๋ณ€์ˆ˜๋ช… ๋ณ€๊ฒฝ, ๋Œ€๋ฌธ์ž๋กœ

* feat: ๋Œ€,์ค‘,์†Œ ์นดํ…Œ๊ณ ๋ฆฌ ๋ฐ˜ํ™˜ api ๊ตฌํ˜„

* test: categories.service.spec.ts ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ

* test: categories.service.spec.ts ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ˆ˜์ • ์ปค๋ฒ„๋ฆฌ์ง€ 100

* feat: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ API ๋ฐ ์†Œ์ผ“ ์ž‘์—… ๊ตฌํ˜„ (#140)

* feat: shared checklist item entity ๊ตฌํ˜„

* style: SharedChecklistItemModel ์˜คํƒ€ ์ˆ˜์ •

* feat: shared checklist id uuid๋กœ ๋ณ€๊ฒฝ

* feat: create shared checklist ๋””ํ‹ฐ์˜ค ์ˆ˜์ •

* feat: shared-checklists ์ƒ์„ฑ ๊ตฌํ˜„

* refactor: shared-checklists ์ €์žฅํ•˜๋Š” ํ•จ์ˆ˜ ๋ถ„๋ฆฌ

* feat: shared-checklists 1๊ฐœ, ์ „๋ถ€ ๊ฐ€์ ธ์˜ค๋Š” ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: ์œ ์ € ์ดˆ๋Œ€ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์‚ญ์ œ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* style: shared-checklists service ์ฃผ์„ ์ถ”๊ฐ€

* feature: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์†Œ์ผ“์— ๋ฐ์ดํ„ฐ ๋ˆ„์  ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: shared-checklists ์†Œ์ผ“ ํ†ต์‹  ์‹œ ๋ฐ์ดํ„ฐ ๋ฐ๋ฒ ์— ์ €์žฅ ๊ตฌํ˜„

* feat: ์†Œ์ผ“ ์—ฐ๊ฒฐ์‹œ ๋ฐฉ์˜ ๋ฐ์ดํ„ฐ ํžˆ์Šคํ† ๋ฆฌ๋ฅผ ์ „์†กํ•˜๋Š” ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* style: ์†Œ์ผ“ ์ฃผ์„ ์ถ”๊ฐ€

* ๐Ÿ”feat: ๊ฐœ๋ฐœ์šฉ ์ž„์‹œ๋กœ ์•ก์„ธ์Šค,๋ฆฌํ”„๋ ˆ์‹œ ํ† ํฐ๋“ค ๋งŒ๋ฃŒ๊ธฐํ•œ ์ผ์ฃผ์ผ๋กœ ์„ค์ • (#142)

* feat: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์•„์ดํ…œ ๊ถŒํ•œ ๋ฌธ์ œ ๋ฐ uuid ๋ฌธ์ œ ํ•ด๊ฒฐ (#146)

* fix: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์•„์ดํ…œ ๊ถŒํ•œ ์—†์œผ๋ฉด ์ ‘๊ทผ ๋ชปํ•˜๊ฒŒ ์ˆ˜์ •

* fix: ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์ถ”๊ฐ€์‹œ ์‚ฌ์šฉ์ž๊ฐ€ ์žˆ๋Š”์ง€ ๊ฒ€์‚ฌ

* fix: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์ƒ์„ฑ์‹œ uuid๊ฐ€ ์•„๋‹ˆ๋ฉด ์„œ๋ฒ„๊ฐ€ ์ฃฝ๋Š” ํ˜„์ƒ ์ˆ˜์ •

* style: ๋ถˆํ•„์š”ํ•œ ์ฝ”๋“œ ์ œ๊ฑฐ

* feat: ์†Œ์ผ“ ๋‹ค์ค‘ ์„œ๋ฒ„ ์ง€์›  (#159)

* chore: docker-compose.yaml์— ๋ ˆ๋””์Šค ์ถ”๊ฐ€

* chore: redis ๋ชจ๋“ˆ ์ถ”๊ฐ€

* feature: nest ๋‹ค์ค‘ ํฌํŠธ ์„œ๋ฒ„ ๊ตฌ์„ฑ

* feature: redis.module.ts ๊ตฌํ˜„ ๋ฐ ์ ์šฉ

* feature: ์†Œ์ผ“์— ๋ ˆ๋””์Šค ์‚ฝ์ž…

* feature: ์†Œ์ผ“ pub/sub ๊ตฌํ˜„

* feat: ์†Œ์ผ“ ๋ ˆ๋””์Šค์— ์ด ์ ‘์†์ž์ˆ˜ ์ฆ๊ฐ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: ์†Œ์ผ“ ํžˆ์Šคํ† ๋ฆฌ ๊ธฐ๋Šฅ ๋ ˆ๋””์Šค ์ ์šฉ

* refactor: shared-checklists.gateway.ts ๋ฆฌํŒฉํ† ๋ง

* feat: ์†Œ์ผ“ editing ์ด๋ฒคํŠธ ์ถ”๊ฐ€ (#164)

* fix: ๋ ˆ๋””์Šค ์—ฐ๊ฒฐ ์ˆ˜์ • (#168)

* [Server] object ํ˜•ํƒœ๊ฐ€ ๋“ค์–ด์˜ค๋ฉด redis์— ์ €์žฅ ์•ˆ๋˜๋Š” ๋ฌธ์ œ ์ˆ˜์ • (#171)

* ๐Ÿ›fix: ์›น์†Œ์ผ“ data๋ฅผ json์œผ๋กœ ๋ณ€๊ฒฝ ํ›„ emit

* ๐Ÿ›fix: history []์ œ๊ฑฐ

* ๐Ÿ›fix: data[0] -> data

* feat: ์›น์†Œ์ผ“ ํžˆ์Šคํ† ๋ฆฌ ๋ฒ„๊ทธ ์ˆ˜์ • ๋ฐ ์ฝ˜์†” ๋กœ๊ทธ ์ถ”๊ฐ€ (#175)

* fix: docker-compose ๋ ˆ๋””์Šค ์„ค์ • ์˜ค๋ฅ˜ ํ•ด๊ฒฐ

* feat: ์†Œ์ผ“ console.log ์ถ”๊ฐ€

* fix: ์†Œ์ผ“ ํžˆ์Šคํ† ๋ฆฌ ์ €์žฅ์‹œ ํ˜•์‹ ์˜ค๋ฅ˜ ์ˆ˜์ •

* [Server] ๋กœ๊ฑฐ ๊ธฐ๋Šฅ ํ™•๋Œ€ (#176)

* feat: no auth ๋ฒ„๊ทธ -> password ์ฃผ์„ ํ•ด์ œ

* feat: ๋กœ๊ทธ์— ํ•œ๊ตญ ์‹œ๊ฐ„๋Œ€ ์ถ”๊ฐ€

* feat: ๋กœ๊ทธํŒŒ์ผ์ด dist ๋‚ด๋ถ€์— ์กด์žฌํ•ด ํ•œ ๋‹จ๊ณ„ ์œ„๋กœ ์˜ฎ๊ฒจ์คŒ.

* feat: ์‘๋‹ต๋กœ๊ทธ๋Š” interceptor์—์„œ ์ฒ˜๋ฆฌํ•˜๋„๋ก ๋กœ์ง ์ˆ˜์ •

* feat: ๋กœ๊ทธ ์ธํ„ฐ์…‰ํ„ฐ app.module.ts ํ”„๋กœ๋ฐ”์ด๋”์— ์ถ”๊ฐ€

* ๐Ÿ›fix: redis module password ๋ถ€๋ถ„ ์ฃผ์„์ฒ˜๋ฆฌ (#180)

* [Server] ํ”ผ๋“œํ™”๋ฉด api ๊ตฌํ˜„ (#196)

* chore: import ๋ฌธ ์ตœ์ ํ™”

* feat: ํ”ผ๋“œ resource ์ƒ์„ฑ

* feat: checklist entity์— ์นดํ…Œ๊ณ ๋ฆฌ ์ปฌ๋Ÿผ ์ถ”๊ฐ€

* feat: feedmodel ์ •์˜

private checklist model์—์„œ likeCount์™€ downloadCount ์ปฌ๋Ÿผ ์ถ”๊ฐ€

* chore: ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” dto ํŒŒ์ผ ์‚ญ์ œ

* chore: ์นดํ…Œ๊ณ ๋ฆฌ ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€

* chore: ์•ˆ์“ฐ๋Š” ํ…Œ์ŠคํŠธ ํŒŒ์ผ ์‚ญ์ œ

* feat: ํ”ผ๋“œ ํ™”๋ฉด api ๊ตฌํ˜„

* feat: feeds.service.spec.ts ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ

* feat: api ์—๋Ÿฌ ํ•ธ๋“ค๋ง ๋กœ์ง ์ถ”๊ฐ€

* test: feeds.service.spec.ts ์˜ˆ์™ธ ์ผ€์ด์Šค์— ๋Œ€ํ•œ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ถ”๊ฐ€

* feat: ์—๋Ÿฌ๋ฉ”์‹œ์ง€ ์ˆ˜์ •

* feat: ๊ด€๋ฆฌ ํŽ˜์ด์ง€์™€ api ๊ตฌํ˜„ (#197)

* feat: admin resource ๊ตฌํ˜„

* feat: ๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€ ์ถ”๊ฐ€

* feat: cors ์„ค์ • ์ถ”๊ฐ€

* feat: ์ž„์‹œ๋กœ ๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€ ๊ถŒํ•œ ์ œ๊ฑฐ

* feat: admin sse api ๊ตฌํ˜„

* refactor: redis sub ์„œ๋น„์Šค ๊ตฌํ˜„

* feat: ์–ด๋“œ๋ฏผ ํŽ˜์ด์ง€ api ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: redis pub ์„œ๋น„์Šค ์ถ”๊ฐ€

* refactor: admin controller์— redis service๋กœ ๊ต์ฒด

* feat: log interceptor์— redis pub ์ถ”๊ฐ€

* refactor: channels const๋กœ ๋ถ„๋ฆฌ

* style: ๋ถˆํ•„์š”ํ•œ ์ฃผ์„ ์ œ๊ฑฐ

* feat: ws ๋กœ๊ทธ redis pub ์ถ”๊ฐ€

* feat: admin page ๋ฐ•์Šค ๋ˆ„๋ฅด๋ฉด ํŽผ์น˜๊ธฐ/์ ‘๊ธฐ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: admin ํŽ˜์ด์ง€ ์ƒ‰๊น” ๋ณ€๊ฒฝ

* feat: ๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€ ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* [Server] ํด๋ผ์ด์–ธํŠธ์™€ api ์—ฐ๋™ ์ž‘์—… (login, socket history)  (#209)

* feat: socket ๋นˆ ํžˆ์Šคํ† ๋ฆฌ๋ฉด [] ๋ณด๋‚ด๊ธฐ

* feat: ๋กœ๊ทธ์ธ์‹œ ์œ ์ € ๋‹‰๋„ค์ž„๋„ ๊ฐ™์ด ๋ณด๋‚ด์ฃผ๊ธฐ

* [Server] ai์™€ ๊ด€๋ จํ•œ db ๊ตฌ์กฐ ๊ฐœ์„  (#220)

* refactor: ๊ฒฝ๋กœ ์ด๋ฆ„ ์ˆ˜์ • entity->entities

* feat: category ์—”ํ‹ฐํ‹ฐ ์ƒ์„ฑ

* feat: reason ๋ชจ๋ธ ์ƒ์„ฑ ๋ฐ ๊ฐ ํ…Œ์ด๋ธ” relation ์„ค์ •

* feat: ๊ฐ ํ…Œ์ด๋ธ” relation ์ˆ˜์ • ๋ฐ ์˜์กด์„ฑ ์ฃผ์ž…

* feat: relation ๋ฐฉ์‹ ๋ณ€๊ฒฝ์œผ๋กœ ์ธํ•œfolders.service.ts ๋ฉ”์„œ๋“œ ์ˆ˜์ •, ์˜์กด์„ฑ ์ฃผ์ž…

* feat: admin ํŽ˜์ด์ง€ ํ•ญ๋ชฉ ์ž๋™ ์ถ”๊ฐ€ , ์‹œ์Šคํ…œ ์ƒํƒœ ๊ทธ๋ž˜ํ”„ ์ถ”๊ฐ€ (#223)

* feat: serverStatus ํ™•์ธ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: serverStatus ํ™•์ธ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: ๋ชจ๋“  ๊ตฌ๋…์„ ๋ฐ›์•„์˜ค๋Š” ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* chore: ๋ถˆํ•„์š”ํ•œ ์ƒ์ˆ˜ ์ œ๊ฑฐ

* feat: admin page ์„œ๋ฒ„ ์ƒํƒœ ํ™•์ธ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* [Server] ์นดํ…Œ๊ณ ๋ฆฌ๋ณ„ ์•„์ดํ…œ ๊ฐœ์ˆ˜ ํ™•์ธ ๋ฐ ๊ฐœ์ˆ˜๋กœ item ์ƒ์„ฑ ๋กœ์ง (#228)

* feat: ์นดํ…Œ๊ณ ๋ฆฌ๋ณ„ ์•„์ดํ…œ ๊ฐœ์ˆ˜ ๋ฐ˜ํ™˜ํ•ด์ฃผ๋Š” api ์ƒ์„ฑ

* feat: ์นดํ…Œ๊ณ ๋ฆฌ๋ณ„ ์•„์ดํ…œ ๊ฐœ์ˆ˜ itemCount๋กœ pub๋„ ํ•˜๊ณ  ์‘๋‹ต๋„ ๋ฐ˜ํ™˜ํ•˜๋Š” ์„œ๋น„์Šค ํ•จ์ˆ˜ ๊ตฌํ˜„

* feat: generate-item api์— ๋Œ€ํ•œ controller ํ•จ์ˆ˜ ๊ตฌํ˜„

* feat: generate-item api์— ๋Œ€ํ•œ service ํ•จ์ˆ˜ ๊ตฌํ˜„

* [Server] ์นดํ…Œ๊ณ ๋ฆฌ api db ๋ฐฉ์‹์œผ๋กœ ์—…๋ฐ์ดํŠธ, ์ธ๊ณต์ง€๋Šฅ ์‘๋‹ต api db ์บ์‹ฑ ๊ตฌ์กฐ๋กœ ๊ฐœ์„  (#240)

* feat: category service ํ•จ์ˆ˜ ์ˆ˜์ •

* feat: category service ํ•จ์ˆ˜ ์š”์ฒญ ํ˜•ํƒœ ๋ณ€๊ฒฝ

* feat: ai ์ฒดํฌ๋ฆฌ์ŠคํŠธ ํ•ญ๋ชฉ ์‘๋‹ต api db ์บ์‹ฑ ๊ตฌ์กฐ๋กœ ๋ณ€๊ฒฝ

* refactor: jwt toekn ๋งŒ๋ฃŒ ์‹œ๊ฐ„ ํ™˜๊ฒฝ๋ณ€์ˆ˜๋กœ ๋ณ€๊ฒฝ (#250)

* feat: ์–ด๋“œ๋ฏผ ํŽ˜์ด์ง€ ai๊ด€๋ จ ๋ทฐ ์ถ”๊ฐ€ ๋ฐ ๊ด€๋ จ api ์ถ”๊ฐ€ (#260)

* feat: adminํŽ˜์ด์ง€ cpu ์‚ฌ์šฉ๋Ÿ‰ ํ†ตํ•ฉํ•ด์„œ ๋ณด์—ฌ์ฃผ๊ธฐ

* refactor: serverStatus ๋„คํŠธ์›Œํฌ ๊ด€๋ จ ์ œ๊ฑฐ

* fix: ์ฒดํฌ๋ฆฌ์ŠคํŠธ ai ์ƒ์„ฑ ๊ด€๋ฆฌ์ž๋งŒ ๊ฐ€๋Šฅํ•˜๋„๋ก ์ˆ˜์ •

* feat: admin ํŽ˜์ด์ง€ ai ์—ฐ๋™

---------

Co-authored-by: YangDongsuk <51476641+YangDongsuk@users.noreply.github.com>
pminsung12 added a commit that referenced this pull request Mar 10, 2024
* [Server] ๊ฐœ๋ฐœํ™˜๊ฒฝ ์„ธํŒ… (#4)

* build: open-list-server init

* chore: @nestjs/config class-validator class-transformer ์„ค์น˜

* chore: ๋ฃจํŠธ ๋ ˆ๋ฒจ์—์„œ ์„ค์น˜ํ•œ ํŒจํ‚ค์ง€ ์‚ญ์ œ

* chore: NestJs ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์„ธํŒ…

* chore: @nestjs/config class-validator class-transformer ์„ค์น˜

* Server/feature/#13 (#25)

* chore: postgresql, nestjs docker ์„ธํŒ…

* chore: @nestjs/typeorm, typeorm, pg ์„ค์น˜

* chore: Typeorm ์„ธํŒ… ๋ฐ TestModel ํ…Œ์ด๋ธ” ์ƒ์„ฑ

* ํ…Œ์ŠคํŠธ์šฉ ์œ ์ € API ๊ตฌํ˜„ (#30)

* chore: common resource ์ถ”๊ฐ€

* chore: users resource ์ถ”๊ฐ€

* feature: base entity ๊ตฌํ˜„

* feature: usersEntity ๊ตฌํ˜„

* feature: ๋ชจ๋“ˆ์— usersModel ์ถ”๊ฐ€

* style: entity,dto์˜ users -> user๋กœ ๋ณ€๊ฒฝ

* feature: CreateUserDto ๊ตฌํ˜„

* feature: userEntity ์ด๋ฉ”์ผ ํ•„๋“œ ์ถ”๊ฐ€

* feature: createUserDto ์ด๋ฉ”์ผ ํ•„๋“œ ์ถ”๊ฐ€

* feature: user patch->put์œผ๋กœ ๋ณ€๊ฒฝ

* feature: updateUserDto ๊ตฌํ˜„

* feature : create user ๊ตฌํ˜„

* feature: ๋ชจ๋“  ์œ ์ €์˜ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” API ๊ตฌํ˜„

* feature: ํŠน์ • ์œ ์ €์˜ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” API ๊ตฌํ˜„

* feature: user ์ •๋ณด ์ˆ˜์ • API ๊ตฌํ˜„

* feature: user ์‚ญ์ œ API ๊ตฌํ˜„

* feature: ValidationPipe ์ ์šฉ

* refactor: usersService ๋ฆฌํŒฉํ† ๋ง

* [Server] ์œ ๋‹› ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ ์„ธํŒ… (#32)

* chore: test ๊ฒฝ๋กœ ์„ค์ •

* feature: TestCommonModule ๊ตฌํ˜„

* feature: users.service.spec.ts ์˜์กด์„ฑ ์ฃผ์ž…

* feature: users.controller.spec.ts ์˜์กด์„ฑ ์ฃผ์ž…

* [Server] Users resource ์ด๋ฆ„ ๋ณ€๊ฒฝ (#34)

* style: usersController ๋„ค์ด๋ฐ์— ์ปจ๋ฒค์…˜ ๋งž๊ฒŒ ๋ณ€๊ฒฝ

* style: usersService ์ปจ๋ฒค์…˜์— ๋”ฐ๋ฅธ ๋„ค์ด๋ฐ ๋ณ€๊ฒฝ

* style: UsersModel -> UserModel ์ปจ๋ฒค์…˜์— ๋”ฐ๋ฅธ ๋„ค์ด๋ฐ ๋ณ€๊ฒฝ

* feature: usersService ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ (#39)

* [Server] Folder entity ์ƒ์„ฑ ๋ฐ crud ๊ตฌํ˜„ (#42)

* feat: folders crud ๊ตฌํ˜„

* chore: TestModel ์‚ญ์ œ ๋ฐ ๊ด€๋ จ๋œ ์ข…์†์„ฑ ์ œ๊ฑฐ

* feat: folders.controller.spec.ts ์‚ญ์ œ, folders.service.spec.ts ๊ตฌํ˜„

* feature: dockerํŒŒ์ผ ์ˆ˜์ • (#57)

* feat: private checklist entity ์ƒ์„ฑ ๋ฐ crud ๊ตฌํ˜„ (#61)

* chore: ๊ฐœ๋ฐœ์šฉ postgres ํฌํŠธ๋ณ€๊ฒฝ 5432->5433, .env๋„ port 5433์œผ๋กœ ๋ณ€๊ฒฝํ•„์š”

* feat: checklists res ์ƒ์„ฑ

* feat: checklist, private-checklist, shared-checklisst ์—”ํ‹ฐํ‹ฐ ์ƒ์„ฑ, user๋ชจ๋ธ๊ณผ folder๋ชจ๋ธ๊ณผ์˜ ์˜์กด๊ด€๊ณ„ ์ฃผ์ž…

* feat: author->editor๋กœ ์ˆ˜์ •, ๊ณต์œ ์ฒดํฌ๋ฆฌ์ŠคํŠธ์™€ ์‚ฌ์šฉ์ž์˜ relation์„ many to many๋กœ ์—…๋ฐ์ดํŠธ

* feat: ๊ฐœ์ธ, ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ์— ๋Œ€ํ•ด ์ƒ์„ฑ๊ณผ ์—…๋ฐ์ดํŠธ ์‹œ dto ์ƒ์„ฑ

* fix: class ์ด๋ฆ„ ์˜คํƒ€ ์ˆ˜์ •

* refactor: rest api ๋ฐฉ์‹์— ๋”ฐ๋ผ ํ•จ์ˆ˜๋ช… ๋ณ€๊ฒฝ

* feat: CheckListModel์—์„œ ์ง„ํ–‰๋ฅ  ์ปฌ๋Ÿผ ์‚ญ์ œ

* feat: folder์™€ user๊ฐ„์˜ manyToOne relation์ ์šฉ

* feat: private-checklist crud ์ž‘์„ฑ

* feat: folder service ์ปค๋ฒ„๋ฆฌ์ง€ 100 ๋‹ฌ์„ฑ

* test: private-checklist test code ์ž‘์„ฑ, ์ปค๋ฒ„๋ฆฌ์ง€ 92ํผ์„ผํŠธ

* feat: checklist ํด๋” ๋ถ„๋ฆฌ & dto ๋นˆ๋ฌธ์ž์—ด ๊ฒ€์ฆ ์ถ”๊ฐ€ (#66)

* refactor: checklists๋ฅผ private, sharedํด๋”๋กœ ๋ถ„๋ฆฌ.

* refactor: private-checklists๋ฅผ folders ํ•˜์œ„๋กœ ์ด๋™

* fix: ๋นˆ๋ฌธ์ž์—ด ๊ฒ€์ฆ ์ถ”๊ฐ€

* [Server] Winston์œผ๋กœ ๋กœ๊ทธ ๊ด€๋ฆฌ (#70)

* chore: nest-winston winston winston-daily-rotate-file ์„ค์น˜

* feat: winston logger ์„ค์ • ํŒŒ์ผ ๊ตฌํ˜„

* feat: winston logger middleware ๊ตฌํ˜„

* feat: ์š”์ฒญ logger middleware ๊ตฌํ˜„

* feat: ๋กœ๊ทธ์— ์š”์ฒญ ์ฒ˜๋ฆฌ ์‹œ๊ฐ„ ์ถ”๊ฐ€๋˜๋„๋ก ๊ฐœ์„ 

* chore: PR ํ…œํ”Œ๋ฆฟ ์ˆ˜์ •

* chore: PR ํ…œํ”Œ๋ฆฟ ์ˆ˜์ •

* feat: jwt access, refresh token ๊ธฐ๋ฐ˜ ์ธ๊ฐ€ ๊ตฌํ˜„

* chore: auth resource ์ถ”๊ฐ€

* chore: jwt ๋ชจ๋“ˆ ์ถ”๊ฐ€

* feature: signToken ๊ตฌํ˜„

* feature: ํ† ํฐ ๊ฒ€์ฆ, ํ† ํฐ ์žฌ๋ฐœ๊ธ‰ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* feature: ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* feature: ๋กœ๊ทธ์ธ ๊ด€๋ จ ์„œ๋น„์Šค ๊ตฌํ˜„

* feature: login ์ปจํŠธ๋กค๋Ÿฌ ๊ตฌํ˜„

* style: loginDto -> loginUserDto๋กœ ๋ณ€๊ฒฝ

* feature: access ํ† ํฐ ์žฌ๋ฐœ๊ธ‰ ์ปจํŠธ๋กค๋Ÿฌ ๊ตฌํ˜„

* refactor: accessํ† ํฐ ์žฌ๋ฐœ๊ธ‰ ํ˜•์‹ ๋ณ€๊ฒฝ

* feature: ์œ ์ € register ๊ธฐ๋Šฅ ๊ตฌํ˜„

* feature: auth.service.ts ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ

* fix: ์ด๋ฉ”์ผ ์ค‘๋ณต์‹œ ์—๋Ÿฌ ๋ฉ”์‹œ์ง€ ์ˆ˜์ •

---------

Co-authored-by: Minseong Park <52368015+pminsung12@users.noreply.github.com>

* [Server] shared-checklist ์†Œ์ผ“ ๊ตฌํ˜„ (#78)

* [Server] apple oauth api ๊ตฌํ˜„ (#86)

* chore: @nestjs/axios ์„ค์น˜

* chore: axios ์„ค์น˜

* chore: axios ์„ค์น˜

* feat: dto์ˆ˜์ •, userId ์ปฌ๋Ÿผ์ถ”๊ฐ€, providerId ์ˆ˜์ •, fullName ์ปฌ๋Ÿผ ์ถ”๊ฐ€

* feat: entity์— ๋”ฐ๋ผ dto ํ•ญ๋ชฉ ์ˆ˜์ •

* feat: apple oauth ๋กœ๊ทธ์ธ ์„œ๋น„์Šค ํ•จ์ˆ˜ ์ถ”๊ฐ€

client secret ๋งŒ๋“ค๊ณ , axios post๋กœ user ์ •๋ณด ๊ฐ€์ง€๊ณ ์˜ด.

* feat: apple oauth ๋กœ๊ทธ์ธ ์—”๋“œํฌ์ธํŠธ ์ถ”๊ฐ€

* feat: apple ์œ ์ €์—๋Œ€ํ•ด create, update ํ•จ์ˆ˜ ๊ตฌํ˜„

* feat: publicKey ๋ฐœ๊ธ‰๋ฐ›๋Š” ๋กœ์ง์ถ”๊ฐ€

* [Server] access ํ† ํฐ ์žฌ๋ฐœ๊ธ‰์‹œ ์œ ์ € ์ •๋ณด ์—†๋Š” ๋ฒ„๊ทธ ์ˆ˜์ • (#83)

* [Server] privateChecklist์˜ ๋‚ด์šฉ ์ €์žฅ api ๊ตฌํ˜„ (#88)

* [Server] apple oauth ๋กœ๊ทธ์ธ ๋กœ์ง ์ˆ˜์ • (#118)

* feat: env ์‚ฌ์šฉ๋ฐฉ์‹ ๋ณ€๊ฒฝ + idToken ๊ฒ€์ฆ๋กœ์ง ์ถ”๊ฐ€

* chore: jwk๋ฅผ pem์œผ๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ ์œ„ํ•œ jose ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ค์น˜

* chore: jose ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ œ๊ฑฐ @panva/jose ์„ค์น˜

* feat: request body๋กœ ๋“ค์–ด์˜ค๋Š” auth-user.dto.ts ์ˆ˜์ •

* feat: ์• ํ”Œ ์œ ์ € ๋“ฑ๋ก ๋กœ์ง ์ˆ˜์ •

* docs: jsdoc return type ์ˆ˜์ •

* feat: apple login ๋กœ์ง ์ˆ˜์ •(appleToken, clientSecret ๋กœ์ง ์‚ญ์ œ)

* feat: refreshAccessToken ํ•จ์ˆ˜์—์„œ refreshToken๋„ ํ•จ๊ป˜ ๋ฐ˜ํ™˜ํ•ด์ฃผ๋„๋ก ๋กœ์ง ์ˆ˜์ •

* [Server] Clova Studio api  ๊ตฌํ˜„ (#126)

* feat:  checklist-ai ๋ฆฌ์†Œ์Šค ์ƒ์„ฑ

* feat: create-checklist-items.dto.ts ์š”์ฒญ dto ์ƒ์„ฑ

* feat: ๋ฌธ์ž์—ด ๋ฐ ๊ฐ์ข… ์˜ต์…˜ ์ƒ์ˆ˜ํ™”

* feat: user-role const ํŒŒ์ผ ์‚ญ์ œ => ํ•จ์ˆ˜ํ™”

* feat: /checklist-ai POST ์š”์ฒญ api ์ƒ์„ฑ

๋Œ€,์ค‘,์†Œ ์นดํ…Œ๊ณ ๋ฆฌ๋ฅผ body๋กœ ๋ฐ›์•„์˜ค๋ฉด clova studio์—์„œ ์ฒดํฌ๋ฆฌ์ŠคํŠธ ํ•ญ๋ชฉ 10๊ฐœ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

* feat: AccessTokenGuard ๊ตฌํ˜„ ๋ฐ ์ ์šฉ (#129)

* feat: access token guard ๊ตฌํ˜„

* feat: access token guard ์ „์—ญ ์ ์šฉ

* style: access-token.guard.ts ์ฃผ์„ ์ถ”๊ฐ€

* feat: userId decorator ๊ตฌํ˜„

* feat: folders controller์— userId ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* feat: ํด๋” ์„œ๋น„์Šค์— user ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* feat: ๊ฐœ์ธ ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์ปจํŠธ๋กค๋Ÿฌ์— ์œ ์ € ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* feat: private-checklists service์— user ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* fix: ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ˆ˜์ •

* Server/feature/#128 (#139)

* feat: json ๊ตฌ์กฐ๋กœ ์นดํ…Œ๊ณ ๋ฆฌ ๋ฐ์ดํ„ฐ ์ •์˜

* feat: categories ์˜์กด์„ฑ ์ฃผ์ž…

* feat: endpoint๋งŒ๋“ค๊ณ , ์‹ค์ œ ์กด์žฌํ•˜๋Š” id์ธ์ง€ ๊ฒ€์ฆํ•˜๋Š” dto ์ƒ์„ฑ

* fix: ์˜คํƒ€์ˆ˜์ • forder->folder

* feat: param์— dto ์ ์šฉํ•˜์ง€ ๋ชปํ•ด ์‚ญ์ œ

* feat: ์นดํ…Œ๊ณ ๋ฆฌ json ๋ฐ์ดํ„ฐ ๋ณ€์ˆ˜๋ช… ๋ณ€๊ฒฝ, ๋Œ€๋ฌธ์ž๋กœ

* feat: ๋Œ€,์ค‘,์†Œ ์นดํ…Œ๊ณ ๋ฆฌ ๋ฐ˜ํ™˜ api ๊ตฌํ˜„

* test: categories.service.spec.ts ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ

* test: categories.service.spec.ts ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ˆ˜์ • ์ปค๋ฒ„๋ฆฌ์ง€ 100

* feat: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ API ๋ฐ ์†Œ์ผ“ ์ž‘์—… ๊ตฌํ˜„ (#140)

* feat: shared checklist item entity ๊ตฌํ˜„

* style: SharedChecklistItemModel ์˜คํƒ€ ์ˆ˜์ •

* feat: shared checklist id uuid๋กœ ๋ณ€๊ฒฝ

* feat: create shared checklist ๋””ํ‹ฐ์˜ค ์ˆ˜์ •

* feat: shared-checklists ์ƒ์„ฑ ๊ตฌํ˜„

* refactor: shared-checklists ์ €์žฅํ•˜๋Š” ํ•จ์ˆ˜ ๋ถ„๋ฆฌ

* feat: shared-checklists 1๊ฐœ, ์ „๋ถ€ ๊ฐ€์ ธ์˜ค๋Š” ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: ์œ ์ € ์ดˆ๋Œ€ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์‚ญ์ œ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* style: shared-checklists service ์ฃผ์„ ์ถ”๊ฐ€

* feature: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์†Œ์ผ“์— ๋ฐ์ดํ„ฐ ๋ˆ„์  ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: shared-checklists ์†Œ์ผ“ ํ†ต์‹  ์‹œ ๋ฐ์ดํ„ฐ ๋ฐ๋ฒ ์— ์ €์žฅ ๊ตฌํ˜„

* feat: ์†Œ์ผ“ ์—ฐ๊ฒฐ์‹œ ๋ฐฉ์˜ ๋ฐ์ดํ„ฐ ํžˆ์Šคํ† ๋ฆฌ๋ฅผ ์ „์†กํ•˜๋Š” ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* style: ์†Œ์ผ“ ์ฃผ์„ ์ถ”๊ฐ€

* ๐Ÿ”feat: ๊ฐœ๋ฐœ์šฉ ์ž„์‹œ๋กœ ์•ก์„ธ์Šค,๋ฆฌํ”„๋ ˆ์‹œ ํ† ํฐ๋“ค ๋งŒ๋ฃŒ๊ธฐํ•œ ์ผ์ฃผ์ผ๋กœ ์„ค์ • (#142)

* feat: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์•„์ดํ…œ ๊ถŒํ•œ ๋ฌธ์ œ ๋ฐ uuid ๋ฌธ์ œ ํ•ด๊ฒฐ (#146)

* fix: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์•„์ดํ…œ ๊ถŒํ•œ ์—†์œผ๋ฉด ์ ‘๊ทผ ๋ชปํ•˜๊ฒŒ ์ˆ˜์ •

* fix: ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์ถ”๊ฐ€์‹œ ์‚ฌ์šฉ์ž๊ฐ€ ์žˆ๋Š”์ง€ ๊ฒ€์‚ฌ

* fix: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์ƒ์„ฑ์‹œ uuid๊ฐ€ ์•„๋‹ˆ๋ฉด ์„œ๋ฒ„๊ฐ€ ์ฃฝ๋Š” ํ˜„์ƒ ์ˆ˜์ •

* style: ๋ถˆํ•„์š”ํ•œ ์ฝ”๋“œ ์ œ๊ฑฐ

* feat: ์†Œ์ผ“ ๋‹ค์ค‘ ์„œ๋ฒ„ ์ง€์›  (#159)

* chore: docker-compose.yaml์— ๋ ˆ๋””์Šค ์ถ”๊ฐ€

* chore: redis ๋ชจ๋“ˆ ์ถ”๊ฐ€

* feature: nest ๋‹ค์ค‘ ํฌํŠธ ์„œ๋ฒ„ ๊ตฌ์„ฑ

* feature: redis.module.ts ๊ตฌํ˜„ ๋ฐ ์ ์šฉ

* feature: ์†Œ์ผ“์— ๋ ˆ๋””์Šค ์‚ฝ์ž…

* feature: ์†Œ์ผ“ pub/sub ๊ตฌํ˜„

* feat: ์†Œ์ผ“ ๋ ˆ๋””์Šค์— ์ด ์ ‘์†์ž์ˆ˜ ์ฆ๊ฐ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: ์†Œ์ผ“ ํžˆ์Šคํ† ๋ฆฌ ๊ธฐ๋Šฅ ๋ ˆ๋””์Šค ์ ์šฉ

* refactor: shared-checklists.gateway.ts ๋ฆฌํŒฉํ† ๋ง

* feat: ์†Œ์ผ“ editing ์ด๋ฒคํŠธ ์ถ”๊ฐ€ (#164)

* fix: ๋ ˆ๋””์Šค ์—ฐ๊ฒฐ ์ˆ˜์ • (#168)

* [Server] object ํ˜•ํƒœ๊ฐ€ ๋“ค์–ด์˜ค๋ฉด redis์— ์ €์žฅ ์•ˆ๋˜๋Š” ๋ฌธ์ œ ์ˆ˜์ • (#171)

* ๐Ÿ›fix: ์›น์†Œ์ผ“ data๋ฅผ json์œผ๋กœ ๋ณ€๊ฒฝ ํ›„ emit

* ๐Ÿ›fix: history []์ œ๊ฑฐ

* ๐Ÿ›fix: data[0] -> data

* feat: ์›น์†Œ์ผ“ ํžˆ์Šคํ† ๋ฆฌ ๋ฒ„๊ทธ ์ˆ˜์ • ๋ฐ ์ฝ˜์†” ๋กœ๊ทธ ์ถ”๊ฐ€ (#175)

* fix: docker-compose ๋ ˆ๋””์Šค ์„ค์ • ์˜ค๋ฅ˜ ํ•ด๊ฒฐ

* feat: ์†Œ์ผ“ console.log ์ถ”๊ฐ€

* fix: ์†Œ์ผ“ ํžˆ์Šคํ† ๋ฆฌ ์ €์žฅ์‹œ ํ˜•์‹ ์˜ค๋ฅ˜ ์ˆ˜์ •

* [Server] ๋กœ๊ฑฐ ๊ธฐ๋Šฅ ํ™•๋Œ€ (#176)

* feat: no auth ๋ฒ„๊ทธ -> password ์ฃผ์„ ํ•ด์ œ

* feat: ๋กœ๊ทธ์— ํ•œ๊ตญ ์‹œ๊ฐ„๋Œ€ ์ถ”๊ฐ€

* feat: ๋กœ๊ทธํŒŒ์ผ์ด dist ๋‚ด๋ถ€์— ์กด์žฌํ•ด ํ•œ ๋‹จ๊ณ„ ์œ„๋กœ ์˜ฎ๊ฒจ์คŒ.

* feat: ์‘๋‹ต๋กœ๊ทธ๋Š” interceptor์—์„œ ์ฒ˜๋ฆฌํ•˜๋„๋ก ๋กœ์ง ์ˆ˜์ •

* feat: ๋กœ๊ทธ ์ธํ„ฐ์…‰ํ„ฐ app.module.ts ํ”„๋กœ๋ฐ”์ด๋”์— ์ถ”๊ฐ€

* ๐Ÿ›fix: redis module password ๋ถ€๋ถ„ ์ฃผ์„์ฒ˜๋ฆฌ (#180)

* [Server] ํ”ผ๋“œํ™”๋ฉด api ๊ตฌํ˜„ (#196)

* chore: import ๋ฌธ ์ตœ์ ํ™”

* feat: ํ”ผ๋“œ resource ์ƒ์„ฑ

* feat: checklist entity์— ์นดํ…Œ๊ณ ๋ฆฌ ์ปฌ๋Ÿผ ์ถ”๊ฐ€

* feat: feedmodel ์ •์˜

private checklist model์—์„œ likeCount์™€ downloadCount ์ปฌ๋Ÿผ ์ถ”๊ฐ€

* chore: ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” dto ํŒŒ์ผ ์‚ญ์ œ

* chore: ์นดํ…Œ๊ณ ๋ฆฌ ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€

* chore: ์•ˆ์“ฐ๋Š” ํ…Œ์ŠคํŠธ ํŒŒ์ผ ์‚ญ์ œ

* feat: ํ”ผ๋“œ ํ™”๋ฉด api ๊ตฌํ˜„

* feat: feeds.service.spec.ts ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ

* feat: api ์—๋Ÿฌ ํ•ธ๋“ค๋ง ๋กœ์ง ์ถ”๊ฐ€

* test: feeds.service.spec.ts ์˜ˆ์™ธ ์ผ€์ด์Šค์— ๋Œ€ํ•œ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ถ”๊ฐ€

* feat: ์—๋Ÿฌ๋ฉ”์‹œ์ง€ ์ˆ˜์ •

* feat: ๊ด€๋ฆฌ ํŽ˜์ด์ง€์™€ api ๊ตฌํ˜„ (#197)

* feat: admin resource ๊ตฌํ˜„

* feat: ๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€ ์ถ”๊ฐ€

* feat: cors ์„ค์ • ์ถ”๊ฐ€

* feat: ์ž„์‹œ๋กœ ๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€ ๊ถŒํ•œ ์ œ๊ฑฐ

* feat: admin sse api ๊ตฌํ˜„

* refactor: redis sub ์„œ๋น„์Šค ๊ตฌํ˜„

* feat: ์–ด๋“œ๋ฏผ ํŽ˜์ด์ง€ api ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: redis pub ์„œ๋น„์Šค ์ถ”๊ฐ€

* refactor: admin controller์— redis service๋กœ ๊ต์ฒด

* feat: log interceptor์— redis pub ์ถ”๊ฐ€

* refactor: channels const๋กœ ๋ถ„๋ฆฌ

* style: ๋ถˆํ•„์š”ํ•œ ์ฃผ์„ ์ œ๊ฑฐ

* feat: ws ๋กœ๊ทธ redis pub ์ถ”๊ฐ€

* feat: admin page ๋ฐ•์Šค ๋ˆ„๋ฅด๋ฉด ํŽผ์น˜๊ธฐ/์ ‘๊ธฐ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: admin ํŽ˜์ด์ง€ ์ƒ‰๊น” ๋ณ€๊ฒฝ

* feat: ๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€ ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* [Server] ํด๋ผ์ด์–ธํŠธ์™€ api ์—ฐ๋™ ์ž‘์—… (login, socket history)  (#209)

* feat: socket ๋นˆ ํžˆ์Šคํ† ๋ฆฌ๋ฉด [] ๋ณด๋‚ด๊ธฐ

* feat: ๋กœ๊ทธ์ธ์‹œ ์œ ์ € ๋‹‰๋„ค์ž„๋„ ๊ฐ™์ด ๋ณด๋‚ด์ฃผ๊ธฐ

* [Server] ai์™€ ๊ด€๋ จํ•œ db ๊ตฌ์กฐ ๊ฐœ์„  (#220)

* refactor: ๊ฒฝ๋กœ ์ด๋ฆ„ ์ˆ˜์ • entity->entities

* feat: category ์—”ํ‹ฐํ‹ฐ ์ƒ์„ฑ

* feat: reason ๋ชจ๋ธ ์ƒ์„ฑ ๋ฐ ๊ฐ ํ…Œ์ด๋ธ” relation ์„ค์ •

* feat: ๊ฐ ํ…Œ์ด๋ธ” relation ์ˆ˜์ • ๋ฐ ์˜์กด์„ฑ ์ฃผ์ž…

* feat: relation ๋ฐฉ์‹ ๋ณ€๊ฒฝ์œผ๋กœ ์ธํ•œfolders.service.ts ๋ฉ”์„œ๋“œ ์ˆ˜์ •, ์˜์กด์„ฑ ์ฃผ์ž…

* feat: admin ํŽ˜์ด์ง€ ํ•ญ๋ชฉ ์ž๋™ ์ถ”๊ฐ€ , ์‹œ์Šคํ…œ ์ƒํƒœ ๊ทธ๋ž˜ํ”„ ์ถ”๊ฐ€ (#223)

* feat: serverStatus ํ™•์ธ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: serverStatus ํ™•์ธ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: ๋ชจ๋“  ๊ตฌ๋…์„ ๋ฐ›์•„์˜ค๋Š” ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* chore: ๋ถˆํ•„์š”ํ•œ ์ƒ์ˆ˜ ์ œ๊ฑฐ

* feat: admin page ์„œ๋ฒ„ ์ƒํƒœ ํ™•์ธ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* [Server] ์นดํ…Œ๊ณ ๋ฆฌ๋ณ„ ์•„์ดํ…œ ๊ฐœ์ˆ˜ ํ™•์ธ ๋ฐ ๊ฐœ์ˆ˜๋กœ item ์ƒ์„ฑ ๋กœ์ง (#228)

* feat: ์นดํ…Œ๊ณ ๋ฆฌ๋ณ„ ์•„์ดํ…œ ๊ฐœ์ˆ˜ ๋ฐ˜ํ™˜ํ•ด์ฃผ๋Š” api ์ƒ์„ฑ

* feat: ์นดํ…Œ๊ณ ๋ฆฌ๋ณ„ ์•„์ดํ…œ ๊ฐœ์ˆ˜ itemCount๋กœ pub๋„ ํ•˜๊ณ  ์‘๋‹ต๋„ ๋ฐ˜ํ™˜ํ•˜๋Š” ์„œ๋น„์Šค ํ•จ์ˆ˜ ๊ตฌํ˜„

* feat: generate-item api์— ๋Œ€ํ•œ controller ํ•จ์ˆ˜ ๊ตฌํ˜„

* feat: generate-item api์— ๋Œ€ํ•œ service ํ•จ์ˆ˜ ๊ตฌํ˜„

* [Server] ์นดํ…Œ๊ณ ๋ฆฌ api db ๋ฐฉ์‹์œผ๋กœ ์—…๋ฐ์ดํŠธ, ์ธ๊ณต์ง€๋Šฅ ์‘๋‹ต api db ์บ์‹ฑ ๊ตฌ์กฐ๋กœ ๊ฐœ์„  (#240)

* feat: category service ํ•จ์ˆ˜ ์ˆ˜์ •

* feat: category service ํ•จ์ˆ˜ ์š”์ฒญ ํ˜•ํƒœ ๋ณ€๊ฒฝ

* feat: ai ์ฒดํฌ๋ฆฌ์ŠคํŠธ ํ•ญ๋ชฉ ์‘๋‹ต api db ์บ์‹ฑ ๊ตฌ์กฐ๋กœ ๋ณ€๊ฒฝ

* refactor: jwt toekn ๋งŒ๋ฃŒ ์‹œ๊ฐ„ ํ™˜๊ฒฝ๋ณ€์ˆ˜๋กœ ๋ณ€๊ฒฝ (#250)

* feat: ์–ด๋“œ๋ฏผ ํŽ˜์ด์ง€ ai๊ด€๋ จ ๋ทฐ ์ถ”๊ฐ€ ๋ฐ ๊ด€๋ จ api ์ถ”๊ฐ€ (#260)

* feat: adminํŽ˜์ด์ง€ cpu ์‚ฌ์šฉ๋Ÿ‰ ํ†ตํ•ฉํ•ด์„œ ๋ณด์—ฌ์ฃผ๊ธฐ

* refactor: serverStatus ๋„คํŠธ์›Œํฌ ๊ด€๋ จ ์ œ๊ฑฐ

* fix: ์ฒดํฌ๋ฆฌ์ŠคํŠธ ai ์ƒ์„ฑ ๊ด€๋ฆฌ์ž๋งŒ ๊ฐ€๋Šฅํ•˜๋„๋ก ์ˆ˜์ •

* feat: admin ํŽ˜์ด์ง€ ai ์—ฐ๋™

---------

Co-authored-by: YangDongsuk <51476641+YangDongsuk@users.noreply.github.com>
pminsung12 added a commit that referenced this pull request Mar 10, 2024
* [Server] ๊ฐœ๋ฐœํ™˜๊ฒฝ ์„ธํŒ… (#4)

* build: open-list-server init

* chore: @nestjs/config class-validator class-transformer ์„ค์น˜

* chore: ๋ฃจํŠธ ๋ ˆ๋ฒจ์—์„œ ์„ค์น˜ํ•œ ํŒจํ‚ค์ง€ ์‚ญ์ œ

* chore: NestJs ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์„ธํŒ…

* chore: @nestjs/config class-validator class-transformer ์„ค์น˜

* Server/feature/#13 (#25)

* chore: postgresql, nestjs docker ์„ธํŒ…

* chore: @nestjs/typeorm, typeorm, pg ์„ค์น˜

* chore: Typeorm ์„ธํŒ… ๋ฐ TestModel ํ…Œ์ด๋ธ” ์ƒ์„ฑ

* ํ…Œ์ŠคํŠธ์šฉ ์œ ์ € API ๊ตฌํ˜„ (#30)

* chore: common resource ์ถ”๊ฐ€

* chore: users resource ์ถ”๊ฐ€

* feature: base entity ๊ตฌํ˜„

* feature: usersEntity ๊ตฌํ˜„

* feature: ๋ชจ๋“ˆ์— usersModel ์ถ”๊ฐ€

* style: entity,dto์˜ users -> user๋กœ ๋ณ€๊ฒฝ

* feature: CreateUserDto ๊ตฌํ˜„

* feature: userEntity ์ด๋ฉ”์ผ ํ•„๋“œ ์ถ”๊ฐ€

* feature: createUserDto ์ด๋ฉ”์ผ ํ•„๋“œ ์ถ”๊ฐ€

* feature: user patch->put์œผ๋กœ ๋ณ€๊ฒฝ

* feature: updateUserDto ๊ตฌํ˜„

* feature : create user ๊ตฌํ˜„

* feature: ๋ชจ๋“  ์œ ์ €์˜ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” API ๊ตฌํ˜„

* feature: ํŠน์ • ์œ ์ €์˜ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” API ๊ตฌํ˜„

* feature: user ์ •๋ณด ์ˆ˜์ • API ๊ตฌํ˜„

* feature: user ์‚ญ์ œ API ๊ตฌํ˜„

* feature: ValidationPipe ์ ์šฉ

* refactor: usersService ๋ฆฌํŒฉํ† ๋ง

* [Server] ์œ ๋‹› ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ ์„ธํŒ… (#32)

* chore: test ๊ฒฝ๋กœ ์„ค์ •

* feature: TestCommonModule ๊ตฌํ˜„

* feature: users.service.spec.ts ์˜์กด์„ฑ ์ฃผ์ž…

* feature: users.controller.spec.ts ์˜์กด์„ฑ ์ฃผ์ž…

* [Server] Users resource ์ด๋ฆ„ ๋ณ€๊ฒฝ (#34)

* style: usersController ๋„ค์ด๋ฐ์— ์ปจ๋ฒค์…˜ ๋งž๊ฒŒ ๋ณ€๊ฒฝ

* style: usersService ์ปจ๋ฒค์…˜์— ๋”ฐ๋ฅธ ๋„ค์ด๋ฐ ๋ณ€๊ฒฝ

* style: UsersModel -> UserModel ์ปจ๋ฒค์…˜์— ๋”ฐ๋ฅธ ๋„ค์ด๋ฐ ๋ณ€๊ฒฝ

* feature: usersService ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ (#39)

* [Server] Folder entity ์ƒ์„ฑ ๋ฐ crud ๊ตฌํ˜„ (#42)

* feat: folders crud ๊ตฌํ˜„

* chore: TestModel ์‚ญ์ œ ๋ฐ ๊ด€๋ จ๋œ ์ข…์†์„ฑ ์ œ๊ฑฐ

* feat: folders.controller.spec.ts ์‚ญ์ œ, folders.service.spec.ts ๊ตฌํ˜„

* feature: dockerํŒŒ์ผ ์ˆ˜์ • (#57)

* feat: private checklist entity ์ƒ์„ฑ ๋ฐ crud ๊ตฌํ˜„ (#61)

* chore: ๊ฐœ๋ฐœ์šฉ postgres ํฌํŠธ๋ณ€๊ฒฝ 5432->5433, .env๋„ port 5433์œผ๋กœ ๋ณ€๊ฒฝํ•„์š”

* feat: checklists res ์ƒ์„ฑ

* feat: checklist, private-checklist, shared-checklisst ์—”ํ‹ฐํ‹ฐ ์ƒ์„ฑ, user๋ชจ๋ธ๊ณผ folder๋ชจ๋ธ๊ณผ์˜ ์˜์กด๊ด€๊ณ„ ์ฃผ์ž…

* feat: author->editor๋กœ ์ˆ˜์ •, ๊ณต์œ ์ฒดํฌ๋ฆฌ์ŠคํŠธ์™€ ์‚ฌ์šฉ์ž์˜ relation์„ many to many๋กœ ์—…๋ฐ์ดํŠธ

* feat: ๊ฐœ์ธ, ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ์— ๋Œ€ํ•ด ์ƒ์„ฑ๊ณผ ์—…๋ฐ์ดํŠธ ์‹œ dto ์ƒ์„ฑ

* fix: class ์ด๋ฆ„ ์˜คํƒ€ ์ˆ˜์ •

* refactor: rest api ๋ฐฉ์‹์— ๋”ฐ๋ผ ํ•จ์ˆ˜๋ช… ๋ณ€๊ฒฝ

* feat: CheckListModel์—์„œ ์ง„ํ–‰๋ฅ  ์ปฌ๋Ÿผ ์‚ญ์ œ

* feat: folder์™€ user๊ฐ„์˜ manyToOne relation์ ์šฉ

* feat: private-checklist crud ์ž‘์„ฑ

* feat: folder service ์ปค๋ฒ„๋ฆฌ์ง€ 100 ๋‹ฌ์„ฑ

* test: private-checklist test code ์ž‘์„ฑ, ์ปค๋ฒ„๋ฆฌ์ง€ 92ํผ์„ผํŠธ

* feat: checklist ํด๋” ๋ถ„๋ฆฌ & dto ๋นˆ๋ฌธ์ž์—ด ๊ฒ€์ฆ ์ถ”๊ฐ€ (#66)

* refactor: checklists๋ฅผ private, sharedํด๋”๋กœ ๋ถ„๋ฆฌ.

* refactor: private-checklists๋ฅผ folders ํ•˜์œ„๋กœ ์ด๋™

* fix: ๋นˆ๋ฌธ์ž์—ด ๊ฒ€์ฆ ์ถ”๊ฐ€

* [Server] Winston์œผ๋กœ ๋กœ๊ทธ ๊ด€๋ฆฌ (#70)

* chore: nest-winston winston winston-daily-rotate-file ์„ค์น˜

* feat: winston logger ์„ค์ • ํŒŒ์ผ ๊ตฌํ˜„

* feat: winston logger middleware ๊ตฌํ˜„

* feat: ์š”์ฒญ logger middleware ๊ตฌํ˜„

* feat: ๋กœ๊ทธ์— ์š”์ฒญ ์ฒ˜๋ฆฌ ์‹œ๊ฐ„ ์ถ”๊ฐ€๋˜๋„๋ก ๊ฐœ์„ 

* chore: PR ํ…œํ”Œ๋ฆฟ ์ˆ˜์ •

* chore: PR ํ…œํ”Œ๋ฆฟ ์ˆ˜์ •

* feat: jwt access, refresh token ๊ธฐ๋ฐ˜ ์ธ๊ฐ€ ๊ตฌํ˜„

* chore: auth resource ์ถ”๊ฐ€

* chore: jwt ๋ชจ๋“ˆ ์ถ”๊ฐ€

* feature: signToken ๊ตฌํ˜„

* feature: ํ† ํฐ ๊ฒ€์ฆ, ํ† ํฐ ์žฌ๋ฐœ๊ธ‰ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* feature: ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* feature: ๋กœ๊ทธ์ธ ๊ด€๋ จ ์„œ๋น„์Šค ๊ตฌํ˜„

* feature: login ์ปจํŠธ๋กค๋Ÿฌ ๊ตฌํ˜„

* style: loginDto -> loginUserDto๋กœ ๋ณ€๊ฒฝ

* feature: access ํ† ํฐ ์žฌ๋ฐœ๊ธ‰ ์ปจํŠธ๋กค๋Ÿฌ ๊ตฌํ˜„

* refactor: accessํ† ํฐ ์žฌ๋ฐœ๊ธ‰ ํ˜•์‹ ๋ณ€๊ฒฝ

* feature: ์œ ์ € register ๊ธฐ๋Šฅ ๊ตฌํ˜„

* feature: auth.service.ts ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ

* fix: ์ด๋ฉ”์ผ ์ค‘๋ณต์‹œ ์—๋Ÿฌ ๋ฉ”์‹œ์ง€ ์ˆ˜์ •

---------

Co-authored-by: Minseong Park <52368015+pminsung12@users.noreply.github.com>

* [Server] shared-checklist ์†Œ์ผ“ ๊ตฌํ˜„ (#78)

* [Server] apple oauth api ๊ตฌํ˜„ (#86)

* chore: @nestjs/axios ์„ค์น˜

* chore: axios ์„ค์น˜

* chore: axios ์„ค์น˜

* feat: dto์ˆ˜์ •, userId ์ปฌ๋Ÿผ์ถ”๊ฐ€, providerId ์ˆ˜์ •, fullName ์ปฌ๋Ÿผ ์ถ”๊ฐ€

* feat: entity์— ๋”ฐ๋ผ dto ํ•ญ๋ชฉ ์ˆ˜์ •

* feat: apple oauth ๋กœ๊ทธ์ธ ์„œ๋น„์Šค ํ•จ์ˆ˜ ์ถ”๊ฐ€

client secret ๋งŒ๋“ค๊ณ , axios post๋กœ user ์ •๋ณด ๊ฐ€์ง€๊ณ ์˜ด.

* feat: apple oauth ๋กœ๊ทธ์ธ ์—”๋“œํฌ์ธํŠธ ์ถ”๊ฐ€

* feat: apple ์œ ์ €์—๋Œ€ํ•ด create, update ํ•จ์ˆ˜ ๊ตฌํ˜„

* feat: publicKey ๋ฐœ๊ธ‰๋ฐ›๋Š” ๋กœ์ง์ถ”๊ฐ€

* [Server] access ํ† ํฐ ์žฌ๋ฐœ๊ธ‰์‹œ ์œ ์ € ์ •๋ณด ์—†๋Š” ๋ฒ„๊ทธ ์ˆ˜์ • (#83)

* [Server] privateChecklist์˜ ๋‚ด์šฉ ์ €์žฅ api ๊ตฌํ˜„ (#88)

* [Server] apple oauth ๋กœ๊ทธ์ธ ๋กœ์ง ์ˆ˜์ • (#118)

* feat: env ์‚ฌ์šฉ๋ฐฉ์‹ ๋ณ€๊ฒฝ + idToken ๊ฒ€์ฆ๋กœ์ง ์ถ”๊ฐ€

* chore: jwk๋ฅผ pem์œผ๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ ์œ„ํ•œ jose ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ค์น˜

* chore: jose ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ œ๊ฑฐ @panva/jose ์„ค์น˜

* feat: request body๋กœ ๋“ค์–ด์˜ค๋Š” auth-user.dto.ts ์ˆ˜์ •

* feat: ์• ํ”Œ ์œ ์ € ๋“ฑ๋ก ๋กœ์ง ์ˆ˜์ •

* docs: jsdoc return type ์ˆ˜์ •

* feat: apple login ๋กœ์ง ์ˆ˜์ •(appleToken, clientSecret ๋กœ์ง ์‚ญ์ œ)

* feat: refreshAccessToken ํ•จ์ˆ˜์—์„œ refreshToken๋„ ํ•จ๊ป˜ ๋ฐ˜ํ™˜ํ•ด์ฃผ๋„๋ก ๋กœ์ง ์ˆ˜์ •

* [Server] Clova Studio api  ๊ตฌํ˜„ (#126)

* feat:  checklist-ai ๋ฆฌ์†Œ์Šค ์ƒ์„ฑ

* feat: create-checklist-items.dto.ts ์š”์ฒญ dto ์ƒ์„ฑ

* feat: ๋ฌธ์ž์—ด ๋ฐ ๊ฐ์ข… ์˜ต์…˜ ์ƒ์ˆ˜ํ™”

* feat: user-role const ํŒŒ์ผ ์‚ญ์ œ => ํ•จ์ˆ˜ํ™”

* feat: /checklist-ai POST ์š”์ฒญ api ์ƒ์„ฑ

๋Œ€,์ค‘,์†Œ ์นดํ…Œ๊ณ ๋ฆฌ๋ฅผ body๋กœ ๋ฐ›์•„์˜ค๋ฉด clova studio์—์„œ ์ฒดํฌ๋ฆฌ์ŠคํŠธ ํ•ญ๋ชฉ 10๊ฐœ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

* feat: AccessTokenGuard ๊ตฌํ˜„ ๋ฐ ์ ์šฉ (#129)

* feat: access token guard ๊ตฌํ˜„

* feat: access token guard ์ „์—ญ ์ ์šฉ

* style: access-token.guard.ts ์ฃผ์„ ์ถ”๊ฐ€

* feat: userId decorator ๊ตฌํ˜„

* feat: folders controller์— userId ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* feat: ํด๋” ์„œ๋น„์Šค์— user ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* feat: ๊ฐœ์ธ ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์ปจํŠธ๋กค๋Ÿฌ์— ์œ ์ € ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* feat: private-checklists service์— user ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* fix: ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ˆ˜์ •

* Server/feature/#128 (#139)

* feat: json ๊ตฌ์กฐ๋กœ ์นดํ…Œ๊ณ ๋ฆฌ ๋ฐ์ดํ„ฐ ์ •์˜

* feat: categories ์˜์กด์„ฑ ์ฃผ์ž…

* feat: endpoint๋งŒ๋“ค๊ณ , ์‹ค์ œ ์กด์žฌํ•˜๋Š” id์ธ์ง€ ๊ฒ€์ฆํ•˜๋Š” dto ์ƒ์„ฑ

* fix: ์˜คํƒ€์ˆ˜์ • forder->folder

* feat: param์— dto ์ ์šฉํ•˜์ง€ ๋ชปํ•ด ์‚ญ์ œ

* feat: ์นดํ…Œ๊ณ ๋ฆฌ json ๋ฐ์ดํ„ฐ ๋ณ€์ˆ˜๋ช… ๋ณ€๊ฒฝ, ๋Œ€๋ฌธ์ž๋กœ

* feat: ๋Œ€,์ค‘,์†Œ ์นดํ…Œ๊ณ ๋ฆฌ ๋ฐ˜ํ™˜ api ๊ตฌํ˜„

* test: categories.service.spec.ts ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ

* test: categories.service.spec.ts ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ˆ˜์ • ์ปค๋ฒ„๋ฆฌ์ง€ 100

* feat: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ API ๋ฐ ์†Œ์ผ“ ์ž‘์—… ๊ตฌํ˜„ (#140)

* feat: shared checklist item entity ๊ตฌํ˜„

* style: SharedChecklistItemModel ์˜คํƒ€ ์ˆ˜์ •

* feat: shared checklist id uuid๋กœ ๋ณ€๊ฒฝ

* feat: create shared checklist ๋””ํ‹ฐ์˜ค ์ˆ˜์ •

* feat: shared-checklists ์ƒ์„ฑ ๊ตฌํ˜„

* refactor: shared-checklists ์ €์žฅํ•˜๋Š” ํ•จ์ˆ˜ ๋ถ„๋ฆฌ

* feat: shared-checklists 1๊ฐœ, ์ „๋ถ€ ๊ฐ€์ ธ์˜ค๋Š” ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: ์œ ์ € ์ดˆ๋Œ€ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์‚ญ์ œ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* style: shared-checklists service ์ฃผ์„ ์ถ”๊ฐ€

* feature: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์†Œ์ผ“์— ๋ฐ์ดํ„ฐ ๋ˆ„์  ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: shared-checklists ์†Œ์ผ“ ํ†ต์‹  ์‹œ ๋ฐ์ดํ„ฐ ๋ฐ๋ฒ ์— ์ €์žฅ ๊ตฌํ˜„

* feat: ์†Œ์ผ“ ์—ฐ๊ฒฐ์‹œ ๋ฐฉ์˜ ๋ฐ์ดํ„ฐ ํžˆ์Šคํ† ๋ฆฌ๋ฅผ ์ „์†กํ•˜๋Š” ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* style: ์†Œ์ผ“ ์ฃผ์„ ์ถ”๊ฐ€

* ๐Ÿ”feat: ๊ฐœ๋ฐœ์šฉ ์ž„์‹œ๋กœ ์•ก์„ธ์Šค,๋ฆฌํ”„๋ ˆ์‹œ ํ† ํฐ๋“ค ๋งŒ๋ฃŒ๊ธฐํ•œ ์ผ์ฃผ์ผ๋กœ ์„ค์ • (#142)

* feat: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์•„์ดํ…œ ๊ถŒํ•œ ๋ฌธ์ œ ๋ฐ uuid ๋ฌธ์ œ ํ•ด๊ฒฐ (#146)

* fix: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์•„์ดํ…œ ๊ถŒํ•œ ์—†์œผ๋ฉด ์ ‘๊ทผ ๋ชปํ•˜๊ฒŒ ์ˆ˜์ •

* fix: ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์ถ”๊ฐ€์‹œ ์‚ฌ์šฉ์ž๊ฐ€ ์žˆ๋Š”์ง€ ๊ฒ€์‚ฌ

* fix: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์ƒ์„ฑ์‹œ uuid๊ฐ€ ์•„๋‹ˆ๋ฉด ์„œ๋ฒ„๊ฐ€ ์ฃฝ๋Š” ํ˜„์ƒ ์ˆ˜์ •

* style: ๋ถˆํ•„์š”ํ•œ ์ฝ”๋“œ ์ œ๊ฑฐ

* feat: ์†Œ์ผ“ ๋‹ค์ค‘ ์„œ๋ฒ„ ์ง€์›  (#159)

* chore: docker-compose.yaml์— ๋ ˆ๋””์Šค ์ถ”๊ฐ€

* chore: redis ๋ชจ๋“ˆ ์ถ”๊ฐ€

* feature: nest ๋‹ค์ค‘ ํฌํŠธ ์„œ๋ฒ„ ๊ตฌ์„ฑ

* feature: redis.module.ts ๊ตฌํ˜„ ๋ฐ ์ ์šฉ

* feature: ์†Œ์ผ“์— ๋ ˆ๋””์Šค ์‚ฝ์ž…

* feature: ์†Œ์ผ“ pub/sub ๊ตฌํ˜„

* feat: ์†Œ์ผ“ ๋ ˆ๋””์Šค์— ์ด ์ ‘์†์ž์ˆ˜ ์ฆ๊ฐ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: ์†Œ์ผ“ ํžˆ์Šคํ† ๋ฆฌ ๊ธฐ๋Šฅ ๋ ˆ๋””์Šค ์ ์šฉ

* refactor: shared-checklists.gateway.ts ๋ฆฌํŒฉํ† ๋ง

* feat: ์†Œ์ผ“ editing ์ด๋ฒคํŠธ ์ถ”๊ฐ€ (#164)

* fix: ๋ ˆ๋””์Šค ์—ฐ๊ฒฐ ์ˆ˜์ • (#168)

* [Server] object ํ˜•ํƒœ๊ฐ€ ๋“ค์–ด์˜ค๋ฉด redis์— ์ €์žฅ ์•ˆ๋˜๋Š” ๋ฌธ์ œ ์ˆ˜์ • (#171)

* ๐Ÿ›fix: ์›น์†Œ์ผ“ data๋ฅผ json์œผ๋กœ ๋ณ€๊ฒฝ ํ›„ emit

* ๐Ÿ›fix: history []์ œ๊ฑฐ

* ๐Ÿ›fix: data[0] -> data

* feat: ์›น์†Œ์ผ“ ํžˆ์Šคํ† ๋ฆฌ ๋ฒ„๊ทธ ์ˆ˜์ • ๋ฐ ์ฝ˜์†” ๋กœ๊ทธ ์ถ”๊ฐ€ (#175)

* fix: docker-compose ๋ ˆ๋””์Šค ์„ค์ • ์˜ค๋ฅ˜ ํ•ด๊ฒฐ

* feat: ์†Œ์ผ“ console.log ์ถ”๊ฐ€

* fix: ์†Œ์ผ“ ํžˆ์Šคํ† ๋ฆฌ ์ €์žฅ์‹œ ํ˜•์‹ ์˜ค๋ฅ˜ ์ˆ˜์ •

* [Server] ๋กœ๊ฑฐ ๊ธฐ๋Šฅ ํ™•๋Œ€ (#176)

* feat: no auth ๋ฒ„๊ทธ -> password ์ฃผ์„ ํ•ด์ œ

* feat: ๋กœ๊ทธ์— ํ•œ๊ตญ ์‹œ๊ฐ„๋Œ€ ์ถ”๊ฐ€

* feat: ๋กœ๊ทธํŒŒ์ผ์ด dist ๋‚ด๋ถ€์— ์กด์žฌํ•ด ํ•œ ๋‹จ๊ณ„ ์œ„๋กœ ์˜ฎ๊ฒจ์คŒ.

* feat: ์‘๋‹ต๋กœ๊ทธ๋Š” interceptor์—์„œ ์ฒ˜๋ฆฌํ•˜๋„๋ก ๋กœ์ง ์ˆ˜์ •

* feat: ๋กœ๊ทธ ์ธํ„ฐ์…‰ํ„ฐ app.module.ts ํ”„๋กœ๋ฐ”์ด๋”์— ์ถ”๊ฐ€

* ๐Ÿ›fix: redis module password ๋ถ€๋ถ„ ์ฃผ์„์ฒ˜๋ฆฌ (#180)

* [Server] ํ”ผ๋“œํ™”๋ฉด api ๊ตฌํ˜„ (#196)

* chore: import ๋ฌธ ์ตœ์ ํ™”

* feat: ํ”ผ๋“œ resource ์ƒ์„ฑ

* feat: checklist entity์— ์นดํ…Œ๊ณ ๋ฆฌ ์ปฌ๋Ÿผ ์ถ”๊ฐ€

* feat: feedmodel ์ •์˜

private checklist model์—์„œ likeCount์™€ downloadCount ์ปฌ๋Ÿผ ์ถ”๊ฐ€

* chore: ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” dto ํŒŒ์ผ ์‚ญ์ œ

* chore: ์นดํ…Œ๊ณ ๋ฆฌ ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€

* chore: ์•ˆ์“ฐ๋Š” ํ…Œ์ŠคํŠธ ํŒŒ์ผ ์‚ญ์ œ

* feat: ํ”ผ๋“œ ํ™”๋ฉด api ๊ตฌํ˜„

* feat: feeds.service.spec.ts ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ

* feat: api ์—๋Ÿฌ ํ•ธ๋“ค๋ง ๋กœ์ง ์ถ”๊ฐ€

* test: feeds.service.spec.ts ์˜ˆ์™ธ ์ผ€์ด์Šค์— ๋Œ€ํ•œ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ถ”๊ฐ€

* feat: ์—๋Ÿฌ๋ฉ”์‹œ์ง€ ์ˆ˜์ •

* feat: ๊ด€๋ฆฌ ํŽ˜์ด์ง€์™€ api ๊ตฌํ˜„ (#197)

* feat: admin resource ๊ตฌํ˜„

* feat: ๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€ ์ถ”๊ฐ€

* feat: cors ์„ค์ • ์ถ”๊ฐ€

* feat: ์ž„์‹œ๋กœ ๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€ ๊ถŒํ•œ ์ œ๊ฑฐ

* feat: admin sse api ๊ตฌํ˜„

* refactor: redis sub ์„œ๋น„์Šค ๊ตฌํ˜„

* feat: ์–ด๋“œ๋ฏผ ํŽ˜์ด์ง€ api ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: redis pub ์„œ๋น„์Šค ์ถ”๊ฐ€

* refactor: admin controller์— redis service๋กœ ๊ต์ฒด

* feat: log interceptor์— redis pub ์ถ”๊ฐ€

* refactor: channels const๋กœ ๋ถ„๋ฆฌ

* style: ๋ถˆํ•„์š”ํ•œ ์ฃผ์„ ์ œ๊ฑฐ

* feat: ws ๋กœ๊ทธ redis pub ์ถ”๊ฐ€

* feat: admin page ๋ฐ•์Šค ๋ˆ„๋ฅด๋ฉด ํŽผ์น˜๊ธฐ/์ ‘๊ธฐ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: admin ํŽ˜์ด์ง€ ์ƒ‰๊น” ๋ณ€๊ฒฝ

* feat: ๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€ ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* [Server] ํด๋ผ์ด์–ธํŠธ์™€ api ์—ฐ๋™ ์ž‘์—… (login, socket history)  (#209)

* feat: socket ๋นˆ ํžˆ์Šคํ† ๋ฆฌ๋ฉด [] ๋ณด๋‚ด๊ธฐ

* feat: ๋กœ๊ทธ์ธ์‹œ ์œ ์ € ๋‹‰๋„ค์ž„๋„ ๊ฐ™์ด ๋ณด๋‚ด์ฃผ๊ธฐ

* [Server] ai์™€ ๊ด€๋ จํ•œ db ๊ตฌ์กฐ ๊ฐœ์„  (#220)

* refactor: ๊ฒฝ๋กœ ์ด๋ฆ„ ์ˆ˜์ • entity->entities

* feat: category ์—”ํ‹ฐํ‹ฐ ์ƒ์„ฑ

* feat: reason ๋ชจ๋ธ ์ƒ์„ฑ ๋ฐ ๊ฐ ํ…Œ์ด๋ธ” relation ์„ค์ •

* feat: ๊ฐ ํ…Œ์ด๋ธ” relation ์ˆ˜์ • ๋ฐ ์˜์กด์„ฑ ์ฃผ์ž…

* feat: relation ๋ฐฉ์‹ ๋ณ€๊ฒฝ์œผ๋กœ ์ธํ•œfolders.service.ts ๋ฉ”์„œ๋“œ ์ˆ˜์ •, ์˜์กด์„ฑ ์ฃผ์ž…

* feat: admin ํŽ˜์ด์ง€ ํ•ญ๋ชฉ ์ž๋™ ์ถ”๊ฐ€ , ์‹œ์Šคํ…œ ์ƒํƒœ ๊ทธ๋ž˜ํ”„ ์ถ”๊ฐ€ (#223)

* feat: serverStatus ํ™•์ธ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: serverStatus ํ™•์ธ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: ๋ชจ๋“  ๊ตฌ๋…์„ ๋ฐ›์•„์˜ค๋Š” ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* chore: ๋ถˆํ•„์š”ํ•œ ์ƒ์ˆ˜ ์ œ๊ฑฐ

* feat: admin page ์„œ๋ฒ„ ์ƒํƒœ ํ™•์ธ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* [Server] ์นดํ…Œ๊ณ ๋ฆฌ๋ณ„ ์•„์ดํ…œ ๊ฐœ์ˆ˜ ํ™•์ธ ๋ฐ ๊ฐœ์ˆ˜๋กœ item ์ƒ์„ฑ ๋กœ์ง (#228)

* feat: ์นดํ…Œ๊ณ ๋ฆฌ๋ณ„ ์•„์ดํ…œ ๊ฐœ์ˆ˜ ๋ฐ˜ํ™˜ํ•ด์ฃผ๋Š” api ์ƒ์„ฑ

* feat: ์นดํ…Œ๊ณ ๋ฆฌ๋ณ„ ์•„์ดํ…œ ๊ฐœ์ˆ˜ itemCount๋กœ pub๋„ ํ•˜๊ณ  ์‘๋‹ต๋„ ๋ฐ˜ํ™˜ํ•˜๋Š” ์„œ๋น„์Šค ํ•จ์ˆ˜ ๊ตฌํ˜„

* feat: generate-item api์— ๋Œ€ํ•œ controller ํ•จ์ˆ˜ ๊ตฌํ˜„

* feat: generate-item api์— ๋Œ€ํ•œ service ํ•จ์ˆ˜ ๊ตฌํ˜„

* [Server] ์นดํ…Œ๊ณ ๋ฆฌ api db ๋ฐฉ์‹์œผ๋กœ ์—…๋ฐ์ดํŠธ, ์ธ๊ณต์ง€๋Šฅ ์‘๋‹ต api db ์บ์‹ฑ ๊ตฌ์กฐ๋กœ ๊ฐœ์„  (#240)

* feat: category service ํ•จ์ˆ˜ ์ˆ˜์ •

* feat: category service ํ•จ์ˆ˜ ์š”์ฒญ ํ˜•ํƒœ ๋ณ€๊ฒฝ

* feat: ai ์ฒดํฌ๋ฆฌ์ŠคํŠธ ํ•ญ๋ชฉ ์‘๋‹ต api db ์บ์‹ฑ ๊ตฌ์กฐ๋กœ ๋ณ€๊ฒฝ

* refactor: jwt toekn ๋งŒ๋ฃŒ ์‹œ๊ฐ„ ํ™˜๊ฒฝ๋ณ€์ˆ˜๋กœ ๋ณ€๊ฒฝ (#250)

* feat: ์–ด๋“œ๋ฏผ ํŽ˜์ด์ง€ ai๊ด€๋ จ ๋ทฐ ์ถ”๊ฐ€ ๋ฐ ๊ด€๋ จ api ์ถ”๊ฐ€ (#260)

* feat: adminํŽ˜์ด์ง€ cpu ์‚ฌ์šฉ๋Ÿ‰ ํ†ตํ•ฉํ•ด์„œ ๋ณด์—ฌ์ฃผ๊ธฐ

* refactor: serverStatus ๋„คํŠธ์›Œํฌ ๊ด€๋ จ ์ œ๊ฑฐ

* fix: ์ฒดํฌ๋ฆฌ์ŠคํŠธ ai ์ƒ์„ฑ ๊ด€๋ฆฌ์ž๋งŒ ๊ฐ€๋Šฅํ•˜๋„๋ก ์ˆ˜์ •

* feat: admin ํŽ˜์ด์ง€ ai ์—ฐ๋™

* feat: Update main.yml

---------

Co-authored-by: YangDongsuk <51476641+YangDongsuk@users.noreply.github.com>
pminsung12 added a commit that referenced this pull request Mar 10, 2024
* [Server] ๊ฐœ๋ฐœํ™˜๊ฒฝ ์„ธํŒ… (#4)

* build: open-list-server init

* chore: @nestjs/config class-validator class-transformer ์„ค์น˜

* chore: ๋ฃจํŠธ ๋ ˆ๋ฒจ์—์„œ ์„ค์น˜ํ•œ ํŒจํ‚ค์ง€ ์‚ญ์ œ

* chore: NestJs ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์„ธํŒ…

* chore: @nestjs/config class-validator class-transformer ์„ค์น˜

* Server/feature/#13 (#25)

* chore: postgresql, nestjs docker ์„ธํŒ…

* chore: @nestjs/typeorm, typeorm, pg ์„ค์น˜

* chore: Typeorm ์„ธํŒ… ๋ฐ TestModel ํ…Œ์ด๋ธ” ์ƒ์„ฑ

* ํ…Œ์ŠคํŠธ์šฉ ์œ ์ € API ๊ตฌํ˜„ (#30)

* chore: common resource ์ถ”๊ฐ€

* chore: users resource ์ถ”๊ฐ€

* feature: base entity ๊ตฌํ˜„

* feature: usersEntity ๊ตฌํ˜„

* feature: ๋ชจ๋“ˆ์— usersModel ์ถ”๊ฐ€

* style: entity,dto์˜ users -> user๋กœ ๋ณ€๊ฒฝ

* feature: CreateUserDto ๊ตฌํ˜„

* feature: userEntity ์ด๋ฉ”์ผ ํ•„๋“œ ์ถ”๊ฐ€

* feature: createUserDto ์ด๋ฉ”์ผ ํ•„๋“œ ์ถ”๊ฐ€

* feature: user patch->put์œผ๋กœ ๋ณ€๊ฒฝ

* feature: updateUserDto ๊ตฌํ˜„

* feature : create user ๊ตฌํ˜„

* feature: ๋ชจ๋“  ์œ ์ €์˜ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” API ๊ตฌํ˜„

* feature: ํŠน์ • ์œ ์ €์˜ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” API ๊ตฌํ˜„

* feature: user ์ •๋ณด ์ˆ˜์ • API ๊ตฌํ˜„

* feature: user ์‚ญ์ œ API ๊ตฌํ˜„

* feature: ValidationPipe ์ ์šฉ

* refactor: usersService ๋ฆฌํŒฉํ† ๋ง

* [Server] ์œ ๋‹› ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ ์„ธํŒ… (#32)

* chore: test ๊ฒฝ๋กœ ์„ค์ •

* feature: TestCommonModule ๊ตฌํ˜„

* feature: users.service.spec.ts ์˜์กด์„ฑ ์ฃผ์ž…

* feature: users.controller.spec.ts ์˜์กด์„ฑ ์ฃผ์ž…

* [Server] Users resource ์ด๋ฆ„ ๋ณ€๊ฒฝ (#34)

* style: usersController ๋„ค์ด๋ฐ์— ์ปจ๋ฒค์…˜ ๋งž๊ฒŒ ๋ณ€๊ฒฝ

* style: usersService ์ปจ๋ฒค์…˜์— ๋”ฐ๋ฅธ ๋„ค์ด๋ฐ ๋ณ€๊ฒฝ

* style: UsersModel -> UserModel ์ปจ๋ฒค์…˜์— ๋”ฐ๋ฅธ ๋„ค์ด๋ฐ ๋ณ€๊ฒฝ

* feature: usersService ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ (#39)

* [Server] Folder entity ์ƒ์„ฑ ๋ฐ crud ๊ตฌํ˜„ (#42)

* feat: folders crud ๊ตฌํ˜„

* chore: TestModel ์‚ญ์ œ ๋ฐ ๊ด€๋ จ๋œ ์ข…์†์„ฑ ์ œ๊ฑฐ

* feat: folders.controller.spec.ts ์‚ญ์ œ, folders.service.spec.ts ๊ตฌํ˜„

* feature: dockerํŒŒ์ผ ์ˆ˜์ • (#57)

* feat: private checklist entity ์ƒ์„ฑ ๋ฐ crud ๊ตฌํ˜„ (#61)

* chore: ๊ฐœ๋ฐœ์šฉ postgres ํฌํŠธ๋ณ€๊ฒฝ 5432->5433, .env๋„ port 5433์œผ๋กœ ๋ณ€๊ฒฝํ•„์š”

* feat: checklists res ์ƒ์„ฑ

* feat: checklist, private-checklist, shared-checklisst ์—”ํ‹ฐํ‹ฐ ์ƒ์„ฑ, user๋ชจ๋ธ๊ณผ folder๋ชจ๋ธ๊ณผ์˜ ์˜์กด๊ด€๊ณ„ ์ฃผ์ž…

* feat: author->editor๋กœ ์ˆ˜์ •, ๊ณต์œ ์ฒดํฌ๋ฆฌ์ŠคํŠธ์™€ ์‚ฌ์šฉ์ž์˜ relation์„ many to many๋กœ ์—…๋ฐ์ดํŠธ

* feat: ๊ฐœ์ธ, ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ์— ๋Œ€ํ•ด ์ƒ์„ฑ๊ณผ ์—…๋ฐ์ดํŠธ ์‹œ dto ์ƒ์„ฑ

* fix: class ์ด๋ฆ„ ์˜คํƒ€ ์ˆ˜์ •

* refactor: rest api ๋ฐฉ์‹์— ๋”ฐ๋ผ ํ•จ์ˆ˜๋ช… ๋ณ€๊ฒฝ

* feat: CheckListModel์—์„œ ์ง„ํ–‰๋ฅ  ์ปฌ๋Ÿผ ์‚ญ์ œ

* feat: folder์™€ user๊ฐ„์˜ manyToOne relation์ ์šฉ

* feat: private-checklist crud ์ž‘์„ฑ

* feat: folder service ์ปค๋ฒ„๋ฆฌ์ง€ 100 ๋‹ฌ์„ฑ

* test: private-checklist test code ์ž‘์„ฑ, ์ปค๋ฒ„๋ฆฌ์ง€ 92ํผ์„ผํŠธ

* feat: checklist ํด๋” ๋ถ„๋ฆฌ & dto ๋นˆ๋ฌธ์ž์—ด ๊ฒ€์ฆ ์ถ”๊ฐ€ (#66)

* refactor: checklists๋ฅผ private, sharedํด๋”๋กœ ๋ถ„๋ฆฌ.

* refactor: private-checklists๋ฅผ folders ํ•˜์œ„๋กœ ์ด๋™

* fix: ๋นˆ๋ฌธ์ž์—ด ๊ฒ€์ฆ ์ถ”๊ฐ€

* [Server] Winston์œผ๋กœ ๋กœ๊ทธ ๊ด€๋ฆฌ (#70)

* chore: nest-winston winston winston-daily-rotate-file ์„ค์น˜

* feat: winston logger ์„ค์ • ํŒŒ์ผ ๊ตฌํ˜„

* feat: winston logger middleware ๊ตฌํ˜„

* feat: ์š”์ฒญ logger middleware ๊ตฌํ˜„

* feat: ๋กœ๊ทธ์— ์š”์ฒญ ์ฒ˜๋ฆฌ ์‹œ๊ฐ„ ์ถ”๊ฐ€๋˜๋„๋ก ๊ฐœ์„ 

* chore: PR ํ…œํ”Œ๋ฆฟ ์ˆ˜์ •

* chore: PR ํ…œํ”Œ๋ฆฟ ์ˆ˜์ •

* feat: jwt access, refresh token ๊ธฐ๋ฐ˜ ์ธ๊ฐ€ ๊ตฌํ˜„

* chore: auth resource ์ถ”๊ฐ€

* chore: jwt ๋ชจ๋“ˆ ์ถ”๊ฐ€

* feature: signToken ๊ตฌํ˜„

* feature: ํ† ํฐ ๊ฒ€์ฆ, ํ† ํฐ ์žฌ๋ฐœ๊ธ‰ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* feature: ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* feature: ๋กœ๊ทธ์ธ ๊ด€๋ จ ์„œ๋น„์Šค ๊ตฌํ˜„

* feature: login ์ปจํŠธ๋กค๋Ÿฌ ๊ตฌํ˜„

* style: loginDto -> loginUserDto๋กœ ๋ณ€๊ฒฝ

* feature: access ํ† ํฐ ์žฌ๋ฐœ๊ธ‰ ์ปจํŠธ๋กค๋Ÿฌ ๊ตฌํ˜„

* refactor: accessํ† ํฐ ์žฌ๋ฐœ๊ธ‰ ํ˜•์‹ ๋ณ€๊ฒฝ

* feature: ์œ ์ € register ๊ธฐ๋Šฅ ๊ตฌํ˜„

* feature: auth.service.ts ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ

* fix: ์ด๋ฉ”์ผ ์ค‘๋ณต์‹œ ์—๋Ÿฌ ๋ฉ”์‹œ์ง€ ์ˆ˜์ •

---------

Co-authored-by: Minseong Park <52368015+pminsung12@users.noreply.github.com>

* [Server] shared-checklist ์†Œ์ผ“ ๊ตฌํ˜„ (#78)

* [Server] apple oauth api ๊ตฌํ˜„ (#86)

* chore: @nestjs/axios ์„ค์น˜

* chore: axios ์„ค์น˜

* chore: axios ์„ค์น˜

* feat: dto์ˆ˜์ •, userId ์ปฌ๋Ÿผ์ถ”๊ฐ€, providerId ์ˆ˜์ •, fullName ์ปฌ๋Ÿผ ์ถ”๊ฐ€

* feat: entity์— ๋”ฐ๋ผ dto ํ•ญ๋ชฉ ์ˆ˜์ •

* feat: apple oauth ๋กœ๊ทธ์ธ ์„œ๋น„์Šค ํ•จ์ˆ˜ ์ถ”๊ฐ€

client secret ๋งŒ๋“ค๊ณ , axios post๋กœ user ์ •๋ณด ๊ฐ€์ง€๊ณ ์˜ด.

* feat: apple oauth ๋กœ๊ทธ์ธ ์—”๋“œํฌ์ธํŠธ ์ถ”๊ฐ€

* feat: apple ์œ ์ €์—๋Œ€ํ•ด create, update ํ•จ์ˆ˜ ๊ตฌํ˜„

* feat: publicKey ๋ฐœ๊ธ‰๋ฐ›๋Š” ๋กœ์ง์ถ”๊ฐ€

* [Server] access ํ† ํฐ ์žฌ๋ฐœ๊ธ‰์‹œ ์œ ์ € ์ •๋ณด ์—†๋Š” ๋ฒ„๊ทธ ์ˆ˜์ • (#83)

* [Server] privateChecklist์˜ ๋‚ด์šฉ ์ €์žฅ api ๊ตฌํ˜„ (#88)

* [Server] apple oauth ๋กœ๊ทธ์ธ ๋กœ์ง ์ˆ˜์ • (#118)

* feat: env ์‚ฌ์šฉ๋ฐฉ์‹ ๋ณ€๊ฒฝ + idToken ๊ฒ€์ฆ๋กœ์ง ์ถ”๊ฐ€

* chore: jwk๋ฅผ pem์œผ๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ ์œ„ํ•œ jose ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ค์น˜

* chore: jose ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ œ๊ฑฐ @panva/jose ์„ค์น˜

* feat: request body๋กœ ๋“ค์–ด์˜ค๋Š” auth-user.dto.ts ์ˆ˜์ •

* feat: ์• ํ”Œ ์œ ์ € ๋“ฑ๋ก ๋กœ์ง ์ˆ˜์ •

* docs: jsdoc return type ์ˆ˜์ •

* feat: apple login ๋กœ์ง ์ˆ˜์ •(appleToken, clientSecret ๋กœ์ง ์‚ญ์ œ)

* feat: refreshAccessToken ํ•จ์ˆ˜์—์„œ refreshToken๋„ ํ•จ๊ป˜ ๋ฐ˜ํ™˜ํ•ด์ฃผ๋„๋ก ๋กœ์ง ์ˆ˜์ •

* [Server] Clova Studio api  ๊ตฌํ˜„ (#126)

* feat:  checklist-ai ๋ฆฌ์†Œ์Šค ์ƒ์„ฑ

* feat: create-checklist-items.dto.ts ์š”์ฒญ dto ์ƒ์„ฑ

* feat: ๋ฌธ์ž์—ด ๋ฐ ๊ฐ์ข… ์˜ต์…˜ ์ƒ์ˆ˜ํ™”

* feat: user-role const ํŒŒ์ผ ์‚ญ์ œ => ํ•จ์ˆ˜ํ™”

* feat: /checklist-ai POST ์š”์ฒญ api ์ƒ์„ฑ

๋Œ€,์ค‘,์†Œ ์นดํ…Œ๊ณ ๋ฆฌ๋ฅผ body๋กœ ๋ฐ›์•„์˜ค๋ฉด clova studio์—์„œ ์ฒดํฌ๋ฆฌ์ŠคํŠธ ํ•ญ๋ชฉ 10๊ฐœ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

* feat: AccessTokenGuard ๊ตฌํ˜„ ๋ฐ ์ ์šฉ (#129)

* feat: access token guard ๊ตฌํ˜„

* feat: access token guard ์ „์—ญ ์ ์šฉ

* style: access-token.guard.ts ์ฃผ์„ ์ถ”๊ฐ€

* feat: userId decorator ๊ตฌํ˜„

* feat: folders controller์— userId ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* feat: ํด๋” ์„œ๋น„์Šค์— user ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* feat: ๊ฐœ์ธ ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์ปจํŠธ๋กค๋Ÿฌ์— ์œ ์ € ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* feat: private-checklists service์— user ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* fix: ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ˆ˜์ •

* Server/feature/#128 (#139)

* feat: json ๊ตฌ์กฐ๋กœ ์นดํ…Œ๊ณ ๋ฆฌ ๋ฐ์ดํ„ฐ ์ •์˜

* feat: categories ์˜์กด์„ฑ ์ฃผ์ž…

* feat: endpoint๋งŒ๋“ค๊ณ , ์‹ค์ œ ์กด์žฌํ•˜๋Š” id์ธ์ง€ ๊ฒ€์ฆํ•˜๋Š” dto ์ƒ์„ฑ

* fix: ์˜คํƒ€์ˆ˜์ • forder->folder

* feat: param์— dto ์ ์šฉํ•˜์ง€ ๋ชปํ•ด ์‚ญ์ œ

* feat: ์นดํ…Œ๊ณ ๋ฆฌ json ๋ฐ์ดํ„ฐ ๋ณ€์ˆ˜๋ช… ๋ณ€๊ฒฝ, ๋Œ€๋ฌธ์ž๋กœ

* feat: ๋Œ€,์ค‘,์†Œ ์นดํ…Œ๊ณ ๋ฆฌ ๋ฐ˜ํ™˜ api ๊ตฌํ˜„

* test: categories.service.spec.ts ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ

* test: categories.service.spec.ts ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ˆ˜์ • ์ปค๋ฒ„๋ฆฌ์ง€ 100

* feat: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ API ๋ฐ ์†Œ์ผ“ ์ž‘์—… ๊ตฌํ˜„ (#140)

* feat: shared checklist item entity ๊ตฌํ˜„

* style: SharedChecklistItemModel ์˜คํƒ€ ์ˆ˜์ •

* feat: shared checklist id uuid๋กœ ๋ณ€๊ฒฝ

* feat: create shared checklist ๋””ํ‹ฐ์˜ค ์ˆ˜์ •

* feat: shared-checklists ์ƒ์„ฑ ๊ตฌํ˜„

* refactor: shared-checklists ์ €์žฅํ•˜๋Š” ํ•จ์ˆ˜ ๋ถ„๋ฆฌ

* feat: shared-checklists 1๊ฐœ, ์ „๋ถ€ ๊ฐ€์ ธ์˜ค๋Š” ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: ์œ ์ € ์ดˆ๋Œ€ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์‚ญ์ œ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* style: shared-checklists service ์ฃผ์„ ์ถ”๊ฐ€

* feature: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์†Œ์ผ“์— ๋ฐ์ดํ„ฐ ๋ˆ„์  ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: shared-checklists ์†Œ์ผ“ ํ†ต์‹  ์‹œ ๋ฐ์ดํ„ฐ ๋ฐ๋ฒ ์— ์ €์žฅ ๊ตฌํ˜„

* feat: ์†Œ์ผ“ ์—ฐ๊ฒฐ์‹œ ๋ฐฉ์˜ ๋ฐ์ดํ„ฐ ํžˆ์Šคํ† ๋ฆฌ๋ฅผ ์ „์†กํ•˜๋Š” ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* style: ์†Œ์ผ“ ์ฃผ์„ ์ถ”๊ฐ€

* ๐Ÿ”feat: ๊ฐœ๋ฐœ์šฉ ์ž„์‹œ๋กœ ์•ก์„ธ์Šค,๋ฆฌํ”„๋ ˆ์‹œ ํ† ํฐ๋“ค ๋งŒ๋ฃŒ๊ธฐํ•œ ์ผ์ฃผ์ผ๋กœ ์„ค์ • (#142)

* feat: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์•„์ดํ…œ ๊ถŒํ•œ ๋ฌธ์ œ ๋ฐ uuid ๋ฌธ์ œ ํ•ด๊ฒฐ (#146)

* fix: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์•„์ดํ…œ ๊ถŒํ•œ ์—†์œผ๋ฉด ์ ‘๊ทผ ๋ชปํ•˜๊ฒŒ ์ˆ˜์ •

* fix: ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์ถ”๊ฐ€์‹œ ์‚ฌ์šฉ์ž๊ฐ€ ์žˆ๋Š”์ง€ ๊ฒ€์‚ฌ

* fix: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์ƒ์„ฑ์‹œ uuid๊ฐ€ ์•„๋‹ˆ๋ฉด ์„œ๋ฒ„๊ฐ€ ์ฃฝ๋Š” ํ˜„์ƒ ์ˆ˜์ •

* style: ๋ถˆํ•„์š”ํ•œ ์ฝ”๋“œ ์ œ๊ฑฐ

* feat: ์†Œ์ผ“ ๋‹ค์ค‘ ์„œ๋ฒ„ ์ง€์›  (#159)

* chore: docker-compose.yaml์— ๋ ˆ๋””์Šค ์ถ”๊ฐ€

* chore: redis ๋ชจ๋“ˆ ์ถ”๊ฐ€

* feature: nest ๋‹ค์ค‘ ํฌํŠธ ์„œ๋ฒ„ ๊ตฌ์„ฑ

* feature: redis.module.ts ๊ตฌํ˜„ ๋ฐ ์ ์šฉ

* feature: ์†Œ์ผ“์— ๋ ˆ๋””์Šค ์‚ฝ์ž…

* feature: ์†Œ์ผ“ pub/sub ๊ตฌํ˜„

* feat: ์†Œ์ผ“ ๋ ˆ๋””์Šค์— ์ด ์ ‘์†์ž์ˆ˜ ์ฆ๊ฐ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: ์†Œ์ผ“ ํžˆ์Šคํ† ๋ฆฌ ๊ธฐ๋Šฅ ๋ ˆ๋””์Šค ์ ์šฉ

* refactor: shared-checklists.gateway.ts ๋ฆฌํŒฉํ† ๋ง

* feat: ์†Œ์ผ“ editing ์ด๋ฒคํŠธ ์ถ”๊ฐ€ (#164)

* fix: ๋ ˆ๋””์Šค ์—ฐ๊ฒฐ ์ˆ˜์ • (#168)

* [Server] object ํ˜•ํƒœ๊ฐ€ ๋“ค์–ด์˜ค๋ฉด redis์— ์ €์žฅ ์•ˆ๋˜๋Š” ๋ฌธ์ œ ์ˆ˜์ • (#171)

* ๐Ÿ›fix: ์›น์†Œ์ผ“ data๋ฅผ json์œผ๋กœ ๋ณ€๊ฒฝ ํ›„ emit

* ๐Ÿ›fix: history []์ œ๊ฑฐ

* ๐Ÿ›fix: data[0] -> data

* feat: ์›น์†Œ์ผ“ ํžˆ์Šคํ† ๋ฆฌ ๋ฒ„๊ทธ ์ˆ˜์ • ๋ฐ ์ฝ˜์†” ๋กœ๊ทธ ์ถ”๊ฐ€ (#175)

* fix: docker-compose ๋ ˆ๋””์Šค ์„ค์ • ์˜ค๋ฅ˜ ํ•ด๊ฒฐ

* feat: ์†Œ์ผ“ console.log ์ถ”๊ฐ€

* fix: ์†Œ์ผ“ ํžˆ์Šคํ† ๋ฆฌ ์ €์žฅ์‹œ ํ˜•์‹ ์˜ค๋ฅ˜ ์ˆ˜์ •

* [Server] ๋กœ๊ฑฐ ๊ธฐ๋Šฅ ํ™•๋Œ€ (#176)

* feat: no auth ๋ฒ„๊ทธ -> password ์ฃผ์„ ํ•ด์ œ

* feat: ๋กœ๊ทธ์— ํ•œ๊ตญ ์‹œ๊ฐ„๋Œ€ ์ถ”๊ฐ€

* feat: ๋กœ๊ทธํŒŒ์ผ์ด dist ๋‚ด๋ถ€์— ์กด์žฌํ•ด ํ•œ ๋‹จ๊ณ„ ์œ„๋กœ ์˜ฎ๊ฒจ์คŒ.

* feat: ์‘๋‹ต๋กœ๊ทธ๋Š” interceptor์—์„œ ์ฒ˜๋ฆฌํ•˜๋„๋ก ๋กœ์ง ์ˆ˜์ •

* feat: ๋กœ๊ทธ ์ธํ„ฐ์…‰ํ„ฐ app.module.ts ํ”„๋กœ๋ฐ”์ด๋”์— ์ถ”๊ฐ€

* ๐Ÿ›fix: redis module password ๋ถ€๋ถ„ ์ฃผ์„์ฒ˜๋ฆฌ (#180)

* [Server] ํ”ผ๋“œํ™”๋ฉด api ๊ตฌํ˜„ (#196)

* chore: import ๋ฌธ ์ตœ์ ํ™”

* feat: ํ”ผ๋“œ resource ์ƒ์„ฑ

* feat: checklist entity์— ์นดํ…Œ๊ณ ๋ฆฌ ์ปฌ๋Ÿผ ์ถ”๊ฐ€

* feat: feedmodel ์ •์˜

private checklist model์—์„œ likeCount์™€ downloadCount ์ปฌ๋Ÿผ ์ถ”๊ฐ€

* chore: ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” dto ํŒŒ์ผ ์‚ญ์ œ

* chore: ์นดํ…Œ๊ณ ๋ฆฌ ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€

* chore: ์•ˆ์“ฐ๋Š” ํ…Œ์ŠคํŠธ ํŒŒ์ผ ์‚ญ์ œ

* feat: ํ”ผ๋“œ ํ™”๋ฉด api ๊ตฌํ˜„

* feat: feeds.service.spec.ts ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ

* feat: api ์—๋Ÿฌ ํ•ธ๋“ค๋ง ๋กœ์ง ์ถ”๊ฐ€

* test: feeds.service.spec.ts ์˜ˆ์™ธ ์ผ€์ด์Šค์— ๋Œ€ํ•œ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ถ”๊ฐ€

* feat: ์—๋Ÿฌ๋ฉ”์‹œ์ง€ ์ˆ˜์ •

* feat: ๊ด€๋ฆฌ ํŽ˜์ด์ง€์™€ api ๊ตฌํ˜„ (#197)

* feat: admin resource ๊ตฌํ˜„

* feat: ๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€ ์ถ”๊ฐ€

* feat: cors ์„ค์ • ์ถ”๊ฐ€

* feat: ์ž„์‹œ๋กœ ๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€ ๊ถŒํ•œ ์ œ๊ฑฐ

* feat: admin sse api ๊ตฌํ˜„

* refactor: redis sub ์„œ๋น„์Šค ๊ตฌํ˜„

* feat: ์–ด๋“œ๋ฏผ ํŽ˜์ด์ง€ api ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: redis pub ์„œ๋น„์Šค ์ถ”๊ฐ€

* refactor: admin controller์— redis service๋กœ ๊ต์ฒด

* feat: log interceptor์— redis pub ์ถ”๊ฐ€

* refactor: channels const๋กœ ๋ถ„๋ฆฌ

* style: ๋ถˆํ•„์š”ํ•œ ์ฃผ์„ ์ œ๊ฑฐ

* feat: ws ๋กœ๊ทธ redis pub ์ถ”๊ฐ€

* feat: admin page ๋ฐ•์Šค ๋ˆ„๋ฅด๋ฉด ํŽผ์น˜๊ธฐ/์ ‘๊ธฐ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: admin ํŽ˜์ด์ง€ ์ƒ‰๊น” ๋ณ€๊ฒฝ

* feat: ๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€ ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* [Server] ํด๋ผ์ด์–ธํŠธ์™€ api ์—ฐ๋™ ์ž‘์—… (login, socket history)  (#209)

* feat: socket ๋นˆ ํžˆ์Šคํ† ๋ฆฌ๋ฉด [] ๋ณด๋‚ด๊ธฐ

* feat: ๋กœ๊ทธ์ธ์‹œ ์œ ์ € ๋‹‰๋„ค์ž„๋„ ๊ฐ™์ด ๋ณด๋‚ด์ฃผ๊ธฐ

* [Server] ai์™€ ๊ด€๋ จํ•œ db ๊ตฌ์กฐ ๊ฐœ์„  (#220)

* refactor: ๊ฒฝ๋กœ ์ด๋ฆ„ ์ˆ˜์ • entity->entities

* feat: category ์—”ํ‹ฐํ‹ฐ ์ƒ์„ฑ

* feat: reason ๋ชจ๋ธ ์ƒ์„ฑ ๋ฐ ๊ฐ ํ…Œ์ด๋ธ” relation ์„ค์ •

* feat: ๊ฐ ํ…Œ์ด๋ธ” relation ์ˆ˜์ • ๋ฐ ์˜์กด์„ฑ ์ฃผ์ž…

* feat: relation ๋ฐฉ์‹ ๋ณ€๊ฒฝ์œผ๋กœ ์ธํ•œfolders.service.ts ๋ฉ”์„œ๋“œ ์ˆ˜์ •, ์˜์กด์„ฑ ์ฃผ์ž…

* feat: admin ํŽ˜์ด์ง€ ํ•ญ๋ชฉ ์ž๋™ ์ถ”๊ฐ€ , ์‹œ์Šคํ…œ ์ƒํƒœ ๊ทธ๋ž˜ํ”„ ์ถ”๊ฐ€ (#223)

* feat: serverStatus ํ™•์ธ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: serverStatus ํ™•์ธ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: ๋ชจ๋“  ๊ตฌ๋…์„ ๋ฐ›์•„์˜ค๋Š” ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* chore: ๋ถˆํ•„์š”ํ•œ ์ƒ์ˆ˜ ์ œ๊ฑฐ

* feat: admin page ์„œ๋ฒ„ ์ƒํƒœ ํ™•์ธ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* [Server] ์นดํ…Œ๊ณ ๋ฆฌ๋ณ„ ์•„์ดํ…œ ๊ฐœ์ˆ˜ ํ™•์ธ ๋ฐ ๊ฐœ์ˆ˜๋กœ item ์ƒ์„ฑ ๋กœ์ง (#228)

* feat: ์นดํ…Œ๊ณ ๋ฆฌ๋ณ„ ์•„์ดํ…œ ๊ฐœ์ˆ˜ ๋ฐ˜ํ™˜ํ•ด์ฃผ๋Š” api ์ƒ์„ฑ

* feat: ์นดํ…Œ๊ณ ๋ฆฌ๋ณ„ ์•„์ดํ…œ ๊ฐœ์ˆ˜ itemCount๋กœ pub๋„ ํ•˜๊ณ  ์‘๋‹ต๋„ ๋ฐ˜ํ™˜ํ•˜๋Š” ์„œ๋น„์Šค ํ•จ์ˆ˜ ๊ตฌํ˜„

* feat: generate-item api์— ๋Œ€ํ•œ controller ํ•จ์ˆ˜ ๊ตฌํ˜„

* feat: generate-item api์— ๋Œ€ํ•œ service ํ•จ์ˆ˜ ๊ตฌํ˜„

* [Server] ์นดํ…Œ๊ณ ๋ฆฌ api db ๋ฐฉ์‹์œผ๋กœ ์—…๋ฐ์ดํŠธ, ์ธ๊ณต์ง€๋Šฅ ์‘๋‹ต api db ์บ์‹ฑ ๊ตฌ์กฐ๋กœ ๊ฐœ์„  (#240)

* feat: category service ํ•จ์ˆ˜ ์ˆ˜์ •

* feat: category service ํ•จ์ˆ˜ ์š”์ฒญ ํ˜•ํƒœ ๋ณ€๊ฒฝ

* feat: ai ์ฒดํฌ๋ฆฌ์ŠคํŠธ ํ•ญ๋ชฉ ์‘๋‹ต api db ์บ์‹ฑ ๊ตฌ์กฐ๋กœ ๋ณ€๊ฒฝ

* refactor: jwt toekn ๋งŒ๋ฃŒ ์‹œ๊ฐ„ ํ™˜๊ฒฝ๋ณ€์ˆ˜๋กœ ๋ณ€๊ฒฝ (#250)

* feat: ์–ด๋“œ๋ฏผ ํŽ˜์ด์ง€ ai๊ด€๋ จ ๋ทฐ ์ถ”๊ฐ€ ๋ฐ ๊ด€๋ จ api ์ถ”๊ฐ€ (#260)

* feat: adminํŽ˜์ด์ง€ cpu ์‚ฌ์šฉ๋Ÿ‰ ํ†ตํ•ฉํ•ด์„œ ๋ณด์—ฌ์ฃผ๊ธฐ

* refactor: serverStatus ๋„คํŠธ์›Œํฌ ๊ด€๋ จ ์ œ๊ฑฐ

* fix: ์ฒดํฌ๋ฆฌ์ŠคํŠธ ai ์ƒ์„ฑ ๊ด€๋ฆฌ์ž๋งŒ ๊ฐ€๋Šฅํ•˜๋„๋ก ์ˆ˜์ •

* feat: admin ํŽ˜์ด์ง€ ai ์—ฐ๋™

* feat: Update main.yml

---------

Co-authored-by: YangDongsuk <51476641+YangDongsuk@users.noreply.github.com>
pminsung12 added a commit that referenced this pull request Mar 11, 2024
* [Server] ๊ฐœ๋ฐœํ™˜๊ฒฝ ์„ธํŒ… (#4)

* build: open-list-server init

* chore: @nestjs/config class-validator class-transformer ์„ค์น˜

* chore: ๋ฃจํŠธ ๋ ˆ๋ฒจ์—์„œ ์„ค์น˜ํ•œ ํŒจํ‚ค์ง€ ์‚ญ์ œ

* chore: NestJs ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์„ธํŒ…

* chore: @nestjs/config class-validator class-transformer ์„ค์น˜

* Server/feature/#13 (#25)

* chore: postgresql, nestjs docker ์„ธํŒ…

* chore: @nestjs/typeorm, typeorm, pg ์„ค์น˜

* chore: Typeorm ์„ธํŒ… ๋ฐ TestModel ํ…Œ์ด๋ธ” ์ƒ์„ฑ

* ํ…Œ์ŠคํŠธ์šฉ ์œ ์ € API ๊ตฌํ˜„ (#30)

* chore: common resource ์ถ”๊ฐ€

* chore: users resource ์ถ”๊ฐ€

* feature: base entity ๊ตฌํ˜„

* feature: usersEntity ๊ตฌํ˜„

* feature: ๋ชจ๋“ˆ์— usersModel ์ถ”๊ฐ€

* style: entity,dto์˜ users -> user๋กœ ๋ณ€๊ฒฝ

* feature: CreateUserDto ๊ตฌํ˜„

* feature: userEntity ์ด๋ฉ”์ผ ํ•„๋“œ ์ถ”๊ฐ€

* feature: createUserDto ์ด๋ฉ”์ผ ํ•„๋“œ ์ถ”๊ฐ€

* feature: user patch->put์œผ๋กœ ๋ณ€๊ฒฝ

* feature: updateUserDto ๊ตฌํ˜„

* feature : create user ๊ตฌํ˜„

* feature: ๋ชจ๋“  ์œ ์ €์˜ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” API ๊ตฌํ˜„

* feature: ํŠน์ • ์œ ์ €์˜ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” API ๊ตฌํ˜„

* feature: user ์ •๋ณด ์ˆ˜์ • API ๊ตฌํ˜„

* feature: user ์‚ญ์ œ API ๊ตฌํ˜„

* feature: ValidationPipe ์ ์šฉ

* refactor: usersService ๋ฆฌํŒฉํ† ๋ง

* [Server] ์œ ๋‹› ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ ์„ธํŒ… (#32)

* chore: test ๊ฒฝ๋กœ ์„ค์ •

* feature: TestCommonModule ๊ตฌํ˜„

* feature: users.service.spec.ts ์˜์กด์„ฑ ์ฃผ์ž…

* feature: users.controller.spec.ts ์˜์กด์„ฑ ์ฃผ์ž…

* [Server] Users resource ์ด๋ฆ„ ๋ณ€๊ฒฝ (#34)

* style: usersController ๋„ค์ด๋ฐ์— ์ปจ๋ฒค์…˜ ๋งž๊ฒŒ ๋ณ€๊ฒฝ

* style: usersService ์ปจ๋ฒค์…˜์— ๋”ฐ๋ฅธ ๋„ค์ด๋ฐ ๋ณ€๊ฒฝ

* style: UsersModel -> UserModel ์ปจ๋ฒค์…˜์— ๋”ฐ๋ฅธ ๋„ค์ด๋ฐ ๋ณ€๊ฒฝ

* feature: usersService ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ (#39)

* [Server] Folder entity ์ƒ์„ฑ ๋ฐ crud ๊ตฌํ˜„ (#42)

* feat: folders crud ๊ตฌํ˜„

* chore: TestModel ์‚ญ์ œ ๋ฐ ๊ด€๋ จ๋œ ์ข…์†์„ฑ ์ œ๊ฑฐ

* feat: folders.controller.spec.ts ์‚ญ์ œ, folders.service.spec.ts ๊ตฌํ˜„

* feature: dockerํŒŒ์ผ ์ˆ˜์ • (#57)

* feat: private checklist entity ์ƒ์„ฑ ๋ฐ crud ๊ตฌํ˜„ (#61)

* chore: ๊ฐœ๋ฐœ์šฉ postgres ํฌํŠธ๋ณ€๊ฒฝ 5432->5433, .env๋„ port 5433์œผ๋กœ ๋ณ€๊ฒฝํ•„์š”

* feat: checklists res ์ƒ์„ฑ

* feat: checklist, private-checklist, shared-checklisst ์—”ํ‹ฐํ‹ฐ ์ƒ์„ฑ, user๋ชจ๋ธ๊ณผ folder๋ชจ๋ธ๊ณผ์˜ ์˜์กด๊ด€๊ณ„ ์ฃผ์ž…

* feat: author->editor๋กœ ์ˆ˜์ •, ๊ณต์œ ์ฒดํฌ๋ฆฌ์ŠคํŠธ์™€ ์‚ฌ์šฉ์ž์˜ relation์„ many to many๋กœ ์—…๋ฐ์ดํŠธ

* feat: ๊ฐœ์ธ, ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ์— ๋Œ€ํ•ด ์ƒ์„ฑ๊ณผ ์—…๋ฐ์ดํŠธ ์‹œ dto ์ƒ์„ฑ

* fix: class ์ด๋ฆ„ ์˜คํƒ€ ์ˆ˜์ •

* refactor: rest api ๋ฐฉ์‹์— ๋”ฐ๋ผ ํ•จ์ˆ˜๋ช… ๋ณ€๊ฒฝ

* feat: CheckListModel์—์„œ ์ง„ํ–‰๋ฅ  ์ปฌ๋Ÿผ ์‚ญ์ œ

* feat: folder์™€ user๊ฐ„์˜ manyToOne relation์ ์šฉ

* feat: private-checklist crud ์ž‘์„ฑ

* feat: folder service ์ปค๋ฒ„๋ฆฌ์ง€ 100 ๋‹ฌ์„ฑ

* test: private-checklist test code ์ž‘์„ฑ, ์ปค๋ฒ„๋ฆฌ์ง€ 92ํผ์„ผํŠธ

* feat: checklist ํด๋” ๋ถ„๋ฆฌ & dto ๋นˆ๋ฌธ์ž์—ด ๊ฒ€์ฆ ์ถ”๊ฐ€ (#66)

* refactor: checklists๋ฅผ private, sharedํด๋”๋กœ ๋ถ„๋ฆฌ.

* refactor: private-checklists๋ฅผ folders ํ•˜์œ„๋กœ ์ด๋™

* fix: ๋นˆ๋ฌธ์ž์—ด ๊ฒ€์ฆ ์ถ”๊ฐ€

* [Server] Winston์œผ๋กœ ๋กœ๊ทธ ๊ด€๋ฆฌ (#70)

* chore: nest-winston winston winston-daily-rotate-file ์„ค์น˜

* feat: winston logger ์„ค์ • ํŒŒ์ผ ๊ตฌํ˜„

* feat: winston logger middleware ๊ตฌํ˜„

* feat: ์š”์ฒญ logger middleware ๊ตฌํ˜„

* feat: ๋กœ๊ทธ์— ์š”์ฒญ ์ฒ˜๋ฆฌ ์‹œ๊ฐ„ ์ถ”๊ฐ€๋˜๋„๋ก ๊ฐœ์„ 

* chore: PR ํ…œํ”Œ๋ฆฟ ์ˆ˜์ •

* chore: PR ํ…œํ”Œ๋ฆฟ ์ˆ˜์ •

* feat: jwt access, refresh token ๊ธฐ๋ฐ˜ ์ธ๊ฐ€ ๊ตฌํ˜„

* chore: auth resource ์ถ”๊ฐ€

* chore: jwt ๋ชจ๋“ˆ ์ถ”๊ฐ€

* feature: signToken ๊ตฌํ˜„

* feature: ํ† ํฐ ๊ฒ€์ฆ, ํ† ํฐ ์žฌ๋ฐœ๊ธ‰ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* feature: ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* feature: ๋กœ๊ทธ์ธ ๊ด€๋ จ ์„œ๋น„์Šค ๊ตฌํ˜„

* feature: login ์ปจํŠธ๋กค๋Ÿฌ ๊ตฌํ˜„

* style: loginDto -> loginUserDto๋กœ ๋ณ€๊ฒฝ

* feature: access ํ† ํฐ ์žฌ๋ฐœ๊ธ‰ ์ปจํŠธ๋กค๋Ÿฌ ๊ตฌํ˜„

* refactor: accessํ† ํฐ ์žฌ๋ฐœ๊ธ‰ ํ˜•์‹ ๋ณ€๊ฒฝ

* feature: ์œ ์ € register ๊ธฐ๋Šฅ ๊ตฌํ˜„

* feature: auth.service.ts ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ

* fix: ์ด๋ฉ”์ผ ์ค‘๋ณต์‹œ ์—๋Ÿฌ ๋ฉ”์‹œ์ง€ ์ˆ˜์ •

---------

Co-authored-by: Minseong Park <52368015+pminsung12@users.noreply.github.com>

* [Server] shared-checklist ์†Œ์ผ“ ๊ตฌํ˜„ (#78)

* [Server] apple oauth api ๊ตฌํ˜„ (#86)

* chore: @nestjs/axios ์„ค์น˜

* chore: axios ์„ค์น˜

* chore: axios ์„ค์น˜

* feat: dto์ˆ˜์ •, userId ์ปฌ๋Ÿผ์ถ”๊ฐ€, providerId ์ˆ˜์ •, fullName ์ปฌ๋Ÿผ ์ถ”๊ฐ€

* feat: entity์— ๋”ฐ๋ผ dto ํ•ญ๋ชฉ ์ˆ˜์ •

* feat: apple oauth ๋กœ๊ทธ์ธ ์„œ๋น„์Šค ํ•จ์ˆ˜ ์ถ”๊ฐ€

client secret ๋งŒ๋“ค๊ณ , axios post๋กœ user ์ •๋ณด ๊ฐ€์ง€๊ณ ์˜ด.

* feat: apple oauth ๋กœ๊ทธ์ธ ์—”๋“œํฌ์ธํŠธ ์ถ”๊ฐ€

* feat: apple ์œ ์ €์—๋Œ€ํ•ด create, update ํ•จ์ˆ˜ ๊ตฌํ˜„

* feat: publicKey ๋ฐœ๊ธ‰๋ฐ›๋Š” ๋กœ์ง์ถ”๊ฐ€

* [Server] access ํ† ํฐ ์žฌ๋ฐœ๊ธ‰์‹œ ์œ ์ € ์ •๋ณด ์—†๋Š” ๋ฒ„๊ทธ ์ˆ˜์ • (#83)

* [Server] privateChecklist์˜ ๋‚ด์šฉ ์ €์žฅ api ๊ตฌํ˜„ (#88)

* [Server] apple oauth ๋กœ๊ทธ์ธ ๋กœ์ง ์ˆ˜์ • (#118)

* feat: env ์‚ฌ์šฉ๋ฐฉ์‹ ๋ณ€๊ฒฝ + idToken ๊ฒ€์ฆ๋กœ์ง ์ถ”๊ฐ€

* chore: jwk๋ฅผ pem์œผ๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ ์œ„ํ•œ jose ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ค์น˜

* chore: jose ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ œ๊ฑฐ @panva/jose ์„ค์น˜

* feat: request body๋กœ ๋“ค์–ด์˜ค๋Š” auth-user.dto.ts ์ˆ˜์ •

* feat: ์• ํ”Œ ์œ ์ € ๋“ฑ๋ก ๋กœ์ง ์ˆ˜์ •

* docs: jsdoc return type ์ˆ˜์ •

* feat: apple login ๋กœ์ง ์ˆ˜์ •(appleToken, clientSecret ๋กœ์ง ์‚ญ์ œ)

* feat: refreshAccessToken ํ•จ์ˆ˜์—์„œ refreshToken๋„ ํ•จ๊ป˜ ๋ฐ˜ํ™˜ํ•ด์ฃผ๋„๋ก ๋กœ์ง ์ˆ˜์ •

* [Server] Clova Studio api  ๊ตฌํ˜„ (#126)

* feat:  checklist-ai ๋ฆฌ์†Œ์Šค ์ƒ์„ฑ

* feat: create-checklist-items.dto.ts ์š”์ฒญ dto ์ƒ์„ฑ

* feat: ๋ฌธ์ž์—ด ๋ฐ ๊ฐ์ข… ์˜ต์…˜ ์ƒ์ˆ˜ํ™”

* feat: user-role const ํŒŒ์ผ ์‚ญ์ œ => ํ•จ์ˆ˜ํ™”

* feat: /checklist-ai POST ์š”์ฒญ api ์ƒ์„ฑ

๋Œ€,์ค‘,์†Œ ์นดํ…Œ๊ณ ๋ฆฌ๋ฅผ body๋กœ ๋ฐ›์•„์˜ค๋ฉด clova studio์—์„œ ์ฒดํฌ๋ฆฌ์ŠคํŠธ ํ•ญ๋ชฉ 10๊ฐœ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

* feat: AccessTokenGuard ๊ตฌํ˜„ ๋ฐ ์ ์šฉ (#129)

* feat: access token guard ๊ตฌํ˜„

* feat: access token guard ์ „์—ญ ์ ์šฉ

* style: access-token.guard.ts ์ฃผ์„ ์ถ”๊ฐ€

* feat: userId decorator ๊ตฌํ˜„

* feat: folders controller์— userId ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* feat: ํด๋” ์„œ๋น„์Šค์— user ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* feat: ๊ฐœ์ธ ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์ปจํŠธ๋กค๋Ÿฌ์— ์œ ์ € ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* feat: private-checklists service์— user ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€

* fix: ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ˆ˜์ •

* Server/feature/#128 (#139)

* feat: json ๊ตฌ์กฐ๋กœ ์นดํ…Œ๊ณ ๋ฆฌ ๋ฐ์ดํ„ฐ ์ •์˜

* feat: categories ์˜์กด์„ฑ ์ฃผ์ž…

* feat: endpoint๋งŒ๋“ค๊ณ , ์‹ค์ œ ์กด์žฌํ•˜๋Š” id์ธ์ง€ ๊ฒ€์ฆํ•˜๋Š” dto ์ƒ์„ฑ

* fix: ์˜คํƒ€์ˆ˜์ • forder->folder

* feat: param์— dto ์ ์šฉํ•˜์ง€ ๋ชปํ•ด ์‚ญ์ œ

* feat: ์นดํ…Œ๊ณ ๋ฆฌ json ๋ฐ์ดํ„ฐ ๋ณ€์ˆ˜๋ช… ๋ณ€๊ฒฝ, ๋Œ€๋ฌธ์ž๋กœ

* feat: ๋Œ€,์ค‘,์†Œ ์นดํ…Œ๊ณ ๋ฆฌ ๋ฐ˜ํ™˜ api ๊ตฌํ˜„

* test: categories.service.spec.ts ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ

* test: categories.service.spec.ts ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ˆ˜์ • ์ปค๋ฒ„๋ฆฌ์ง€ 100

* feat: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ API ๋ฐ ์†Œ์ผ“ ์ž‘์—… ๊ตฌํ˜„ (#140)

* feat: shared checklist item entity ๊ตฌํ˜„

* style: SharedChecklistItemModel ์˜คํƒ€ ์ˆ˜์ •

* feat: shared checklist id uuid๋กœ ๋ณ€๊ฒฝ

* feat: create shared checklist ๋””ํ‹ฐ์˜ค ์ˆ˜์ •

* feat: shared-checklists ์ƒ์„ฑ ๊ตฌํ˜„

* refactor: shared-checklists ์ €์žฅํ•˜๋Š” ํ•จ์ˆ˜ ๋ถ„๋ฆฌ

* feat: shared-checklists 1๊ฐœ, ์ „๋ถ€ ๊ฐ€์ ธ์˜ค๋Š” ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: ์œ ์ € ์ดˆ๋Œ€ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์‚ญ์ œ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* style: shared-checklists service ์ฃผ์„ ์ถ”๊ฐ€

* feature: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์†Œ์ผ“์— ๋ฐ์ดํ„ฐ ๋ˆ„์  ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: shared-checklists ์†Œ์ผ“ ํ†ต์‹  ์‹œ ๋ฐ์ดํ„ฐ ๋ฐ๋ฒ ์— ์ €์žฅ ๊ตฌํ˜„

* feat: ์†Œ์ผ“ ์—ฐ๊ฒฐ์‹œ ๋ฐฉ์˜ ๋ฐ์ดํ„ฐ ํžˆ์Šคํ† ๋ฆฌ๋ฅผ ์ „์†กํ•˜๋Š” ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* style: ์†Œ์ผ“ ์ฃผ์„ ์ถ”๊ฐ€

* ๐Ÿ”feat: ๊ฐœ๋ฐœ์šฉ ์ž„์‹œ๋กœ ์•ก์„ธ์Šค,๋ฆฌํ”„๋ ˆ์‹œ ํ† ํฐ๋“ค ๋งŒ๋ฃŒ๊ธฐํ•œ ์ผ์ฃผ์ผ๋กœ ์„ค์ • (#142)

* feat: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์•„์ดํ…œ ๊ถŒํ•œ ๋ฌธ์ œ ๋ฐ uuid ๋ฌธ์ œ ํ•ด๊ฒฐ (#146)

* fix: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์•„์ดํ…œ ๊ถŒํ•œ ์—†์œผ๋ฉด ์ ‘๊ทผ ๋ชปํ•˜๊ฒŒ ์ˆ˜์ •

* fix: ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์ถ”๊ฐ€์‹œ ์‚ฌ์šฉ์ž๊ฐ€ ์žˆ๋Š”์ง€ ๊ฒ€์‚ฌ

* fix: ๊ณต์œ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์ƒ์„ฑ์‹œ uuid๊ฐ€ ์•„๋‹ˆ๋ฉด ์„œ๋ฒ„๊ฐ€ ์ฃฝ๋Š” ํ˜„์ƒ ์ˆ˜์ •

* style: ๋ถˆํ•„์š”ํ•œ ์ฝ”๋“œ ์ œ๊ฑฐ

* feat: ์†Œ์ผ“ ๋‹ค์ค‘ ์„œ๋ฒ„ ์ง€์›  (#159)

* chore: docker-compose.yaml์— ๋ ˆ๋””์Šค ์ถ”๊ฐ€

* chore: redis ๋ชจ๋“ˆ ์ถ”๊ฐ€

* feature: nest ๋‹ค์ค‘ ํฌํŠธ ์„œ๋ฒ„ ๊ตฌ์„ฑ

* feature: redis.module.ts ๊ตฌํ˜„ ๋ฐ ์ ์šฉ

* feature: ์†Œ์ผ“์— ๋ ˆ๋””์Šค ์‚ฝ์ž…

* feature: ์†Œ์ผ“ pub/sub ๊ตฌํ˜„

* feat: ์†Œ์ผ“ ๋ ˆ๋””์Šค์— ์ด ์ ‘์†์ž์ˆ˜ ์ฆ๊ฐ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: ์†Œ์ผ“ ํžˆ์Šคํ† ๋ฆฌ ๊ธฐ๋Šฅ ๋ ˆ๋””์Šค ์ ์šฉ

* refactor: shared-checklists.gateway.ts ๋ฆฌํŒฉํ† ๋ง

* feat: ์†Œ์ผ“ editing ์ด๋ฒคํŠธ ์ถ”๊ฐ€ (#164)

* fix: ๋ ˆ๋””์Šค ์—ฐ๊ฒฐ ์ˆ˜์ • (#168)

* [Server] object ํ˜•ํƒœ๊ฐ€ ๋“ค์–ด์˜ค๋ฉด redis์— ์ €์žฅ ์•ˆ๋˜๋Š” ๋ฌธ์ œ ์ˆ˜์ • (#171)

* ๐Ÿ›fix: ์›น์†Œ์ผ“ data๋ฅผ json์œผ๋กœ ๋ณ€๊ฒฝ ํ›„ emit

* ๐Ÿ›fix: history []์ œ๊ฑฐ

* ๐Ÿ›fix: data[0] -> data

* feat: ์›น์†Œ์ผ“ ํžˆ์Šคํ† ๋ฆฌ ๋ฒ„๊ทธ ์ˆ˜์ • ๋ฐ ์ฝ˜์†” ๋กœ๊ทธ ์ถ”๊ฐ€ (#175)

* fix: docker-compose ๋ ˆ๋””์Šค ์„ค์ • ์˜ค๋ฅ˜ ํ•ด๊ฒฐ

* feat: ์†Œ์ผ“ console.log ์ถ”๊ฐ€

* fix: ์†Œ์ผ“ ํžˆ์Šคํ† ๋ฆฌ ์ €์žฅ์‹œ ํ˜•์‹ ์˜ค๋ฅ˜ ์ˆ˜์ •

* [Server] ๋กœ๊ฑฐ ๊ธฐ๋Šฅ ํ™•๋Œ€ (#176)

* feat: no auth ๋ฒ„๊ทธ -> password ์ฃผ์„ ํ•ด์ œ

* feat: ๋กœ๊ทธ์— ํ•œ๊ตญ ์‹œ๊ฐ„๋Œ€ ์ถ”๊ฐ€

* feat: ๋กœ๊ทธํŒŒ์ผ์ด dist ๋‚ด๋ถ€์— ์กด์žฌํ•ด ํ•œ ๋‹จ๊ณ„ ์œ„๋กœ ์˜ฎ๊ฒจ์คŒ.

* feat: ์‘๋‹ต๋กœ๊ทธ๋Š” interceptor์—์„œ ์ฒ˜๋ฆฌํ•˜๋„๋ก ๋กœ์ง ์ˆ˜์ •

* feat: ๋กœ๊ทธ ์ธํ„ฐ์…‰ํ„ฐ app.module.ts ํ”„๋กœ๋ฐ”์ด๋”์— ์ถ”๊ฐ€

* ๐Ÿ›fix: redis module password ๋ถ€๋ถ„ ์ฃผ์„์ฒ˜๋ฆฌ (#180)

* [Server] ํ”ผ๋“œํ™”๋ฉด api ๊ตฌํ˜„ (#196)

* chore: import ๋ฌธ ์ตœ์ ํ™”

* feat: ํ”ผ๋“œ resource ์ƒ์„ฑ

* feat: checklist entity์— ์นดํ…Œ๊ณ ๋ฆฌ ์ปฌ๋Ÿผ ์ถ”๊ฐ€

* feat: feedmodel ์ •์˜

private checklist model์—์„œ likeCount์™€ downloadCount ์ปฌ๋Ÿผ ์ถ”๊ฐ€

* chore: ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” dto ํŒŒ์ผ ์‚ญ์ œ

* chore: ์นดํ…Œ๊ณ ๋ฆฌ ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€

* chore: ์•ˆ์“ฐ๋Š” ํ…Œ์ŠคํŠธ ํŒŒ์ผ ์‚ญ์ œ

* feat: ํ”ผ๋“œ ํ™”๋ฉด api ๊ตฌํ˜„

* feat: feeds.service.spec.ts ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ

* feat: api ์—๋Ÿฌ ํ•ธ๋“ค๋ง ๋กœ์ง ์ถ”๊ฐ€

* test: feeds.service.spec.ts ์˜ˆ์™ธ ์ผ€์ด์Šค์— ๋Œ€ํ•œ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ถ”๊ฐ€

* feat: ์—๋Ÿฌ๋ฉ”์‹œ์ง€ ์ˆ˜์ •

* feat: ๊ด€๋ฆฌ ํŽ˜์ด์ง€์™€ api ๊ตฌํ˜„ (#197)

* feat: admin resource ๊ตฌํ˜„

* feat: ๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€ ์ถ”๊ฐ€

* feat: cors ์„ค์ • ์ถ”๊ฐ€

* feat: ์ž„์‹œ๋กœ ๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€ ๊ถŒํ•œ ์ œ๊ฑฐ

* feat: admin sse api ๊ตฌํ˜„

* refactor: redis sub ์„œ๋น„์Šค ๊ตฌํ˜„

* feat: ์–ด๋“œ๋ฏผ ํŽ˜์ด์ง€ api ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: redis pub ์„œ๋น„์Šค ์ถ”๊ฐ€

* refactor: admin controller์— redis service๋กœ ๊ต์ฒด

* feat: log interceptor์— redis pub ์ถ”๊ฐ€

* refactor: channels const๋กœ ๋ถ„๋ฆฌ

* style: ๋ถˆํ•„์š”ํ•œ ์ฃผ์„ ์ œ๊ฑฐ

* feat: ws ๋กœ๊ทธ redis pub ์ถ”๊ฐ€

* feat: admin page ๋ฐ•์Šค ๋ˆ„๋ฅด๋ฉด ํŽผ์น˜๊ธฐ/์ ‘๊ธฐ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: admin ํŽ˜์ด์ง€ ์ƒ‰๊น” ๋ณ€๊ฒฝ

* feat: ๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€ ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* [Server] ํด๋ผ์ด์–ธํŠธ์™€ api ์—ฐ๋™ ์ž‘์—… (login, socket history)  (#209)

* feat: socket ๋นˆ ํžˆ์Šคํ† ๋ฆฌ๋ฉด [] ๋ณด๋‚ด๊ธฐ

* feat: ๋กœ๊ทธ์ธ์‹œ ์œ ์ € ๋‹‰๋„ค์ž„๋„ ๊ฐ™์ด ๋ณด๋‚ด์ฃผ๊ธฐ

* [Server] ai์™€ ๊ด€๋ จํ•œ db ๊ตฌ์กฐ ๊ฐœ์„  (#220)

* refactor: ๊ฒฝ๋กœ ์ด๋ฆ„ ์ˆ˜์ • entity->entities

* feat: category ์—”ํ‹ฐํ‹ฐ ์ƒ์„ฑ

* feat: reason ๋ชจ๋ธ ์ƒ์„ฑ ๋ฐ ๊ฐ ํ…Œ์ด๋ธ” relation ์„ค์ •

* feat: ๊ฐ ํ…Œ์ด๋ธ” relation ์ˆ˜์ • ๋ฐ ์˜์กด์„ฑ ์ฃผ์ž…

* feat: relation ๋ฐฉ์‹ ๋ณ€๊ฒฝ์œผ๋กœ ์ธํ•œfolders.service.ts ๋ฉ”์„œ๋“œ ์ˆ˜์ •, ์˜์กด์„ฑ ์ฃผ์ž…

* feat: admin ํŽ˜์ด์ง€ ํ•ญ๋ชฉ ์ž๋™ ์ถ”๊ฐ€ , ์‹œ์Šคํ…œ ์ƒํƒœ ๊ทธ๋ž˜ํ”„ ์ถ”๊ฐ€ (#223)

* feat: serverStatus ํ™•์ธ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: serverStatus ํ™•์ธ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* feat: ๋ชจ๋“  ๊ตฌ๋…์„ ๋ฐ›์•„์˜ค๋Š” ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* chore: ๋ถˆํ•„์š”ํ•œ ์ƒ์ˆ˜ ์ œ๊ฑฐ

* feat: admin page ์„œ๋ฒ„ ์ƒํƒœ ํ™•์ธ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* [Server] ์นดํ…Œ๊ณ ๋ฆฌ๋ณ„ ์•„์ดํ…œ ๊ฐœ์ˆ˜ ํ™•์ธ ๋ฐ ๊ฐœ์ˆ˜๋กœ item ์ƒ์„ฑ ๋กœ์ง (#228)

* feat: ์นดํ…Œ๊ณ ๋ฆฌ๋ณ„ ์•„์ดํ…œ ๊ฐœ์ˆ˜ ๋ฐ˜ํ™˜ํ•ด์ฃผ๋Š” api ์ƒ์„ฑ

* feat: ์นดํ…Œ๊ณ ๋ฆฌ๋ณ„ ์•„์ดํ…œ ๊ฐœ์ˆ˜ itemCount๋กœ pub๋„ ํ•˜๊ณ  ์‘๋‹ต๋„ ๋ฐ˜ํ™˜ํ•˜๋Š” ์„œ๋น„์Šค ํ•จ์ˆ˜ ๊ตฌํ˜„

* feat: generate-item api์— ๋Œ€ํ•œ controller ํ•จ์ˆ˜ ๊ตฌํ˜„

* feat: generate-item api์— ๋Œ€ํ•œ service ํ•จ์ˆ˜ ๊ตฌํ˜„

* [Server] ์นดํ…Œ๊ณ ๋ฆฌ api db ๋ฐฉ์‹์œผ๋กœ ์—…๋ฐ์ดํŠธ, ์ธ๊ณต์ง€๋Šฅ ์‘๋‹ต api db ์บ์‹ฑ ๊ตฌ์กฐ๋กœ ๊ฐœ์„  (#240)

* feat: category service ํ•จ์ˆ˜ ์ˆ˜์ •

* feat: category service ํ•จ์ˆ˜ ์š”์ฒญ ํ˜•ํƒœ ๋ณ€๊ฒฝ

* feat: ai ์ฒดํฌ๋ฆฌ์ŠคํŠธ ํ•ญ๋ชฉ ์‘๋‹ต api db ์บ์‹ฑ ๊ตฌ์กฐ๋กœ ๋ณ€๊ฒฝ

* refactor: jwt toekn ๋งŒ๋ฃŒ ์‹œ๊ฐ„ ํ™˜๊ฒฝ๋ณ€์ˆ˜๋กœ ๋ณ€๊ฒฝ (#250)

* feat: ์–ด๋“œ๋ฏผ ํŽ˜์ด์ง€ ai๊ด€๋ จ ๋ทฐ ์ถ”๊ฐ€ ๋ฐ ๊ด€๋ จ api ์ถ”๊ฐ€ (#260)

* feat: adminํŽ˜์ด์ง€ cpu ์‚ฌ์šฉ๋Ÿ‰ ํ†ตํ•ฉํ•ด์„œ ๋ณด์—ฌ์ฃผ๊ธฐ

* refactor: serverStatus ๋„คํŠธ์›Œํฌ ๊ด€๋ จ ์ œ๊ฑฐ

* fix: ์ฒดํฌ๋ฆฌ์ŠคํŠธ ai ์ƒ์„ฑ ๊ด€๋ฆฌ์ž๋งŒ ๊ฐ€๋Šฅํ•˜๋„๋ก ์ˆ˜์ •

* feat: admin ํŽ˜์ด์ง€ ai ์—ฐ๋™

* feat: Update main.yml

---------

Co-authored-by: YangDongsuk <51476641+YangDongsuk@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement ๊ฐœ์„  ๋˜๋Š” ํ”ผ๋“œ๋ฐฑ ๋ฐ˜์˜ server ์„œ๋ฒ„ ์ชฝ ์ด์Šˆ
Projects
Status: โœ… Done
2 participants