Language (11) ์ธ๋ค์ผํ ๋ฆฌ์คํธํ [Go] Go ํ๊ฒฝ์ค์ 1. Go ๋ฐํ์ ์ค์นGo ํํ์ด์ง์์ ๋ฐํ์์ ์ค์นํ๋ค.๋๋ M1 ๋งฅ์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ARM64๋ก ์ค์นํ๋ค.๋ฒ์ ๋ช ๋ น์ด๋ก ์ฌ๋ฐ๋ฅด๊ฒ ์ค์น๋๋์ง ํ์ธํ๋ค.go --version2. ํ๋ก์ ํธ ์คํํ๋ก์ ํธ ์ด๊ธฐํ ๋ช ๋ น์ด๋ฅผ ์ํํ๋ค.์คํ ํ go.mod ํ์ผ์ด ์๊ธฐ๋๋ฐ, ์ด๋ NodeJS์์ package.json, Python์ requirements.txt์ ๊ฐ์ ๊ฒ์ด๋ค.go mod init github.com/๊ณ์ ๋ช /์ ์ฅ์๋ช main.go ํ์ผ์ ์์ฑํ๊ณ ๊ทธ ์์ ๊ฐ๋จํ ์ฝ๋๋ฅผ ์์ฑํ๋ค.package main import "fmt" func main() { fmt.Println("Welcom to Nomad Coin!"); }๋ค์ ๋ช ๋ น์ด๋ก ์คํํด๋ณธ๋ค.go run main.go3. ์๋ํฐ ์ค์ ๋๋ VSC.. [Go] Slice, Pointer, Struct ์ ๋ฆฌ Array vs SliceArrayPython, JS์ ๋ฌ๋ฆฌ Golang์ array๋ ์ ํด์ง ๊ธธ์ด๊ฐ ์๋ค.// Arrayfoods := [3]string{"kimchi", "pizza", "pasta"}for _, food :=range foods { fmt.Println(food)}// ๋๋for i := 0; i kimchi> pizza> pastaSliceslice๋ ๊ฐ๋ณ ๊ธธ์ด์ ๋ฐฐ์ด์ด๋ค. ๋๊ดํธ ์์ ์ซ์๋ฅผ ์ง์ฐ๋ฉด slice๊ฐ ๋๋ค.slice์ ์์๋ฅผ ์ถ๊ฐํ ๋๋ append ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๊ณ ๋ณต์ฌ๋ณธ์ผ๋ก ์๋ณธ slice๋ฅผ ์ ๋ฐ์ดํธ ํด์ค์ผ ํ๋ค.// Slicefoods := []string{"kimchi", "pizza", "pasta"}fmt.Printf("%v\n", foods)> ki.. [TypeScript] ์ค์ฒฉ๋ ๊ฐ์ฒด์ ๊ฐ์ ํ์ ์ผ๋ก ๋ง๋ค๊ณ ์ถ์ ๋ ์ค์ฒฉ๋ ๊ฐ์ฒด์์ ๊ฐ๋ง ๋ฝ์์ ํ์ ์ผ๋ก ๋ง๋ค ์ ์์๊น?๐ค const ENDPOINTS = { AUTH: { SIGN_UP: 'POST /auth/sign-up', SIGN_IN: 'POST /auth/sign-in' }} ๋ง์ฝ ์ด๋ฐ ํํ์ ๊ฐ์ฒด๊ฐ ์๋ค๊ณ ํด๋ด ์๋ค. ์ด ๊ฐ์ฒด์ ๊ฐ์ ์ฌ์ฉํ๋ ค๋ฉด ENDPOINTS.AUTH.SIGN_UP ์ผ๋ก ์ ๊ทผํ ์ ์์ต๋๋ค. ์ ๊ฐ ํ๊ณ ์ถ์ ๊ฒ์ ์ด๋ ๊ฒ ์ค์ฒฉ๋ ๊ฐ์ฒด์์ value๋ง ๋ชจ์์ ํ๋์ ํ์ ์ผ๋ก ์ฌ์ฉํ๋ ๊ฒ์ ๋๋ค. ์๋์ผ๋ก type Endpoint = 'POST /auth/sign-up' | 'POST /auth/sign-in' | ... ๋ก ์ ์ธํ ์๋ ์๊ฒ ์ง๋ง, ์ด ๊ฐ์ฒด์ ๋ชธ์ง์ด ํจ์ฌ ๋ ํฌ๋ค๊ณ ํ ๋๋ ๊ฝค๋ ๊ท์ฐฎ๊ณ ๋๋ฌ์ด ์ฝ๋๊ฐ ๋ .. [JavaScript] parseInt( ) vs Number( ) Javascript์์ parseInt( )์ Number( )์ ์ฐจ์ด๋ฅผ ์ ๋ฆฌํด๋ณด์์ต๋๋ค. parseInt( ) ๋ฌธ์์ด์ ํ์ฑํด์ ํน์ ์ง์์ ์ ์๋ฅผ ๋ฐํํฉ๋๋ค. ์ฒซ ๋ฒ์งธ ๋งค๊ฐ๋ณ์๋ string, ๋ ๋ฒ์งธ ๋งค๊ฐ๋ณ์๋ radix ์ ๋๋ค.๋ฌธ์์ด์์ ์ฒซ ๋ฒ์งธ ์ซ์ ๋ถ๋ถ์ ์ ์๋ก ๋ณํํ๊ณ , ์์์ ๊ณผ ์ซ์ ์ดํ์ ๋ฌธ์์ด์ ๋ฌด์ํฉ๋๋ค.radix๊ฐ 2~36 ๋ฒ์์ ๊ฐ์ด ์๋๊ฑฐ๋, ๊ณต๋ฐฑ์ด ์๋ ์ฒซ ๋ฌธ์๋ฅผ ์ ์๋ก ๋ณํํ ์ ์๋ ๊ฒฝ์ฐ NaN์ ๋ฐํํฉ๋๋ค.parseInt("123"); // 123 (๋ฌธ์์ด์ ์ ์๋ก ๋ณํ)parseInt("123.45"); // 123 (์์์ ์ดํ ์ซ์๋ ๋ฌด์)parseInt("123abc"); // 123 (์ซ์ ์ดํ์ ๋ฌธ์๋ ๋ฌด์)parseInt(" .. [TypeScript] Class vs Interface vs Type ์ฐจ์ด์ ์ ๋ฆฌ JavaScript Class vs TypeScript Class 1. ์์ฑ ์ด๊ธฐํ ์ฝ๋๋ฅผ ์๋ตํ ์ ์๋ค.TS Class๋ ์์ฑ์์ ๋งค๊ฐ๋ณ์ ํ์ ์ ์ธ๊ณผ ๋์์ ์ ๊ทผ ์ ์ด์(+readonly)๋ง ์ฌ์ฉํ๋ฉด ์์ฑ ์ด๊ธฐํ๋ฅผ ํ ์ ์๋ค.์ด๋๋ ์์ฑ์ด public์ด์ด๋ ๋ช ์ํด์ผ ํ๋ค.// JSclass User { constructor(firstName, lastName) { this.firstName = firstName; this.lastName = lastName; }}// TS// ์ปดํ์ผํ๋ฉด ์ JS ์ฝ๋์ ๋์ผํ๋คclass User { constructor(private firstName: string, private lastName: string) {}} 2. ์ ๊ทผ ์ ํ์(acces.. [TypeScript] Declaration File & JSDoc Declaration FileTypeScript ์ ์ธ ํ์ผ์ ์ฃผ๋ก JavaScript๋ก ์์ฑ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๋ชจ๋์ TypeScript์์ ์ฌ์ฉํ ๋ ํ์ํฉ๋๋ค.์ ์ธ ํ์ผ์ .d.ts ํ์ฅ์๋ฅผ ๊ฐ์ง๋ฉฐ ๋์ผํ ์ด๋ฆ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๋ชจ๋์ ํ์ ์ ์ ์ํฉ๋๋ค. Visual Studio Code์ ๊ฐ์ ํตํฉ๊ฐ๋ฐํ๊ฒฝ(IDE)์์๋ ์ ์ธ ํ์ผ์ ๋ถ๋ฌ์์ ๋ณด์ฌ์ฃผ๊ธฐ ๋๋ฌธ์ ๋ฐ๋ก ํ์ ์ ํ์ธํ ์ ์์ต๋๋ค.TypeScript๋ JavaScript ์ฝ๋๋ ๊ฐ์ด ์ธ ์ ์๋๋ก ํ์ฉํ์ง๋ง, ํ์ ์ ์๊ฐ ์๋ค๋ฉด ์ฌ์ค TypeScript๋ฅผ ์ฐ๋ ์๋ฏธ๊ฐ ์์ต๋๋ค. ๋ฐ๋ผ์ TypeScript์์ ์ ์ธ ํ์ผ์ ๊ผญ ํ์ํฉ๋๋ค.tsconfig.json์ "strict": true ๋ฅผ ์ค์ ํ๋ฉด ์ ์ธ ํ์ผ์ด ์๋ JavaScript ํจํค์ง์ ๋.. [TypeScript] TypeScript ํ์ ์ ๋ฆฌ Object๋ณ์๋ช : { key1: ํ์ , key2: ํ์ , ... }๋ณ์ ์ ์ธ๋ฌธ์ ํ์ฅํด ์์ ๊ฐ์ ํํ๋ก ํ์ ์ ๋ช ์ํ ์ ์์ต๋๋ค.ํ์ ์ฃผ์(type annotation)์ด๋ผ๊ณ ํฉ๋๋ค.์์const player: { name: string; age: number } = { name: "kim",}; Optional๋ณ์/ํ๋กํผํฐ๋ช ?: ํ์ ๋ฌผ์ํ๋ฅผ ๋ถ์ฌ์ ํน์ ํ๋กํผํฐ๋ ํจ์์ ๋งค๊ฐ๋ณ์๋ฅผ ์ต์ ๋๋ก ๋ง๋ค ์ ์์ต๋๋ค.์์// ์ธํฐํ์ด์ค ํ๋กํผํฐ์ ์ ์ฉinterface PaintOptions { shape: Shape; xPos?: number; yPos?: number;}// ๊ฐ์ฒด ํ๋กํผํฐ์ ์ ์ฉconst player: { name: string, age?: number } = { name: 'k.. [TypeScript] TypeScript ์๋์ผ๋ก ์ค์ ํ๊ธฐ ๊ฐ์ํ๋ ์์ํฌ๋ฅผ ์ฐ๋ฉด ํ์ ์คํฌ๋ฆฝํธ๊ฐ ์ค์ ๋ ํ๋ก์ ํธ๋ฅผ ์๋์ผ๋ก ๋ง๋ค์ด์ฃผ์ง๋ง, ๊ฐํน ํ์ ์คํฌ๋ฆฝํธ ์ค์ ์ ๊ฑด๋๋ ค์ผ ํ ๋๊ฐ ์์ต๋๋ค.๊ทธ๋๋ฅผ ์ํด ํ์ ์คํฌ๋ฆฝํธ๋ฅผ ์๋์ผ๋ก ์ค์ ํ๋ ๋ฐฉ๋ฒ์ ๊ธฐ๋กํด๋๊ธฐ๋ก ํ์ต๋๋ค.NodeJS๊ฐ ์ค์น๋์ด ์๋ค๊ณ ๊ฐ์ ํฉ๋๋ค. ์๋ ์ค์ ๋ฐฉ๋ฒ1. package.json ์์ฑnpm init -y 2. ํ์ ์คํฌ๋ฆฝํธ ์ค์นnpm install -D typescript 3. tsconfig.json ์์ฑtsc -init 4. tsconfig.json ์์ฑ{ "include": ["src"], // ์ปดํ์ผ ํ ํ์ผ์ ๊ฒฝ๋ก "compilerOptions": { "outDir": "build", // ์ปดํ์ผ ํ ํ์ผ์ ์ ์ฅํ ์์น "target": "ES6", // ์๋ฐ์คํฌ๋ฆฝํธ ์ด๋ค ๋ฒ.. ์ด์ 1 2 ๋ค์