์ „์ฒด ๊ธ€

๐Ÿ’ป FE Developer ๐ŸŒฑ self.push(knowledge)
Ambassador/Code it

[์ฝ”๋“œ์ž‡] ์ฝ”๋“œ์ž‡ ์•ฐ๋ฐฐ์„œ๋” 1๊ธฐ ํ›„๊ธฐ

์•ˆ๋…•ํ•˜์„ธ์š”. ์ฝ”๋“œ์ž‡ ์•ฐ๋ฐฐ์„œ๋” 1๊ธฐ๋กœ ํ™œ๋™ํ•œ dawonny ์ž…๋‹ˆ๋‹ค. ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” ์ฝ”๋“œ์ž‡ ์•ฐ๋ฐฐ์„œ๋” 1๊ธฐ๋กœ ํ™œ๋™ํ–ˆ๋˜ ์ด์•ผ๊ธฐ์™€ ํ›„๊ธฐ๋ฅผ ๋‚จ๊ฒจ๋ณด๋ ค๊ณ ํ•ด์š”. ์ด๊ฑด ์ฝ”๋“œ์ž‡์—์„œ ์š”์ฒญํ•œ(?) ์‚ฌํ•ญ์€ ์•„๋‹ˆ๊ตฌ์š”. ์ฐธ์—ฌํ•ด๋ณด๊ณ  ์†”์งํ•˜๊ฒŒ ์ ์–ด๋ณธ ํ›„๊ธฐ์ž…๋‹ˆ๋‹น! ์ง€์› ์ €๋Š” ๊ฐœ๋ฐœ ์ธ์Šคํƒ€๊ทธ๋žจ์„ ํ•˜๋‚˜ ์šด์˜์ค‘์ธ๋ฐ์š”(@wonny_dev, @dev_event_crawler) ๊ทธ๋Ÿฌ๋‹ค ๋ณด๋‹ˆ ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ์ฝ”๋”ฉ/ํ”„๋กœ๊ทธ๋ž˜๋ฐ์— ๊ด€๋ จ๋œ ๊ฒŒ์‹œ๋ฌผ๋“ค์ด ๋งŽ์ด ๋œจ๋Š”ํ•€์—์š” ์ฝ”๋“œ์ž‡ ์•ฐ๋ฐฐ์„œ๋” ๋ชจ์ง‘๋„ ๊ทธ ์ค‘ ํ•˜๋‚˜์˜€์–ด์š”! ์ €๋Š” ์ฝ”๋“œ์ž‡ ์•ฐ๋ฐฐ์„œ๋”์— ์•ž์„œ SKT์˜ ๊ฐœ๋ฐœ์ž ์ปค๋ฎค๋‹ˆํ‹ฐ์ธ '๋ฐ๋ณด์…˜' ํ™๋ณด๋Œ€์‚ฌ ๋Œ€์™ธํ™œ๋™์ธ '๋ฐ๋ณด์…˜์˜'์„ ํ™œ๋™์ค‘์ธ๋ฐ์š”! ์ด ํ™œ๋™์€ 1๋…„ ๋‹จ์œ„ ํ™œ๋™์ธ ๊ฒƒ์— ๋น„ํ•ด ์ด ์ฝ”๋“œ์ž‡ ์•ฐ๋ฐฐ์„œ๋”๋Š” ํ•œ ๋‹ฌ์ •๋„ ํ™œ๋™ํ•˜๋”๋ผ๊ตฌ์š”. ๊ทธ๋ž˜์„œ ์ฒซ๋ฒˆ์งธ๋กœ ๋ถ€๋‹ด์ด ๋ณ„๋กœ ์—†์—ˆ๊ตฌ์š”. ๋‘๋ฒˆ์งธ๋กœ๋Š” ์„œ..

Develop/Flutter & Dart

[Flutter] Flutter & Dart Basics 1

ref : Flutter & Dart - The Complete Guide [2023 Edition] 23-24 GDSC HUFS ํ”Œ๋Ÿฌํ„ฐ ์Šคํ„ฐ๋””๋ฅผ ์ง„ํ–‰ํ•˜๋ฉฐ ์ˆ˜๊ฐ•ํ•œ ๊ฐ•์˜๋ฅผ ์ •๋ฆฌํ•œ ํฌ์ŠคํŒ…์ž…๋‹ˆ๋‹ค. Flutter ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ ํ„ฐ๋ฏธ๋„์˜ ์›ํ•˜๋Š” ๊ฒฝ๋กœ์—์„œ ๋‹ค์Œ์„ ์ž…๋ ฅ flutter create [ํ”„๋กœ์ ํŠธ์ด๋ฆ„] ๋˜๋Š” VSCode ๋ฅผ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ cmd + shift + p ๋กœ ํŒ”๋ ˆํŠธ ์—ด์–ด์„œ flutter new project ๋ฅผ ์„ ํƒํ•ด๋„ ๋จ Understanding Types ๋‹คํŠธ๋Š” type-safe ์–ธ์–ด์ด๋‹ค. ๋‹ค๋ฅธ ๋ง๋กœ๋Š” type-safety(ํƒ€์ž… ์•ˆ์ „์„ฑ)์„ ๊ฐ€์ง„ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค. ์—ฌ๊ธฐ์„œ ํƒ€์ž… ์•ˆ์ „์„ฑ์ด๋ž€? ํ”„๋กœ๊ทธ๋žจ์ด ์ปดํŒŒ์ผ ์‹œ๊ฐ„์— ํƒ€์ž… ์˜ค๋ฅ˜๋ฅผ ๊ฐ์ง€ํ•˜๊ณ  ์‹คํ–‰์‹œ๊ฐ„์— ํƒ€์ž… ๊ด€๋ จ ๋ฌธ์ œ๋ฅผ ๋ฐฉ์ง€ํ•˜๋Š” ๊ฐœ๋… Da..

Develop/TypeScript

[Typescript] never ํƒ€์ž…

never ํƒ€์ž…์„ ๊ตณ์ด ์“ธ์ผ์€ ์—†์„ ์ˆ˜ ์žˆ์ง€๋งŒ ๊ฐœ๋ฐœํ•˜๋‹ค๊ฐ€ ๋‚˜์˜ค๋ฉด ์–ด๋–ค ๊ฑด์ง€๋Š” ์•Œ๊ธฐ์œ„ํ•ด..! never ํ‚ค์›Œ๋“œ์— ๋Œ€ํ•ด์„œ ๋ฐฐ์›Œ๋ณด์ž never ๋ž€ ํ•จ์ˆ˜์— void ํƒ€์ž…์„ ๋ถ™์ด๋“ฏ return type ์œผ๋กœ ์“ธ ์ˆ˜ ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค function myFunc() :never{ } myFunc ์ด๋ผ๋Š” ํ•จ์ˆ˜๋Š” ๋‹ค์Œ์„ ๋งŒ์กฑํ•œ๋‹ค 1. return ์„ ํ•˜๋ฉด ์•ˆ๋œ๋‹ค 2. ํ•จ์ˆ˜์— endpoint ๊ฐ€ ์—†์–ด์•ผํ•œ๋‹ค (๋‘˜์ด ๊ฐ™์€ ์–˜๊ธฐ์ด๊ธฐ๋Š” ํ•˜๋‹ค) ์—ฌ๊ธฐ์„œ endpoint ๊ฐ€ ์—†์–ด์•ผํ•œ๋‹ค๋Š” ๊ฒƒ์€ ํ•จ์ˆ˜์‹คํ–‰์ด ๋๋‚˜์ง€ ์•Š๋Š” ๊ฒƒ์ด๋‹ค. while(true) ๋•Œ๋ฌธ์— ํ•จ์ˆ˜ ์‹คํ–‰์ด ๋๋‚˜์ง€ ์•Š๋Š”.. ๊ทธ๋Ÿฐ ์˜ˆ์‹œ๋ฅผ ์ƒ๊ฐํ•ด๋ณด๋ฉด ๋˜๊ฒ ๋‹ค. function ํ•จ์ˆ˜() :never{ throw new Error('์—๋Ÿฌ๋ฉ”์„ธ์ง€') } ์œ„์˜ ์˜ˆ์‹œ๋ฅผ ๋ณด์ž๋ฉด t..

Develop/TypeScript

[Typescript] ํ•จ์ˆ˜ rest parameter, destructuring ์‹œ ํƒ€์ž…์ง€์ •

rest parameter ๋จผ์ € rest parameter ์— ๋Œ€ํ•ด์„œ ๊ฐ„๋‹จํžˆ ์งš๊ณ  ๋„˜์–ด๊ฐ€์ž function PrintNumArr(...a){ console.log(a) } PrintNumArr(1,2,3,4,5) ์œ„์ฒ˜๋Ÿผ ํ•จ์ˆ˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๋งŒ๋“ค๋•Œ ์•ž์— ... ์„ ๋ถ™์—ฌ์ฃผ๋ฉด ๊ทธ ์œ„์น˜์—๋Š” ์—ฌ๋Ÿฌ๊ฐ’๋“ค์ด ๋“ค์–ด์žˆ๋Š” ๋ฆฌ์ŠคํŠธ๊ฐ€ ๋‚จ๋Š”๋‹ค๊ณ  ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ๋‹ค. [LOG]: [1, 2, 3, 4, 5] ๊ทธ๋Ÿผ rest parameter ์˜ ํƒ€์ž…์ง€์ •์€ ์–ด๋–ป๊ฒŒ ํ• ๊นŒ? rest parameter ์˜ ํƒ€์ž…์ง€์ • array ์ทจ๊ธ‰์ด๊ธฐ ๋•Œ๋ฌธ์— (์ˆซ์ž๊ฐ€ ๋“ค์–ด๊ฐ€๋Š” array ๋ผ๋Š” ๊ฐ€์ •ํ•˜์—) number[] ์ด๋Ÿฐ์‹์œผ๋กœ ์ž‘์„ฑํ•ด์ค„ ์ˆ˜ ์žˆ๊ฒ ๋‹ค. ์•„๋ž˜์™€ ๊ฐ™๋‹ค function PrintNumArr(...a:number[]){ console.log(a) } Pri..

Ambassador/DEVOCEAN YOUNG

[๋ฐ๋ณด์…˜์˜] ‘In-Memory Data Grid ๊ธฐ๋ฐ˜ Smart Factory ์•„ํ‚คํ…์ฒ˜๋ง ์—ฐ๊ตฌ ์‚ฌ๋ก€’ ํ…Œํฌ์„ธ๋ฏธ๋‚˜ ํ›„๊ธฐ

์•ˆ๋…•ํ•˜์„ธ์š”! ๋ฐ๋ณด์…˜ ์˜ 2๊ธฐ ์„œ๋‹ค์›์ž…๋‹ˆ๋‹ค. ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” 9์›” ๋ฐ๋ณด์…˜ ํ…Œํฌ์„ธ๋ฏธ๋‚˜์ธ [In-Memory Data Grid ๊ธฐ๋ฐ˜ Smart Factory ์•„ํ‚คํ…์ฒ˜๋ง ์—ฐ๊ตฌ ์‚ฌ๋ก€] ํ›„๊ธฐ๋ฅผ ๊ณต์œ ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค! ๐Ÿš€ ์˜ค์„ธ์ง„ ์Šคํ”ผ์ปค๋‹˜์˜ ์ฒซ๋ฒˆ์งธ ์„ธ์…˜ IMDG ๊ตฌ์กฐ ์†Œ๊ฐœ์™€ SKํ•˜์ด๋‹‰์Šค CXL Memory ์ ์šฉ์‚ฌ๋ก€ ๋ฐ์ดํ„ฐ๊ฐ€ ๋‹ค์–‘ํ•ด์ง์— ๋”ฐ๋ผ ์—ฌ๋Ÿฌ ํ”Œ๋žซํผ์ด ํ™œ์šฉ๋˜๋ฉด์„œ ๋ณต์žก์„ฑ์ด ์ปค์ง€๊ณ , ๋ฐ์ดํ„ฐ ํ†ตํ•ฉ์˜ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ฒจ๋‚˜๊ณ  ์žˆ์Œ -> ๋ฐ์ดํ„ฐ ํ†ตํ•ฉ ๊ด€๋ฆฌ์— ์šฉ์ดํ•œ IMDG ๊ธฐ์ˆ ์ด ํ•„์š”! In-Memory Data Grid(IMDG)๋ž€? ๋ฐ์ดํ„ฐ ํ†ตํ•ฉ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•œ computing ์—”์ง„์ด ํƒ‘์žฌ๋œ In-memory distributed caching software ๊ธฐ์ˆ  IMDG ํ”Œ๋žซํผ์˜ ๋Œ€ํ‘œ์ ์ธ ์˜ˆ๋กœ Hazelcast IMDG ๊ฐ€ ์žˆ์Œ Ha..

Ambassador/Code it

[์ฝ”๋“œ์ž‡] ์ฝ”๋“œ์ž‡์—์„œ ๊พธ์ค€ํžˆ ๊ณต๋ถ€ํ•˜๊ธฐ๐Ÿ”ฅ

์•ˆ๋…•ํ•˜์„ธ์š” ์˜ค๋Š˜์€ ์ฝ”๋“œ์ž‡์—์„œ ๊พธ์ค€ํžˆ ๊ณต๋ถ€ํ•  ์ˆ˜ ์žˆ๋Š” ๋น„๊ฒฐโœจ์— ๋Œ€ํ•ด์„œ ๋ช‡๊ฐ€์ง€ ์†Œ๊ฐœํ•ด๋“œ๋ฆฌ๋ ค๊ณ ํ•ด์š”! ๋ฒŒ์จ ์ฝ”๋“œ์ž‡ ์•ฐ๋ฐฐ์„œ๋”๋กœ์„œ์˜ ๋งˆ์ง€๋ง‰ ํฌ์ŠคํŒ…์ด ๋˜๊ฒ ๋„ค์š”. ์ฝ”๋“œ์ž‡์—๋Š” ๋‹ค์–‘ํ•œ ๋™๊ธฐ ๋ถ€์—ฌ ์žฅ์น˜๋“ค์ด ์ˆจ๊ฒจ์ ธ ์žˆ๋Š”๋ฐ์š”. ํ•˜๋‚˜์”ฉ ์‚ดํŽด๋ณผ๊นŒ์š”? ๋จผ์ € ์ถœ์„ ์ฒดํฌ ๊ธฐ๋Šฅ! ๋ ˆ์Šจ์„ 1๊ฐœ์ด์ƒ ๋ฌด์—‡์ด๋“  ์ˆ˜๊ฐ•ํ•˜๋ฉด ์ฝ”๋“œ์ž‡ ์ถœ์„์„ ํ•œ ๊ฒƒ์œผ๋กœ ์ฒดํฌ๋˜์–ด์š”. ๋งค์ผ ์—ฐ์†์œผ๋กœ ๊ฐ•์˜๋ฅผ ์ˆ˜๊ฐ•ํ•œ๋‹ค๋ฉด ๋งˆ์น˜ ๊นƒํ—ˆ๋ธŒ ์ž ๋”” ์‹ฌ๊ธฐํ•˜๋“ฏ ๊พธ์ค€ํžˆ ์—ด์ •์„ ๊ฐ€์ง€๊ณ  ํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™์•„์š”! ๋งค์ผ ์กฐ๊ธˆ์”ฉ์ด๋ผ๋„ ํ•˜๋Š”๊ฒŒ ์ค‘์š”ํ•˜๋‹ˆ๊นŒ์š”~! ํ•˜๋ฃจ์— ๋ ˆ์Šจ์„ 10๊ฐœ ์ˆ˜๊ฐ•ํ•˜๋Š” ๋“ฑ์˜ ์—ฌ๋Ÿฌ ์กฐ๊ฑด๋“ค์„ ๋งŒ์กฑํ•˜๋ฉด ๋ฐฐ์ง€๋ฅผ ๋ฐ›์„ ์ˆ˜ ์žˆ๊ณ , ๊ฐ•์˜๋ฅผ ์™„๊ฐ•ํ•˜๊ณ  ๋‚˜๋ฉด ์ˆ˜๋ฃŒ์ฆ๋„ ๋ฐ›์„ ์ˆ˜ ์žˆ์–ด์š”! ์ž๊ธฐ๋ฅผ ์†Œ๊ฐœํ•˜๋Š” ํŽ˜์ด์ง€์— ์ˆ˜๋ฃŒ์ฆ์„ ์—…๋กœ๋“œํ•ด๋„ ์ข‹๊ณ , ๊ธฐ๋ถ„๋„ ๋ฟŒ๋“ฏํ•  ๊ฒƒ ๊ฐ™์ฃ ? ๋ ˆ๋ฒจ์‹œ์Šคํ…œ๋„ ์žˆ๋Š”๋ฐ์š”! ๋งˆ์น˜ ๊ฒŒ์ž„๊ฐ™์ด ๊ฒฝ..

Develop/TypeScript

[Typescript] Object ์— ํƒ€์ž…์ง€์ •ํ•˜๊ธฐ - interface

์ด์ „์— type alias ๋ฅผ ์ด์šฉํ•ด์„œ ํƒ€์ž…์„ ๋ณ€์ˆ˜์ฒ˜๋Ÿผ ์ €์žฅํ•ด ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์› ๋‹ค. ์ถ”๊ฐ€๋กœ, object ์— ํƒ€์ž…์„ ์ง€์ •ํ•  ๋•Œ interface ๋ผ๋Š” ํ‚ค์›Œ๋“œ๋ฅผ ์ด์šฉํ•  ์ˆ˜๋„ ์žˆ๋‹ค. interface interface Student{ name: string } interface Teacher{ name: string, age: number } let ํ•™์ƒ: Student = {name:'kim'} let ์„ ์ƒ: Teacher = {name:'kim', age:20} interface ๋Š” type ํ‚ค์›Œ๋“œ ์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํ‚ค์›Œ๋“œ์ด๋‹ค. interface ์˜ ์žฅ์ ์€ extends ๋ฅผ ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์œ„์˜ ์ฝ”๋“œ๋ฅผ ์•„๋ž˜์™€ ๊ฐ™์ด ์“ธ ์ˆ˜๋„ ์žˆ๋‹ค. interface Student{ name: st..

Develop/TypeScript

[Typescript] class ๋งŒ๋“ค ๋•Œ ํƒ€์ž…์ง€์ •ํ•˜๊ธฐ

ํ•„๋“œ๊ฐ’ ํƒ€์ž…์ง€์ • class ๋‚ด๋ถ€์—๋Š” object ๊ฐ€ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํ•„๋“œ๊ฐ’์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. class Person { data = 0; } let john = new Person(); let kim = new Person(); console.log(john.data); console.log(kim.data); ์˜ˆ๋ฅผ ๋“ค์–ด Person ์ด๋ผ๋Š” class ์— 0 ๊ฐ’์„ ๊ฐ€์ง€๋Š” data ๋ผ๋Š” ๊ฑธ ๋งŒ๋“ค์–ด๋†“์œผ๋ฉด john ์ด๋‚˜ kim ์—์„œ ์ด data ๋ผ๋Š” ํ•„๋“œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด ๋•Œ ์ด data ๋ผ๋Š” ํ•„๋“œ์— ํƒ€์ž…์„ ์ง€์ •ํ•ด์ค€๋‹ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค class Person { data :number = 0; } ํ•˜์ง€๋งŒ ๊ตณ์ด ์“ฐ์ง€ ์•Š์•„๋„ ์ž๋™์œผ๋กœ number ํƒ€์ž…์ด๋œ๋‹ค. ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋Š” ์ž๋™์œผ๋กœ ํƒ€์ž…์ง€์ •์„ ํ•ด์ฃผ๊ธฐ ๋•Œ๋ฌธ! co..

Finds & Notes

๊ตฌ๊ธ€์„œ์น˜์ฝ˜์†” ๋‹ค์–‘ํ•œ ๋ฌธ์ œ๋“ค ํ•ด๊ฒฐ๋ฒ•

์ €๋Š” ์ด ํ‹ฐ์Šคํ† ๋ฆฌ ๋ธ”๋กœ๊ทธ๋ฅผ ๊ตฌ๊ธ€ ์„œ์น˜ ์ฝ˜์†”์— ๋“ฑ๋กํ•ด๋†“์•˜๋Š”๋ฐ์š”. ๊ฐ์ข… ๊ด€๋ จ๋œ ๋ฌธ์ œ๋“ค์„ ํ•ด๊ฒฐํ•˜๋ฉด์„œ ์–ด๋–ป๊ฒŒ ํ•ด๊ฒฐํ–ˆ๋Š”์ง€ ๊ณต์œ ํ•˜๊ณ ์ž ํฌ์ŠคํŒ…์„ ์ž‘์„ฑํ•ด๋ณด๋ ค๊ณ ํ•ด์š”! ์ ์ ˆํ•œ ํ‘œ์ค€ ํƒœ๊ทธ๊ฐ€ ํฌํ•จ๋œ ๋Œ€์ฒด ํŽ˜์ด์ง€ ๋ฌธ์ œ ํŽ˜์ด์ง€ ์ƒ‰์ธ ์ƒ์„ฑ ๋ถ€๋ถ„์—์„œ '์ ์ ˆํ•œ ํ‘œ์ค€ ํƒœ๊ทธ๊ฐ€ ํฌํ•จ๋œ ๋Œ€์ฒด ํŽ˜์ด์ง€ - ์ด๋Ÿฌํ•œ ํŽ˜์ด์ง€๋Š” ์ƒ‰์ธ์ด ์ƒ์„ฑ๋˜์ง€ ์•Š๊ฑฐ๋‚˜ Google์— ๊ฒŒ์‹œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค' ๋ผ๋Š” ๋ฌธ๊ตฌ๊ฐ€ ๋œจ๋”๋ผ๊ตฌ์š”. ์™œ ์ค‘๋ณต๋œ ํŽ˜์ด์ง€๊ฐ€ ๋งŒ๋“ค์–ด์ง€๋Š”๊ฑด๊ฐ€- ํ•˜๊ณ  ์˜ํ–ฅ์„ ๋ฐ›์€ ํŽ˜์ด์ง€๋ฅผ ํ™•์ธํ•ด๋ดค์–ด์š”. ๋ดค๋”๋‹ˆ ๋‹ค /m/ ์ด ๋ถ™์€ ์ฃผ์†Œ๋”๋ผ๊ตฌ์š”. ํ‹ฐ์Šค๋ณด๋ฆฌ ๋ธ”๋กœ๊ทธ์— ๊ธ€์„ ํ•˜๋‚˜ ์ž‘์„ฑํ•˜๋ฉด '์›น' ๊ณผ '๋ชจ๋ฐ”์ผ' ๋ฒ„์ „์ด ๋งŒ๋“ค์–ด์ง€๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋งํฌ ์ฃผ์†Œ๋„ 2๊ฐœ๊ฐ€ ๋งŒ๋“ค์–ด์ ธ์š”. ๊ตฌ๊ธ€ ์„œ์น˜์ฝ˜์†”์€ ๋ณ„๋„์˜ ์„ค์ •์ด ์—†์œผ๋ฉด ์›น ๋งํฌ์™€ ๋ชจ๋ฐ”์ผ ๋งํฌ ๋‘˜์ค‘์— ํ•˜๋‚˜๋ฅผ ํ‘œ์ค€์œผ๋กœ ์„ค์ •ํ•˜๊ณ , ํ•˜๋‚˜๋Š” ์ค‘..

Develop/TypeScript

[Typescript] ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋กœ HTML ๋ณ€๊ฒฝ/์กฐ์ž‘

strictNullCheck ์˜ต์…˜ ์ผœ๊ธฐ tsconfig.json ํŒŒ์ผ์— ๋“ค์–ด๊ฐ€์„œ strict ์˜ต์…˜์„ true ๋กœ ์ผœ์ค€๋‹ค. strictNullChecks ๋งŒ ์ผœ์ค˜๋„ ๋œ๋‹ค. (strict ์•ˆ์— strictNullChecks ๊ฐ€ ๋“ค์–ด๊ฐ€ ์žˆ๋‹ค) ๋ณ€์ˆ˜๋ฅผ ์กฐ์ž‘ํ•˜๋ฉด์„œ null ์ธ์ง€ ์ฒดํฌํ•  ๋•Œ ์œ ์šฉํ•˜๋‹ค HTML ํŒŒ์ผ script ํƒœ๊ทธ์— ๋ณ€ํ™˜๋œ index.js ๋ฅผ ์ ์–ด์„œ ์—ฐ๊ฒฐํ•ด์ค€๋‹ค. HTML ์ฐพ์•„ ๋ณ€๊ฒฝํ•˜๊ธฐ h4 ์ œ๋ชฉ์„ ๋‹ค๋ฅธ ๊ธ€์ž๋กœ ๋ณ€๊ฒฝํ•˜๋ ค๊ณ  ํ•œ๋‹ค. ์œ„ ์ฝ”๋“œ์ฒ˜๋Ÿผ ์ผ๋‹จ '์ œ๋ชฉ' ์ด๋ผ๋Š” ๋ณ€์ˆ˜์— document.querySelector ๋ฅผ ํ†ตํ•ด title ์ด๋ผ๋Š” id ๋ฅผ ๊ฐ€์ง„ object ๋ฅผ ๊ฐ€์ ธ์˜จ ํ›„, narrowing ์„ ํ†ตํ•ด null ์ด ์•„๋‹Œ์ง€ ์ฒดํฌํ›„์— null ์ด ์•„๋‹ˆ๋ผ๋ฉด ์ œ๋ชฉ.innerHTML ์„ '๋ฐ˜๊ฐ‘์†Œ' ๋กœ ๋ฐ”๊ฟ”์คฌ..

Develop/TypeScript

[Typescript] ํ•จ์ˆ˜์™€ methods์— type alias ์ง€์ •ํ•˜๊ธฐ

ํ•จ์ˆ˜ type ์„ ์ €์žฅํ•˜๊ธฐ ํ•จ์ˆ˜์— ๋“ค์–ด๊ฐˆ ํŒŒ๋ผ๋ฏธํ„ฐ์™€ return ๊ฐ’์˜ ํƒ€์ž…๋“ค๋„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ๋ฐฐ์› ๋Š”๋ฐ, ์ด ํ•จ์ˆ˜์˜ ํƒ€์ž…๋„ type alias ๋กœ ์ €์žฅํ•ด์„œ ์‚ฌ์šฉํ•  ์ˆ˜๊ฐ€ ์žˆ๋‹ค. type NumOut = (x : number, y : number ) => number ; ์œ„๋Š” ์˜ˆ์‹œ์ด๋‹ค NumOut ์ด๋ผ๋Š” ํƒ€์ž…์„ ๋งŒ๋“ ๊ฑด๋ฐ, ์ด ํƒ€์ž…์€ ํ•จ์ˆ˜๋ฅผ ์œ„ํ•œ ํƒ€์ž…์ด๋‹ค. number ํƒ€์ž…์˜ x ์™€ number ํƒ€์ž…์˜ y ๋ฅผ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ๋ฐ›์•„์•ผํ•˜๊ณ , return ๊ฐ’์ด number ํƒ€์ž…์ด์–ด์•ผํ•œ๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค. ๊ทธ๋ž˜์„œ ์ด NumOut ์ด๋ผ๋Š” type alias ๋ฅผ ํ•จ์ˆ˜์— ์ง์ ‘ ์‚ฌ์šฉํ•ด๋ณด๋Š” ์˜ˆ์‹œ๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค type NumOut = (x : number, y : number ) => number let ABC :NumOut = fu..

Develop/TypeScript

[Typescript] Literal Types ๋งŒ๋“ค๊ธฐ

์ง€๊ธˆ๊นŒ์ง€ ์–ด๋–ค ๋ณ€์ˆ˜์— ํƒ€์ž…์„ ์ง€์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ ๋ฐฐ์›Œ์™”๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์–ด๋–ค ๋ณ€์ˆ˜์— '์–ด๋–ค ๊ฐ’' ์ด ๋“ค์–ด๊ฐ€๋„๋ก ์•„์˜ˆ ์ œํ•œํ•  ์ˆ˜๋„ ์žˆ๋‹ค. const ๋ฅผ ์“ธ ์ˆ˜๋„ ์žˆ๊ฒ ์ง€๋งŒ, ๋‚ด๊ฐ€ ์–ด๋–ค ๋ณ€์ˆ˜์— ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋Š” ๊ฐ’์„ 2~3๊ฐœ ์ง€์ •ํ•  ์ˆ˜๋„ ์žˆ๋Š” ๊ฒƒ์ด๋‹ค. ์ด๋Ÿด ๋• Literal Type ์„ ์„ ์–ธํ•˜๋ฉด๋œ๋‹ค. Literal Type string, number... ๋ฟ ์•„๋‹ˆ๋ผ ์ผ๋ฐ˜ ๊ฐ’๋„ ํƒ€์ž…์ด ๋  ์ˆ˜ ์žˆ๋‹ค. let name :'ํ™๊ธธ๋™'; ์˜ˆ๋ฅผ ๋“ค์–ด์„œ ์œ„์ฒ˜๋Ÿผ name ์ด๋ผ๋Š” ๋ณ€์ˆ˜์—๋Š” 'ํ™๊ธธ๋™' ์ด๋ผ๋Š” ๊ธ€์ž๋งŒ ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด๋‹ค. ์ด๋ ‡๊ฒŒ ํŠน์ • ๊ฐ’๋งŒ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๊ฒŒ ์ œํ•œ์„ ๋‘˜ ์ˆ˜ ์žˆ๋Š” ํƒ€์ž…์„ literal type ์ด๋ผ๊ณ  ํ•œ๋‹ค. ๋” ์—„๊ฒฉํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ๊ฐœ๋…์ด๋‹ค. ๊ผญ 1๊ฐœ๊ฐ€ ์•„๋‹ˆ์–ด๋„ ๋œ๋‹ค. let name :'ํ™๊ธธ๋™'|'์„œ๋‹ค์›'; ..

Develop/TypeScript

[Typescript] ํƒ€์ž…์„ ๋ณ€์ˆ˜์— ๋‹ด๊ธฐ(Type Alias) / readonly

Type Aliases ํƒ€์ž… ์ •์˜๊ฐ€ ๋„ˆ๋ฌด ๊ธธ๋ฉด ํƒ€์ž…์„ ๋ณ€์ˆ˜์— ๋‹ด์•„์„œ ์“ธ ์ˆ˜ ์žˆ๋‹ค. Type alias ๋ผ๊ณ  ํ•œ๋‹ค. ์—ฌ๊ธฐ์„œ alias ๋Š” '๋ณ„๋ช…' ์ด๋ผ๋Š” ์˜๋ฏธ์ด๋‹ค. let ๋™๋ฌผ :string | number | undefined; ์˜ˆ๋ฅผ ๋“ค์–ด์„œ ์œ„์ฒ˜๋Ÿผ ๋™๋ฌผ ์ด๋ผ๋Š” ํƒ€์ž…์ด ๋ณต์žกํ•˜๋ฉด ์ด๊ฑธ ๋”ฐ๋กœ ๋นผ์„œ ๋ณ€์ˆ˜์— ๋‹ด์•„์“ธ ์ˆ˜ ์žˆ๋‹ค. type Animal = string | number | undefined; let ๋™๋ฌผ :Animal; ์ด๋ ‡๊ฒŒ ๋ง์ด๋‹ค. ํƒ€์ž…์„ ๋ณ€์ˆ˜์ฒ˜๋Ÿผ ๋งŒ๋“ค์–ด ์“ฐ๋Š” alias ๋ฌธ๋ฒ•์ด๋ฉฐ, ๋Œ€๋ฌธ์ž๋กœ ์ ๋Š”๊ฒŒ ์ผ๋ฐ˜์ ์ด๋‹ค. object ํƒ€์ž… ์ €์žฅํ•˜๊ธฐ type ์‚ฌ๋žŒ = { name : string, age : number, } let teacher :์‚ฌ๋žŒ = { name : 'john', age : 20 } ์œ„์ฒ˜๋Ÿผ ..

Develop/TypeScript

[Typescript] ํƒ€์ž… ํ™•์ •ํ•˜๊ธฐ Narrowing & Assertion

function plusOne(x :number | string){ return x + 1 //์—๋Ÿฌ๋‚จ } ์œ„์™€ ๊ฐ™์€ ํ•จ์ˆ˜๊ฐ€ ์žˆ๋‹ค๊ณ  ๋ณด์ž x ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” string | number ์™€ ๊ฐ™์€ union ํƒ€์ž…์ธ๋ฐ ์ˆซ์ž 1 ์„ ๋”ํ•˜๊ธฐ์—๋Š” x ๊ฐ€ string ์ธ์ง€ number ์ธ์ง€ ์• ๋งคํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์—๋Ÿฌ๋ฅผ ๋‚ด๊ฒŒ ๋œ๋‹ค. ๋”ฐ๋ผ์„œ ์ด๋Ÿด ๋• ํƒ€์ž…์„ ํ•˜๋‚˜๋กœ narrowing ํ•ด์ฃผ๊ฑฐ๋‚˜ assert ํ•ด์ฃผ๊ฑฐ๋‚˜ ํ•˜๋ฉด ๋œ๋‹ค. narrowing ์— ๋Œ€ํ•ด์„œ ๋จผ์ € ์•Œ์•„๋ณด์ž typeof ๋ฅผ ์ด์šฉํ•œ Type Narrowing ํƒ€์ž… narrowing ์ด๋ž€ if ๋ฌธ์œผ๋กœ ํƒ€์ž…์„ ํ•˜๋‚˜๋กœ ์ •ํ•˜๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค. function plusOne(x :number | string){ if (typeof x === 'number') { return x + 1..

Develop/TypeScript

[Typescript] ํ•จ์ˆ˜์— ํƒ€์ž… ์ง€์ •ํ•˜๊ธฐ / voidํƒ€์ž…

์ฐธ๊ณ ๋กœ ์ˆ˜์—… ๋“ค์œผ๋ฉด์„œ ์•„๋ž˜ ์‚ฌ์ดํŠธ์˜ ide ๋ฅผ ์ด์šฉํ•ด ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ์‹คํ–‰์‹œ์ผœ๋ณด๋ฉด์„œ ํ•™์Šตํ–ˆ์Šต๋‹ˆ๋‹ค! https://www.typescriptlang.org/play TS Playground - An online editor for exploring TypeScript and JavaScript The Playground lets you write TypeScript or JavaScript online in a safe and sharable way. www.typescriptlang.org ํ•จ์ˆ˜๋Š” ๋‘ ๊ตฐ๋ฐ์— ํƒ€์ž… ์ง€์ •์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ํŒŒ๋ผ๋ฏธํ„ฐ return ๊ฐ’ function ํ•จ์ˆ˜(x :number) :number { return x * 2; } ๊ทธ๋ž˜์„œ ์œ„์ฒ˜๋Ÿผ x ๋ผ๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ number ๋ผ๋Š” ํƒ€์ž…์œผ๋กœ ์ง€..

Ambassador/Code it

[์ฝ”๋“œ์ž‡] <์ข‹์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋ž€?> ๊ฐ•์˜๋ฅผ ์ˆ˜๊ฐ•ํ•˜๋ฉฐ

์ฝ”๋“œ์ž‡์˜ [์ข‹์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋ž€?] ๊ฐ•์˜๋ฅผ ์ˆ˜๊ฐ• ํ›„ ํ•™์Šตํ•œ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•œ ํฌ์ŠคํŒ…์ž…๋‹ˆ๋‹ค. ์„ ์ˆ˜ ๊ณผ์ œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์ •์„ ์ˆ˜์—…์„ ๋“ฃ๊ธฐ ์œ„ํ•ด์„œ๋Š” ๊ธฐ๋ณธ์ ์ธ ํŒŒ์ด์ฌ ๋ฌธ๋ฒ•๊ณผ ์ปดํ“จํ„ฐ์  ์‚ฌ๊ณ ๋ ฅ์„ ๊ฐ–์ถ”๊ณ ์žˆ์–ด์•ผ ํ•˜๊ธฐ๋•Œ๋ฌธ์— ๋จผ์ € ์„ ์ˆ˜ ๊ณผ์ œ๊ฐ€ ์ฃผ์–ด์กŒ์–ด์š”. ํŽ ๋ฆฐ๋“œ๋กฌ์ธ์ง€ ๊ฒ€์‚ฌํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“œ๋Š” ๋ฌธ์ œ์˜€๋„ค์š”! def is_palindrome(word): # ์—ฌ๊ธฐ์— ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜์„ธ์š” # ํ…Œ์ŠคํŠธ ์ฝ”๋“œ print(is_palindrome("racecar")) print(is_palindrome("stars")) print(is_palindrome("ํ† ๋งˆํ† ")) print(is_palindrome("kayak")) print(is_palindrome("hello")) ๋ฌธ์ œ๋Š” ์œ„์™€ ๊ฐ™๊ณ , ์•„๋ž˜์™€ ๊ฐ™์ด ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์™€์•ผ ํ–ˆ์–ด์š” True False Tru..

Ambassador/Code it

[์ฝ”๋“œ์ž‡] ์ฝ”๋”ฉ ๋ฌด๋ฃŒ ๊ฐ•์˜? ์ฝ”๋“œ์ž‡ ์ถ”์ฒœ!

์•ˆ๋…•ํ•˜์„ธ์š” ์˜ค๋Š˜์€ ์ฝ”๋”ฉ ๊ต์œก ์„œ๋น„์Šค '์ฝ”๋“œ์ž‡' ์—์„œ ์ˆ˜๊ฐ•ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌด๋ฃŒ๊ฐ•์˜๋ฅผ ์†Œ๊ฐœํ•ด๋ณผ๊นŒํ•˜๋Š”๋ฐ์š”. ์š”์ฆ˜ ๊ฐœ๋ฐœ ๊ด€๋ จ ๊ฐ•์˜๋ฅผ ์˜จ๋ผ์ธ์œผ๋กœ ์ˆ˜๊ฐ•ํ•˜์‹œ๋Š” ๋ถ„๋“ค์ด ๊ต‰์žฅํžˆ ๋งŽ์€๋ฐ์š”. ๊ฐœ๋ฐœ ๋„์„œ๋ฅผ ์ฝ์œผ๋ฉด์„œ ์ˆ˜๊ฐ•ํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ์ง€๋งŒ ์˜จ๋ผ์ธ ๊ฐ•์˜๋„ ์˜จ๋ผ์ธ ๊ฐ•์˜๋งŒ์˜ ์žฅ์ ์ด ๋งŽ์ฃ . ๊ทธ๋ž˜์„œ ๊ทธ๋Ÿฐ์ง€ ๋ฌด๋ฃŒ๋กœ ์ˆ˜๊ฐ•ํ•  ์ˆ˜ ์žˆ๋Š” ์˜จ๋ผ์ธ ๊ฐ•์˜๋ฅผ ์ฐพ์œผ์‹œ๋Š” ๋ถ„๋“ค์ด ๋งŽ์€ ๊ฒƒ ๊ฐ™์•„์š”! ์ด ํฌ์ŠคํŒ…์—์„œ๋Š” ์ฝ”๋“œ์ž‡ ์‚ฌ์ดํŠธ์— ์ˆ˜๊ฐ•ํ•  ์ˆ˜ ์žˆ๋Š” ๋Œ€ํ‘œ ๋ฌด๋ฃŒ๊ฐ•์˜ 3๊ฐœ ์ •๋„ ์†Œ๊ฐœํ•ด๋ณผ๊นŒํ•ฉ๋‹ˆ๋‹ค. ์ฝ”๋”ฉ ๊ธฐ์ดˆ ํ•„์ˆ˜! ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์˜ค๋ฒ„๋ทฐ https://www.codeit.kr/paths/programming-overview ์ฝ”๋”ฉ ๊ธฐ์ดˆ ํ•„์ˆ˜! ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์˜ค๋ฒ„๋ทฐ - ๋ถ„์•ผ๋ณ„ ๊ฐ•์˜ | ์ฝ”๋“œ์ž‡ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์‹œ๋Œ€์— ๋งž๋Š” ์ธ์žฌ ๋˜๊ธฐ www.codeit.kr ์ด ๊ฐ•์˜๋Š” ์ •๋ง ์ฝ”๋”ฉ์ด ์ฒ˜์Œ์ด๋ผ ..

Finds & Notes

๋ฌด๋ฃŒ๋กœ ์•„๋ฐ”ํƒ€ ์ผ๋Ÿฌ์ŠคํŠธ ๋งŒ๋“ค๊ธฐ

๋””์ž์ธ ๊ด€๋ จ ํฌ์ŠคํŒ…๋“ค์„ ๋‘˜๋Ÿฌ๋ณด๋˜ ์ค‘ ์žฌ๋ฏธ๋‚œ ์‚ฌ์ดํŠธ๋ฅผ ๋ฐœ๊ฒฌํ–ˆ๋‹ค. ๋งํฌ๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค. https://blush.design/collections/0bopA8Y5vn29mdFBU2Br/wavy-buddies-illustrations/character-avatar/nldaiXHq7BWq8PE5?c=Hair_0%7Efecb51-0.0.2.0%7E040226_Skin_0%7Edcad7f-0.0.2.0%7Edcad7f Wavy Buddies - Illustration by Susana Salas Check out this illustration on Blush. blush.design ๋ฐฐ๊ฒฝ์ƒ‰, ๋จธ๋ฆฌ์ƒ‰, ํ”ผ๋ถ€์ƒ‰, ํ‘œ์ •, ๋จธ๋ฆฌ, ํฌ์ฆˆ ๋“ฑ์„ ์„ ํƒํ•ด์„œ ์•„๋ฐ”ํƒ€ ์ผ๋Ÿฌ์ŠคํŠธ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. ๋ณด๋‹ˆ๊นŒ ์•„๋ฐ”ํƒ€ ๋ง๊ณ ๋„ sitting,..

Review

๋ฒค์ฒ˜ ์Šคํƒ€ํŠธ์—… ์•„์นด๋ฐ๋ฏธ ํ•ด์ปคํ†ค ํ›„๊ธฐ(feat. ๋Œ€์ƒ๐Ÿ†)

์ง€๋‚œ 8์›” 29์ผ '๋ฒค์ฒ˜ ์Šคํƒ€ํŠธ์—… ์•„์นด๋ฐ๋ฏธ ํ•ด์ปคํ†ค'์— ์ฐธ์—ฌํ–ˆ๋‹ค. ์ฐธ์—ฌ ํ•™๊ต ์ค‘์—์„œ ๋‚ด๊ฐ€ ์•Œ๊ธฐ๋ก  ๋‘ ํŒ€์ •๋„ ์‹ ์ฒญํ•ด์„œ ์ฐธ์—ฌํ•˜๋Š”๊ฑธ๋กœ ์•Œ๊ณ ์žˆ๋‹ค. ๋‚˜์˜ ๊ฒฝ์šฐ ํ•™๊ต์ธก์—์„œ ์‹ ์ฒญํ•  ๊ธฐํšŒ๊ฐ€ ์ฃผ์–ด์ ธ์„œ(๊ณต์„์ด ์ƒ๊ฒจ์„œ) ๋‚ด๊ฐ€ ์ง์ ‘ ์ฃผ๋ณ€ ์ง€์ธ๋“ค๋กœ ํŒ€์„ ๊พธ๋ ค ๋‚˜๊ฐ€๊ฒ ๋‹ค๊ณ  ์‹ ์ฒญํ–ˆ๋‹ค. ์•ˆ๋‚ด pdf ๋ฅผ ๋ณด๋Š”๋ฐ ์ˆ˜์ƒ ์‹œ ํ›„์› ๊ธฐ์—…์˜ ์„œ๋ฅ˜ ์ „ํ˜• ๋ฉด์ œ, ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ๋ฉด์ œ ํ˜œํƒ์ด ์žˆ๊ธธ๋ž˜ ํ˜น ํ–ˆ๋˜ ๊ฒƒ๋„ ์กฐ๊ธˆ ์žˆ์—ˆ๋‹ค. ๊ธฐ๋ณธ ์ •๋ณด ๋‚ ์งœ๋Š” 8์›” 29์ผ๋ถ€ํ„ฐ 30์ผ๊นŒ์ง€์˜€๋‹ค. ์žฅ์†Œ๊ฐ€ ๊ฐ•๋‚จ์—ญ ๋ถ€๊ทผ์ด๋ผ ๋ถ€๋‹ด์ด ์—†์–ด์„œ ์ •๋ง์ด์ง€ ์ข‹์•˜๊ณ ..! ๊ณต์ง€๋Š” ๋””์Šค์ฝ”๋“œ๋ฅผ ํ†ตํ•ด ์ง„ํ–‰๋˜์—ˆ๋‹ค. ์ฃผ์ œ๋Š” ํฌ๊ฒŒ IT ๊ธฐ์—…๊ณผ ๊ด€๋ จ๋œ ๊ฒƒ์ด๋ผ๊ณ ๋งŒ ๋‚˜์˜ค๊ณ  ์ œ์ผ ์ค‘์š”ํ•œ ์„ธ๋ถ€ ์ฃผ์ œ๋Š” ๋‹น์ผ๋‚  ๊ณต๊ฐœ๋˜์—ˆ๋‹ค. ์ž…์žฅ ์œ„์น˜๋Š” ๊ฐ•๋‚จ์—ญ ๋ถ€๊ทผ์— ์œ„์น˜ํ•œ '๋“œ๋ฆผํ”Œ๋Ÿฌ์Šค ๊ฐ•๋‚จ' ์ด์—ˆ๋‹ค. ์‹œ์„ค ์ •๋ง ๊นจ๋—ํ•˜๊ณ  ํ•ด์ปคํ†ค์— ์ง‘์ค‘..

Ambassador/DEVOCEAN YOUNG

[๋ฐ๋ณด์…˜์˜] 8์›” ์˜๋ฐ‹์—… ํ›„๊ธฐ

์•ˆ๋…•ํ•˜์„ธ์š”. ๋ฐ๋ณด์…˜์˜ 2๊ธฐ ์„œ๋‹ค์›์ž…๋‹ˆ๋‹ค! ์ด๋ฒˆ 8์›” ์˜๋ฐ‹์—…์—์„œ๋Š” ๋ฐ๋ณด์…˜ ๋งˆ์Šคํ„ฐ๋ถ„๋“ค์˜ ์•Œ์ฐฌ ๋„ค๊ฐ€์ง€ ์„ธ์…˜์„ ๋“ค์–ด๋ณผ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฐœ์ธ์ ์œผ๋กœ ์ธ์ƒ ๊นŠ์—ˆ๋˜ ๋‚ด์šฉ ์œ„์ฃผ๋กœ ์„ธ๋ฏธ๋‚˜ ํ›„๊ธฐ ๋ฐ”๋กœ ์‹œ์ž‘ํ• ๊ฒŒ์š”~! ์š”์ฆ˜ PM์˜ ํšจ๊ณผ์ ์ธ ํ”„๋กœ์ ํŠธ ๊ด€๋ฆฌ - ์ „์ฐฝ๊ตญ๋‹˜ ์ €๋Š” ์š”์ฆ˜ PM ์ด๋ผ๋Š” ์ง๋ฌด์—๋„ ๊ด€์‹ฌ์ด ๋งŽ์€๋ฐ์š”. ํ•ญ์ƒ ๊ฐ™์ด ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•  ๋•Œ ๊ฐ™์ด PM์ด๋ž‘ ํ•จ๊ป˜ ์ž‘์—…์„ ํ•ด์„œ ๋” ๊ด€์‹ฌ์ด ๊ฐ€๋Š” ๊ฒƒ ๊ฐ™์•„์š”. ์‹ค์ œ ์‹ค๋ฌด์—์„œ ์–ด๋–ป๊ฒŒ PM์ด ์ง„ํ–‰ํ•˜๋ฉด ์ข‹์€์ง€์— ๋Œ€ํ•ด์„œ ์•Œ ์ˆ˜ ์žˆ์—ˆ๋˜ ์œ ์ตํ•œ ์‹œ๊ฐ„์ด์—ˆ์Šต๋‹ˆ๋‹ค. ์ „๋žต ์ˆ˜๋ฆฝํ•˜๊ธฐ ์ฐฝ๊ตญ๋‹˜์€ ์—ฌ๋Ÿฌ ์ „๋žต ์ค‘์—์„œ๋„ 'ํ•ต์‹ฌ ๋ชฉํ‘œ์— ์ง‘์ค‘ํ•˜๊ธฐ' ๋ฅผ ์ œ์ผ ์ค‘์š”ํ•œ ์ „๋žต์ด๋ผ๊ณ  ์†Œ๊ฐœํ•˜์…จ์–ด์š”. ์™œ๋ƒ๋ฉด ํ”„๋กœ์ ํŠธ๋ฅผ ์ฒ˜์Œ ๋งก๊ฒŒ ๋˜๋ฉด ์ง„ํ–‰๋˜๊ณ  ์žˆ๋˜ ํ”„๋กœ์ ํŠธ์— ์ค‘๊ฐ„์— ๋“ค์–ด๊ฐ€๋Š” ๊ฒฝ์šฐ๋„ ์žˆ๊ณค ํ•œ๋ฐ, ์ด๋Ÿด ๋• ํ”„๋กœ์ ํŠธ ์ „์ฒด๋ฅผ ์ „๋ฐ˜์ ..

Ambassador/Code it

[์ฝ”๋“œ์ž‡] ๋Œ€ํ•™์ƒ๋“ค์ด ํ•˜๋ฃจ 10๋ถ„, ์ฝ”๋”ฉ ์Šต๊ด€์„ ๊ธฐ๋ฅด๋Š” ๋ฒ• ๐Ÿš€

๐Ÿ“Œ ๋Œ€ํ•™์ƒ ์ฝ”๋”ฉ์บ ํ”„๋ž€? ์ฝ”๋“œ์ž‡์—์„œ ์ œ๊ณตํ•˜๋Š” ์ฝ”๋”ฉ์บ ํ”„๋กœ, 4์ฃผ๋™์•ˆ ํ•˜๋ฃจ 10๋ถ„! ์›ํ•˜๋Š” ๋ถ„์•ผ์˜ ์ฝ”๋”ฉ ๊ฐ•์˜๋ฅผ ์ˆ˜๊ฐ•ํ•˜๊ณ  ์ธ์ฆํ•˜๋ฉด์„œ ๋งค์ผ ๊ณต๋ถ€ํ•˜๋Š” ์Šต๊ด€์„ ๊ธฐ๋ฅผ ์ˆ˜ ์žˆ๋Š” ํ”„๋กœ๊ทธ๋žจ์ด์—์š”. 100% ์˜จ๋ผ์ธ์œผ๋กœ ์ง„ํ–‰๋ฉ๋‹ˆ๋‹ค. ๐Ÿ“Œ ์ฐธ์—ฌ ๋ฐฉ๋ฒ• ์ฝ”๋”ฉ ์บ ํผ๊ฐ€ ๋˜๋ฉด ์ˆ˜๊ฐ•๊ธฐ๊ฐ„์„ 2๋ฐฐ๋กœ ๋Š˜๋ฆด ์ˆ˜ ์žˆ์–ด์š”. ์ด๋ ‡๊ฒŒ ๋˜๋ฉด ๋‘ ๋‹ฌ๋™์•ˆ ๋ฌด์ œํ•œ ๊ฐ•์˜๋ฅผ ๋“ค์œผ๋ฉฐ ํ•™์Šตํ•  ์ˆ˜ ์žˆ์–ด์š” ! ๐Ÿ“Œ ์ฐธ์—ฌ ํ˜œํƒ ๋ณด๋„ˆ์Šค ์ˆ˜๊ฐ• ๊ธฐ๊ฐ„ ๊ธฐ์กด์— ์ฝ”๋“œ์ž‡ ๋ฉค๋ฒ„์‹ญ์—์„œ ๋ณด๋„ˆ์Šค ์ˆ˜๊ฐ•๊ธฐ๊ฐ„์„ ์ตœ๋Œ€ 14์ผ ๋ฐ›์„ ์ˆ˜ ์žˆ์–ด์š” ํ™œ๋™ ๊ธฐ๊ฐ„๋™์•ˆ ๋ฏธ์…˜์„ ์„ฑ๊ณตํ•˜๋ฉด ์ถ”๊ฐ€๋กœ 14์ผ์„ ๋” ์ค€๋‹ค๊ณ  ํ•˜๋„ค์š”! ํ™œ๋™ ์ธ์ฆ์„œ & ๊ฐ•์˜ ์ˆ˜๋ฃŒ์ฆ ์ฝ”๋“œ์ž‡๋งŒ์˜ ์ธ์ฆ์„œ์™€ ์ˆ˜๋ฃŒ์ฆ์„ ์ œ๊ณตํ•ด์š”. ์ด๋ ฅ์„œ ๊ฟ€ํŒ๋…ธํŠธ ์ฝ”๋”ฉ ์บ ํ”„์—์„œ ๋ฐฐ์šด ๊ฒƒ๋“ค์„ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์‹ค๋ฌด์ž๋“ค์˜ ๊ฟ€ํŒ์ด ๋‹ด๊ธด ๋…ธํŠธ๋ฅผ ์ œ๊ณตํ•ด์ค˜์š” ๋””์ง€ํ„ธ ํ”Œ๋ž˜๋„ˆ & ์†์ฝ”๋”ฉ ๋…ธํŠธ..

Ambassador/Code it

[์ฝ”๋“œ์ž‡] ๋ฌด๋ฃŒ/๋ฌด์ œํ•œ ๊ฐ•์˜ ๋“ค์œผ๋ฉด์„œ ์ฝ”๋”ฉ ๊ณต๋ถ€ํ•˜๊ธฐ ๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป

์•ˆ๋…•ํ•˜์„ธ์š” ์˜ค๋Š˜์€ ์ฝ”๋”ฉ ๊ต์œก ์„œ๋น„์Šค '์ฝ”๋“œ์ž‡'์— ๋Œ€ํ•ด์„œ ์†Œ๊ฐœํ•ด๋ณผ๊นŒํ•˜๋Š”๋ฐ์š”. ์ฝ”๋“œ์ž‡, ์ด๋ฏธ ์œ ๋ช…ํ•ด์„œ ์•„์‹ค ๋ถ„๋“ค์€ ๋งŽ์ด๋“ค ์•Œ๊ณ  ๊ณ„์‹ค๊ฑฐ๋ผ ์ƒ๊ฐํ•ด์š”! ๐Ÿ˜€ ์š”์ฆ˜ ์ฝ”๋”ฉ ๊ต์œก ์„œ๋น„์Šค๊ฐ€ ์ •๋ง ๋งŽ์ด ๋Š˜์–ด๋‚˜๊ณ  ์žˆ๋Š” ๊ฒƒ ๊ฐ™์•„์š”. ์ €๋„ ์‹ ์ž…์ƒ ๋•Œ ์ปดํ“จํ„ฐ๊ณตํ•™๋ถ€์— ์ž…ํ•™ํ•˜๊ณ , ์ธํ„ฐ๋„ท ๊ฐ•์˜๋ฅผ ํ†ตํ•ด์„œ ์ฝ”๋”ฉ์„ ํ•™์Šตํ•˜๋Š”๊ฒŒ ํšจ์œจ์ ์ด๊ณ  ๋ฌด์—‡๋ณด๋‹ค ์žฌ๋ฐŒ๋‹ค๋Š” ๊ฑธ ์•Œ๊ฒŒ๋˜๋ฉด์„œ ์ฝ”๋”ฉ ๊ต์œก ์„œ๋น„์Šค๋ฅผ ์ •๋ง ๋งŽ์ด ์ฐพ์•„๋‹ค๋…”๋˜ ๊ฒƒ ๊ฐ™์•„์š”! ์ €๋Š” ์‚ฌ์‹ค ์ค‘๊ณ ๋“ฑํ•™์ƒ ๋•Œ๋ถ€ํ„ฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•ด์˜ค์‹  ๋ถ„๋“ค๊ณผ๋Š” ๋‹ฌ๋ฆฌ ๋Œ€ํ•™๊ต์— ์ž…ํ•™ํ•˜๊ณ  ์ฒ˜์Œ ์ฝ”๋”ฉ์ด๋ผ๋Š” ๊ฑธ ์ ‘ํ–ˆ์—ˆ๋Š”๋ฐ์š”. ์‹ ์ž…์ƒ ๋•Œ ๊ฐœ๋ฐœ๋™์•„๋ฆฌ์— ๋“ค์–ด๊ฐ€์„œ, ์„ ๋ฐฐ๋“ค์—๊ฒŒ ์›น ํ”„๋กœ๊ทธ๋ž˜๋ฐ์— ๋Œ€ํ•ด์„œ ์ฒ˜์Œ์œผ๋กœ ๋ฐฐ์›Œ๋ณด๋ฉด์„œ ์ง์ ‘ ์›น์‚ฌ์ดํŠธ๋ฅผ ์ฝ”๋”ฉํ•˜๋Š”๊ฒŒ ๋„ˆ๋ฌด ์‹ ๊ธฐํ•ด์„œ ์žฌ๋ฏธ๋ฅผ ๋ถ™์ด๊ฒŒ ๋œ ์ผ€์ด์Šค ๊ฐ™์•„์š”. โฌ†๏ธ 1ํ•™๋…„ ๋•Œ ํƒœ์–ด๋‚˜ ์ฒ˜์Œ์œผ๋กœ ๋งŒ๋“ค์–ด๋ณธ ์›นํŽ˜์ด์ง€..

Review

์„œ์šธ์‹œ์šฐ๋จผํ…Œํฌํ•ด์ปคํ†ค ํ›„๊ธฐ(feat. ์šฐ์ˆ˜์ƒ)

์ง€๋‚œ 7, 8์›”์— '์„œ์šธ์‹œ์šฐ๋จผํ…Œํฌํ•ด์ปคํ†ค' ์ด๋ผ๋Š” ํ•ด์ปคํ†ค์— ์ฐธ์—ฌํ–ˆ์—ˆ๋‹ค. ๋‹จํ†ก๋ฐฉ์— ๊ณต์œ ๊ฐ€ ๋˜๊ธธ๋ž˜ ํฅ๋ฏธ๊ฐ€ ์ƒ๊ฒจ์„œ ๊ฐœ์ธ์œผ๋กœ ์ง€์›์„ ํ•ด๋ณด์•˜๋‹ค. ์–ด์ฐจํ”ผ ํŒ€๋งค์นญ์„ ์ž๋™์œผ๋กœ ํ•ด์ค€๋‹ค๊ณ  ํ•˜๋”๋ผ! ์ฃผ์ œ๋Š” ์ด๋ฏธ ๋‚˜์™€์žˆ์—ˆ๊ณ , ๊ณต๋ชจ ๋ถ„์•ผ๋ฅผ ๋”ฐ๋กœ ์ง€์›์„œ์— ์ž‘์„ฑํ•ด์„œ ๊ทธ ๊ณต๋ชจ ๋ถ„์•ผ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํŒ€๋งค์นญ์„ ํ•ด์ฃผ๋Š” ์‹์ด์—ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋‚ด๊ฐ€ ๊ฐœ๋ฐœ(ํ”„๋ก ํŠธ)์™€ '์•„์ด ํ‚ค์šฐ๊ธฐ ์ข‹์€ ๋„์‹œ' ๋ผ๋Š” ์ฃผ์ œ๋กœ ์ง€์›์„ ํ–ˆ๋‹ค๋ฉด '์•„์ด ํ‚ค์šฐ๊ธฐ ์ข‹์€ ๋„์‹œ' ์ฃผ์ œ๋ฅผ ์„ ํƒํ•œ ๋‹ค๋ฅธ ๊ธฐํš, ๋””์ž์ธ, ๋ฐฑ์—”๋“œ ๋ถ„๋“ค๊ณผ ํŒ€๋งค์นญ์ด ๋˜๋Š” ์‹์ด๋‹ค. 4๊ฐœ ๊ณต๋ชจ ๋ถ„์•ผ ์ค‘์—์„œ ํ•œ๊ฐ€์ง€๋ฅผ ์„ ํƒํ•˜๋ฉด ๋˜์—ˆ๊ณ  ์‹ ์ฒญ์„œ์—๋Š” ์ฐธ์—ฌ ๋™๊ธฐ, ๊ณ„ํš, ์ฐธ์—ฌ๋ชฉํ‘œ, ์•„์ด๋””์–ด ๊ตฌ์ฒดํ™” ๊ณ„ํš์„ ์ž‘์„ฑํ•ด์„œ ๋‚ด๋ฉด ๋๋‹ค. ์•„์ด๋””์–ด ๊ตฌ์ฒดํ™” ๊ณ„ํš์€ ๊ณต๋ชจ ๋ถ„์•ผ ์ค‘์—์„œ ํ•˜๋‚˜๋ฅผ ์„ ํƒํ•ด ์ž์‹ ์˜ ์•„์ด๋””์–ด๋ฅผ ์ ์–ด์„œ ๋‚ด๋Š” ๊ฒƒ์ด๋‹ค. ๊ทผ๋ฐ ์ด..

Develop/React.js

[React] ์นด์นด์˜ค ๋กœ๊ทธ์ธ ๊ตฌํ˜„ํ•˜๊ธฐ(๋ฐฑ์—”๋“œ์™€์˜ ํ˜‘์—…)

์ด๋ฒˆ ํ”„๋กœ์ ํŠธ ๋กœ๊ทธ์ธ ๋ถ€๋ถ„์„ ๋‚ด๊ฐ€ ๋‹ด๋‹นํ•˜๊ฒŒ ๋๋Š”๋ฐ, ๋กœ๊ทธ์ธ ๋ฐฉ์‹ ์ค‘์—์„œ ์นด์นด์˜ค ๋กœ๊ทธ์ธ์„ ๊ตฌํ˜„ํ•˜๊ฒŒ ๋๋‹ค. ๋ฆฌ์•กํŠธ ์นด์นด์˜ค ๋กœ๊ทธ์ธ์— ๊ด€๋ จํ•ด์„œ ์ •๋ฆฌ๋œ ๊ธ€๋“ค์ด ๋งŽ์•„ ๊ฐœ๋ฐœํ•  ๋•Œ ์ฐธ๊ณ ํ•˜๋ฉด์„œ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊นŒ๋จน์ง€ ์•Š๊ณ ์ž ํ•œ๋ฒˆ ์ •๋ฆฌํ•˜๋ ค ํฌ์ŠคํŒ…ํ•ด๋ณธ๋‹ค. ๋ฐฉ์‹ ํ”„๋ก ํŠธ์—”๋“œ์™€ ๋ฐฑ์—”๋“œ๊ฐ€ ํ˜‘์—…ํ•˜๋ฉด์„œ ์นด์นด์˜ค ๋กœ๊ทธ์ธ์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ์‹์ด ๋‹ค๋ฅผ ์ˆ˜ ์žˆ๋‹ค. ๋‚˜๋Š” ์ด๋Ÿฐ ๋ฐฉ์‹์œผ๋กœ ํ–ˆ๋‹ค- ๋ผ๋Š” ์ •๋„๋กœ ์ฐธ๊ณ ํ•˜์‹œ๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค. ๋‚˜๋Š” ํ”„๋ก ํŠธ์—”๋“œ ๋‹ด๋‹น์ด์–ด์„œ ํ”„๋ก ํŠธ์—”๋“œ ์ž…์žฅ์—์„œ ์„œ์ˆ ํ•ด๋ณด๋ ค๊ณ ํ•œ๋‹ค. ํ”„๋ก ํŠธ์—”๋“œ์—์„œ ์นด์นด์˜ค ๋กœ๊ทธ์ธ ์š”์ฒญ / ์ธ๊ฐ€ ์ฝ”๋“œ ๋ฐ›๊ธฐ ์š”์ฒญ์„ ํ•œ๋‹ค ์นด์นด์˜ค์—์„œ redirect url ๋กœ ์ธ๊ฐ€์ฝ”๋“œ๋ฅผ ํ”„๋ก ํŠธ์—”๋“œ๋กœ ๋ณด๋‚ด์ค€๋‹ค. ๋ฐ›์€ ์ธ๊ฐ€์ฝ”๋“œ๋ฅผ ๋ฐฑ์—”๋“œ์—๊ฒŒ ๋ณด๋‚ธ๋‹ค. ๋ฐฑ์—”๋“œ๋Š” ์ด ์ธ๊ฐ€์ฝ”๋“œ๋ฅผ ๋ฐ›์•„ ์ฒ˜๋ฆฌํ•ด์„œ AccessToken ์„ ์‘๋‹ต์œผ๋กœ ํ”„๋ก ..

Develop/React.js

[React] ๋กœ๊ทธ์ธ์—ฌ๋ถ€์— ๋”ฐ๋ผ Route ์ ‘๊ทผ ์„ค์ •ํ•˜๊ธฐ

๋กœ๊ทธ์ธ ์—ฌ๋ถ€์— ๋”ฐ๋ผ์„œ ์ ‘์†ํ•  ์ˆ˜ ์žˆ๋Š” ํŽ˜์ด์ง€๋ฅผ ์ œํ•œํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ ํฌ์ŠคํŒ…ํ•ด๋ณด๋ คํ•œ๋‹ค. ๋‚˜ ๊ฐ™์€ ๊ฒฝ์šฐ์—๋Š” '/' ๊ฒฝ๋กœ๋Š” ํ™ˆ ํŽ˜์ด์ง€ ์—ฌ์„œ ๋กœ๊ทธ์ธ์„ ํ•ด๋„, ์•ˆํ•ด๋„ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•ด์•ผํ–ˆ๊ณ  ๊ทธ ์™ธ์— ๋‚˜๋จธ์ง€ ํŽ˜์ด์ง€๋“ค์€ isLogin ์ƒํƒœ๊ฐ€ true ์ผ ๊ฒฝ์šฐ์—๋งŒ ์ ‘๊ทผ๊ฐ€๋Šฅํ•˜๋„๋ก ๊ตฌํ˜„ํ•˜๊ณ  ์‹ถ์—ˆ๋‹ค. ์ „์ฒด ์ฝ”๋“œ๋ถ€ํ„ฐ ๋ณด์ž ... import { userInfoState } from "./recoil/atoms/userState"; import { useRecoilState } from "recoil"; function App() { const [userInfo] = useRecoilState(userInfoState); const isLogin = userInfo.isLogin; return ( {isLogin ? ( ) : ..

Develop/React.js

[์˜ค๋ฅ˜] react-slick slidesToShow ๋ณด๋‹ค ๊ฐœ์ˆ˜๊ฐ€ ์ ์„ ๊ฒฝ์šฐ

๋ฌธ์ œ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ฐœ๋ฐœํ•˜๋ฉด์„œ ์ด๋ ‡๊ฒŒ ์—ฌ๋Ÿฌ๊ฐœ์˜ ์ด๋ฏธ์ง€ ์Šฌ๋ผ์ด๋“œ๋ฅผ ๊ตฌํ˜„ํ• ์ผ์ด ์ƒ๊ฒผ๋‹ค. (๋ฐฑ์—”๋“œ๋ž‘ ์—ฐ๋™ํ•˜๊ธฐ์ „์ด๋ผ ์˜ˆ์‹œ ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ๊ณ  ํ…Œ์ŠคํŠธํ•˜๊ณ  ์žˆ์—ˆ๋‹ค.) ํ•œ๋ฒˆ์— 5๊ฐœ๊นŒ์ง€ ๋ณด์—ฌ์ค„ ์ˆ˜ ์žˆ๋„๋ก ์„ค์ •ํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ 8~9๊ฐœ ์ •๋„ ๋„ฃ์–ด๋†“๊ณ  ํ…Œ์ŠคํŠธ๋ฅผ ํ•˜๊ณ  ์žˆ์—ˆ๋‹ค. ์ด๋•Œ settings ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์•˜๋‹ค. const settings = { dots: false, infinite: true, speed: 500, slidesToShow: 5, slidesToScroll: 3, arrows: true, // autoplay: true, }; ๊ทผ๋ฐ ์˜ˆ์‹œ ๋ฐ์ดํ„ฐ๋ฅผ 2๊ฐœ๋กœ ์ค„์ด๊ณ  ํ…Œ์ŠคํŠธํ•˜๋‹ˆ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ด์ƒํ•˜๊ฒŒ ์ค‘๋ณต๋˜์–ด ๋‚˜์˜จ๋‹ค. ํ•ด๊ฒฐ ๊ตฌ๊ธ€๋ง์„ ํ•ด๋ณด๋‹ˆ๊นŒ ๋‚˜๊ฐ™์€ ๋ฌธ์ œ๋ฅผ ๊ฒช๋Š” ์‚ฌ๋žŒ๋“ค์ด ์žˆ๋Š” ๊ฒƒ ๊ฐ™์•„ ๋ณด์˜€๋‹ค. react-slick ๋ ˆํฌ์ง€ํ„ฐ๋ฆฌ..

Develop/React.js

[์˜ค๋ฅ˜] axios ์ค‘๋ณต ํ˜ธ์ถœ

๋ฌธ์ œ axios ๋กœ post ์š”์ฒญ์„ ๋ณด๋‚ด๋Š”๋ฐ ์ž๊พธ api ํ˜ธ์ถœ์„ ๋‘๋ฒˆํ•˜๋Š” ๋ฌธ์ œ๊ฐ€ ์ƒ๊ฒผ๋‹ค. ๋‹ค๋ฅธ api ๋ฉด ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ ๋‚ด๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” api ๋Š” ๋‘๋ฒˆ ํ˜ธ์ถœํ•˜๋ฉด ์ค‘๋ณต๋œ code ์—ฌ์„œ ์œ ํšจํ•œ code ๋กœ ๋™์ž‘ํ•˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ด์•ผํ–ˆ๋‹ค. ํ•ด๊ฒฐ ๊ตฌ๊ธ€๋ง์„ ํ•˜๋‹ค๋ณด๋‹ˆ src/index.js ์—์„œ React.StrictMode ๋ฅผ ์ง€์›Œ๋ณด๋ผ๋Š” ๋ง์— ๋”ฐ๋ผํ–ˆ๋”๋‹ˆ ์ค‘๋ณต ํ˜ธ์ถœ์„ ๋ง‰์„ ์ˆ˜ ์žˆ์—ˆ๋‹ค.

Develop/React.js

[React] date picker ๋กœ ๋‚ ์งœ ์„ ํƒํ•˜๊ธฐ

๊ฐœ๋ฐœ์„ ํ•˜๋‹ค๊ฐ€ ๋‚ ์งœ๋ฅผ ์„ ํƒํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•  ์ผ์ด ์ƒ๊ฒผ๋‹ค. ์–ด๋–ค๊ฑธ ์“ธ๊นŒ ์ฐพ์•„๋ณด๋Š”๋ฐ react-datepicker ๋ผ๋Š” ๊ฒŒ ์žˆ์—ˆ๋‹ค. ๊ทผ๋ฐ... ์ข€ ๋ชป์ƒ๊ฒผ๋‹ค? ๋ฌผ๋ก  ์ปค์Šคํ…€์„ ํ•  ์ˆ˜๋Š” ์žˆ์ง€๋งŒ ์ง€๊ธˆ ๋‹น์žฅ์€ ์ปค์Šคํ…€ ์—†์ด๋„ ์ข€ ๋” ์˜ˆ์œ๊ฑธ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์—ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‹ค mui x ๋ผ๋Š” ๊ฑธ ์ฐพ์•˜๋‹ค. https://mui.com/x/react-date-pickers/date-picker/ React Date Picker component - MUI X The Date Picker component lets the user select a date. mui.com ๋Œ€์ถฉ ์ด๋Ÿฐ์‹์œผ๋กœ ์ƒ๊ฒผ๋‹ค. ์„ค์น˜ npm install @mui/x-date-pickers // Install date library (if not already ins..

Ambassador/DEVOCEAN YOUNG

[๋ฐ๋ณด์…˜์˜] 7์›” ์˜๋ฐ‹์—… ํ›„๊ธฐ!

์•ˆ๋…•ํ•˜์„ธ์š”. ๋ฐ๋ณด์…˜์˜ 2๊ธฐ ์„œ๋‹ค์›์ž…๋‹ˆ๋‹ค! ๋ฐ๋ณด์…˜์˜์˜ ํ™œ๋™ ์ค‘ ํ•˜๋‚˜๋Š” ๋ฐ”๋กœ ์˜๋“ค๊ณผ ํ•จ๊ป˜ํ•˜๋Š” ๋ฐ‹์—…! ์ธ๋ฐ์š”. ํ•œ๋‹ฌ์— ํ•œ๋ฒˆ์”ฉ ์˜จ๋ผ์ธ์œผ๋กœ ๋งŒ๋‚˜ ์„ธ๋ฏธ๋‚˜๋ฅผ ๋“ฃ๊ณ  ํ˜„์ง์ž๋ถ„๋“ค๊ณผ Q&A๋ฅผ ํ•  ์ˆ˜ ์žˆ๋Š” ์‹œ๊ฐ„์„ ๊ฐ€์ง„๋‹ต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด๋ฒˆ 7์›” ๋ฐ‹์—…์€ ๋ฐ๋ณด์…˜์˜์˜ ์ง€์ธ๋“ค๋„ ์ฐธ์—ฌํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ‹์—…์ด์—ˆ์–ด์š”! ์ฃผ๋ณ€ ์ง€์ธ๋“ค์—๊ฒŒ ๋ฐ‹์—…๊ด€๋ จํ•ด์„œ ๊ณต์œ ํ•ด์ฃผ๋‹ˆ๊นŒ ๋‹ค๋“ค ์ข‹์•„ํ•˜์‹œ๋”๋ผ๊ตฌ์š”๐Ÿฅน ์ด๋ฒˆ 7์›” ๋ฐ‹์—… ๋ฐœํ‘œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์•˜๋Š”๋ฐ์š”~ 1. ์˜์—…๋งจ ์™•๋Œ€๋ฆฌ๋Š” ์–ด๋–ป๊ฒŒ ๋ฐ๋ณด์…˜ ์ „๋ฌธ๊ฐ€๊ฐ€ ๋˜์—ˆ์„๊นŒ? (์™•ํƒœ์›…๋‹˜) 2. ๊ฐœ๋ฐœ์ž์˜ ์„ฑ์žฅ๊ณผ ์˜คํ”ˆ์†Œ์Šค, ๊ทธ๋ฆฌ๊ณ  ์ปค๋ฎค๋‹ˆํ‹ฐ (๋ฐ•์ •ํ™˜๋‹˜) 3. ์ปด๊ณต ํ›„๋ฐฐ๋“ค์ด 3~4ํ•™๋…„๋•Œ ๊ฐ€์žฅ ๋งŽ์ด ํ•˜๋Š” ์งˆ๋ฌธ Top 10 (๊น€ํ•œ์„ฑ๋‹˜) 4. ์ƒ์ƒํ•œ ์ทจ์—… ์ค€๋น„ ๊ณผ์ •๊ณผ ํŒ (์‹ฌ์žฌํ›ˆ๋‹˜) ๋Œ€ํ•™์ƒ๋“ค์ด ๋‹ค๋“ค ๊ถ๊ธˆํ•ดํ•˜๊ณ  ๊ด€์‹ฌ๊ฐ€์งˆ๋งŒํ•œ ๋‚ด์šฉ์ด์ฃ ? ์ •๋ง ๋ฐ๋ณด์…˜์€ ๋ฐ๋ณด์…˜์˜..

Ambassador/DEVOCEAN YOUNG

[๋ฐ๋ณด์…˜์˜] SKT๋ณธ์‚ฌ๋ฐฉ๋ฌธ & ํ‹ฐ์›€(T.um)ํˆฌ์–ด ํ›„๊ธฐ

์•ˆ๋…•ํ•˜์„ธ์š”. ๋ฐ๋ณด์…˜์˜ 2๊ธฐ ์„œ๋‹ค์›์ž…๋‹ˆ๋‹ค! ์˜ค๋Š˜์€ SKT Tํƒ€์›Œ์—์„œ ์ง„ํ–‰๋œ ํ‹ฐ์›€ ํˆฌ์–ด ์ฒดํ—˜๊ณผ SKT ๋ณธ์‚ฌ๋ฅผ ๋ฐฉ๋ฌธํ•ด๋ณธ ํ›„๊ธฐ๋ฅผ ํฌ์ŠคํŒ…ํ•ด๋ณผ๊นŒํ•ฉ๋‹ˆ๋‹ค.์ €๋Š” ๋ฐ๋ณด์…˜์˜ ํ™œ๋™์˜ ์ผํ™˜์œผ๋กœ ํ‹ฐ์›€ํˆฌ์–ด๋ฅผ ์ง„ํ–‰ํ•˜๊ฒŒ ๋˜์—ˆ๋Š”๋ฐ์š”.์ง์ ‘ ์‚ฌ์ดํŠธ์—์„œ ์˜ˆ์•ฝํ•˜๊ณ  ๋ฐฉ๋ฌธํ•  ์ˆ˜๋„ ์žˆ์–ด์š”. ์˜ˆ์•ฝํ•  ์ˆ˜ ์žˆ๋Š” ์‚ฌ์ดํŠธ๋Š” ์•„๋ž˜ ๋งํฌ๋ฅผ ์ฐธ๊ณ ํ•ด์ฃผ์„ธ์š”!https://tum.sktelecom.com/reservation/registReservation.do ๋ฏธ๋ž˜๊ธฐ์ˆ  ์ฒดํ—˜๊ด€ T.um(ํ‹ฐ์›€)SKํ…”๋ ˆ์ฝค ๋ฏธ๋ž˜๊ธฐ์ˆ  ์ฒดํ—˜๊ด€, ์‹œ์„ค ์•ˆ๋‚ด, ๋ฐฉ๋ฌธ์˜ˆ์•ฝ, ์ „์‹œ๊ด€ ์ •๋ณด, ์ฒดํ—˜ ์„œ๋น„์Šค ๋“ฑ ์ œ๊ณต.tum.sktelecom.comํˆฌ์–ด ์œ ํ˜•์—๋Š” ์œ ํŠœ๋ธŒ ๋ผ์ด๋ธŒ ํˆฌ์–ด์™€ ํ˜„์žฅ ํˆฌ์–ด๊ฐ€ ์žˆ๋Š”๋ฐ ํ˜„์žฅ ํˆฌ์–ด๋ฅผ ์„ ํƒํ•ด์ฃผ์‹œ๋ฉด ๋  ๊ฒƒ ๊ฐ™์•„์š”. ๋จผ์ € ์„์ง€๋กœ์— ์žˆ๋Š” SKT Tํƒ€์›Œ์— ๋„์ฐฉ์„ ํ–ˆ์–ด์š”.๋ฐ๋ณด์…˜์˜๋‹ด๋‹น์ž๋‹˜..

wonny_dev
WonnyDocs

...