๊ฐœ๋ฐœ์ž์˜ ์ค‘๊ตญ์–ด ์‚ฌ์ „(็จ‹ๅบๅ‘˜็š„่ฏๅ…ธ)

ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ด€๋ จ ์ค‘๊ตญ์–ด(ๆฑ‰่ฏญ)-ํ•œ๊ตญ์–ด(้Ÿฉ่ฏญ) ์šฉ์–ด ์‚ฌ์ „

ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ด€๋ จ ์„œ์  ๋ฒˆ์—ญ ์ค‘ ์ •๋ฆฌํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ด€๋ จ ๋‹จ์–ด์ž…๋‹ˆ๋‹ค.

ไธญ้Ÿฉ็ฟป่ฏ‘่ฟ‡็จ‹ไธญ้‡ๅˆฐ็š„ๅธธ็”จๅ•่ฏๅ’Œ็ผ–็จ‹ๆœฏ่ฏญใ€‚


ใ„ฑ – ใ…

  • ๋‚ด๋ฆผ์ฐจ์ˆœ – ้™ๅบๆŽ’ๅบ (jiร ng xรน pรกi xรน)
  • ๋„ˆ๋น„์šฐ์„  ๊ฒ€์ƒ‰ – ๅนฟๅบฆไผ˜ๅ…ˆๆœ็ดข (guวŽng dรน yลu xiฤn sลu suว’)
  • ๋„ค์ž„์ŠคํŽ˜์ด์Šค – ๅ‘ฝๅ็ฉบ้—ด (mรฌng mรญng kลng jiฤn)
  • ๋™์ ๊ณ„ํš๋ฒ• – ๅŠจๆ€่ง„ๅˆ’ (dรฒng tร i guฤซ huรก) = ๅŠจๅฝ’ (dรฒng guฤซ)
  • ๋””๋ฒ„๊น… – ่ฐƒ่ฏ• (diร o shรฌ)
  • ๋กœ์ง – ้€ป่พ‘ (luรณjรญ)
  • ๋ฆฌ์ŠคํŠธ – ๅˆ—่กจ (liรจ biวŽo)
  • ๋ฆฌํ„ด – ่ฟ”ๅ›ž (fวŽn huรญ)
  • ๋งํฌ๋“œ๋ฆฌ์ŠคํŠธ – ้“พ่กจ (liร n biวŽo)
  • ๋ฉ”๋ชจ๋ฆฌ – ๅ†…ๅญ˜ (nรจi cรบn)
  • ๋ฉ”๋ชจ์ด์ œ์ด์…˜ ๅค‡ๅฟ˜ๅฝ• (bรจi wร ng lรน)
  • ๋ฉ”์„œ๋“œ – ๆˆๅ‘˜ๅ‡ฝๆ•ฐ (chรฉng yuรกn hรกn shรน)
  • ๋งคํ•‘ – ๆ˜ ๅฐ„ (yรฌng shรจ)
  • ๋ฌด์ฐจ๋ณ„ ํƒ์ƒ‰(brute force search) – (ๆšดๅŠ›่งฃๆณ• bร o lรฌ jiฤ› fวŽ) (=์™„์ „ ํƒ์ƒ‰)
  • ๋ฌธ์ž์—ด – ๅญ—็ฌฆไธฒ (zรฌ fรบ chuร n)
  • ๋ฏธ๋“ค์›จ์–ด – ไธญ้—ดไปถ (zhลng jiฤn jiร n)

ใ…‚ – ใ…ˆ

  • ๋ฐ”์ด๋„ˆ๋ฆฌ – ไบŒๅ‰(รจr chฤ)
  • ๋ฐฐ์—ด – ๆ•ฐ็ป„ (shรน zว”)
  • ์„ ์–ธ – ๅฃฐๆ˜Ž (shฤ“ng mรญng)
  • ์ˆœํšŒ – ้ๅŽ† (biร n lรฌ)
  • ์Šคํƒ – ๅ †ๆ ˆ (duฤซ zhร n)
  • ์•ก์„ธ์Šค – ่ฎฟ้—ฎ (fวŽng wรจn)
  • ์—ญ์ง๋ ฌํ™” – ๅๅบๅˆ—ๅŒ– (fวŽn xรน liรจ huร )
  • ์—ญ์ถ”์  – ๅ›žๆบฏ (huรญ sรน)
  • ์˜ค๋ฆ„์ฐจ์ˆœ – ๅ‡ๅบๆŽ’ๅบ (shฤ“ng xรน pรกi xรน)
  • ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ – ๆบขๅ‡บ (yรฌchลซ)
  • ์™„์ „ ํƒ์ƒ‰ ็ฉทไธพ็ฎ—ๆณ• (qiรณng jว” suร n fวŽ) (=๋ฌด์ฐจ๋ณ„ ํƒ์ƒ‰)
  • ์Œ์ˆ˜ – ่ดŸๆ•ฐ (fรนshรน)
  • ์˜์‚ฌ ๊ฒฐ์ • ํŠธ๋ฆฌ – ๅ†ณ็ญ–ๆ ‘ (juรฉ cรจ shรน)
  • ์˜์‚ฌ์ฝ”๋“œ – ไผช็  (wฤ›i mวŽ)
  • ์ž…๋ ฅ – ่พ“ๅ…ฅ (shลซ rรน)
  • ์กฐ๊ฑด๋ฌธ – ๆกๅˆคๆ–ญ่ฏญๅฅ (tiรกo pร n duร n yว”jรน)
  • ์ง๋ ฌํ™” – ๅบๅˆ—ๅŒ– (xรน liรจ huร )

ใ…Š – ใ…Ž

  • ์นด์šดํ„ฐ – ่ฎกๆ•ฐๅ™จ(jรฌ shรน qรฌ)
  • ์บ์‹œ – ็ผ“ๅญ˜(huวŽn cรบn)
  • ํ – ้˜Ÿๅˆ— (duรฌ liรจ)
  • ์ฟผ๋ฆฌ – ๆŸฅ่ฏข (chรก xรบn)
  • ํ…์ŠคํŠธ – ๆ–‡ๆœฌ (wรฉn bฤ›n)
  • ํŠธ๋ฆฌ – ๆ ‘ (shรน)
  • ํŠธ๋ฆฌ๊ฑฐ – ่งฆๅ‘ (chรน fฤ)
  • ํŒจํ‚ค์ง€ – ๅŒ… (bฤo)
  • ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜์—ด – ๆ–ๆณข้‚ฃๅฅ‘ๆ•ฐๅˆ—(fฤ“i bล nร  qรฌ shรน liรจ)
  • ํด๋ž˜์Šค – ็ฑป (lรจi)
  • ํด๋ฆฝ๋ณด๋“œ – ๅ‰ช่ดดๆฟ (jiวŽn tiฤ“ bวŽn)
  • ํ• ๋‹น – ่ต‹ๅ€ผ (fรน zhรญ)
  • ํ•จ์ˆ˜ ์‹œ๊ทธ๋‹ˆ์ณ – ๅ‡ฝๆ•ฐ็ญพๅ (hรกn shรน qiฤn mรญng)
  • ํ•ด์‹œํ…Œ์ด๋ธ” – ๅ“ˆๅธŒ่กจ (hฤ xฤซ biวŽo)
  • ํ—ค๋” – ๅคดๆ–‡ไปถ (tรณu wรฉn jiร n)

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ, ํŽธ๋ฆฌํ•œ ๋ฐฐ์—ด ๋ณ‘ํ•ฉ ๋ฐฉ๋ฒ•(Merge Arrays in Javascript)

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๋ฐฐ์—ด ๋ณ‘ํ•ฉ ๋ฐฉ๋ฒ•(concat(), …spread, push())

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃจ๋Š” ์ผ์ด ์ ์  ๋” ๋งŽ์•„์ง€๊ณ , ๋ฐฐ์—ด์„ ์‚ฌ์šฉํ•˜๋Š” ๊ด€๋ จ ์ž‘์—…์„ ๋งŽ์ด ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

๊ทธ ์ค‘์—์„œ๋„ ๋ณ‘ํ•ฉ๊ณผ ๊ด€๋ จ๋œ ๋ถ€๋ถ„์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.


๋ฐฐ์—ด์€ ์ธ๋ฑ์Šค(Index)๋ฅผ ๊ฐ–๋Š” ์š”์†Œ๋ฅผ ์ˆœ์„œ๋Œ€๋กœ ๋‚˜ํƒ€๋‚ธ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค.

ํ•˜๋‚˜์˜ ๋ฐฐ์—ด์ด๋ผ๋ฉด ์ธ๋ฑ์Šค ๋˜๋Š” ๋ฉ”์†Œ๋“œ(unshift(), push(), shift(), pop(), splice(), find(), includes(), join(), indexOf() ๋“ฑ)๋ฅผ ์‚ฌ์šฉํ•ด ๋ฐฐ์—ด ๋‚ด๋ถ€์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์‰ฝ๊ฒŒ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ์ฃ .

๋ฐฐ์—ด์˜ ๋ณ‘ํ•ฉ(Merge) ๋˜ํ•œ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค.

concat(), push(), ์Šคํ”„๋ ˆ๋“œ ์—ฐ์‚ฐ์ž(…spread), ๋“ฑ ๋ฐฐ์—ด์˜ ๋ณ‘ํ•ฉ์„ ์œ„ํ•œ ์—ฌ๋Ÿฌ ๋ฐฉ๋ฒ•์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.

ํ•˜๋‚˜์”ฉ ํ™•์ธํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

1. ๋ฐฐ์—ด ๋ณ‘ํ•ฉ์˜ 3๊ฐ€์ง€ ๋ฐฉ๋ฒ•

concatenate(์—ฐ๊ฒฐ์‹œํ‚ค๋‹ค, ์‚ฌ์Šฌ๊ฐ™์ด ์ž‡๋‹ค)์˜ ์•ฝ์ž์ธ concat()์€ ๋ง ๊ทธ๋Œ€๋กœ ๋‘ ๋ฐฐ์—ด์„ ์—ฐ๊ฒฐํ•˜๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.

ํฌ๊ฒŒ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ์‚ฌ์šฉํ•˜๋ฉฐ, ์ƒ˜ํ”Œ ์ฝ”๋“œ๋ฅผ ํ†ตํ•ด ์กฐ๊ธˆ ๋” ์ƒ์„ธํ•œ ๋ถ€๋ถ„์„ ํ™•์ธํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

  • [array1].concat([array2]…..)
  • [].concat([array1], [array2]……)
const color1 = ['blue', 'pink', 'white'];
const color2 = ['black', 'orange', 'yellow'];
const num1 = [100, 200, 300];
const num2 = [400, 500, [600, 700]];

const allColor = color1.concat(color2); 
//['blue', 'pink', 'white', 'black', 'orange', 'yellow']
console.log(allColor); 

const colorPlus = color1.concat('gold', ['silver', 'bronze']); 
//['blue', 'pink', 'white', 'gold', 'silver', 'bronze']
console.log(colorPlus);

const colorAndNum = color1.concat(num1);   
//['blue', 'pink', 'white', 100, 200, 300]
console.log(colorAndNum); 

const allNum = num1.concat(num2);   
//[100, 200, 300, 400, 500, [600, 700]]
console.log(allNum); 

์œ„์™€ ๊ฐ™์ด concat์€ ํ•˜๋‚˜ ์ด์ƒ์˜ ๋ฐฐ์—ด์„ ํ•ฉ์ณ ํ•˜๋‚˜์˜ ๋ฐฐ์—ด๋กœ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

๋ฐฐ์—ด ๋‚ด๋ถ€ ๋ฐ์ดํ„ฐ ํƒ€์ž…์— ์ƒ๊ด€์—†์ด ๋ณ‘ํ•ฉ์ด ๊ฐ€๋Šฅํ•˜๋ฉฐ, ์ค‘์ฒฉ๋œ ๋ฐฐ์—ด์˜ ๋ณ‘ํ•ฉ๋„ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

ES6์—์„œ ์ถ”๊ฐ€๋œ ๋ฌธ๋ฒ•์ธ ์Šคํ”„๋ ˆ๋“œ ์—ฐ์‚ฐ์ž๋Š” ๋ฐฐ์—ด์ด๋‚˜ ๊ฐ์ฒด๋ฅผ ๋น ๋ฅด๊ณ  ์•ˆ์ „ํ•˜๊ฒŒ ๋ณต์‚ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊นŠ์€ ๋ณต์‚ฌ(Deep copy) ๋ฐฉ์‹์œผ๋กœ ๋ณต์‚ฌ๋ฅผ ์ง„ํ–‰ํ•ด ๊ธฐ์กด์˜ ๋ฐฐ์—ด ๋ฐ์ดํ„ฐ์™€๋Š” ๋‹ค๋ฅธ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ ๋ฐฐ์—ด ๋ณ‘ํ•ฉ ๋ฐฉ๋ฒ• ์ค‘์—์„œ๋Š” ๊ฐ€์žฅ ์ข‹์€ ๋ฐฉ์‹์ด๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

const musician = ['Chet Baker', 'Miles Davis'];
const actor = ['Clint Eastwood', 'George Clooney'];

const favorites = [...musician, ...actor];    
// ['Chet Baker', 'Miles Davis', 'Clint Eastwood', 'George Clooney'];
console.log(favorites); 

const favoritesReverse = [...actor, ...musician];
// ['Clint Eastwood', 'George Clooney', 'Chet Baker', 'Miles Davis'];
console.log(favoritesReverse)

์Šคํ”„๋ ˆ๋“œ ์—ฐ์‚ฐ์ž๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋น„๊ตฌ์กฐํ™” ํ• ๋‹น์—์„œ๋„ ์ž์ฃผ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

const myColor = ['beige', 'burgundy', 'charcoal', 'ivory'];

const [color1, color2, ...others  ] = myColor;
console.log(color1);   // 'beige'
console.log(color2);   // 'burgundy'
console.log(others);   // ['charcoal', 'ivory']

push() ๋ฉ”์†Œ๋“œ๋Š” ๋ฐฐ์—ด ๋์— ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€ํ•  ๋•Œ ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ๋ฉ”์†Œ๋“œ์ž…๋‹ˆ๋‹ค.

push() ๋ฉ”์†Œ๋“œ์™€ ์Šคํ”„๋ ˆ๋“œ ์—ฐ์‚ฐ์ž๋ฅผ ๊ฐ™์ด ์‚ฌ์šฉํ•˜๋ฉด ๋ฐฐ์—ด ๋ณ‘ํ•ฉ์ด ๊ฐ€๋Šฅํ•˜์ง€๋งŒ ๊ธฐ์กด ๋ฐฐ์—ด์— ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐฉ์‹์ด๋ฏ€๋กœ ๊ธฐ์กด ๋ฐฐ์—ด์ด ๋ณ€๊ฒฝ๋˜๋Š” ๋ถ€๋ถ„์„ ์ฃผ์˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

const pizza = ['dough', 'cheese', 'meat', 'source'];
const pizzaAdd = ['parmesan', 'tabasco'];

pizza.push(...pizzaAdd);   

// ['dough', 'cheese', 'meat', 'source', 'parmesan', 'tabasco'];
console.log(pizza); 

2. ๋งˆ๋ฌด๋ฆฌ

๋ฐฐ์—ด์„ ๋ณ‘ํ•ฉํ•˜๋Š” ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๋ฐฉ๋ฒ• ์ค‘ concat(), …spread, push() ์„ธ ๊ฐ€์ง€๋ฅผ ์†Œ๊ฐœํ•˜์˜€์Šต๋‹ˆ๋‹ค.

๊ฐ ์ƒํ™ฉ์— ๋”ฐ๋ผ ํ•„์š”ํ•œ ๋ฐฉ๋ฒ•์ด ๋‹ค๋ฅด๋‹ˆ ํ•„์š”์— ๋”ฐ๋ผ ๋งž๋Š” ๊ฒƒ์„ ๊ณจ๋ผ ์‚ฌ์šฉํ•˜๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

ใ‚„ใ™ใใฆ้€Ÿใ„ๆญฃ่ฆ่กจ็พ(Easy Regular Expression)

ๆญฃ่ฆ่กจ็พใฎๆง‹ๆˆใจๆ„ๅ‘ณใ€ใ‚ธใƒฃใƒใ‚นใ‚ฏใƒชใƒ—ใƒˆ(Javascript)ใงใฎใŠๆ‰ฑใ„

ๆญฃ่ฆ่กจ็พใจใ„ใ†ใฎใฏๆคœ็ดขใƒ‘ใƒผใ‚ฟใƒณใ‚’ๆŒ‡ๅฎšใ—่จ˜ๅทใง่กจ็คบใ—ใŸใ‚‚ใฎใงใ™ใ€‚

ใ“ใฎใ‚ขใ‚คใƒ‡ใ‚ขใฏใ‚ขใƒกใƒชใ‚ซใฎๆ•ฐๅญฆ่€…ใงใ‚ใ‚‹ใ‚นใƒ†ใ‚ฃใƒผใƒ–ใƒณใ‚ณใƒผใƒซใ‚ฏใƒชใƒผใƒณ(Stephen Cole Kleene)ใŒ1950ๅนดไปฃใซๆญฃ็พฉใ—ใŸๆญฃ่ฆ่จ€่ชž(Regular Language)ใจ้–ขไฟ‚ใŒใ‚ใ‚Šใพใ—ใฆใ€ๆญฃ่ฆ่กจ็พใฎๆ–‡ๆณ•ใฏ1980ๅนดไปฃใซใƒ‘ใƒผใƒซ(Perl)่จ€่ชžใ‹ใ‚‰ไฝฟใ„ๅง‹ใพใ‚Šใพใ—ใŸใ€‚

ไธปใซใ€ๆคœ็ดขใ‚„็ฝฎๆ›ใฎไฝœๆฅญใซไฝฟใ‚ใ‚Œใ€็š†ใŒไฝฟใ†ใปใจใ‚“ใฉใฎใƒ—ใƒญใ‚ฐใƒฉใƒŸใƒณใ‚ฐ่จ€่ชžใฎไธญใงใ‚ตใƒใƒผใƒˆใ•ใ‚Œใฆใ„ใ‚‹ๆ–‡ๆณ•ใงใ™ใ€‚

ไพ‹ใˆใฐใ€ๆฌกใฎๆ–‡็ซ ใฎไธญใง็‰นๅฎšใ—ใŸๆกไปถใ‚’ๆคœ็ดขใ™ใ‚‹ใจใๆญฃ่ฆ่กจ็พใฎๅŠ›ใ‚’ๅ€Ÿใ‚Šใ‚‹ใ“ใจใŒใงใใพใ™ใ€‚

The greatest danger for most of us is not that our aim is too high and we miss it, but that it is too low and we reach it.

  • ‘too’ ๆ–‡ๅญ—ๅˆ—ใ‚’ๆคœ็ดขใ™ใ‚‹ -> /too/
    The greatest danger for most of us is not that our aim is too high and we miss it, but that it is too low and we reach it.
  • ๅคงใ€ๅฐๆ–‡ๅญ—ใ‚’ๆง‹ใ‚ใชใ ‘t’ ๆ–‡ๅญ—ใ‚’ๆคœ็ดขใ™ใ‚‹ใจใ -> /t/-gi
    The greatest danger for most of us is not that our aim is too high and we miss it, but that it is too low and we reach it.
  • ‘d’ ใ‹ใ‚‰ๅง‹ใพใ‚‹ๅ˜่ชžๅŠใณๆ–‡ๅญ—ใฎใ™ในใฆใ‚’ๆคœ็ดขใ™ใ‚‹ใจใ -> /[d]\w+/-gi
    The greatest danger for most of us is not that our aim is too high and we miss it, but that it is too low and we reach it.
  • ‘ea’ใ‚’ๅซใ‚€ๅ˜่ชžใ‚’ๆคœ็ดขใ™ใ‚‹ใจใ -> /[a-z]*ea[a-z]*/-i
    The greatest danger for most of us is not that our aim is too high and we miss it, but that it is too low and we reach it

ๆญฃ่ฆ่กจ็พใฎๆ–‡ๆณ•ใƒ†ใ‚นใƒˆใฏๆฌกใฎใƒšใƒผใ‚ธใŒๅŠฉใ‹ใ‚Šใพใ™ใ€‚

regexr.com

้’ใ„ใƒใƒผExpressionใฎไธ‹ใฎใ‚คใƒณใƒ—ใƒƒใƒˆใซใฏ่กจ็พใ‚’ๅ…ฅใ‚Œๆ›ธใใ€ใใฎไธ‹ใฎใƒœใƒƒใ‚ฏใ‚นใซใฏๆคœ็ดขๅฏพ่ฑกใซใชใ‚‹ใƒ†ใ‚ญใ‚นใƒˆใ‚’ๅ…ฅใ‚Œใ‚Œใฐใ‚ชใƒƒใ‚ฑใƒผใงใ™ใ€‚

ใพใšใ€่กจ็พใฎๆ„ๅ‘ณใซใคใ„ใฆๅฐ‘ใ—ๅ‹‰ๅผทใ—ใฆใ‹ใ‚‰Javascriptใงๆฅฝใซไฝฟใ†ๆ–นๆณ•ใ‚’็ขบ่ชใ—ใฆใฟใพใ™ใ€‚


1. ๆญฃ่ฆ่กจ็พใฎ่จ˜ๅท

  • / . / โ†’ ใ™ในใฆใฎๆ–‡ๅญ—
  • / + / โ†’ ไธ€ใคไปฅไธŠใฎๆ–‡ๅญ—
  • / ? / โ†’ ๏ผใพใŸใฏไธ€ใคใฎๆ–‡ๅญ—
  • / ^ / โ†’ ่ฉฒๅฝ“ใฎๆ–‡ๅญ—ใ‚’้™คใ
  • / / โ†’ ็ฏ„ๅ›ฒๆŒ‡ๅฎš
  • / * / โ†’ ๏ผใพใŸใฏไธ€ใคไปฅไธŠใฎๆ–‡ๅญ—
  • / [ ] / โ†’ ใ‚ฐใƒซใƒผใƒ—ใ‚ปใƒƒใƒˆ
  • / { } / โ†’ ็นฐใ‚Š่ฟ”ใ—ใฎๅ›žๆ•ฐๆŒ‡ๅฎš
  • / \ / โ†’ ใ‚จใ‚นใ‚ฑใƒผใƒ—
  • / \d / โ†’ ใ™ในใฆใฎๆ•ฐๅญ—
  • / \D / โ†’ ๆ•ฐๅญ—ใงใฏใชใ„ๆ–‡ๅญ—
  • / \w / โ†’ ใ‚ขใƒซใƒ•ใ‚กใƒ™ใƒƒใƒˆใ€ๆ•ฐๅญ—ใ€ใ‚ขใƒณใƒ€ใƒผใƒใƒผ
  • / \W / โ†’ ใ‚ขใƒซใƒ•ใ‚กใƒ™ใƒƒใƒˆใ€ๆ•ฐๅญ—ใ€ใ‚ขใƒณใƒ€ใƒผใƒใƒผใงใฏใชใ„ๆ–‡ๅญ—
  • / \s / โ†’ ็ฉบ็™ฝๆ–‡ๅญ—
  • / \S / โ†’ ็ฉบ็™ฝใงใฏใชใ„ๆ–‡ๅญ—
  • / \n / โ†’ ๆ”น่กŒ

ๅŸบๆœฌ็š„ใซๆญฃ่ฆ่กจ็พใ‚’ๆง‹ๆˆใ™ใ‚‹่จ˜ๅทใฏไธŠ่จ˜ใงใ‚ใ‚Šใ€ใ“ใฎ่จ˜ๅทใ•ใˆ่ฆšใˆใ‚Œใฐๆญฃ่ฆ่กจ็พใฎๅŸบๆœฌ็š„ใชไป•็ต„ใฟใฏๅๅˆ†็†่งฃใงใใ‚‹ใจๆ€ใ„ใพใ™ใ€‚

ใใ‚Œใงใฏใ‚ตใƒณใƒ—ใƒซใ‚’ๅ‚่€ƒใ—ใชใŒใ‚‰ๆญฃ่ฆ่กจ็พใ‚’ๅˆ†ๆžใ—ใฆใ„ใใพใ—ใ‚‡ใ†ใ€‚


2. ่จ˜ๅทใฎๆ„ๅ‘ณ

ๆญฃ่ฆ่กจ็พใงไธ€็•ชๅŸบ็คŽใซใชใ‚‹่จ˜ๅทใงใ‚ใ‚‹ใฎใง่ฆšใˆใฆใŠใใจๅฝนใซ็ซ‹ใก้ƒจๅˆ†ใงใ™ใ€‚

dใฏๆ•ฐๅญ—ใ€ wใฏ่‹ฑๆ–‡ๅญ—ใ€ sใฏ็ฉบ็™ฝใ€ nใฏๆ”น่กŒใฎๆ„ๅ‘ณใงใ‚ใ‚Šใ€ๅ„ๆ–‡ๅญ—ใฎๅคงๆ–‡ๅญ—ใฏ NOT(ๅๅฏพ)ใ‚’็คบใ—ใพใ™ใ€‚

  • ๆ•ฐๅญ—ใŒไธ€ๅ›žไปฅไธŠ็นฐใ‚Š่ฟ”ใ™ๆ–‡ๅญ—ๆคœ็ดข ๐Ÿ‘‰ / [\d]+ /
  • ๆ•ฐๅญ—ใงใฏใชใ„ๆ–‡ๅญ—ใ‚’ๆคœ็ดข๏ผˆ็ฉบ็™ฝๅซใ‚€๏ผ‰ ๐Ÿ‘‰ / [\D] /
  • ๆ‹ฌๅผง(ใ‹ใฃใ“)ใŒๅซใพใ‚Œใฆใ„ใ‚‹ๆ–‡ๅญ—ใ€ๆ•ฐๅญ—ๆคœ็ดข ๐Ÿ‘‰ / \([\w]+\) /
  • ่‹ฑๆ–‡ๅญ—ใ€ๆ•ฐๅญ—ใ€ใ‚ขใƒณใƒ€ใƒผใƒใƒผใงใฏใชใ„ๆ–‡ๅญ—ๆคœ็ดข ๐Ÿ‘‰ / [\W]+ /
  • ็ฉบ็™ฝๆคœ็ดข ๐Ÿ‘‰ / \s /

ไธŠใง็ดนไป‹ใ—ใŸregexr.comใงๆคœ็ดขๅฏพ่ฑกใซใชใ‚‹ใƒ†ใ‚ญใ‚นใƒˆใ‚’ใ„ใ‚Œใฆใƒ‘ใƒผใ‚ฟใƒณใ‚’็›ดๆŽฅใซไฝœๆˆใ—ใฆใฟใ‚‹ใจใ™ใๆญฃ่ฆ่กจ็พใซใชใ‚Œใ‚‹ใจๆ€ใ„ใพใ™ใ€‚


ๅคงไฝ“ใ‚จใ‚นใ‚ฑใƒผใƒ—ใจใ„ใ†ใฎใฏไฝ•ใงใ™ใ‹ใญใ€‚

ใ‚ญใƒผใƒœใƒผใƒ‰ใฎไธ€็•ชๅทฆไธ€็•ชไธŠใฎใ‚ญใƒผ(ESCใจๆ›ธใ‹ใ‚Œใฆใ„ใ‚‹ใ‚‚ใฎ)ใŒใ‚จใ‚นใ‚ฑใƒผใƒ—ใฎ็•ฅๅญ—ใงใ™ใ€‚ใ‚จใ‚นใ‚ฑใƒผใƒ—ใฎๆ„ๅ‘ณใฏ้€ƒใ‚Œใ‚‹ใฎใงใ™ใ€‚

ใ“ใกใ‚‰ใงใฏ็ด„ๆŸใ‹ใ‚‰้€ƒใ‚Œใ‚‹ใ“ใจใ ใจ่ช่ญ˜ใ™ใ‚Œใฐใ„ใ„ใจๆ€ใ„ใงใ™ใ€‚

ไพ‹ใˆใฐใ€ๆญฃ่ฆ่กจ็พใง็‚น(. dot)ใฏใ™ในใฆใฎๆ–‡ๅญ—ใฎๆ„ๅ‘ณใซใ—ใ‚ˆใ†ใจ็ด„ๆŸใ—ใŸ็‰นๅˆฅใชๆ–‡ๅญ—ใงใ™ใญใ€‚

ใงใ‚‚ใŸใพใซใฏโ€™ใใ‚Œ็ด„ๆŸไปฅๅค–โ€™ใซ็‚นใ‚’ใƒ”ใƒชใ‚ชใƒ‰ๆ„ๅ‘ณใฎ็‚นใงไฝฟใ„ใŸใ„ใจใใŒใ‚ใ‚Šใพใ™ใญใ€‚

ใ“ใฎๆ™‚ใ‚จใ‚นใ‚ฑใƒผใƒ—ใ‚’ไฝฟใ„ใพใ™ใ€‚

ใ‚จใ‚นใ‚ฑใƒผใƒ—ใ‚’ไฝฟใ‚ใชใ„้™ใ‚Šใ€ๆ–‡ๅญ—ใฏ็ด„ๆŸใ—ใŸๆฉŸ่ƒฝใจใ—ใฆๅ‹•ใใพใ™ใ€‚

ไธ‹ใฎไพ‹ใง็ขบ่ชใ—ใพใ—ใ‚‡ใ†ใ€‚

  • ใ™ในใฆใฎๆ–‡ๅญ—ใ‚’ๆ„ๅ‘ณใ€‚ a, b, c, d, ?, !, @, , ใชใฉใ™ในใฆใฎๆ–‡ๅญ—ใฎไธญไธ€ใค ๐Ÿ‘‰ / . /
  • ใ‚จใ‚นใ‚ฑใƒผใƒ—ใ‚’ๅ‰ใซใคใ‘ใ‚‹ใจใŸใ ใƒ”ใƒชใ‚ชใƒ‰่จ˜ๅทใ ใ‘ใฎๆ„ๅ‘ณ ๐Ÿ‘‰ / \. /
  • ไธ€ใคไปฅไธŠใฎๆ–‡ๅญ—ใฎๆ„ๅ‘ณ ๐Ÿ‘‰ / + /
  • ใ‚จใ‚นใ‚ฑใƒผใƒ—ใ‚’ๅ‰ใซใคใ‘ใ‚‹ใจใŸใ ใƒ—ใƒฉใ‚น่จ˜ๅทใ ใ‘ใฎๆ„ๅ‘ณ ๐Ÿ‘‰ / \+ /

ใ‚จใ‚นใ‚ฑใƒผใƒ—ใฏใ‚ˆใไฝฟใ‚ใ‚Œใ‚‹ๅฟ…้ ˆใชๆฉŸ่ƒฝใงใ‚ใ‚‹ใฎใงใ€ใใฎใพใพใฎๆ–‡ๅญ—ใซใฏใชใ‚‰ใชใ„ใฎใงใ‚จใ‚นใ‚ฑใƒผใƒ—ใŒๅฟ…่ฆใช็‰นๅˆฅใชๆ–‡ๅญ—(. ? + *ใชใฉ๏ผ‰ใ‚’่ฆšใˆใฆใŠใๅฟ…่ฆใŒใ‚ใ‚Šใพใ™ใ€‚

ใใฎๆ–‡ๅญ—ใฎไธ€้ƒจใ‚’ไธ‹ใง็ดนไป‹ใ—ใพใ™ใ€‚


ไธŠใง็ดนไป‹ใ—ใŸ็‰นๅˆฅใช่จ˜ๅทใฏ็‰นๅˆฅใชๆ„ๅ‘ณใ‚’ๆŒใกใพใ™ใ€‚ไปฃ่กจ็š„ใชไฝฟใ„ๆ–นใฏไธ‹ใฎ้€šใ‚Šใงใ™ใ€‚

  • ๅฐๆ–‡ๅญ—a~zๆˆ–ใฏๅคงๆ–‡ๅญ—A~Zไธญไธ€่‡ดใ™ใ‚‹่‹ฑๆ–‡ๅญ—ๆคœ็ดข ๐Ÿ‘‰ / [a-zA-Z] /
  • colorๆˆ–ใฏcolourใ‚’ๆคœ็ดข(‘u’ใŒใ‚ใฃใฆใ‚‚ใชใใฆใ‚‚ใ„ใ„) ๐Ÿ‘‰ / colou?r /
  • ‘a’ใ‚’ๅซใ‚€ๅ˜่ชžๆคœ็ดข ๐Ÿ‘‰ / [\S]*a[a-zA-Z]* /
  • a-zๆˆ–ใฏ็ฉบ็™ฝ(space)ใงใฏใชใ„ๆ–‡ๅญ—ๆคœ็ดข ๐Ÿ‘‰ / [^a-z ] /
  • ่‹ฑๆ–‡ๅญ—ใ‹ใ‚‰ๅง‹ใ‚ๅฟ…ใšๆ•ฐๅญ—ใพใŸใฏ็‰นๆฎŠ่จ˜ๅทใ‚’ๅซใ‚€ๆ–‡ๅญ—ๅˆ—ใ‚’ๆคœ็ดข ๐Ÿ‘‰ / [a-zA-Z]+[\d!@#\$%\^*]+[\w]* /

ไธญๆ‹ฌๅผงใฏ็นฐใ‚Š่ฟ”ใ—ใฎๅ›žๆ•ฐใ‚’ๆŒ‡ๅฎšใ—ใ€ใ“ใ‚Œใ‚’ไฝฟใ†ใจ่ฉณใ—ใ„ๆคœ็ดขใƒ‘ใƒผใ‚ฟใƒณใฎ่จญๅฎšใŒๅฏ่ƒฝใงใ™ใ€‚

ไธญๆ‹ฌๅผงใฎไธญใ€ไธ€ใคใฎๆ•ฐๅญ—ใฏๅ…จไฝ“ใฎ็นฐใ‚Š่ฟ”ใ—ๅ›žๆ•ฐใฎๆ„ๅ‘ณใงใ‚ใ‚Šใ€ไบŒใคใฎๆ•ฐๅญ—ใฏ้ ญใจๆœซใฎ็ฏ„ๅ›ฒใ‚’ๆŒ‡ๅฎšใ™ใ‚‹ๆ„ๅ‘ณใงใ™ใ€‚

ไพ‹ใˆใ€{3}ใฏ๏ผ“ๅ›ž็นฐใ‚Š่ฟ”ใ—ใฎๆ„ๅ‘ณใงใ‚ใ‚Šใ€{1, 3}ใฏ็ฏ„ๅ›ฒๅŒบ้–“1ใ‹ใ‚‰3ใฎๆ„ๅ‘ณใงใ™ใ€‚

{1, }ใฎใ‚ˆใ†ใช่กจ็พใ‚‚ๅฏ่ƒฝใงใ‚ใ‚Šใ€ใ“ใ‚Œใฏ+่จ˜ๅทใจๅŒๆง˜ใชๆ„ๅ‘ณ,ใ€€ใคใพใ‚Šไธ€ใคไปฅไธŠใฎๆ„ๅ‘ณใงใ‚ใ‚Šใพใ™ใ€‚

  • AใŒ3ๅ›ž็นฐใ‚Š่ฟ”ใ™ๆ–‡ๅญ—ใ‚’ๆคœ็ดข ๐Ÿ‘‰ / [A]{3} /
  • 3ๆกไปฅไธŠใฎๆ•ฐๅญ—ใ‚’ๆคœ็ดข(3๋ฒˆไปฅไธŠ็นฐใ‚Š่ฟ”ใ—) ๐Ÿ‘‰ / [\d]{3,} /
  • AใŒไบŒๅ›žใ‹ใ‚‰ไธ‰ๅ›žใพใง็นฐใ‚Š่ฟ”ใ™ๆ–‡ๅญ—ใ‚’ๆคœ็ดข(็นฐใ‚Š่ฟ”ใ™็ฏ„ๅ›ฒๆŒ‡ๅฎš) ๐Ÿ‘‰ / [A]{2,3} /

็นฐใ‚Š่ฟ”ใ—ๅ›žๆ•ฐใ ใ‘ใ‚’ๆŒ‡ๅฎšใ™ใ‚Œใฐใ€ๆ„ๅ›ณใ—ใชใ„็ตๆžœใŒๅ‡บใ‚‹ใ“ใจใŒใ‚ใ‚‹ใฎใงใ€้ƒจๅˆ†ๅผ(subexpression)ใจๅ…จๅพŒๆ–นไธ€่‡ดๆคœ็ดขใ‚’ไธ€็ท’ใซไฝฟใ†ใจใ‚‚ใฃใจๅŠนๆžœ็š„ใชใƒ‘ใƒผใ‚ฟใƒณใŒๅฏ่ƒฝใงใ™ใ€‚


่ง’ใ‹ใฃใ“ใฎไธญใซ่จ˜ๅทใ‚’ๆ›ธใใ€ๆคœ็ดขใƒ‘ใƒผใ‚ฟใƒณใ‚’ๆŒ‡ๅฎšใ—ใพใ™ใ€‚็›ดๆŽฅใซ่จ˜ๅทใ‚’ๆ›ธใ่พผใ‚“ใ ใ‚Šใ€็ฏ„ๅ›ฒๆŒ‡ๅฎš่จ˜ๅทใฎ’-‘ใ‚’ไฝฟใฃใฆใƒ‘ใƒผใ‚ฟใƒณใ‚’ๆŒ‡ๅฎšใ—ใพใ™ใ€‚

  • ๆŒ‡ๅฎšใ™ใ‚‹ๆ–‡ๅญ—(a ๆˆ–ใฏ A ๆˆ–ใฏ b ๆˆ–ใฏ B ๆˆ–ใฏ c ๆ–‡ๅญ—)ไธ€ใคใ‚’ๆคœ็ดข ๐Ÿ‘‰ [aAbBc]
  • aใ‹ใ‚‰ eใพใง(a,b,c,d,e)ใฎ็ฏ„ๅ›ฒๅ†…ไธ€ใคใฎๆ–‡ๅญ—ใ‚’ๆคœ็ดข ๐Ÿ‘‰ [a-e]
  • ้™คๅค–ๆ–‡ๅญ—’^’ใŒใ‚ใ‚‹ใฎใง a-z ็ฏ„ๅ›ฒใซๅ…ฅใ‚‰ใชใ„ๆ–‡ๅญ—(่จ˜ๅท)ใ‚’ไธ€ใคๆคœ็ดข ๐Ÿ‘‰ [^a-z]
  • ๆ˜Ž่จ˜ใ—ใŸ่จ˜ๅทใฎไธ€ใคใ‚’ๆคœ็ดข ๐Ÿ‘‰ [?!@#$%^&*()_]
  • cๆˆ–ใฏCใ‹ใ‚‰ๅง‹ใ‚, a-zใฎไธญไธ€ใคใง็ต‚ใ‚ใ‚‹ๅ˜่ชžๆคœ็ดข ๐Ÿ‘‰ [cC][a-z]

[ ]ใ‚’ไฝฟใ†ใจไธ€ใคใ ใ‘ใฎๆ–‡ๅญ—ใ‚’ๆคœ็ดขใ™ใ‚‹ใฎใงไธ€ใคไปฅไธŠใฎๆ–‡ๅญ—ใ‚’ๆคœ็ดขใ—ใŸใ„ใจใใซใฏ+่จ˜ๅท๏ผˆไธ€ใคไปฅไธŠใฎๆ–‡ๅญ—ใ€๏ผใฏไธๅฏ๏ผ‰ใพใŸใฏ๏ผŠ๏ผˆ๏ผใพใŸใฏไธ€ใคไปฅไธŠใฎๆ–‡ๅญ—ใ€๏ผใ‚‚ๅฏ่ƒฝ๏ผ‰่จ˜ๅทใ‚’ไป˜ใ‘ใ‚‹ๅฟ…่ฆใŒใ‚ใ‚Šใพใ™ใ€‚

  • ไธ€ใคไปฅไธŠใฎa-zๆ–‡ๅญ—ใ‚’ๆคœ็ดข(ๅฟ…ใšไธ€ใคไปฅไธŠใฎๆกไปถ) ๐Ÿ‘‰ [a-z]+
  • ๏ผๅ€‹ไปฅไธŠใฎA-Zๆ–‡ๅญ—ใ‚’ๆคœ็ดข(ใชใใฆใ‚‚ใ„ใ„) ๐Ÿ‘‰ [A-Z]*

็‰นๅฎšๆง‹ๆˆใงๆˆใ‚Š็ซ‹ใคๆ–‡ๅญ—ๅˆ—ใฎๆคœ็ดขใซๅŠนๆžœ็š„ใงใ‚ใ‚Šใ€ไพ‹ใˆใฐใƒกใƒผใƒซใ‚ขใƒ‰ใƒฌใ‚นใฎๆ–‡ๅญ—ๅˆ—ใŒใ‚ใ‚Šใพใ™ใ€‚

ใƒกใƒผใƒซใ‚ขใƒ‰ใƒฌใ‚นๅฝขๅผใฎabcd@xyz.comใ‚’ๆคœ็ดขใ™ใ‚‹ใŸใ‚ใซใฏๆฌกใฎใ‚ˆใ†ใชใƒ‘ใƒผใ‚ฟใƒณใ‚’ไฝฟใ†ใ“ใจใŒใงใใพใ™ใ€‚

/[a-zA-Z0-9]+@[a-zA-Z0-9]+\.[a-zA-Z]+/

ใงใฏใ€ใƒ‘ใƒผใ‚ฟใƒณใ‚’ๅˆ†ๆžใ—ใฆใฟใพใ™ใ€‚

ๅ…ˆใ€ใƒกใƒผใƒซใฎIDใซใชใ‚‹้ƒจๅˆ†ใฏ่‹ฑๆ–‡ๅญ—ใจๆ•ฐๅญ—ใŒๅ…ฅใ‚‹ใฎใงใ€[a-zA-Z0-9]ใงๅง‹ใ‚ไธ€ใคไปฅไธŠใ‚’ๆ„ๅ‘ณใ™ใ‚‹+่จ˜ๅทใ‚’ไป˜ใ‘ใพใ™ใ€‚

ใใฎๆฌกใ€@ใŒ็ถšใใพใ™ใฎใง@ใ‚’ๅ…ฅใ‚Œ, ใƒ›ใ‚นใƒˆใฎใ‚ขใƒ‰ใƒฌใ‚นใ‚‚ไธ€ใคไปฅไธŠใฎ่‹ฑๆ–‡ๅญ—ใจๆ•ฐๅญ—ใ‚’ๆŒ‡ๅฎšใ—ใพใ™ใ€‚

.comๅฝขใฎใ‚ขใƒ‰ใƒฌใ‚นใชใฎใงใƒ”ใƒชใ‚ชใƒ‰ใ‚’ใใฎใพใพไฝฟใ†ใŸใ‚ใ‚จใ‚นใ‚ฑใƒผใƒ—ใ‚’ไฝฟใ„ใพใŸไธ€ใคไปฅไธŠใฎ่‹ฑๆ–‡ๅญ—ใ‚’ๅ…ฅใ‚Œใฆใƒ‘ใƒผใ‚ฟใƒณใ‚’็”Ÿๆˆใ—ใพใ™ใ€‚

ใ‚‚ใ—IDใฎไธญใซ็‚นใŒๅ…ฅใ‚‹ใ‹ใƒ›ใ‚นใƒˆใ‚ขใƒ‰ใƒฌใ‚นใŒ.co.jpใชใฉใฎๅฝขใซใชใ‚‹ใจใใซใฏใใ‚Œใซๅฏพใ™ใ‚‹ๅฟœ็”จใŒๅฟ…่ฆใงใ™ใ€‚



3. ใพใจใ‚

ๆญฃ่ฆ่กจ็พใฎ็ฌฌไธ€ๅฐ่ฑกใฏใพใ‚‹ใงๅค–็•Œ่จ€่ชžใฟใŸใ„ใชๅงฟใงๅบƒใไฝฟใ‚ใ‚Œใ‚‹ๆ—ขๅญ˜ใฎ่จ€่ชžใจใฏ้•ใ†ๆง˜ๅญใ‚’ใ—ใฆใพใ™ใญใ€‚

่ปฝใ่ฟ‘ใฅใ‘ใ‚‰ใ‚Œใชใใ„ใ‚„ใชๆฐ—ๆŒใŒใ™ใ‚‹ใจใใ‚‚ใ‚ใ‚Šใพใ™ใŒใ€ๅฐ‘ใ—ใ ใ‘ใงใ‚‚่ชฟในใฆใฟใŸใ‚‰ๆ„ๅค–ใจ็ฐกๅ˜ใช่ฆๅ‰‡ใงใƒ‘ใƒฏใƒ•ใƒซๆฉŸ่ƒฝใ‚’ๆŒใฃใฆใ„ใ„ใ‚„ใคใ ใชใจๆ€ใ‚ใ‚Œใ‚‹ๆ™‚ใŒๆฅใ‚‹ใ‹ใ‚‚ใงใ™ใญใ€‚

ไธŠใง็ดนไป‹ใ—ใŸ้ƒจๅˆ†ใฏไปฃ่กจ็š„ใชๆฉŸ่ƒฝใ‚’็ดนไป‹ใ™ใ‚‹ใŸใ‚็ฐกๅ˜ใชใƒ‘ใƒผใ‚ฟใƒณใŸใกใชใฎใงใ€ไธŠใฎใƒ‘ใƒผใ‚ฟใƒณใฏไธๅฎŒๅ…จใชใƒ‘ใƒผใ‚ฟใƒณใงใ‚ใ‚Šใพใ™ใ€‚ใ‚‚ใฎๆญฃใ—ใ„ใƒ‘ใƒผใ‚ฟใƒณใ‚’ไฝœใ‚‹ใŸใ‚ใซใฏใ‚‚ใฃใจๆทฑใๅ‹‰ๅผทใ™ใ‚‹ๅฟ…่ฆใŒใ‚ใ‚Šใพใ™ใญใ€‚

ใ”่ณชๅ•ใŒใ‚ใ‚Šใพใ—ใŸใ‚‰ใ€่‡ช็”ฑใซใ‚ณใƒกใƒณใƒˆใใ ใ•ใ„๏ผ

ใ‚ใ–ใƒผใ™๏ผ

AWS EC2 – From Launch New Instance To Install Everything We Need

Simple Explanation Of Setting up AWS EC2(Ubuntu18.04)

1. Launch New Instance In AWS

On a EC2 Management Console page, launch instances and choose Ubuntu Server 18.04 LTS with adequate instance type.

I chose t2 micro Type and launched.

On the next page, click Edit security groups and open port 22, 80, 443 for the next step.

Before launch the instance, you should select an existing key pair or create a new one.

If you don’t have any, create a new one and download key pair.

You should keep that key pair safe and don’t let be exposed to anyone.

We need an elastic IP address(Non-change address) for our accessibility.

Elastic IP lasts forever even if you stop the instance unless you release the IP address.

EC2 -> Network & Security -> Elastic IPs -> Allocate Elastic IP address.

Associate Elastic IP address and Choose an instance to stick them together.

Half way there.

Now you have your own instance and elastic IP address.

Keep going.

2. Connect To The Server Using SSH Client

You can use any SSH Client whatever you want.

This time I chose XShell7 that is free for Home/School.

Put the IP address in Host textbox.

Go to Authentication, write User Name ‘ubuntu’ and check Method Public Key.

Click Connect.

Browse and select the key pair that we downloaded.

If you get this message, now you are in.

3. Install Nodejs On Ubuntu Server

$ curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -

$ sudo apt-get install -y nodejs

Execute line by line and when it’s done, we can check by ‘node -v’ command.

If node version(v14.18.2 or something) is printed, installation is done.

4. Install MongoDB On Ubuntu Server

$ wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -

If you see ‘OK‘ return with above command, you are ready for the next step.

$ echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list

If you see ‘echo “deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.4 multiverse” | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list‘, move forward.

$ sudo apt-get update
$ sudo apt-get install -y mongodb-org

If you feel like something goes on a busy process, just wait.

When it’s done, check an installation with this command.

‘mongo -version’

Start mongodb service with this command.

$ sudo service mongod start

When successfully started, no message output.

$ mongo

> use admin

> db.createUser({ user:'id', pwd:'pwd', roles:[{"role":"userAdminAnyDatabase","db":"admin"},{"role":"readWriteAnyDatabase","db":"admin"}]})

exit

Have to change some codes for accessibility and security.

$ sudo vi /etc/mongod.conf

binIp : 127.0.0.1 -> bindIp: ::, 0.0.0.0

#security -> refer to above capture. no space before ‘enabled’ makes error.

save it!(‘wq’ command)

If you want to give a access try, use Compass with 27017 port opened.

5. Deploy(git clone)

Use Git, clone your project to your instance and install dependencies.

$ git clone https://github.com/id/repo

$ cd repo
$ npm install

6. Run Server With PM2

Install pm2 and run your own server.

pm2 makes your server keep running if you close the shell.

$ sudo npm install pm2 -g

$ sudo pm2 start index.js //in my case with arguement -> sudo pm2 start src/index.js --node-args="-r esm"

Now, your server won’t stop unless you stop the PM2.

You can check the PM2 status with below command.

$ sudo pm2 list

7. Install Nginx On Ubuntu Server

Nginx has additional functions that Nodejs do not have.

Simply in two ways, security and load balancing.

$ sudo apt-get install nginx

We opened port 80 for Nginx access.

When Nginx works, clients come in through Nginx door and Nginx leads them to internal port.

$ sudo service nginx start

When Nginx started, access it with your ip address.

Like http://3.34.65.190

Nginx welcomes you if you are on right process.

Now, Change some codes as below with vi editor to complete Nginx work.

$ cd /etc/nginx/sites-enabled

sudo vi default

Comment out try_files $uri $uri/ =404; and add

    proxy_pass http://yourIP:port/;
    proxy_set_header Host $http_host;
    proxy_http_version 1.1;
    proxy_set_header X-Nginx-Proxy true;
    proxy_redirect off;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_pass takes clients to internal port that you set on Nodejs.

In my case, http://3.34.65.190:4000/;

Save it.

Next step is set a size limitation.

Nginx’s default file size setting is 1MB.

But if your page handles bigger than 1 MB files upload or download, this setting is necessary.

$ sudo vi /etc/nginx/nginx.conf
client_max_body_size 10M(limit size that you want);

Now, restart Nginx.

sudo service nginx restart

Now you can access you page that you made.

8. SSL certificate with Let’s Encrypt(http ->https)

Using Route53 service, get a own domain and manage DNS.

Redirect to your IP address and when you have your own domain, you can get a SSL certification with Let’s Encrypt for free.

$ sudo add-apt-repository ppa:certbot/certbot

$ sudo apt install python-certbot-nginx

$ sudo certbot --nginx -d yourdomain.com

Follow the direction, and then your web can get a SSL certification and https protocol is available.

The direction is simple.

1. enter your email address

2. Agree

3. Yes(or No)

4. choose No.2 (redirect http to https option)

And that’s it.

Important thing for the last step is opening the port 443.

Port 443 is a port for https.

Restart Nginx and access with your domain address.

Automatically https will welcome you.

Every 90 days, certification renewal is required and below is the command.

$ sudo certbot renew --dry-run

AWS : aws.amazon.com

๋ง›๊น”๋‚˜๋Š” ๊ฒŒ๊ตญ์ง€ ์‰ฝ๊ณ  ๋น ๋ฅด๊ฒŒ ๋งŒ๋“ค๊ธฐ(๊ฝƒ๊ฒŒํƒ•)

๊ฒŒ๊ตญ์ง€์™€ ๊ฝƒ๊ฒŒํƒ• ๊ทธ ์ค‘๊ฐ„์ฏค..

์š”๋ฆฌ ์žฌ๋ฃŒ

์Œ€๋œจ๋ฌผ 1.5L

๋ฉธ์น˜ ๋‹ค์‹œ ์œก์ˆ˜ 1ํŒฉ(๋˜๋Š” ๋‹ค์‹œ๋งˆ + ๋ฉธ์น˜ ์•ฝ 8๋งˆ๋ฆฌ)

์ฐธ์‹คํ•œ ๊ฒŒ 2๋งˆ๋ฆฌ

์–‘ํŒŒ ๋ฐ˜๊ฐœ

๋นจ๊ฐ„ ์†Œ์Šค(๊ณ ์ถง๊ฐ€๋ฃจ 3์Šคํ‘ผ, ๋ฉธ์น˜์•ก์ “ 2์Šคํ‘ผ, ์†Œ์ฃผ 1์Šคํ‘ผ, ์„คํƒ• 1์Šคํ‘ผ, ์ง„๊ฐ„์žฅ 2์Šคํ‘ผ, ๊ฐ„๋งˆ๋Š˜ 2์Šคํ‘ผ)

๋œ์žฅ 2์Šคํ‘ผ

์ฝฉ๋‚˜๋ฌผ ํ•œ ์คŒ

์ฒญ์–‘๊ณ ์ถ” 1๊ฐœ

ํŒŒ(๊ฝค ๋งŽ์ด)

๊ฑด์ƒˆ์šฐ(์˜ต์…˜)

์‹ ๊น€์น˜(์˜ต์…˜)

์š”๋ฆฌ ์‹œ์ž‘

์Œ€๋œจ๋ฌผ + ๋ฉธ์น˜๋‹ค์‹œ + ๊ฑด์ƒˆ์šฐ + ๊ฒŒ2๋งˆ๋ฆฌ + ์–‘ํŒŒ ๋ฐ˜๊ฐœ + ์†Œ์Šค + ๋œ์žฅ์„ ๋•Œ๋ ค ๋„ฃ๊ณ  ๋ฝ€๊ธ€๋ฝ€๊ธ€.

๋“์–ด์˜ค๋ฅด๋ฉด ์ฝฉ๋‚˜๋ฌผ + ์ฒญ์–‘๊ณ ์ถ” + ํŒŒ + ์‹ ๊น€์น˜๋ฅผ ๋„ฃ๊ณ  NO๋šœ๊ป‘์— ์‚ด์ง ์•ฝํ•œ ๋ถˆ๋กœ 20๋ถ„๊ฐ„ ๋” ๋“์ž…๋‹ˆ๋‹ค.

๋„ค ๋์ด์—์š”.

๋ฐฐ๋ฅผ ๋’ค์ง‘๊ณ  ๋ˆ„์›Œ์žˆ๋Š” ๊ฒŒ ์นœ๊ตฌ.

Nodejs์—์„œ ๋ฐฐ์น˜(Batch) ๊ธฐ๋Šฅ ์‚ฌ์šฉํ•˜๊ธฐ(node-schedule)

์˜ˆ์ •๋œ ์‹œ๊ฐ„์— ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” node-schedule

๋ณ„๋„์˜ SQL๋ฌธ์„ ์‚ฌ์šฉํ•ด ๋ฐฐ์น˜(Batch) ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋˜ ๊ฒƒ๊ณผ ๋น„๊ตํ•˜๋ฉด ์ •๋ง ํŽธํ•˜๊ฒŒ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด ๊ฐ€๋Šฅํ•˜๋„๋ก ๋„์™€์ฃผ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค.

๋ฐฐ์น˜ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋Œ€ํ‘œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ํฌ๊ฒŒ 3๊ฐ€์ง€(Agenda, node-cron, node-schedule)์ด๋ฉฐ, ์ธ๊ธฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  1. Agenda (2021/12/22 ๊ธฐ์ค€ ์ฃผ๊ฐ„ ๋‹ค์šด๋กœ๋“œ ์ˆ˜ 56,319)
  2. node-cron(2021/12/22 ๊ธฐ์ค€ ์ฃผ๊ฐ„ ๋‹ค์šด๋กœ๋“œ ์ˆ˜ 219,168)
  3. node-schedule(2021/12/22 ๊ธฐ์ค€ ์ฃผ๊ฐ„ ๋‹ค์šด๋กœ๋“œ ์ˆ˜ 507,675)

ํ•„์š”ํ•œ ๊ธฐ๋Šฅ์ด ๋™์ผํ•˜๋‹ค๋ฉด ์‚ฌ์šฉ์ž๊ฐ€ ๋งŽ์€ ์ชฝ์ด ๊ด€๋ จ ์ •๋ณด๋„ ์–ป๊ธฐ ์‰ฌ์šฐ๋ฏ€๋กœ node-schedule์„ ์‚ฌ์šฉํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

npm install node-schedule

์„ค์น˜ ํ›„ ํ•ด๋‹น ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ importํ•ฉ๋‹ˆ๋‹ค.

import schedule from 'node-schedule';

๊ทธ๋ฆฌ๊ณ  ์„œ๋ฒ„๋ฅผ ๊ฐ€๋™ํ•˜๋ฉด ๋ฐ”๋กœ ์‹คํ–‰๋  ์ˆ˜ ์žˆ๋„๋ก index.js์— ์‹คํ–‰ ํ•จ์ˆ˜๋ฅผ ๋„ฃ์–ด์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

์‹คํ–‰๋  ์กฐ๊ฑด(์‹œ๊ฐ„ ๋˜๋Š” ๋ฐ˜๋ณต ์ฃผ๊ธฐ)์„ ๋„ฃ์–ด์ฃผ๋ฉด ํ•ด๋‹น ์กฐ๊ฑด์— ๋งž์ถฐ ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

const regularExec = schedule.scheduleJob('0 0 12 * * *', ()=>{ // ๋งค์ผ ๋‚ฎ 12์‹œ ์ •๊ฐ๋งˆ๋‹ค ์‹คํ–‰

    sendCheckDataEmail();

})

์œ„ ํ•จ์ˆ˜๋Š” ๋งค์ผ ๋‚ฎ 12์‹œ๋งˆ๋‹ค ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

scheduleJob์˜ ์ฒซ ๋ฒˆ์งธ ํŒŒ๋ผ๋ฏธํ„ฐ์˜ ๊ฐ’์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

*๋Š” all๊ณผ ๊ฐ’์€ ์˜๋ฏธ์ด๋ฉฐ, ๊ฐ ํŒŒ๋ผ๋ฏธํ„ฐ์˜ ์‚ฌ์ด์—๋Š” ๋นˆ์นธ์„ ๋„ฃ์–ด์ค๋‹ˆ๋‹ค.

์ดˆ๋ฅผ ๋„ฃ๋Š” ๋ถ€๋ถ„์ธ second ์— *๋ฅผ ๋„ฃ์œผ๋ฉด ๋ชจ๋“  ์ดˆ๋งˆ๋‹ค ์‹คํ–‰ํ•˜๋ผ๋Š” ์˜๋ฏธ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ minute์— 5, second์— *์„ ๋„ฃ์œผ๋ฉด 5๋ถ„00์ดˆ๋ถ€ํ„ฐ 5๋ถ„59์ดˆ๊นŒ์ง€ ํ•จ์ˆ˜๊ฐ€ ์ด 60๋ฒˆ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

์ฃผ๊ธฐ๋ฅผ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ๋Š”๋ฐ์š”.

second์— */5๋กœ ํ‘œ๊ธฐํ•˜๋ฉด ์ดˆ ๋‹จ์œ„๋ฅผ 5์ดˆ ๋‹จ์œ„๋กœ ์ชผ๊ฐญ๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ 5์ดˆ์— ํ•œ ๋ฒˆ์”ฉ ์‹คํ–‰ํ•˜๋ผ๋Š” ์˜๋ฏธ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

์ทจ์†Œ๋Š” cancel ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

regularExec.cancel();

์œ ์˜ํ•  ์ ์€ ์„œ๋ฒ„๊ฐ€ ์‹คํ–‰ ์ค‘์ผ ๋•Œ๋งŒ ํ•ด๋‹น ์Šค์ผ€์ฅด๋Ÿฌ๊ฐ€ ์ž‘๋™ํ•˜๋ฉฐ, ๋ฉ€ํ‹ฐํ”„๋กœ์„ธ์Šค๋ฅผ ๊ฐ€๋™ํ•˜๋Š” ๊ฒฝ์šฐ ์ค‘๋ณต์œผ๋กœ ์‹คํ–‰๋˜์ง€ ์•Š๋„๋ก ๋ณ„๋„์˜ ์„ค์ •์„ ํ•ด์ฃผ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋Ÿผ ์„œ๋ฒ„๊ฐ€ ์—ด์‹ฌํžˆ ์ผํ•˜๋„๋ก ์Šค์ผ€์ฅด๋Ÿฌ ๊ธฐ๋Šฅ์„ ์š”๊ธดํ•˜๊ฒŒ ์‚ฌ์šฉํ•ด ์ฃผ์„ธ์š”!

Nginx์™€ AWS S3, ์™œ ํฐ ์šฉ๋Ÿ‰์€ ์—…๋กœ๋“œ๊ฐ€ ์•ˆ๋ผ?(413 Request Entity Too Large, React, Koa)

Nginx ์—…๋กœ๋“œ ์šฉ๋Ÿ‰ ์ œํ•œ ์„ค์ •์ด ํ•„์š”ํ•œ ์ด์œ 

React, Koa๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  Nginx๋ฅผ ๊ฑฐ์ณ ํŒŒ์ผ ์—…๋กœ๋“œ ์ง„ํ–‰ํ•˜๋Š” ํ”„๋กœ์„ธ์Šค์—์„œ ํ”„๋ก ํŠธ์™€ ๋ฐฑ์—”๋“œ์—์„œ ๊ฐ๊ฐ ํŒŒ์ผ ํฌ๊ธฐ๋ฅผ ์ฒดํฌํ•œ ๋’ค AWS S3์— ์ €์žฅ์„ ์ง„ํ–‰ํ•˜๋„๋ก ํ•˜์˜€์œผ๋‚˜ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋ฏธ ํŒŒ์ผ ํฌ๊ธฐ ์ฒดํฌ๋ฅผ ์ง„ํ–‰ํ•˜๊ณ  ์—…๋กœ๋“œํ•œ ํŒŒ์ผ์ด ์šฉ๋Ÿ‰ ๋ฌธ์ œ๋กœ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค๋‹ˆ ์ด๊ฑด ๋ญ์ง€ ์‹ถ์ง€๋งŒ ๋‹ต์€ Nginx์— ์žˆ์Šต๋‹ˆ๋‹ค.

Nginx๋Š” ํฐ ์šฉ๋Ÿ‰์˜ ํŒŒ์ผ์„ ๋Œ€๋Ÿ‰์œผ๋กœ ์—…๋กœ๋“œํ•˜๋Š” ์„œ๋ฒ„ ๊ณต๊ฒฉ์„ ๋ง‰๊ณ ์ž ๊ธฐ๋ณธ ์ „์†ก ์šฉ๋Ÿ‰ ์„ค์ •์ด 1MB๋กœ ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ 1MB ์ดํ•˜์˜ ํŒŒ์ผ์„ ํ•œ๋ฒˆ ์—…๋กœ๋“œํ•ด๋ณด๋ฉด ๋ฐ”๋กœ ํ•ด๊ฒฐ์˜ ์‹ค๋งˆ๋ฆฌ๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์œ„์™€ ๊ฐ™์ด 1MB ์ดํ•˜์˜ ํŒŒ์ผ์€ ์•„์ฃผ ์ž˜ ์˜ฌ๋ผ๊ฐ‘๋‹ˆ๋‹ค.

์„ค์ •์„ ์œ„ํ•ด ์ปค๋งจ๋“œ์—์„œ ์•„๋ž˜์™€ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

# sudo vi /etc/nginx/nginx.conf

nginx.conf ๋‚ด๋ถ€ http ๋ถ€๋ถ„์—์„œ client_max_body_size๋กœ ์„ค์ •์„ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

๊ธฐ๋ณธ๊ฐ’์€ 1MB์ด๋ฉฐ, client_max_body_size๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ช…์‹œ๋˜์–ด ์žˆ์ง€ ์•Š์œผ๋ฏ€๋กœ ๋ณ„๋„๋กœ ์ž…๋ ฅ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์•„๋ž˜์™€ ๊ฐ™์ด http{ } ๋‚ด๋ถ€์— client_max_body_size์™€ ์›ํ•˜๋Š” ์šฉ๋Ÿ‰์„ ํ•จ๊ป˜ ๊ธฐ์ž…ํ•ด์ฃผ๊ณ  Nginx๋ฅผ ์žฌ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

50MB๋กœ ์„ค์ •ํ•ด๋‘๊ณ , Nginx๋ฅผ ๋ฆฌ์…‹ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

# sudo service nginx reload

๋‹ค์‹œ ์—…๋กœ๋“œํ•ด๋ณด๋ฉด ์ด์ œ๋Š” 1MB ์ด์ƒ์˜ ํŒŒ์ผ๋„ ๋ฌธ์ œ ์—†์ด ์—…๋กœ๋“œ ๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


์ฐธ๊ณ ์ž๋ฃŒ : https://www.cyberciti.biz/faq/linux-unix-bsd-nginx-413-request-entity-too-large/

์—‘์…€๊ณผ ์ธ์ฝ”๋”ฉ(UTF-8)์˜ ์‹ธ์›€, ์ด์   ๋๋‚ด๊ธฐ๋กœ ํ•ด(feat.๋ชฝ๊ณ MongoDB์™€ ๋‚ ์งœ ์ฒ˜๋ฆฌ)

์—‘์…€ ์ธ์ฝ”๋”ฉ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ , mongoDB์— ๊น”๋”ํ•˜๊ฒŒ ์ €์žฅํ•˜๋Š” ๋ฐฉ๋ฒ•

์ฃผ๋กœ csv ํ˜•์‹์˜ ํŒŒ์ผ์„ ์—ด๊ฑฐ๋‚˜ ํ•˜๋‚˜์˜ ํ”„๋กœ๊ทธ๋žจ์—์„œ ๋‹ค๋ฅธ ํ˜•์‹์˜ ๋ฌธ์„œ๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ ๋ฌธ์ž๋ฅผ ๋งŒ๋‚˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

๏ฟฝ๏ฟฝ๏ฟฝ๏ฟฝ๏ฟฝ๏ฟฝ๏ฟฝ๏ฟฝ๏ฟฝ๏ฟฝ๏ฟฝวธ๏ฟฝ

.<-9xH#,;}<:@O,A& 8q,;

์ด๋Š” ๋ฌธ์ž ์ธ์ฝ”๋”ฉ์—์„œ ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ๋กœ, ์˜์–ด๋กœ ์ผ๋Š”๋ฐ ํ”„๋ž‘์Šค์–ด๋กœ ํ•ด์„ํ•˜๋Š” ๊ฒƒ๊ณผ ๋น„์Šทํ•˜๋‹ค๊ณ  ๋ณด์‹œ๋ฉด ๋  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ธ์ฝ”๋”ฉ ๋ฌธ์ œ๋Š” ์ฃผ๋กœ ๋น„์•ŒํŒŒํŽซ(้ž ALPHABET) ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ณณ์—์„œ ์ž์ฃผ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

์ปดํ“จํ„ฐ์—์„œ ์ฒ˜์Œ ๋ฌธ์ž๊ฐ€ ์‚ฌ์šฉ๋  ๋•Œ๋Š” ํ•œ ๋ฌธ์ž ๋‹น 1๋ฐ”์ดํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์•ŒํŒŒ๋ฒณ๋งŒ ์ง€์›๋˜์—ˆ์œผ๋ฏ€๋กœ ์ด ๋•Œ๋Š” ๋ฌธ์ž ์ธ์ฝ”๋”ฉ์ด๊ณ  ๋ญ๊ณ  ํ•  ๊ฒŒ ์—†์—ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ์ฐจ์ธฐ ์ปดํ“จํ„ฐ์˜ ์‚ฌ์šฉ ์˜์—ญ์ด ๋„“์–ด์ง€๊ณ  ์ปดํ“จํ„ฐ์—์„œ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋„ ๋Š˜์–ด๋‚˜์ž ๋‹ค๋ฅธ ์–ธ์–ด๋ฅผ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•์ด ์—ฐ๊ตฌ๋˜์—ˆ๊ณ , ๊ทธ ๊ฒฐ๊ณผ ๋‹ค์–‘ํ•œ ๋ฌธ์ž ์ธ์ฝ”๋”ฉ์ด ํƒ„์ƒํ•˜์˜€์Šต๋‹ˆ๋‹ค.

ํ•œ๊ธ€๊ณผ ๊ด€๋ จํ•œ ์ธ์ฝ”๋”ฉ๋งŒ ์ฐพ์•„๋ด๋„ ์•„๋ž˜์™€ ๊ฐ™์ด ๋‹ค์–‘ํ•ฉ๋‹ˆ๋‹ค.


ASCII(American Standard Code for Information Interchange)

-7bit๋กœ ๊ตฌ์„ฑ๋˜๋ฉฐ, 128๊ฐœ์˜ ์˜๋ฌธ์ž๋ฅผ ํ‘œํ˜„

ANSI(American National Standard Institute)

-8bit๋กœ ๊ตฌ์„ฑ๋˜๋ฉฐ, 256๊ฐœ์˜ ๋ฌธ์ž๋ฅผ ํ‘œํ˜„

EUC-KR(Extended Unix Code – Korea)

-16bit๋กœ ๊ตฌ์„ฑ๋˜๋ฉฐ, ๊ธ€์ž ํ•˜๋‚˜ํ•˜๋‚˜์— ๋ถ€์—ฌ๋œ ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉ. ์ค‘๊ตญ์–ด, ์ผ๋ณธ์–ด, ํ•œ๊ตญ์–ด ๋“ฑ์˜ ํ‘œํ˜„์— ์‚ฌ์šฉ

CP-949(Code Page 949)

– Windows์˜ ์ฝ”๋“œ ์กฐํ•ฉ์œผ๋กœ EUC-KR์˜ ํ™•์žฅ

UTF-8(Universal Coded Character Transformation Format 8 bit)

– ๊ฐ€๋ณ€ ๊ธธ์ด ๋ฌธ์ž ์ธ์ฝ”๋”ฉ์œผ๋กœ 1~4๋ฐ”์ดํŠธ๊นŒ์ง€ ์‚ฌ์šฉ. ์šฐ๋ฆฌ๊ฐ€ ์›ํ•˜๋Š” ๊ทธ๊ฒƒ.


์œ„์™€ ๊ฐ™์ด ๋‹ค์–‘ํ•œ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•ด ๋ฌธ์ž๋ฅผ ํ‘œํ˜„ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ์šฐ๋ฆฌ๋ฅผ ํ™”๋‚˜๊ฒŒ ํ•˜๋Š” ๊ฒƒ์€ ์—‘์…€์—์„œ csv๋กœ ๋‚ด๋ณด๋‚ธ ํŒŒ์ผ์„ ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋žจ(๋˜๋Š” DB)์—์„œ ๋ถˆ๋Ÿฌ์˜ค๋ ค๊ณ  ํ•˜๋ฉด ‘???????’ ๋ผ๊ณ  ํ‘œํ˜„ํ•˜๋Š” ๊ทธ๊ฒƒ์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์›์ธ์„ ์‚ดํŽด๋ณด๋ฉด, ํ•ด๋‹น ๋ฌธ์ œ๋ฅผ ๊ฒช๋Š” ๋Œ€๋ถ€๋ถ„์€ Windows + ์—‘์…€์˜ ์กฐํ•ฉ์ผํ…๋ฐ์š”.

Windows๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ CP-949๋กœ ์ธ์ฝ”๋”ฉ์„ ํ•˜์ง€๋งŒ ์ฝ๋Š” ํ”„๋กœ๊ทธ๋žจ์€ UTF-8์„ ์‚ฌ์šฉํ•˜๋‹ค ๋ณด๋‹ˆ ์ฃผ๋กœ ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ์ธ์ฝ”๋”ฉ ์‹œ UTF-8๋กœ ๋‚ด๋ณด๋‚ด๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฌธ์ œ๋Š” ํ•ด๊ฒฐ๋˜์ง€๋งŒ Windows๋Š” ์‰ฝ๊ฒŒ UTF-8๋กœ ๋ฐ”๊ฟ”์ฃผ๋ ค๊ณ  ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค…

๊ทธ๋ž˜์„œ ์—‘์…€๋กœ ๋‚ด๋ณด๋‚ด๋Š” csv ํŒŒ์ผ์„ UTF-8๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์œ„์™€ ๊ฐ™์€ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง„ ์—‘์…€ ์นœ๊ตฌ๋ฅผ UTF-8 ํ˜•์‹์œผ๋กœ ๋งŒ๋“ค์–ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

๋จผ์ € ์ € ์นœ๊ตฌ๋ฅผ ๊ทธ๋ƒฅ csv๋กœ ๋‚ด๋ณด๋‚ด๊ธฐ๋ฅผ ํ•˜๋ฉด Windows์—์„œ ์ง€์ •ํ•œ ์ธ์ฝ”๋”ฉ ํ˜•์‹์œผ๋กœ ๋‚ด๋ณด๋‚ด๊ธฐ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

ํ™•์ธํ•ด๋ณผ๊นŒ์š”?

์—‘์…€ 2010์„ ์‚ฌ์šฉํ•ด ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

๋‹ค๋ฅธ ์„ค์ • ์—†์ด ์œ„์™€ ๊ฐ™์ด CSV ํ˜•์‹์œผ๋กœ ๋‹ค๋ฅธ ์ด๋ฆ„์œผ๋กœ ์ €์žฅ์„ ํ•˜๊ณ  mongoDB์—์„œ ๊ฐ€์ ธ์˜ค๊ธฐ๋ฅผ ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด

‘์•Œ์•„๋“ฃ๊ฒŒ ์–˜๊ธฐํ•˜๋ผ’๋Š” ์‹์˜ ๋ฐ˜์‘์„ ๋ณด์ž…๋‹ˆ๋‹ค…

๊ทธ๋Ÿผ ์ด์ œ ์—‘์…€์—์„œ ์ธ์ฝ”๋”ฉ ํ˜•์‹ ์ง€์ •ํ•˜์—ฌ ๋‚ด๋ณด๋‚ด๊ธฐ๋ฅผ ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์ €์žฅ ์‹œ ์œ„์™€ ๊ฐ™์ด [๋„๊ตฌ-์›น ์˜ต์…˜]์œผ๋กœ ๋“ค์–ด๊ฐ€๋ฉด

์ด๋ ‡๊ฒŒ ์นœ์ ˆํ•˜๊ฒŒ [์ธ์ฝ”๋”ฉ] ํƒญ์—์„œ ์ธ์ฝ”๋”ฉ ํ˜•์‹์˜ ์ง€์ •์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค…..๋งŒ

ํŒŒ์ผ๋ช…์„ test(set).csv๋กœ ์ €์žฅํ•ด๋ณด์•˜์Šต๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ mongoDB์—์„œ ์œ„ ํŒŒ์ผ์„ ๋ถˆ๋Ÿฌ์˜ค๋ฉด

mongoDB๊ฐ€ ์™œ! ๋ญ! ๋ผ๊ณ  ํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์—‘์…€์—์„œ ์ธ์ฝ”๋”ฉ ํ˜•์‹์„ ์ง€์ •ํ•ด๋„ ์ œ๋Œ€๋กœ ๋ฐ˜์˜์ด ๋˜์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๋ฌผ๋ก  ์ตœ์‹  ์—‘์…€์—๋Š” ‘csv ๋‚ด๋ณด๋‚ด๊ธฐ(UTF-8)’๊ณผ ๊ฐ™์€ ๋ฐฉ์‹์˜ ํ™•์žฅ์ž ์œ ํ˜•์˜ ์„ ํƒ์ด ์ƒ๊ฒผ์œผ๋‚˜ ํ˜„์žฌ๋Š” ์—‘์…€ ์ตœ์‹  ๋ฒ„์ „์ด ์—†์–ด ์„œ ํ…Œ์ŠคํŠธ๊ฐ€ ๋ถˆ๊ฐ€ํ•˜๋ฏ€๋กœ… ๋‹ค์Œ.

์—ฌ๊ธฐ์„œ๋Š” ๋‹ค๋ฅธ ๋ฐฉ์‹์œผ๋กœ ์ธ์ฝ”๋”ฉ ํ˜•์‹์„ ๋ณ€๊ฒฝํ•ด ๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์—‘์…€๋กœ ์ €์žฅํ•œ csv๋ฅผ ๋ฉ”๋ชจ์žฅ์œผ๋กœ ๋ถˆ๋Ÿฌ์˜ต๋‹ˆ๋‹ค(์—‘์…€ ํŒŒ์ผ์ด ์•„๋‹Œ csv ํŒŒ์ผ์ž…๋‹ˆ๋‹ค).

๋ฉ”๋ชจ์žฅ์—์„œ ‘๋‹ค๋ฅธ์ด๋ฆ„์œผ๋กœ ์ €์žฅ’์„ ์„ ํƒํ•˜์—ฌ ์•„๋ž˜์™€ ๊ฐ™์ด ์ธ์ฝ”๋”ฉ์„ UTF-8๋กœ ๋ณ€๊ฒฝํ•ด์ค๋‹ˆ๋‹ค.

csv ํŒŒ์ผ ํ˜•์‹์€ ์œ ์ง€ํ•ด์•ผ ํ•˜๋ฏ€๋กœ ํŒŒ์ผ ํ˜•์‹์€ ๋ชจ๋“  ํŒŒ์ผ(*.*)๋กœ ๋ณ€๊ฒฝํ•ด์ฃผ๊ณ  ํŒŒ์ผ ์ด๋ฆ„์˜ ํ™•์žฅ์ž์—๋Š” .csv๋ฅผ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๋‹ค์‹œ ํ•œ๋ฒˆ mongoDB์—์„œ ์กฐ์šฐ๋ฅผ ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

๋”์ด์ƒ ๋ฐ˜ํ•ญํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

ํ•˜์—ฌ, IMPORT๋ฅผ ๋ˆŒ๋Ÿฌ๋ณด๋ฉด!

๋ฌธ๋งน์€ ๋ฒ—์–ด๋‚ฌ์œผ๋‚˜….

์ด์ œ๋Š” ๋‚ ์งœ๋ฅผ ๋ชป ์•Œ์•„๋จน๋„ค์š”.

๋‚ ์งœ๋„ ์ž…๋ง›์— ๋งž๊ฒŒ ๋งž์ถฐ์ฃผ๊ฒ ์Šต๋‹ˆ๋‹ค.

๋จผ์ € ๋‚ ์งœ๋ฅผ ๋ชจ๋‘ ์„ ํƒํ•˜๊ณ  ‘.’์œผ๋กœ ๊ตฌ๋ถ„๋œ ๊ธฐํ˜ธ๋ฅผ ‘/’๋กœ ๋ณ€๊ฒฝํ•ด์ค๋‹ˆ๋‹ค.

CTRL + H๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๋ณ€๊ฒฝ ํ›„ ํ•ด๋‹น ์นผ๋Ÿผ(๋˜๋Š” ํ•ด๋‹น ์…€)์„ ๋‚ ์งœ ํ˜•์‹์œผ๋กœ ๋ณ€๊ฒฝํ•ด์ค๋‹ˆ๋‹ค.

DB์— ์ €์žฅ๋  ํƒ€์ž…์„ Date๋กœ ๋ณ€๊ฒฝํ•ด์ค๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๋งˆ์ง€๋ง‰์œผ๋กœ ๊ธฐํšŒ๋ฅผ ํ•œ๋ฒˆ๋งŒ ๋” ์ฃผ๊ฒ ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  IMPORT!

๋” ์ด์ƒ ๋ฐ˜ํ•ญ์„ ํ•˜์ง€ ์•Š๋Š” ์ฐฉํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค.

์œ„ ๋‚ ์งœ ๋ฐ์ดํ„ฐ๋Š” toLocaleDateString()๊ณผ ๊ฐ™์€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํ•จ์ˆ˜๋กœ ๊น”๋”ํ•˜๊ฒŒ ์ •๋ฆฌํ•ด์ฃผ๋ฉด ์ด์˜๊ฒŒ ์ถœ๋ ฅ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋Ÿผ ๋” ์ด์ƒ ์—‘์…€๊ณผ ์ธ์ฝ”๋”ฉ์œผ๋กœ ์ŠคํŠธ๋ ˆ์Šค ๋ฐ›์ง€ ์•Š๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

peace!

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ, ๋ฌธ์ž์—ด ํ•จ์ˆ˜ ๋งˆ์Œ๋Œ€๋กœ ๋‹ค๋ฃจ๊ธฐ(Javascript works with string)

Javascript String Methods : slice(), substring(), includes(), startsWith(), trim(), replace()…….

ํ”„๋ก ํŠธ์—”๋“œ(React, Vue, Angular)์™€ ๋ฐฑ์—”๋“œ(Node.js)๊ฐ€ ๋ชจ๋‘ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์‹œ๋Œ€์— ๋“ค์–ด์„œ๋‹ˆ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๊ธฐ์ดˆ๊ฐ€ ๋ช‡ ๋ฐฐ๋Š” ๋” ์ค‘์š”ํ•ด์ง„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๋ฌธ๋ฒ• ์ค‘ ๋ฌธ์ž์—ด(String) ๊ด€๋ จ ํ•จ์ˆ˜๋Š” ์ฐธ ์“ธ ์ผ์ด ๋งŽ์œผ๋ฉด์„œ๋„ ๊ฐ€๋ณ๊ฒŒ ์—ฌ๊ฒจ์ ธ ์‰ฝ๊ฒŒ ์™ธ์›Œ์ง€์ง€ ์•Š๋Š” ์Šฌํ”ˆ ํ•จ์ˆ˜ ์ค‘ ํ•˜๋‚˜์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.๐Ÿ˜ข

๋ฌธ์ž์—ด ๊ด€๋ จ ํ•จ์ˆ˜๋Š” ํ•œ ๋ฒˆ ์™ธ์›Œ๋‘๋ฉด ๋ฐ˜๋ณต ํ•™์Šตํ•  ์ผ์ด ๋งŽ์œผ๋ฏ€๋กœ ์ฒซ ๋‹จ์ถ”๋งŒ ์ž˜ ๊ฟฐ๋ฉด ๋  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿผ ๋ฌธ์ž์—ด ๊ด€๋ จํ•˜์—ฌ ์‚ฌ์šฉ ๋นˆ๋„๊ฐ€ ๋†’์€ ํ•จ์ˆ˜์ธ slice(), substring(), includes(), startsWith(), trim(), replace(), indexOf(), test() ํ•จ์ˆ˜์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.


slice ํ•จ์ˆ˜๋Š” ์œ„์น˜(์ธ๋ฑ์Šค)๋ฅผ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ „๋‹ฌํ•˜์—ฌ ์›ํ•˜๋Š” ๋ฌธ์ž์—ด์„ ์ถ”์ถœํ•ฉ๋‹ˆ๋‹ค.

์‹œ์ž‘ ์œ„์น˜(ํ•„์ˆ˜)์™€ ์ข…๋ฃŒ ์œ„์น˜(์˜ต์…˜)๋ฅผ ์ „๋‹ฌํ•˜๋ฉฐ, ์‹œ์ž‘ ์œ„์น˜๋งŒ ์ „๋‹ฌํ•˜๋Š” ๊ฒฝ์šฐ ์‹œ์ž‘ ์œ„์น˜๋ถ€ํ„ฐ ๋ฌธ์ž์—ด ๋๊นŒ์ง€ ์ถ”์ถœํ•ฉ๋‹ˆ๋‹ค.

0์€ ์ˆœ๋ฐฉํ–ฅ์œผ๋กœ ์ฒซ ๋ฒˆ์งธ(์•ž์—์„œ 1๋ฒˆ ์งธ), ์Œ์ˆ˜์ธ -1์€ ์—ญ๋ฐฉํ–ฅ์œผ๋กœ ์ฒซ ๋ฒˆ์งธ(๋’ค์—์„œ 1๋ฒˆ ์งธ)๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

const myWord = 'primavera';

myWord.slice(0,5);   // 'prima'
myWord.slice(-4);    // 'vera'
myWord.slice(3);     // 'mavera'

myWord.slice(3,1);    // '' -> sliceํ•จ์ˆ˜๋Š” ์‹œ์ž‘์ธ๋ฑ์Šค๊ฐ€ ์ข…๋ฃŒ์ธ๋ฑ์Šค๋ณด๋‹ค ํฌ๋ฉด ๋นˆ ๊ฐ’์„ ๋ฐ˜ํ™˜

substring ํ•จ์ˆ˜๋„ slice์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์œ„์น˜(์ธ๋ฑ์Šค)๋ฅผ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ „๋‹ฌํ•˜์—ฌ ์›ํ•˜๋Š” ๋ฌธ์ž์—ด์„ ์ถ”์ถœํ•ฉ๋‹ˆ๋‹ค.

๊ธฐ๋ณธ์ ์ธ ์ž‘๋™ ๋ฐฉ์‹์€ ๊ฐ™์œผ๋‚˜ slice์™€ ๋‹ฌ๋ฆฌ ์‹œ์ž‘์ธ๋ฑ์Šค๊ฐ€ ์ข…๋ฃŒ์ธ๋ฑ์Šค๋ณด๋‹ค ํฐ ๊ฒฝ์šฐ์—๋Š” ์ž๋™์œผ๋กœ ๋‘ ๊ฐ’์˜ ์œ„์น˜๋ฅผ ๋ณ€๊ฒฝํ•˜์—ฌ ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ substring์€ ๋งค๊ฐœ๋ณ€์ˆ˜์— ์Œ์ˆ˜๋ฅผ ๋„ฃ์œผ๋ฉด ์ด ๊ฐ’์„ 0์œผ๋กœ ์ธ์‹ํ•ฉ๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ (3, -1)์„ ์ „๋‹ฌํ•˜๊ฒŒ ๋˜๋ฉด (3, 0)์œผ๋กœ ์ธ์‹ํ•ฉ๋‹ˆ๋‹ค. (3, 0)์€ ์‹œ์ž‘ ์ธ๋ฑ์Šค๊ฐ€ ๋” ํฌ๋ฏ€๋กœ ์œ„์น˜๋ฅผ ๋ณ€ํ™˜ํ•˜์—ฌ (0, 3)์˜ ๊ฐ’์„ ๊ณ„์‚ฐํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

ํ•จ์ˆ˜๋ช…์ด ๋น„์Šทํ•œ substr์˜ ๊ฒฝ์šฐ ‘์œ„์น˜’์™€ ‘์ถ”์ถœํ•  ๋ฌธ์ž์˜ ์ˆ˜’๋ฅผ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ์ „๋‹ฌํ•˜๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค.

const myWord = 'invierno';

myWord.substring(3);     // 'ierno'
myWord.substring(1,3);   // 'nv'

myWord.substring(3,1);   // 'nv' -> ์‹œ์ž‘์ด ์ข…๋ฃŒ์ธ๋ฑ์Šค๋ณด๋‹ค ํฌ๋ฉด ์ž๋™์œผ๋กœ ์œ„์น˜ ๋ณ€๊ฒฝ ํ›„ ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰

myWord.substring(3,-1);  // 'inv' -> ์Œ์ˆ˜๋Š” 0, ์‹œ์ž‘์ธ๋ฑ์Šค์™€ ์ข…๋ฃŒ์ธ๋ฑ์Šค๋Š” ์œ„์น˜ ๋ณ€๊ฒฝ ํ›„ ๊ณ„์‚ฐ

myWord.substring(-4);    // 'invierno' -> ์Œ์ˆ˜๋Š” 0, ์‹œ์ž‘์ธ๋ฑ์Šค๋งŒ ์ „๋‹ฌํ•˜์—ฌ 0๋ถ€ํ„ฐ ๋๊นŒ์ง€ ๊ณ„์‚ฐ

myWord.substr(1,3);      // 'nvi' -> ์‹œ์ž‘์ธ๋ฑ์Šค 1๋ถ€ํ„ฐ ๋ฌธ์ž 3๊ฐœ๋ฅผ ์ถ”์ถœ

includes ํ•จ์ˆ˜๋Š” ์ง€์ •ํ•œ ๋ฌธ์ž์—ด์˜ ํฌํ•จ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๋ฌธ์ž์—ด(ํ•„์ˆ˜)๊ณผ ์œ„์น˜์ธ๋ฑ์Šค(์˜ต์…˜)๋ฅผ ์ „๋‹ฌํ•˜๋ฉฐ, ๋ฐ˜ํ™˜๊ฐ’์€ true ๋˜๋Š” false ์ž…๋‹ˆ๋‹ค.

๋ฌธ์ž์—ด ๋‚ด ์ง€์ • ๋ฌธ์ž์—ด ํ™•์ธ์€ ๋ฌผ๋ก  ๋ฐฐ์—ด ๋‚ด ๋นˆ ๊ฐ’์„ ํ™•์ธํ•˜๋Š” ์šฉ๋„๋กœ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

const myWord = 'alegria';

myWord.includes('le');       // true
myWord.includes('i');        // true
myWord.includes('rio');      // false

const myArray = ['dream','','king'];
myArray.includes('');       // true   -> myArray[1]์ด ๋นˆ ๊ฐ’์ด๋ฏ€๋กœ true. ๋ฐฐ์—ด ๋‚ด ๋นˆ ๊ฐ’์„ ์ฐพ๋Š” ์šฉ๋„
myArray.includes('dream');  // true   -> myArray[0]์˜ ๊ฐ’๊ณผ ์ผ์น˜
myArray.includes('drea');   // false  -> ๋ฐฐ์—ด ๋‚ด ๊ฐ’๊ณผ ์ •ํ™•ํ•˜๊ฒŒ ์ผ์น˜ํ•˜๋Š” ๊ฒฝ์šฐ์—๋งŒ true๋ฅผ ๋ฐ˜ํ™˜

startsWith ํ•จ์ˆ˜๋„ ๋ฌธ์ž์—ด์˜ ํฌํ•จ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•˜๋Š” ํ•จ์ˆ˜๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

startsWith์™€ ํ•จ๊ป˜ ๋ฌธ์ž์—ด๋งŒ ์ „๋‹ฌํ•˜๋ฉด 0 ์ธ๋ฑ์Šค๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜์—ฌ ํ•ด๋‹น ๋ฌธ์ž์—ด์˜ ์กด์žฌ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•˜์—ฌ BOOLEAN ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

๋งˆ์ฐฌ๊ฐ€์ง€๋กœ endsWith๋Š” ๋๋‚˜๋Š” ๋ฌธ์ž์—ด์„ ๋น„๊ตํ•ฉ๋‹ˆ๋‹ค.

const mySentence = 'cafe con leche';

mySentence.startsWith('cafe');     // true
mySentence.startsWith('fe');       // false
mySentence.startsWith('fe',2);     // true

mySentence.endsWith('eche');      // true

trim ํ•จ์ˆ˜๋Š” ๋ฌธ์ž์—ด ์–‘ ๋์˜ ๊ณต๋ฐฑ์„ ์ œ๊ฑฐํ•˜๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค.

๋ฌธ์ž์—ด ๋ณ€ํ™˜ ๊ณผ์ •์ด๋‚˜ ์‹ค์ˆ˜๋กœ ๋ณด์ด์ง€ ์•Š๋Š” ๊ณต๋ฐฑ์„ ์‚ฝ์ž…ํ•˜๊ฒŒ ๋˜๋ฉด ๋ฌธ์ž์—ด ๋น„๊ต ์‹œ ๊ฒ‰์œผ๋กœ๋Š” ๋™์ผํ•˜์ง€๋งŒ ๊ฒฐ๊ณผ๋Š”

false๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋ฏ€๋กœ ์ด trim ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฌธ์ž์—ด ์–‘ ๋์˜ ๊ณต๋ฐฑ, ํƒญ, ์ค„๋ฐ”๊ฟˆ ๋ฌธ์ž(/n)๋ฅผ ์ œ๊ฑฐํ•˜๋ฉฐ, ๋ฌธ์ž์—ด ์–‘ ๋์ด ์•„๋‹Œ ๋ถ€๋ถ„์—๋Š” ํšจ๊ณผ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

const mySentence = '  la casa de papel   ';

mySentence.trim();        // 'la casa de papel'

const mySentence = ' el amor \n';

mySentence.trim();       // 'el amor'

replace ํ•จ์ˆ˜๋Š” ๋ฌธ์ž์—ด์—์„œ ๋ณ€๊ฒฝํ•  ๊ธฐ์กด๋ฌธ์ž๋ฅผ ์ฐพ์•„ ๋ณ€๊ฒฝ๋ฌธ์ž๋กœ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.

๋ฌธ์ž์—ด์—์„œ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ „๋‹ฌํ•œ ๊ธฐ์กด๋ฌธ์ž๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ ์กด์žฌํ•˜๋Š” ๊ฒฝ์šฐ ์ฒซ ๋ฒˆ์งธ๋กœ ํƒ์ƒ‰ํ•œ ๋ฌธ์ž์—ด๋งŒ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ‘my_name_is_Ron’์—์„œ ‘_’๋ฌธ์ž๋ฅผ ๋ชจ๋‘ ๊ณต๋ฐฑ์œผ๋กœ ๋ณ€๊ฒฝํ•˜๊ธฐ ์œ„ํ•ด replace(‘_’,’ ‘) ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด๋„ ๊ฒฐ๊ณผ๋Š” ‘my name_is_Ron’์ด ๋ฐ˜ํ™˜๋ฉ๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ๋ฌธ์ž์—ด์—์„œ ํ•ด๋‹นํ•˜๋Š” ๋ฌธ์ž๋ฅผ ๋ชจ๋‘ ๋ณ€๊ฒฝํ•˜๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ์—๋Š” ์ •๊ทœํ‘œํ˜„์‹์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

์ •๊ทœํ‘œํ˜„์‹ ๊ด€๋ จ ํฌ์ŠคํŠธ

const mySentence = 'my name is:Ron';

mySentence.replace(':',' ');        //'my name is Ron'

const mySentence = 'my_name_is_Ron';

mySentence.replace('_',' ');      // 'my name_is_Ron'

//์ •๊ทœํ‘œํ˜„์‹ ์‚ฌ์šฉํ•ด์„œ ๋ชจ๋“  ๋ฌธ์ž ๋ณ€๊ฒฝํ•˜๊ธฐ
mySentence.replace(/_/g, ' ');    // 'my name is Ron'

indexOf ํ•จ์ˆ˜๋Š” ์ „๋‹ฌํ•˜๋Š” ๋ฌธ์ž์˜ ์œ„์น˜๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

์ด ๊ธฐ๋Šฅ์€ ์›ํ•˜๋Š” ๋ฌธ์ž์—ด์˜ ์•ž ๋˜๋Š” ๋’ค์—์„œ ๋ฌธ์ž์—ด์„ ์ž๋ฅผ ๋•Œ ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ‘Z001-03’์ด๋ผ๋Š” ๋ฌธ์ž์—ด์—์„œ ๋’ค์˜ ’03’๋งŒ ์ถ”์ถœํ•˜๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ indexOf๋กœ ‘-‘ ๋ฌธ์ž์—ด์˜ ์œ„์น˜๋ฅผ ์ฐพ๊ณ  ํ•ด๋‹น ์œ„์น˜์˜ +1 ์œ„์น˜๋ถ€ํ„ฐ ๋๊นŒ์ง€ ๋ฌธ์ž์—ด์„ ์ž˜๋ผ๋‚ด๋ฉด ์›ํ•˜๋Š” ๊ฐ’์„ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋งŒ์•ฝ ๊ฐ™์€ ๋ฌธ์ž๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ ์กด์žฌํ•˜๋Š” ๊ฒฝ์šฐ ์ฒซ ๋ฒˆ์งธ ๋ฌธ์ž์˜ ์œ„์น˜๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋ฉฐ, ๋‘ ๋ฒˆ์งธ ๋งค๊ฐœ๋ณ€์ˆ˜์— ์‹œ์ž‘ ์œ„์น˜๋ฅผ ์ „๋‹ฌํ•˜๋ฉด ์‹œ์ž‘ ์œ„์น˜๋ถ€ํ„ฐ ๊ฒ€์ƒ‰์„ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค(์‹œ์ž‘ ์œ„์น˜๋ฅผ ์ „๋‹ฌํ•˜๋”๋ผ๋„ ๋ฐ˜ํ™˜ ๊ฐ’์€ ์ „์ฒด ๋ฌธ์ž์—ด์—์„œ ๋ช‡ ๋ฒˆ์งธ์ธ์ง€๋ฅผ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค).

๋’ค์—์„œ๋ถ€ํ„ฐ ๊ฒ€์ƒ‰์„ ์‹œ์ž‘ํ•˜๋Š” ํ•จ์ˆ˜๋Š” lastIndexOf์ด๋ฉฐ, ๋’ค์—์„œ๋ถ€ํ„ฐ ์ฒซ ๋ฒˆ์งธ๋กœ ๋‚˜์˜ค๋Š” ๋ฌธ์ž์˜ ์œ„์น˜๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค(๋ฐ˜ํ™˜ ๊ฐ’์€ ํ•ด๋‹น ๋ฌธ์ž๊ฐ€ ์•ž์—์„œ๋ถ€ํ„ฐ ๋ช‡ ๋ฒˆ์งธ์ธ์ง€๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค).

์ „๋‹ฌํ•˜๋Š” ๋ฌธ์ž๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š์œผ๋ฉด -1์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

const mySentence = 'Z001-03';

mySentence.indexOf('-');     // 4

mySentence.substring(mySentence.indexOf('-')+1);    // '03'

mySentence.indexOf('D');    // -1

const mySentence = 'Z001-03-02';

mySentence.indexOf('-');    // 4
mySentence.indexOf('-', 5);   // 7

mySentence.lastIndexOf('-')   // 7

test ํ•จ์ˆ˜๋Š” ์ •๊ทœํ‘œํ˜„์‹๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜์—ฌ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ „๋‹ฌํ•˜๋Š” ๋ฌธ์ž์—ด์˜ ์œ ํšจ์„ฑ์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

๋น„๋ฐ€๋ฒˆํ˜ธ์— ์•ŒํŒŒ๋ฒณ, ํŠน์ˆ˜๋ฌธ์ž ๋“ฑ ํฌํ•จ์—ฌ๋ถ€ ํ™•์ธ์ด๋‚˜ ์ƒ๋…„์›”์ผ ํ˜•์‹์— ์•ŒํŒŒ๋ฒณ ๋“ฑ ๋ถˆํ•„์š”ํ•œ ๋ฌธ์ž์˜ ํฌํ•จ ์—ฌ๋ถ€๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

const mySentence = /a/;
const myWord = 'baby';

mySentence.test(myWord);   // true

/\d/.test('cookie');       // false \d๋Š” ์ˆซ์ž(0~9)๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ •๊ทœํ‘œํ˜„์‹
/\d/.test('cookie1');      // true

const typedError = /[ใ„ฑ-ใ…Žใ…-ใ…ฃ]/gi;
const inputData = '๊น€ใ…Š์น˜์™€ ๋‚˜๋ฌผ';

typedError.test(inputData);    // true 

์ด ์™ธ์—๋„ ๋‹ค์–‘ํ•œ ํ•จ์ˆ˜๋“ค์ด ๋งŽ๊ณ  ๋˜ ์—ฌ๋Ÿฌ ์š”๊ตฌ์— ๋งž์ถฐ ์ƒˆ๋กญ๊ณ  ํŽธ๋ฆฌํ•œ ํ•จ์ˆ˜๊ฐ€ ๊ณ„์† ๋‚˜์˜ค๊ธฐ ๋•Œ๋ฌธ์— ๋Š์ž„์—†๋Š” ๊ด€์‹ฌ๊ณผ ์—…๋ฐ์ดํŠธ ๊ด€๋ จํ•˜์—ฌ ๋ชจ๋‹ˆํ„ฐ๋ง์ด ํ•„์š”ํ•  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๊ด‘๋ฆ‰์ˆ˜๋ชฉ์›(๊ตญ๋ฆฝ์ˆ˜๋ชฉ์›), ๋งˆ์Œ์˜ ์—ฌ์œ ๋ฅผ ๋Š๋ผ๋ฉฐ ์Šคํƒฌํ”„ ํˆฌ์–ดํ•˜๊ธฐ!

๊ตญ๋ฆฝ์ˆ˜๋ชฉ์›์—์„œ ๋ณด๋‚ด๋Š” ์—ฌ์œ ๋กœ์šด ํ•˜๋ฃจ

์ง€์ธ์˜ ์ถ”์ฒœ์œผ๋กœ ํฌ์ฒœ์‹œ์— ์œ„์น˜ํ•œ ๊ตญ๋ฆฝ์ˆ˜๋ชฉ์›(๊ด‘๋ฆ‰์ˆ˜๋ชฉ์›)์— ๋‹ค๋…€์™”์Šต๋‹ˆ๋‹ค.

์„œ์šธ์—์„œ ํ•œ ์‹œ๊ฐ„ ์ •๋„ ๊ฑฐ๋ฆฌ์— ์œ„์น˜ํ•˜๊ณ  ๊ฐ€๋Š” ๊ธธ์—๋Š” ์ฐจ๋„ ๋ง‰ํžˆ์ง€ ์•Š์•„ ์ƒ์พŒํ•˜๊ฒŒ ๋‹ค๋…€์™”์Šต๋‹ˆ๋‹ค.

ํ•˜๋ฃจ ์ž…์žฅ ์ธ์›์ด ์ œํ•œ๋˜์–ด ์žˆ๊ณ  ์˜ˆ์•ฝ์„ ํ†ตํ•ด์„œ๋งŒ ์ž…์žฅ์ด ๊ฐ€๋Šฅํ•˜๋ฏ€๋กœ ๋ถ๋น„์ง€๋„ ์•Š๊ณ  ์—ฌ์œ ๋กญ๊ฒŒ ํ•˜๋ฃจ๋ฅผ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋Š” ๊ณณ์ด์–ด์„œ ๋„ˆ๋ฌด ์ข‹์•˜์Šต๋‹ˆ๋‹ค.

๋ฐฉ๋ฌธ์€ 2021๋…„ 11์›” 13์ผ์ด์—ˆ์œผ๋ฉฐ, ๊ทผ๋ž˜ ๋น„๊ฐ€ ์˜ค๊ณ  ๋‚ ์”จ๊ฐ€ ์Œ€์Œ€ํ•ด์ง„ ๊ด€๊ณ„๋กœ ๋ฐ”์Šค๋ฝ ๊ฑฐ๋ฆฌ๋Š” ๋‚™์—ฝ๋“ค์„ ๋งŽ์ด ๋ฐŸ์œผ๋ฉฐ ๊ฑธ์„ ์ˆ˜ ์žˆ์—ˆ๊ณ  ๋ฐ˜๋Œ€๋กœ ๋งํ•˜๋ฉด ์žŽ์ด ๋งŽ์ด ๋–จ์–ด์ ธ ํœ‘ํ•œ ๋‚˜๋ฌด ์นœ๊ตฌ๋“ค๋„ ๊ฝค ๋งŽ์•˜์Šต๋‹ˆ๋‹ค.

๋–จ์–ด์ง„ ๋‚™์—ฝ์„ ๋ณด๊ณ  ๊ณ„์ ˆ์˜ ๋ณ€ํ™”๋ฅผ ์ง์ ‘ ๋Š๋‚„ ์ˆ˜ ์žˆ์–ด ๋„ˆ๋ฌด ์ข‹์•˜๊ณ , ํ’€๊ณผ ๋‚˜๋ฌด ๋‚ด์Œ์€ ํ•ญ์ƒ ์‚ฌ๋žŒ์„ ๊ธฐ๋ถ„ ์ข‹๊ฒŒ ํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

– ๊ด‘๋ฆ‰์ˆ˜๋ชฉ์›(๊ฒฝ๊ธฐ๋„ ํฌ์ฒœ์‹œ ์†Œํ˜์ ๊ด‘๋ฆ‰์ˆ˜๋ชฉ์›๋กœ 415)

์ž…๊ตฌ์—์„œ ์—ฌ๋Ÿฌ ์ž๋ฃŒ๋“ค์„ ๋งŒ๋‚  ์ˆ˜ ์žˆ๋Š”๋ฐ์š”.

์Šคํƒฌํ”„ ํˆฌ์–ด๋ผ๋Š” ์ด๋ฒคํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์ˆ˜๋ชฉ์› ๋‚ด ์Šคํƒฌํ”„๋ฅผ ์ฐ์„ ์ˆ˜ ์žˆ๋Š” ํฌ์ธํŠธ๊ฐ€ ์ง€์ •๋˜์–ด ์žˆ๊ณ , ์Šคํƒฌํ”„๋ฅผ ๋ชจ๋‘ ์ฐ์œผ๋ฉด ์†Œ์ •์˜ ์„ ๋ฌผ์„ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š”๋ฐ์š”.

์Šคํƒฌํ”„๋Š” 3๊ฐœ/5๊ฐœ/13๊ฐœ/14๊ฐœ์— ๋”ฐ๋ฅธ ์„ ๋ฌผ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์„ ๋ฌผ์ด ๋ฌด์—‡์ผ์ง€ ๊ธฐ๋Œ€๊ฐ์„ ํ’ˆ๊ณ  ํ•˜๋‚˜ํ•˜๋‚˜ ์ฐ๋‹ค ๋ณด๋‹ˆ 13๊ฐœ ์Šคํƒฌํ”„์— ์„ฑ๊ณตํ–ˆ๋Š”๋ฐ์š”.

์„ ๋ฌผ์€ ์•„๋ž˜์ชฝ์—์„œ ๊ณต๊ฐœํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

1์ธ๋‹น ํ•œ๋ฒˆ์˜ ์ด๋ฒคํŠธ๋งŒ ์ฐธ์—ฌ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋ฏ€๋กœ ์ €ํฌ๋Š” ๋‘ ์žฅ์˜ ์Šคํƒฌํ”„ ์ง€๋„๋ฅผ ๋“ค๊ณ  ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด๋ ‡๊ฒŒ ์Šคํƒฌํ”„ ๋ณ„ ๋‚œ์ด๋„๊ฐ€ ์ ํ˜€ ์žˆ๊ตฌ์š”.

๋งˆ์ง€๋ง‰์— ๋‚˜์˜ฌ ๋•Œ ์ด ๋‚œ์ด๋„ ํ‘œ๋ฅผ ๋ณด๋‹ˆ ‘์•„ ๊ทธ๋Ÿฌ๊ณ  ๋ณด๋‹ˆ ์ €๊ธด ๋ณ„ 5๊ฐœ ๊ธ‰์˜ ์ž๊ฒฉ์ด ์žˆ๊ตฐ’ํ•˜๋Š” ์ƒ๊ฐ์ด ๋“ค๊ธด ํ–ˆ์Šต๋‹ˆ๋‹ค..ใ…Žใ…Žใ…Ž

์ด๋ ‡๊ฒŒ ์ƒ๊ธด ๊ฒƒ์ด ์Šคํƒฌํ”„ ํฌ์ธํŠธ๊ตฌ์š”.

๋Œ์•„๋‹ค๋‹ˆ๋ฉด์„œ ์Šคํƒฌํ”„๋ฅผ ์ฐ๋‹ค ๋ณด๋ฉด ์ˆ˜๋ชฉ์› ๋ฐฉ๋ฌธ ๋ชฉ์ ์ด ์Šคํƒฌํ”„๋กœ ์ฐฉ๊ฐํ•˜๊ฒŒ ๋˜๋Š” ์ˆœ๊ฐ„์ด ์žˆ์Šต๋‹ˆ๋‹ค..

์Šคํƒฌํ”„ ๋ฐ”๋‹ฅ์„ ๋ณด์‹œ๊ณ  ๊ทธ์— ๋งž๋Š” ๊ณณ์— ๊พน! ํ•˜๊ณ  ์ฐ์–ด์ฃผ์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

์‚ฌ์ง„์„ ์ฐ์–ด์•ผ ํ•˜๋Š”๋ฐ ์Šคํƒฌํ”„๋งŒ ์ฐ๊ณ  ์˜จ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค..

์œ ์น˜์›์—์„œ ์„ธ์ƒ์„ ์•Œ์•„๊ฐˆ ๋งŒํ•œ ๋‚˜์ด์˜ ์–ด๋ฆฐ ์นœ๊ตฌ๋“ค๊ณผ ์„ž์—ฌ์„œ ์ˆœ์„œ๋Œ€๋กœ ์Šคํƒฌํ”„๋ฅผ ์ฐ๋Š” ์ œ ๋ชจ์Šต๋„ ์ƒ๊ฐ์ด ๋‚ฉ๋‹ˆ๋‹ค..

์œ„ ๊ท€๊ณก์‚ฐ์žฅ(ํ™”์žฅ์‹ค)์€ ๋ณ„ 5๊ฐœ์งœ๋ฆฌ ์ค‘ ํ•œ ๊ณณ์œผ๋กœ ๊ฐ€๋Š” ๊ธธ์— ์žˆ์Šต๋‹ˆ๋‹ค.

์ง€๋„ ์™ผ์ชฝ ์ค‘๊ฐ„์ฏค์— ์œ„์น˜ํ•œ ์นดํŽ˜์ธ๋ฐ์š”.

๊ฐ€๊ฒฉ์ด ์กฐ๊ธˆ ๋น„์‹ธ๊ธด ํ•˜์ง€๋งŒ ์ž์—ฐ ์†์—์„œ ๋ง›์žˆ๊ฒŒ ๋จน์„ ์ˆ˜ ์žˆ๋‹ค๋ฉด์•ผ..

๋‚ด ์นด๋“œ๊ฐ€ ์•„๋‹ˆ๋ผ์„œ ๋ง‰ ์‚ฌ๋ผ๊ณ  ๋ถ€์ถ”๊ธฐ๊ธด ํ–ˆ์Šต๋‹ˆ๋‹ค..

‘๋ˆ„์›Œ์„œ ํ•˜๋Š˜์„ ๋ณด์„ธ์š”’๋ผ๋Š” ์•ˆ๋‚ด๋ฌธ์ด ์žˆ๋Š” ๋ฒค์น˜์—์„œ ๋ฐ”๋ผ๋ณธ ํ•˜๋Š˜์ž…๋‹ˆ๋‹ค.

‘๊ด‘๋ฆ‰์ˆฒ’ ํฌ์ธํŠธ ํ•˜๋‚˜๋ฅผ ์ œ์™ธํ•œ ๋‚˜๋จธ์ง€ ํฌ์ธํŠธ๋ฅผ ๋ชจ๋‘ ์™„์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ตฌ๊ฒฝํ•˜๊ณ  ์‰ฌ๊ณ  ๋จน๊ณ  ๊ฑท๊ณ  ํ•˜๋‹ค ๋ณด๋‹ˆ ์•ฝ 3~4 ์‹œ๊ฐ„ ์ •๋„ ์†Œ์š”๋œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

‘๊ด‘๋ฆ‰์ˆฒ’ ํฌ์ธํŠธ๋Š” ์ˆ˜๋ชฉ์› ์™ธ๋ถ€์— ์žˆ๊ณ , ๊ฑฐ๋ฆฌ๊ฐ€ ์™•๋ณต ์•ฝ 3.1km๋กœ ๊ธฐ์žฌ๋˜์–ด ์žˆ์—ˆ๋Š”๋ฐ์š”.

๋ฐฐ๊ฐ€ ๊ณ ํŒŒ ์˜ค๋Š˜์˜ ๋ฏธ์…˜์€ 13๊ฐœ๋กœ ๋งˆ๋ฌด๋ฆฌํ•˜๊ณ  ์„ ๋ฌผ์„ ์ˆ˜๋ นํ•˜๋Ÿฌ ๊ฐ”์Šต๋‹ˆ๋‹ค.

์„ ๋ฌผ์€ ๋ฐ”๋กœ!

์Šคํƒฌํ”„ 13๊ฐœ ์™„์„ฑ ์„ ๋ฌผ์€ ํŽœ + ์—ฝ์„œ + ์กฐ๊ฐ๋งž์ถ”๊ธฐ(?)์ž…๋‹ˆ๋‹ค.

์Šคํƒฌํ”„ 14๊ฐœ ์„ ๋ฌผ์€ ์กฐ๊ฐ๋งž์ถ”๊ธฐ(?)๋ฅผ ํ•˜๋‚˜ ๋” ์ค€๋‹ค๋Š” ์ฐจ์ด๊ฐ€ ์žˆ์—ˆ๋˜ ๊ฒƒ ๊ฐ™์€๋ฐ์š”.

๋ฌด๋ฆฌํ•˜์ง€ ๋ง๊ณ  13๊ฐœ๋กœ๋„ ์ถฉ๋ถ„ํžˆ ๋งŒ์กฑํ•  ๋งŒํ•œ ์„ ๋ฌผ์„ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์Šคํƒฌํ”„ 3๊ฐœ – ํŽœ

์Šคํƒฌํ”„ 5๊ฐœ – ์—ฝ์„œ

์Šคํƒฌํ”„ 13๊ฐœ – ํŽœ + ์—ฝ์„œ + ์กฐ๊ฐ๋งž์ถ”๊ธฐ(?)

์Šคํƒฌํ”„ 14๊ฐœ – ํŽœ + ์—ฝ์„œ + ์กฐ๊ฐ๋งž์ถ”๊ธฐ(?) 2๊ฐœ

์„ ๋ฌผ ๊ตํ™˜ ์žฅ์†Œ์— ์Šคํƒฌํ”„์— ๋”ฐ๋ฅธ ์„ ๋ฌผ์ด ์ ํ˜€์žˆ์—ˆ๋Š”๋ฐ ํž˜์ด ๋“ค์–ด ์‚ฌ์ง„๋„ ๋ชป ์ฐ์—ˆ๋„ค์š”..

๊ฐœ์ธ์ ์ธ ์ƒ๊ฐ์œผ๋กœ 5์›”/6์›”/10์›”/11์›”์ดˆ๊ฐ€ ๋ฐฉ๋ฌธํ•˜๊ธฐ ๊ฐ€์žฅ ์ข‹์€ ์‹œ๊ธฐ๋ผ๊ณ  ์ƒ๊ฐ๋ฉ๋‹ˆ๋‹ค.

์˜ˆ์•ฝ์€ ๋ณดํ†ต ๋ฐฉ๋ฌธ ์˜ˆ์ • ๋‚ ์งœ๋กœ๋ถ€ํ„ฐ ํ•œ ๋‹ฌ ์ •๋„ ์—ฌ์œ ๋ฅผ ๋‘๊ณ  ํ•ด์•ผ ํ•  ๋งŒํผ ์ธ๊ธฐ๊ฐ€ ๋งŽ์€ ๊ณณ์ด๋‹ค ๋ณด๋‹ˆ ๊ณ„ํš์ ์œผ๋กœ ์ค€๋น„ํ•˜์—ฌ ๋ฐฉ๋ฌธํ•˜์‹œ๋ฉด ์ •๋ง ์ข‹์€ ์ถ”์–ต์„ ๋‚จ๊ธธ ์ˆ˜ ์žˆ๋Š” ๊ณณ์ด๋ผ๊ณ  ์ƒ๊ฐ๋ฉ๋‹ˆ๋‹ค.

๋งคํ‘œ์†Œ ์•ž์— ์žˆ๋Š” ์ฃผ์ฐจ ์š”๊ธˆ ์ •์‚ฐ์†Œ์—์„œ ์ •์‚ฐ ์‹œ ํ• ์ธ ์ฐจ๋Ÿ‰(์žฅ์• ์ธ/์œ ๊ณต์ž/์ €๊ณตํ•ด์ฐจ๋Ÿ‰ ๋“ฑ)์˜ ํ• ์ธ๋„ ๋ฐ›์„ ์ˆ˜ ์žˆ์œผ๋‹ˆ ์ฐธ๊ณ ํ•ด ์ฃผ์„ธ์š”.

๊ตญ๋ฆฝ์ˆ˜๋ชฉ์› ์˜ˆ์•ฝ : https://kna.forest.go.kr/kfsweb/kfi/kfs/cms/cmsView.do?mn=UKNA_01_03_01&cmsId=FC_003267