νμ μ€ν¬λ¦½νΈ
-
- [TypeScript] νκ²½ λ³μ νμ μ€μ νκΈ°
νκ²½ λ³μ νμ μ€μ νκΈ°λ€μ΄κ°λ©°νμ μ€ν¬λ¦½νΈμμ νκ²½ λ³μ(Environment Variable)μ νμ μ€λ₯κ° λ°μνμ§ μλλ‘ νμ μ μ€μ νλ λ°©λ²μ μ 리ν΄λ³Έλ€. λ°©λ²λ€μκ³Ό κ°μ νκ²½ λ³μ νμΌμ΄ μλ€κ³ ν΄λ³΄μ.μ΄μ μ΄ νκ²½ λ³μλ₯Ό νλ‘μ νΈ λ΄μ λ€λ₯Έ νμΌμμ λΆλ¬μμ μ¬μ©ν΄λ³Ό κ²μ΄λ€. (Next.js νλ μμν¬ μ¬μ©).env.localNEXT_PUBLIC_API_KEY="="***********"NEXT_PUBLIC_SPACE_ID="**************************" (1) @!@(Non-Null Assertion) μ°μ°μ μ¬μ©νκΈ°@!@λ₯Ό μ¬μ©νμ¬ κ°μ΄ @undefined@κ° μλμ νμ μ€ν¬λ¦½νΈμ λͺ μνλ€.νμ§λ§ μ΄ λ°©λ²μ ν΄λΉ νκ²½ λ³μκ° μ‘΄μ¬νμ§ μμ κ²½μ°, λ°νμ μλ¬κ° λ°μνλ€λ..
3 2024.12.09 -
- [Next.js] ν λ§ ν κΈ κΈ°λ₯ μ€μ νκΈ° (with shadcn/ui)
ν λ§ ν κΈ κΈ°λ₯ μ€μ νκΈ° (with shadcn/ui)λ€μ΄κ°λ©°Next.jsλ₯Ό μ΄μ©νμ¬ ν λ§ ν κΈ κΈ°λ₯μ μ€μ νλ λ°©λ²μ μ 리ν΄λ³Έλ€.μ΄ κ²μκΈμ λ΄μ©μ νμ μ€ν¬λ¦½νΈ(TypeScript)μ shadcn UI μ»΄ν¬λνΈ λΌμ΄λΈλ¬λ¦¬λ₯Ό λ°νμΌλ‘ μμ±λμλ€. λ°©λ²β μμ ν νλ¦Ώ μ½λλ₯Ό μ μ μ€νμΌμνΈ νμΌ(@globals.css@)μ λ£κΈ°μλμ μ¬μ΄νΈμμ μμ μκ² λ§λ λΌμ΄νΈ/λ€ν¬ λͺ¨λ μμ ν νλ¦Ώμ μ νν ν, μμ μ½λλ₯Ό 볡μ¬νλ€. shadcn/uiBeautifully designed components that you can copy and paste into your apps. Accessible. Customizable. Open Source.ui.shadcn.com κ·Έλ¦¬κ³ μ μ μ€νμΌμνΈ νμΌ(@/app/..
2024.11.05 -
- [React.ts] PropsWithChildren
PropsWithChildrenλ€μ΄κ°λ©°λ¦¬μ‘νΈ(React.ts)μμ μ¬μ©ν μ μλ @PropsWithChildren@ νμ μ λν΄ μ 리ν΄λ³Έλ€.μ΄ νμ μ 리μ‘νΈμ νμ μ€ν¬λ¦½νΈλ₯Ό ν¨κ» μ¬μ©ν λ μ¬μ©ν μ μλ€. PropsWithChildrenκ°λ νμ μ€ν¬λ¦½νΈ(TypeScript)μμ 리μ‘νΈ μ»΄ν¬λνΈμ μμ μμ(@children@)λ₯Ό νμ©νκ³ μ ν λ μ¬μ©νλ μ νΈλ¦¬ν° νμ λ³΄ν΅ μ»΄ν¬λνΈμ μ λ¬λλ κΈ°λ³Έ @props@ μΈμλ μμ μμλ₯Ό ν¬ν¨ν μ μμ λ μ μ©νκ² μ¬μ©λλ€.@PropsWithChildren@ νμ μ μ»΄ν¬λνΈκ° μμ μμλ₯Ό κ°μ§ μ μλλ‘ λͺ μνλ©°, @children@μ λͺ μμ μΌλ‘ μ μνμ§ μκ³ λ μ¬μ©ν μ μλλ‘ ν΄μ€λ€. μ¬μ© μμ import { PropsWithChildren } from ..
2024.11.05 -
- [TypeScript] ν΄λμ€(Class)
ν΄λμ€(Class)λ€μ΄κ°λ©°νμ μ€ν¬λ¦½νΈ(TypeScript)μμ μ¬μ©ν μ μλ ν΄λμ€(Class)μ λν΄ μ 리ν΄λ³Έλ€. ν΄λμ€(Class)κ°λ κ°μ²΄(Object)λ₯Ό μμ±νκΈ° μν μ€κ³λ(Blueprint)λ°μ΄ν°λ₯Ό μΊ‘μννκ³ , κ·Έ λ°μ΄ν°λ₯Ό μ‘°μνλ λ©μλλ₯Ό ν¬ν¨νμ¬ κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ°(OOP, Object Oriented Programming) ν¨ν΄μ λ°λ₯Έλ€.μμ(Inheritance)λ₯Ό μ§μνλ©°, 볡μ‘ν λ°μ΄ν° ꡬ쑰λ₯Ό μ½κ² μμ±ν μ μλ€. ν΄λμ€μ μμ±μ(Contructor)ν΄λμ€μμ μμ±μ(Constructor)λ μ μΈμ€ν΄μ€λ₯Ό μμ±ν λ νΈμΆλλ νΉλ³ν λ©μλμ΄λ€.μμ±μλ λ³΄ν΅ κ°μ²΄μ μ΄κΈ° μνλ₯Ό μ€μ νλ λ° μ¬μ©λλ€.class Book { // ν΄λμ€ μμ± μ μΈ title: string; au..
2024.10.12 -
- [TypeScript] μ λ€λ¦(Generic)
μ λ€λ¦(Generic)λ€μ΄κ°λ©°νμ μ€ν¬λ¦½νΈ(TypeScript)μ μ λ€λ¦(Generic)μ λν΄ μ 리ν΄λ³Έλ€. μ λ€λ¦(Generic)κ°λ μ½λμ μ¬μ¬μ©μ±μ λμ΄κ³ λ€μν νμ μ λν΄ λμν μ μκ² ν΄μ£Όλ κΈ°λ₯μ λ€λ¦μ μ¬μ©νλ©΄ νμ μ μ°μ νΉμ νμ§ μκ³ , λμ€μ μ¬μ©ν λ κ·Έ νμ μ μ§μ ν μ μλ€.λν, νμ μΆλ‘ μ΄ λ κ°νλκ³ , λ°λ³΅μ μΈ νμ μ½λλ₯Ό μ€μΌ μ μλ€.ν¨μ, ν΄λμ€, μΈν°νμ΄μ€, νμ λ±μ μ λ€λ¦μ μ μ©ν μ μλ€. κΈ°λ³Έ λ¬Έλ²μ λ€λ¦μ μ¬μ©ν λλ νμ 맀κ°λ³μ(Type Parameter)λ₯Ό μ μνλ€.λ³΄ν΅ @@μ κ°μ νμμΌλ‘ μ¬μ©νλ©°, μνλ μ΄λ¦μ μ§μ νλ©΄ λλ€.@T@, @K@, @U@ λ±μ΄ κ΄μ΅μ μΈ μ΄λ¦μΌλ‘ μ°μΈλ€. μμ μ½λ 1 : ν¨μμμ μ λ€λ¦ μ¬μ©νκΈ°@identity@ ν¨μλ μ λ ₯λ°..
2024.10.12 -
- [TypeScript] μΈν°νμ΄μ€(Interface)
μΈν°νμ΄μ€(Interface)λ€μ΄κ°λ©°νμ μ€ν¬λ¦½νΈ(TypeScript)μ μΈν°νμ΄μ€(Interface) νμ μ λν΄ μ 리ν΄λ³Έλ€. μΈν°νμ΄μ€(Interface)κ°λ κ°μ²΄μ ꡬ쑰λ₯Ό μ μνλ λ° μ¬μ©λλ νμ κ°μ²΄κ° κ°μ ΈμΌ ν μμ±, κ·Έ μμ±μ νμ , κ·Έλ¦¬κ³ λ©μλλ₯Ό μ§μ ν μ μλ€.μλ°μ€ν¬λ¦½νΈμλ μ‘΄μ¬νμ§ μμΌλ©°, νμ μ€ν¬λ¦½νΈμμ μ¬μ© κ°λ₯νλ€.μ½λμ κ°λ μ± λ° μ μ§λ³΄μλ₯Ό μ½κ² νκ³ , νμ μμ μ±μ λμ¬μ€λ€. μ£Όμ κΈ°λ₯κ°μ²΄κ° νΉμ μμ±λ€μ λ°λμ κ°μ§κ³ μμ΄μΌ νλ ꡬ쑰λ₯Ό μ μν μ μλ€.νΉμ μμ±μ μ νμ μΌλ‘ ν¬ν¨λ μ μλλ‘ μ μν μ μλ€.μ) @age?: number;@ν¨μμ 맀κ°λ³μμ λ°νκ°μ νμ λ μΈν°νμ΄μ€λ‘ μ μν μ μλ€.ν΄λμ€λ μΈν°νμ΄μ€λ₯Ό @implements@ ν€μλλ₯Ό ν΅ν΄ ꡬνν μ μλ€...
2024.10.12 -
- [TypeScript] Zod λΌμ΄λΈλ¬λ¦¬
Zod λΌμ΄λΈλ¬λ¦¬λ€μ΄κ°λ©°νμ μ€ν¬λ¦½νΈ(TypeScript)μμ μ ν¨μ± κ²μ¬λ₯Ό μ½κ² ν΄μ£Όλ Zod λΌμ΄λΈλ¬λ¦¬μ λν΄ μ 리ν΄λ³Έλ€. Zod λΌμ΄λΈλ¬λ¦¬κ°λ νμ μ€ν¬λ¦½νΈ(TypeScript)μμ μ ν¨μ± κ²μ¬λ₯Ό μ½κ² ν΄μ£Όλ μ€ν€λ§ μ μΈ λ° λ°μ΄ν° κ²μ¦ λΌμ΄λΈλ¬λ¦¬νμ μμ μ±μ μ μ§νλ©΄μ λ°μ΄ν°μ μ ν¨μ±μ κ²μ¬ν μ μλλ‘ μ€κ³λμ΄ μλ€.λ°μ΄ν° κ²μ¦μ λμ± λͺ ννκ³ μ§κ΄μ μΌλ‘ μνν μ μλλ‘ λμμ€λ€. μ€μΉ$ npm install zod # yarn add zod κΈ°λ³Έ μ¬μ©λ²λ€μκ³Ό κ°μ΄ κ°λ¨ν λ¬Έμμ΄(String) μ€ν€λ§λ₯Ό λ§λ€ μ μλ€.import { z } from "zod";// creating a schema for stringsconst mySchema = z.string();// parsingmySchem..
2024.10.11 -
- [TypeScript] νμ κ°λ(Type Guard)
νμ κ°λ(Type Guard)λ€μ΄κ°λ©°νμ μ€ν¬λ¦½νΈ(TypeScript)μ νμ κ°λ(Type Guard)μ λν΄ μ 리ν΄λ³Έλ€. νμ κ°λ(Type Guard)κ°λ νμ μ€ν¬λ¦½νΈμμ λ³μμ νμ μ μ’νλ λ°©λ²μ£Όλ‘ 쑰건문(Conditional Statement)μ μ¬μ©νμ¬ νΉμ νμ μμ νμΈν ν, ν΄λΉ νμ μ λ§λ μμ ν μμ μ μνν μ μλλ‘ λμμ€λ€.νμ κ°λλ₯Ό μ¬μ©νλ©΄ μ»΄νμΌ μμ μ νμ μ€λ₯λ₯Ό λ°©μ§νκ³ , μ½λμ κ°λ μ±κ³Ό μμ μ±μ λμΌ μ μλ€.νμ κ°λλ₯Ό ν¨κ³Όμ μΌλ‘ μ¬μ©νλ©΄ λ°νμ μ€λ₯λ₯Ό μ€μ΄κ³ , κ°λ° κ³Όμ μμ νμ κ΄λ ¨ λ²κ·Έλ₯Ό 미리 λ°©μ§ν μ μμΌλ©°, μ½λμ μλλ₯Ό λͺ ννκ² νννμ¬ νμ μ κ°λ μ±μ λμ΄λ λ° ν° λμμ΄ λλ€. νμ κ°λλ λ°νμμμ λ³μμ νμ μ νμΈνμ¬ νμ μ€ν¬λ¦½νΈμκ² ν΄λΉ λ³μ..
2024.10.10 -
- [TypeScript] λͺ¨λ λ°©μ μ¬μ©νκΈ°
λͺ¨λ λ°©μ μ¬μ©νκΈ°λ€μ΄κ°λ©°νμ μ€ν¬λ¦½νΈ(TypeScript)μμ λͺ¨λ λ°©μμ μ¬μ©νλ λ°©λ²μ μ 리ν΄λ³Έλ€. λ°©λ²νμ μ€ν¬λ¦½νΈ νμΌ(@.ts@/@.tsx@)μ κΈ°λ³Έμ μΌλ‘ λͺ¨λ(Module)λ‘ κ°μ£Όλμ§ μκ³ , μ μ λ²μμ μ€ν¬λ¦½νΈλ‘ μ²λ¦¬λλ€.μ¬λ¬ νμΌμμ λμΌν λ³μλͺ μ μμ±ν κ²½μ°, μ€λ₯κ° λ°μνλ€.fileA.tslet name = 'stickman';const susan = 'susan'; fileB.tsconst susan = 'susan'; // μ€λ₯ λ°μ μ΄λ, λ€μκ³Ό κ°μ΄ 2κ°μ§ λ°©λ²μΌλ‘ νμ μ€ν¬λ¦½νΈ νμΌμ λͺ¨λλ‘ λ³νν μ μλ€. λ°©λ² β : @import@, @export@ λ¬Έ μ¬μ©νκΈ°νμ μ€ν¬λ¦½νΈ νμΌμ @import@ λλ @export@ λ¬Έμ μΆκ°νμ¬ ES6 λͺ¨λλ‘ μ·¨κΈλκ² νλ λ°©λ²μ΄λ€. ..
2024.10.10 -
- [TypeScript] μΈν°νμ΄μ€(Interface)μ νμ λ³μΉ(Type Alias) λΉκ΅
μΈν°νμ΄μ€(Interface)μ νμ λ³μΉ(Type Alias) λΉκ΅λ€μ΄κ°λ©°μΈν°νμ΄μ€(Interface)μ νμ λ³μΉ(Type Alias)μ νμ μ€ν¬λ¦½νΈμμ νμ μ μ μνλ λ°©λ²μ΄λ€.νμ μ€ν¬λ¦½νΈ(TypeScript)μμ μΈν°νμ΄μ€(Interface)μ νμ λ³μΉ(Type Alias)μ μ°¨μ΄μ λν΄ μ 리ν΄λ³Έλ€. μΈν°νμ΄μ€(Interface)κ°λ μΈν°νμ΄μ€λ μ£Όλ‘ κ°μ²΄(Object)μ ꡬ쑰λ₯Ό μ μνλ λ° μ¬μ©λλ€.μ£Όλ‘ κ°μ²΄μ μμ±κ³Ό λ©μλλ₯Ό μ μνλ λ° μ¬μ©λλ€.μΈν°νμ΄μ€λ₯Ό ꡬννλ κ°μ²΄λ ν΄λΉ μΈν°νμ΄μ€μμ μꡬνλ μμ±μ΄λ λ©μλλ₯Ό λ°λμ ν¬ν¨ν΄μΌ νλ€.μ½λμμ κ°μ²΄μ ꡬ쑰λ₯Ό λͺ ννκ² μ μνκ³ , λ€λ₯Έ μ½λμμ ν΄λΉ ꡬ쑰λ₯Ό λ°λ₯΄λλ‘ κ°μ ν λ μ μ©νλ€.@interface@ ν€μλλ₯Ό μ΄μ©νμ¬ μμ±ν μ μλ€...
2024.10.09 -
- [TypeScript] ! μ°μ°μ(Non-null Assertion Operator)
! μ°μ°μ(Non-null Assertion Operator)λ€μ΄κ°λ©°νμ μ€ν¬λ¦½νΈ(TypeScript)μμ μ¬μ©λλ @!@ μ°μ°μ(Non-null Assertion Operator)μ λν΄ μ 리ν΄λ³Έλ€.μ΄ μ°μ°μλ νμ μ€ν¬λ¦½νΈμμλ§ μ¬μ©ν μ μλ€. ! μ°μ°μ(Non-null Assertion Operator)κ°λ μ»΄νμΌλ¬μκ² ν΄λΉ ννμμ΄ @null@ λλ @undefined@κ° μλμ 보μ₯νλ€κ³ μ리λ μν μ νλ μ°μ°μ μ¬μ© μlet value: string | null | undefined = "Hello";// μ¬κΈ°μ νμ μ€ν¬λ¦½νΈλ valueκ° null λλ undefinedμΌ μ μλ€κ³ κ²½κ³ ν μ μλ€.let length = value!.length; // ! μ°μ°μλ₯Ό μ¬μ©νμ¬ μ»΄νμΌλ¬ κ²½κ³ λ₯Ό..
2024.08.20 -
- [TypeScript] MODULE_NOT_FOUND (Error: Cannot find module ~\react-scripts\bin\react-scripts.js) μ€λ₯ ν΄κ²° λ°©λ²
MODULE_NOT_FOUND (Error: Cannot find module ~\react-scripts\bin\react-scripts.js) μ€λ₯ ν΄κ²° λ°©λ²λ€μ΄κ°λ©°μλμ κ°μ νμ μ€ν¬λ¦½νΈ(TypeScript) μ»΄νμΌ μ λ°μνλ κ²½λ‘ κ΄λ ¨ μ€λ₯λ₯Ό ν΄κ²°νλ λ°©λ²μ μ 리ν΄λ³Έλ€.> my-react-app@0.1.0 start > react-scripts start 'Learn\react\react-beginner\my-react-app\node_modules\.bin\' is not recognized as an internal or external command, operable program or batch file. node:internal/modules/cjs/loader:1080 throw ..
2024.08.20 -
- [TypeScript] μ λ€λ¦(Generic)
μ λ€λ¦(Generic)λ€μ΄κ°λ©°νμ μ€ν¬λ¦½νΈ(TypeScript)μμ μ¬μ©λλ μ λ€λ¦(Generic)μ λν΄ μ 리ν΄λ³Έλ€. μ λ€λ¦(Generic)κ°λ μ μ°νλ©΄μλ νμ μμ μ±μ μ 곡νλ λ°©λ²μ λ€λ¦μ μ¬μ©νλ©΄ ν¨μλ ν΄λμ€λ₯Ό λ€μν νμ κ³Ό ν¨κ» μ¬μ©ν μ μμΌλ©°, νμ μ ꡬ체μ μΌλ‘ μ§μ ν μ μλ€. μ λ€λ¦μ νμμ±μλμ @insertAtBeginning@ ν¨μλ₯Ό 보μ.μ΄ ν¨μλ λ°°μ΄κ³Ό κ°μ 맀κ°λ³μλ‘ λ°μ, κ°μ΄ λ°°μ΄μ 맨 μμ μΆκ°λ μλ‘μ΄ λ°°μ΄μ λ°ννλ€.function insertAtBeginning(array: any[], value: any) { return [value, ...array];}const updatedArray = insertAtBeginning(demoArray, -1); // [-1,..
2024.08.20 -
- [TypeScript] νμ μ€ν¬λ¦½νΈμ μλ£ν(DataType)
νμ μ€ν¬λ¦½νΈμ μλ£ν(TypeScript)λ€μ΄κ°λ©°νμ μ€ν¬λ¦½νΈ(TypeScript)μμ μ¬μ©λλ μλ£ν(DataType)μ κ°λ¨νκ² μ 리ν΄λ³Έλ€. νμ μ€ν¬λ¦½νΈμ μλ£νβ μμ μλ£ν(Primitives)@number@ : μ«μν (μ μ, μμ λ±)@string@ : λ¬Έμμ΄ @boolean@: @true@ λλ @false@ κ°@null@, @undefined@ : κΈ°λ³Έμ μΌλ‘ λͺ¨λ νμ μ μλΈνμ μΌλ‘ μ·¨κΈλλ€.// (1) μ«μlet age: number;age = 25;// => let age: number = 25;// (2) λ¬Έμμ΄let name: string;name = "Peter";// => let name: string = "Peter";// (3) Booleanlet isActive: boolea..
2024.08.20 -
- [TypeScript] νμ μ€ν¬λ¦½νΈ νλ‘μ νΈ λ§λ€κΈ°
νμ μ€ν¬λ¦½νΈ νλ‘μ νΈ λ§λ€κΈ°λ€μ΄κ°λ©°νμ μ€ν¬λ¦½νΈ(TypeScript) νλ‘μ νΈλ₯Ό λ§λ€μ΄λ³΄μ. νμ μ€ν¬λ¦½νΈ νλ‘μ νΈνμ μ€ν¬λ¦½νΈ κ°λ°μ Node.js νλ‘μ νΈλ₯Ό λ§λ λ€μ, κ°λ° μΈμ΄λ₯Ό νμ μ€ν¬λ¦½νΈ(TypeScript)λ‘ μ€μ νλ λ°©μμΌλ‘ μ§ννλ€.Node.js νλ‘μ νΈλ λλ ν°λ¦¬λ₯Ό νλ λ§λ€κ³ μ¬κΈ°μ @package.json@μ΄λΌλ μ΄λ¦μ νμΌμ λ§λλ κ²μΌλ‘ μμνλ€.λ³΄ν΅ @package.json@ νμΌμ ν°λ―Έλμ @npm init@ λͺ λ Ήμ μ€νν΄ μμ±νλ€.> mkdir study> cd study> npm init --yWrote to C:\Users\devastra\Desktop\TypeScript_Study\ch02-01\package.json:{ "name": "study", "version":..
2023.10.17 -
- [TypeScript] μλμ°μμ μ€μΏ±(Scoop) μ€μΉνκΈ°
μλμ°μμ μ€μΏ±(Scoop) μ€μΉνκΈ°μ€μΏ±(Scoop)μ΄λ?λͺ λ Ήμ΄λ‘ μ½κ² νλ‘κ·Έλ¨μ μ€μΉνκ³ κ΄λ¦¬ν΄μ£Όλ λꡬμ€μΏ±μ νμ μ€ν¬λ¦½νΈμ μ§μ μ μΈ κ΄κ³λ μμ§λ§, νμ μ€ν¬λ¦½νΈ κ°λ° νκ²½μ μ€μ νλ λ° μ μ©ν λꡬμ΄λ€. μ€μΏ± μ€μΉ λ°©λ²μ°μ [κ΄λ¦¬μ λͺ¨λ]λ‘ νμμ Έ(PowerShell)μ μ€ννλ€.κ·Έλ¦¬κ³ μλμ λͺ λ Ήλ€μ μ°¨λ‘λλ‘ μ€ννλ€.> Set-ExecutionPolicy RemoteSigned -scope CurrentUser # λͺ λ Ή μ€ν ν [A] μ λ ₯> $env:SCOOP='C:\Scoop' # νλ‘κ·Έλ¨ μ€μΉ κ²½λ‘ μ§μ > iex "& {$(irm get.scoop.sh)} -RunAsAdmin" # Scoop μ€μΉ λͺ¨λ κ²μ΄ μ μμ μΌλ‘ μ€μΉλμλ€λ©΄ @C:\Scoop@ λλ ν°λ¦¬κ° λ§λ€μ΄μ§κ³ , κ·Έ..
2023.10.12