๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

TS13

[Nest] : Scheduler ๋ฅผ ์‚ฌ์šฉํ•œ SoftDeleteData ์™„์ „ ์‚ญ์ œ Reference 1 Reference 2 Reference 3 Reference 4 Reference 5 Reference 6 ๊ตฌํ˜„ํ•˜๊ณ ์ž ํ•˜๋Š” ๊ธฐ๋Šฅ nest.js/typeORM ์˜ softRemove ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ , ํ•ด๋‹น ๋ฐ์ดํ„ฐ์˜ deletedAt ์ปฌ๋Ÿผ์ด ํ˜„์žฌ ์‹œ๊ฐ„ ๊ธฐ์ค€ ํŠน์ • ๊ธฐ๊ฐ„์ด ์ง€๋‚œ ๋ฐ์ดํ„ฐ๋ผ๋ฉด ์„œ๋ฒ„์—์„œ ์ž๋™์œผ๋กœ ํ•ด๋‹น ๋ฐ์ดํ„ฐ๋ฅผ DB์—์„œ ์˜๊ตฌ์‚ญ์ œํ•ด์ฃผ๋Š” ๊ธฐ๋Šฅ ํ•„์š” ํŒจํ‚ค์ง€ npm install --save @nestjs/schedule ๋„ค์ŠคํŠธ์˜ ์Šค์ผ€์ฅด๋Ÿฌ ํŒจํ‚ค์ง€๊ฐ€ ํ•„์š”ํ•˜๋‹ค. ํ˜„์žฌ ์†Œํ”„ํŠธ ๋ฆฌ๋ฌด๋ธŒ ์‹œํ‚ค๋Š” ๋กœ์ง // ์ด๋ ฅ์„œ - ์‚ญ์ œ async removeResume(resumeId: number): Promise { // ์‚ญ์ œํ•  ์ด๋ ฅ์„œ ํ™•์ธ const resume = await this.resumeRepos.. 2023. 8. 23.
[TS] : utility type TS utility type Partial Partial ํƒ€์ž…์€ ํƒ€์ž… T์˜ ๋ชจ๋“  ์†์„ฑ์„ ์„ ํƒ์ ์œผ๋กœ ๋งŒ๋“ค์–ด์ค€๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๊ธฐ์กด ํƒ€์ž…์˜ ์ผ๋ถ€ ์†์„ฑ๋งŒ ์ œ๊ณตํ•˜๋Š” ๊ฐ์ฒด๋ฅผ ์‰ฝ๊ฒŒ ์ƒ์„ฑํ•  ์ˆ˜๊ฐ€ ์žˆ๋‹ค. Partial ์‚ฌ์šฉ ์‚ฌ๋ก€ interface Person { name: string; age: number; } const updatePerson = (person: Person, fields: Partial): Person => { return { ...person, ...fields }; }; const person: Person = { name: "Spartan", age: 30 }; const changedPerson = updatePerson(person, { age: 31 }); Person์ด๋ผ๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋Š” .. 2023. 8. 22.
[TS] : ์ ‘๊ทผ ์ œํ•œ์ž ์ ‘๊ทผ ์ œํ•œ์ž ์ ‘๊ทผ ์ œํ•œ์ž ? TS ์—์„œ๋Š” ์ ‘๊ทผ ์ œํ•œ์ž(access modifiers)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํด๋ž˜์Šค์˜ ๋ฉค๋ฒ„(์†์„ฑ๊ณผ ๋ฉ”์„œ๋“œ)์— ๋Œ€ํ•œ ์ ‘๊ทผ ๊ถŒํ•œ์„ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋‹ค. ์ ‘๊ทผ ์ œํ•œ์ž๋Š” ํด๋ž˜์Šค ๋‚ด๋ถ€์™€ ์™ธ๋ถ€์—์„œ ํ•ด๋‹น ์†์„ฑ์— ์ ‘๊ทผํ•˜๋Š” ๋ฒ”์œ„๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. TS ์˜ ์ฃผ์š” ์ ‘๊ทผ ์ œํ•œ์ž 1. public 2. protected 3. private public public ์€ ๊ฐ€์žฅ ๊ธฐ๋ณธ ๊ฐ’์ด๋‹ค. ๋ฉค๋ฒ„์— public ์ ‘๊ทผ ์ œํ•œ์ž๊ฐ€ ์„ค์ •๋˜์–ด ์žˆ๋‹ค๋ฉด, ํ•ด๋‹น ๋ฉค๋ฒ„๋Š” ํด๋ž˜์Šค ์™ธ๋ถ€์—์„œ๋„ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. class Person { public name: string; constructor(name: string) { this.name = name; } } const person = new Person("Alice"); console... 2023. 8. 22.
[TS] : any unknown union any < unknown < union ๊ฐœ์ธ์ ์œผ๋กœ TS ๊ฐ€ JS ์™€ ๊ฐ€์žฅ ํฐ ์ฐจ๋ณ„์ ์„ ๋‘๊ณ  ์žˆ๋Š” ๋ถ€๋ถ„์ด๋ผ ํ•จ์€, ๋ฐ์ดํ„ฐ์˜ ํ˜•์‹์„ "๋ช…์‹œ"ํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„์ด๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค. ๋ฐ์ดํ„ฐ์˜ ํƒ€์ž…์ด "๋Ÿฐํƒ€์ž„"์— ๊ฒฐ์ •๋˜๋Š” JS์™€ ๋‹ฌ๋ฆฌ TS๋Š” ์ปดํŒŒ์ผ ๊ณผ์ •์—์„œ ํƒ€์ž…์ด ์ •ํ•ด์ง€๊ธฐ ๋•Œ๋ฌธ์—, ๋ณดํ†ต์€ TS์—์„œ ๊ฐ ๋ฐ์ดํ„ฐ์˜ ํƒ€์ž…์„ ๋ช…์‹œ์ ์œผ๋กœ ์ง€์ •ํ•ด ์ฃผ์ง€๋งŒ, ์–ด์ฉ” ์ˆ˜ ์—†์ด ๊ฐ€๋ณ€์ ์ธ ํƒ€์ž…์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด any๋ฅผ ์“ฐ๊ธฐ๋ณด๋‹ค๋Š” unknown์„ ์‚ฌ์šฉ๋Š”๊ฒƒ์ด ์ข‹์€ ๊ฒƒ ๊ฐ™๋‹ค. ๊ทธ๋ฆฌ๊ณ , ๊ฐ€๋ณ€์ ์ธ ํƒ€์ž…์„ ์ผ์ผ์ด ์ •์˜ํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด union ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ œ์ผ ์ข‹์€ ๋ฐฉ์•ˆ์ด๋ผ๋Š” ์ƒ๊ฐ์ด ๋“ ๋‹ค. ๋ฌผ๋ก  ๊ฐœ์ธ์ ์ธ ์ƒ๊ฐ์ด๋‹ค. any TS ์—์„œ any ํƒ€์ž…์€ ๋ชจ๋“  ํƒ€์ž…์˜ ์Šˆํผ ํƒ€์ž…์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค. ์–ด๋–ค ํƒ€์ž…์˜ ๊ฐ’์ด๋“  ์ €์žฅํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์˜๋ฏธ๋ฅผ ๊ฐ–.. 2023. 8. 21.
[TS] : tuple enum ๊ธฐ๋ณธํƒ€์ž… ํŠœํ”Œ (tuple) ? ํŠœํ”Œ์ด๋ž€ ์„œ๋กœ ๋‹ค๋ฅธ ํƒ€์ž…์˜ ์›์†Œ๋ฅผ "์ˆœ์„œ"์— ๋งž๊ฒŒ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” ํŠน์ˆ˜ ํ˜•ํƒœ์˜ "๋ฐฐ์—ด"์„ ๋œปํ•œ๋‹ค. ํŠœํ”Œ๊ณผ ๋ฐฐ์—ด์˜ ์ฐจ์ด ? ๋ฐฐ์—ด์€ number[], string[] ์ฒ˜๋Ÿผ ๊ฐ™์€ ํƒ€์ž…์˜ ์›์†Œ๋งŒ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค. const testScores: number[] = [90, 85, 78, 92, “88”]; ์œ„์˜ ์ฝ”๋“œ์ฒ˜๋Ÿผ ๋งˆ์ง€๋ง‰ ์›์†Œ๋ฅผ string ํƒ€์ž…์œผ๋กœ ๋„ฃ๊ฒŒ๋˜๋ฉด ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜๊ฒŒ ๋œ๋‹ค. ์ฆ‰, ๊ฐ™์€ ํƒ€์ž…์˜ ์›์†Œ๋งŒ ์ทจ๊ธ‰ํ•  ์ˆ˜ ์žˆ๋‹ค. ํŠœํ”Œ์€ ์–ด๋–ค ํƒ€์ž…์˜ ์›์†Œ๋ฅผ ํ—ˆ์šฉํ•  ๊ฒƒ์ธ์ง€ ์ˆœ์„œ์— ๋งž๊ฒŒ ์ •์˜๋งŒ ํ•ด์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์–ผ๋งˆ๋“ ์ง€ ํ—ˆ์šฉ๋œ ํƒ€์ž…์˜ ๋ฐ์ดํ„ฐ๋“ค์„ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ํŠน์ง•์ด ์žˆ๋‹ค. ํŠœํ”Œ ์‚ฌ์šฉ ์‚ฌ๋ก€ const person: [string, number, boolean] = ['Spartan', 2.. 2023. 8. 18.
[TS] : .d.ts @types ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ TS ๋Š” @types ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ด์šฉํ•ด์„œ ์™ธ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ๋Œ€ํ•œ ํƒ€์ž… ์ •๋ณด๋ฅผ ์ œ๊ณตํ•œ๋‹ค !! ์œ„์— ์žˆ๋Š” ์ˆ˜๋งŽ์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ๋””๋ ‰ํ† ๋ฆฌ์— ๋“ค์–ด๊ฐ€๋ณด๋ฉด ์—„์ฒญ๋‚˜๊ฒŒ ๋งŽ์€ .d.ts ํŒŒ์ผ๋“ค์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. .d.ts ? ์œ„ ํŒŒ์ผ์€ JS์˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ TS์˜ ์ฝ”๋“œ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ๋…€์„์ด๋‹ค. import ํ•˜๊ณ ์‹ถ์€ JS ์˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์žˆ๋‹ค๋ฉด ํ•ด๋‹น ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์–ด๋–ค ํƒ€์ž…์ •๋ณด๋ฅผ ์‚ฌ์šฉํ•˜๋Š”์ง€ .d.ts ํŒŒ์ผ์ด ํƒ€์ž…์„ ์ •์˜ํ•ด ์ฃผ๋Š” ๊ฒƒ์ด๋‹ค. ๊ทธ๋ ‡๊ฒŒ TS ์—์„œ JS์˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค. .d.ts ํŒŒ์ผ์„ ํ†ตํ•ด tsc ๋Š” ๋‹ค์Œ ์ •๋ณด๋ฅผ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ์™ธ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ํ•จ์ˆ˜ ํƒ€์ž… ์ •๋ณด ์™ธ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํด๋ž˜์Šค ํƒ€์ž… ์ •๋ณด ์™ธ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ฐ์ฒด ํƒ€์ž… ์ •๋ณด ๊ทธ๋Ÿฌ๋‹ˆ JS์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ .. 2023. 8. 17.