[Front-end๐Ÿฆ] #38 ์ •๊ทœํ‘œํ˜„์‹ + ์•Œ๊ณ ๋ฆฌ์ฆ˜

๋˜์ƒยท2021๋…„ 12์›” 21์ผ
0

front-end

๋ชฉ๋ก ๋ณด๊ธฐ
53/58
post-thumbnail

1. ์„œ๋น„์Šค ๊ธฐํš

1. ๋งˆ์ธ๋“œ๋งต ์ด์šฉ

https://www.mindmeister.com/


2. ์™€์ด์–ดํ”„๋ ˆ์ž„

https://ovenapp.io/




2. ์ฝ”๋”ฉํ…Œ์ŠคํŠธ

1. ๋ฌธ์ œ ํ’€์ด

์˜คํ”ˆ์ฑ„ํŒ…๋ฐฉ, ์‹คํŒจ์œจ, ๋ฌธ์ž์—ด ์••์ถ•




3. ์ •๊ทœํ‘œํ˜„์‹

cheat sheet

/pattern/gm 
// /g : (global) ๋ชจ๋“  ๋ฌธ์ž์—ด์—์„œ 
// /m : (mutliple) ์—ฌ๋Ÿฌ ๋ผ์ธ์—์„œ. ํŒจํ„ด์„ ์ฐพ๊ฒ ๋‹ค.

^ $

/^hello  // ^ : ๋ฌธ์ž์—ด ์ฒ˜์Œ
/hello$  // $ : ๋ฌธ์ž์—ด ์ฒ˜์Œ
/^hello$ // hello๋กœ ์‹œ์ž‘, hello๋กœ ๋ -> ์ •ํ™•ํ•˜๊ฒŒ hello๋งŒ!
/. // ๋ชจ๋“  ๋ฌธ์ž
/[aei] // aei์ค‘ ํ•˜๋‚˜
/[A-za-z0-9] // ์•ŒํŒŒ๋ฒณ, ์ˆซ์ž ์ค‘ ํ•˜๋‚˜
/[^aeiou] // aeiou ๊ฐ€ ์•„๋‹Œ ๊ฒƒ ์ค‘ ํ•˜๋‚˜

grouping
(?:abc) : ๊ทธ๋ฃน์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Œ
(?=abc) : (Positive ๋งค์นญ) ๊ทธ๋ฃน์œผ๋กœ ์„ค์ •(Lookahead)
(?!abc) : (Negative ๋งค์นญ) ๊ทธ๋ฃน์œผ๋กœ ์„ค์ •(Lookbehind)

/(on|ues|rida)/gm : ๊ทธ๋ฃน 1๋กœ 3๊ฐœ ์ค‘ ๋งค์นญ๋˜๋Š” ํŒจํ„ด ์ฐพ์Œ
/(?:on|ues)/gm
/(on|ues)|(rida)/gm : ๊ทธ๋ฃน1(on|ues)๊ณผ ๊ทธ๋ฃน2(rida)๋กœ ๊ฐ๊ฐ ๋งค์นญ๋˜๋Š” ํŒจํ„ด ์ฐพ์Œ
/.(a|e|o)ll./gm
/hello (?!world)/gm : hello ๋’ค์— world๊ฐ€ ์˜ค์ง€ ์•Š๋Š” ๊ฒƒ
/hello (?=world)/gm : hello ๋’ค์— world๊ฐ€ ์˜ค๋Š” ๊ฒƒ

์ˆ˜๋Ÿ‰์ž

// url parsing์— ์‚ฌ์šฉ
_* : ์•ž์— ์žˆ๋Š” ๋ฌธ์ž๊ฐ€ 0๊ฐœ ~ N๊ฐœ ({0,})
_+ : ์•ž์— ์žˆ๋Š” ๋ฌธ์ž๊ฐ€ 1๊ฐœ ~ N๊ฐœ({1,})
_? : ์•ž์— ์žˆ๋Š” ๋ฌธ์ž๊ฐ€ 0๊ฐœ ~ 1๊ฐœ ({0,1})

\w \d \s

/\w/gm : ์›Œ๋“œ
/\w{5} /gm : 5๊ฐœ์˜ ๊ธ€์ž์™€ ์ŠคํŽ˜์ด์Šค ํ•˜๋‚˜
/\W/gm : not ์›Œ๋“œ
/\d/gm : ์ˆซ์ž
/\D/gm : not ์ˆซ์ž
/\s/gm : ์ŠคํŽ˜์ด์Šค
/\S/gm : not ์ŠคํŽ˜์ด์Šค

escape \

/\[.*]/gm : ๋Œ€๊ด„ํ˜ธ([]) ์•ˆ์— ๊ฐ์‹ธ์—ฌ์ง„ ๋ฌธ์ž์—ด
/\(.*\)/gm : ์†Œ๊ด„ํ˜ธ ์•ˆ์— ๊ฐ์‹ธ์—ฌ์ง„ ๋ฌธ์ž์—ด
/\\.*\//gm : ์ด๋ฏธ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ๋Š” ํŠน์ˆ˜๋ฌธ์ž๋กœ ๊ฐ์‹ธ์—ฌ์ง„ ๋ฌธ์ž์—ด
/-.*-/gm : ์ด์Šค์ผ€์ดํ”„ ๋ฌธ์ž๋ฅผ ์‚ฌ์šฉํ•  ํ•„์š”๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ
/\^\^/gm : ์ด์Šค์ผ€์ดํ”„ ๋ฌธ์ž๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ
/:\)/gm : ์ด์Šค์ผ€์ดํ”„ ๋ฌธ์ž๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ

ํ•œ๊ธ€

[ใ„ฑ-ใ…Ž|ใ…-ใ…ฃ|๊ฐ€-ํžฃ]    # ๋ชจ๋“  ํ•œ๊ธ€
[^[๊ฐ€-ํžฃ]+$]           # ํ•œ๊ธ€๋งŒ ํ—ˆ์šฉ
[^[๊ฐ€-ํžฃ\\s]+$]        # ๊ณต๋ฐฑ ํ—ˆ์šฉ

2. ํŒŒ์ด์ฌ ๋ฉ”์„œ๋“œ

1. flag

Method๋‹จ์ถ•์„ค๋ช…
re.compile('ํŒจํ„ด', re.DOTALL)re.compile('ํŒจํ„ด', re.S)๋ชจ๋“  ๋ฌธ์ž(์ค„๋ฐ”๊ฟˆ ํฌํ•จ)
re.compile('ํŒจํ„ด', re.IGNORECASE)re.compile('ํŒจํ„ด', re.I)๋Œ€์†Œ๋ฌธ์ž ๊ตฌ๋ถ„ X
re.compile('ํŒจํ„ด', re.MULTILINE)re.compile('ํŒจํ„ด', re.M)๋ชจ๋“  ๋ผ์ธ ๋งค์นญ
re.compile('ํŒจํ„ด', re.VERBOSE)re.compile('ํŒจํ„ด', re.X)์ฃผ์„ ๋“ฑ ํŽธ์˜ ๊ธฐ๋Šฅ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
re.compile('ํŒจํ„ด', re.ASCII)re.compile('ํŒจํ„ด', re.A)ASCII๋งŒ์„ ์‚ฌ์šฉ

2. method

Method์„ค๋ช…
re.compile('ํŒจํ„ด').match(๋ฌธ์ž์—ด)๋ฌธ์ž์—ด ์ฒ˜์Œ์ด ์ •๊ทœ์‹ ๋งค์นญ ์—ฌ๋ถ€ ํŒ๋‹จ(์žˆ์„ ๊ฒฝ์šฐ object ์ฃผ์†Œ ๋ฐ˜ํ™˜, ์—†์„ ๊ฒฝ์šฐ None)
re.compile('ํŒจํ„ด').search(๋ฌธ์ž์—ด)๋ฌธ์ž์—ด ์ „์ฒด์—์„œ ์ •๊ทœ์‹ ๋งค์นญ ์—ฌ๋ถ€ ํŒ๋‹จ(์žˆ์„ ๊ฒฝ์šฐ object ์ฃผ์†Œ ๋ฐ˜ํ™˜, ์—†์„ ๊ฒฝ์šฐ None)
re.compile('ํŒจํ„ด').findall(๋ฌธ์ž์—ด)์ •๊ทœ์‹๊ณผ ๋งค์นญ๋˜๋ฉด ๋ฆฌ์ŠคํŠธ๋กœ ๋ฐ˜ํ™˜
re.compile('ํŒจํ„ด').finditer(๋ฌธ์ž์—ด)์ •๊ทœ์‹๊ณผ ๋งค์นญ๋˜๋ฉด ์ˆœํšŒ๊ฐ€๋Šฅ ๊ฐ์ฒด๋กœ ๋ฐ˜ํ™˜
re.compile('ํŒจํ„ด').split(๋ฌธ์ž์—ด)ํŒจํ„ด๋Œ€๋กœ ๋ฌธ์ž์—ด ๋ถ„ํ• 
re.compile('ํŒจํ„ด').sub(๋Œ€์ฒด๋ฌธ๊ตฌ, ๋ฌธ์ž์—ด)ํŒจํ„ด์„ ๋Œ€์ฒด๋ฌธ๊ตฌ๋กœ ๋Œ€์ฒดํ•จ(replace)
re.compile('ํŒจํ„ด').fullmatch(๋ฌธ์ž์—ด)๋ฌธ์ž์—ด ์ „์ฒด๊ฐ€ ์ •๊ทœ์‹์— ๋งค์นญ๋˜๋Š”์ง€ ์—ฌ๋ถ€ ํŒ๋‹จ.

3. ๋งค์น˜ ๊ฐ์ฒด

Method์„ค๋ช…
group(์ˆซ์ž)์ผ์น˜ํ•œ ๋ฌธ์ž์—ด์˜ ๊ทธ๋ฃน์—์„œ ์ˆซ์ž์— ํ•ด๋‹นํ•˜๋Š” ๋ฌธ์ž์—ด์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
groups(default=None)์ผ์น˜ํ•œ ๋ฌธ์ž์—ด์˜ ๋ชจ๋“  ๊ทธ๋ฃน์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
groupdict(default=None)์ผ์น˜ํ•œ ๋ฌธ์ž์—ด์˜ ํŒจํ„ด์„ ๋”•์…”๋„ˆ๋ฆฌ ๊ฐ’์œผ๋กœ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
expand(๋ฌธ์ž์—ด)์ผ์น˜ํ•œ ๋ฌธ์ž์—ด์˜ ๊ทธ๋ฃน์— ๋Œ€ํ•ด ์˜ต์…˜๊ฐ’์— ํ•ด๋‹นํ•˜๋Š” ๋ฌธ์ž์—ด๋กœ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

๋ฌธ์ œ

  1. ๋ฌธ์ž์—ด = '[(name, ddosang), (age, 10), (height, 280), (email, a-sdf@velog.io)]' ์„
    [['name', 'ddosang'],
    ['age', '10'],
    ['height', '280'],
    ['email', 'a-sdf@velog.io']] ํ˜•ํƒœ๋กœ ๋งŒ๋“ค๊ธฐ.
๋ฌธ์ž์—ด.match(/\([A-Za-z0-9\.\-@, ]+\)/g).map(e=>e.replace(/\(/g, '').replace(/\)/g, '').split(', '))




3. ์ž‘์€ ํšŒ๊ณ 

1. ์ž๋ฃŒ๊ตฌ์กฐ ๋ณต์Šตํ•œ ๋‚ด์šฉ ์„น์…˜์— ํ•ด๋‹นํ•˜๋Š” ๊ณผ์ œ๋ฅผ ๋‹ค์‹œ ํ’€์–ด๋ดค๋‹ค.

๊ทธ ๋•Œ๋Š” ์ƒ๊ฐํ•ด๋ณด๋‹ˆ๊นŒ.. 2ํ•™๋…„ 2ํ•™๊ธฐ ์˜€๋Š”๋ฐ, ๋ชฉ์š”์ผ ํ•˜๋ฃจ 2๊ต์‹œ ์—ฐ๋‹ฌ์•„ ์ˆ˜์—…๋“ฃ๊ณ  ๋ฐ”๋กœ ์‹ค์Šต์‹ค์—์„œ ๊ณผ์ œ 1์‹œ๊ฐ„ ํ•ด์„œ ์ œ์ถœํ•˜๊ณ  ํ•˜๊ตํ–ˆ์—ˆ๋Š”๋ฐ ์™€ ๊ณผ๊ฑฐ์˜ ๋‚˜ ๋Œ€๋‹จํ–ˆ๋„ค ๋ญ์ง€? ๋ผ๋Š” ์ƒ๊ฐ๊ณผ ํ•จ๊ป˜ ์ง€๊ธˆ์˜ ๋‚˜.. ๊ฐœ๋…์„ ์ดํ•ดํ•˜๊ณ  ์ฝ”๋“œ๋ฅผ ์งœ๋Š”๊ฑธ..? ๊ณผ๊ฑฐ์˜ ๋‚˜๋ณด๋‹ค ๋‚˜์€ ์ฝ”๋“œ๋ฅผ ์งฐ๋Š”๊ฑธ..? ์ด๋ผ๋Š” ์ƒ๊ฐ๋„ ๋“ค์—ˆ๋‹ค. ํŠนํžˆ ๊ทธ๋ƒฅ ๋ฉ”์ธ ํ•จ์ˆ˜์— ์šฐ๋‹ค๋‹ฅ ์ผ๋˜ ์ฝ”๋“œ๋ฅผ ํ•จ์ˆ˜ ๋‹จ์œ„๋กœ ๋งŒ๋“ค๋ ค๊ณ  ๋…ธ๋ ฅํ–ˆ๋‹ค.

๋งฅ๋ถ์œผ๋กœ C ๋Œ๋ฆฌ๋Š”๊ฑฐ ๋ณดํ†ต VSCode ์“ด๋‹ค๊ณ  ํ•˜๋Š”๋ฐ ์ˆœ์ • ์„ ํ˜ธ์ž๋‹ˆ๊นŒ Xcode๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค. ์œˆ๋„์šฐ์—์„œ Visual Studio ์“ธ ๋•Œ ์ฒ˜๋Ÿผ ์ฝ˜์†” ๋‚ด๋ ค๊ฐ€๋Š”๊ฑฐ ์„ค์ •ํ•˜๊ณ  ๊ทธ๋Ÿฐ๊ฑด ์•ˆํ•ด๋„ ๋˜์„œ ํŽธํ–ˆ๋Š”๋ฐ, ํ”„๋ก ํŠธ์—”๋“œ ๊ณผ์ • ๋“ฃ๋Š” ํ•œ๋‹ฌ๋ฐ˜๋™์•ˆ VSC ๋‹จ์ถ•ํ‚ค๋“ค์— ๋„ˆ๋ฌด ์ต์ˆ™ํ•ด์ง„ ๊ฒƒ ๊ฐ™๋‹ค.. Xcode๋Š” ์•ˆ๋˜๋Š”๊ฑธ๊นŒ..? ์ด์ œ 1์›”๋ถ€ํ„ฐ Xcode์™€ ์‚ฌ๋ž‘ํ•ด์•ผํ•˜๋Š”๋ฐ..?

์ž๋ฃŒ๊ตฌ์กฐ ๋ณต์Šต / ์‹ค์Šต๊ณผ์ œ3_๋ณต์Šต.c, ์‹ค์Šต๊ณผ์ œ4_๋ณต์Šต.c


2. ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ๋ฅผ 3๊ฐœ ํ’€์—ˆ๋‹ค.

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

  • ์˜คํ”ˆ์ฑ„ํŒ…๋ฐฉ : ๊ทธ ์‚ฌ์ด์— ๋”•์…”๋„ˆ๋ฆฌ๋ฅผ ๋” ์ž˜ ์“ฐ๊ฒŒ ๋œ ๊ฒƒ ๊ฐ™๋‹ค. ๊ทธ๋ฆฌ๊ณ .. ์ •๊ทœํ‘œํ˜„์‹์œผ๋กœ ์ ‘๊ทผํ•˜๋ คํ–ˆ์ง€๋งŒ split ์ด ์žˆ๋‹ค๋Š” ๊ฒƒ๋„ ์ƒˆ๊ฒจ๋‘์ž..
  • ์‹คํŒจ์œจ : ํ‘ผ ์ง€ ์˜ค๋ž˜๋œ๊ฑด ์•„๋‹Œ๋ฐ swift๋กœ ํ’€๋‹ค๊ฐ€.... ๋”•์…”๋„ˆ๋ฆฌ ์ •๋ ฌ ๋ง˜๋Œ€๋กœ ์•ˆ๋ผ์„œ ๋•Œ๋ ค์น˜๊ณ  ํŒŒ์ด์ฌ์œผ๋กœ ์ข€ ๋” ๋‚˜์€ ๋ฐฉ๋ฒ•์œผ๋กœ ํ’€์–ด๋ณด์ž๋Š” ์ƒ๊ฐ์œผ๋กœ ํ’€์—ˆ๋‹ค. ๊ทผ๋ฐ ๊ธฐ๋ณธ ์‚ฌ๊ณ ์˜ ํ‹€์€ ๊ฐ™์•˜๊ณ , ๋””ํ…Œ์ผ๋งŒ ์กฐ๊ธˆ ๋‹ฌ๋ผ์กŒ๋Š”๋ฐ sort์—์„œ ๋„ˆ๋ฌด ๋‹ค๋ฅธ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์™€์„œ... ๋†€๋ž๋‹ค. dict = sorted(dict, lambda x: x[1], reverse=True) ์ƒˆ๊ฒจ๋‘์ž.
  • ๋ฌธ์ž์—ด ์••์ถ• : ๋ถ„๋ช…... ๋กœ์ง ๋„ˆ๋ฌด ์™„๋ฒฝํ•˜๊ฒŒ ์ง  ๊ฒƒ ๊ฐ™์€๋ฐ... ์˜ˆ์™ธ๊ฐ€ ์ž๊พธ ์ƒ๊ฒจ... ์•Œ๊ณ ๋ณด๋‹ˆ ํ•œ ์ž๋ฆฌ ์ˆ˜๋งŒ ๊ณ ๋ คํ•˜๊ณ  ํ•œ ์ž๋ฆฌ ์ˆ˜ ์ดˆ๊ณผ๋ฅผ ๊ณ ๋ ค๋ฅผ ๋ชปํ•œ ๊ฒƒ์ด์—ˆ๋‹ค..... ์งˆ๋ฌธ๊ธ€๋“ค ๋‘˜๋Ÿฌ๋ณด๋‹ค๊ฐ€ ๋ฐœ๊ฒฌํ•˜๊ณ  ๋„ˆ๋ฌด ๊ธฐ๋ปค๋‹ค.

3. ์ •๊ทœํ‘œํ˜„์‹์„ ๋ฐฐ์› ๋‹ค.

์‚ฌ์‹ค.. ์ •๊ทœํ‘œํ˜„์‹ ์ž์ฒด๋Š” ์Œ! ๊ทธ๋ ‡๊ตฌ๋‚˜ ํ•˜๊ณ  ์•Œ๊ฒ ๋Š”๋ฐ, ๋ชจ๋“ˆ ํ•จ์ˆ˜ ์“ฐ๋Š”๊ฒŒ ์ต์ˆ™ํ•˜์ง€ ์•Š์€ ๊ฒƒ ๊ฐ™๋‹ค. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ์ข€ ๋” ๊ฐ„๋‹จํ•œ? ๋Š๋‚Œ์ธ๋ฐ, ํŒŒ์ด์ฌ๋งŒ ํ•ด๋„ re ๋ชจ๋“ˆ ๋ถˆ๋Ÿฌ์™€์•ผํ•˜๊ณ .. ์Šค์œ„ํ”„ํŠธ๋Š” ๊ณต์‹ ๋ฌธ์„œ ์ฝ์–ด๋ด์•ผํ•˜๋Š”๋ฐ... ๋”ฑ ๋ณด๊ธฐ์—๋„ ํŒŒ์ด์ฌ๋ณด๋‹ค ๋ณต์žกํ•ด๋ณด์ธ๋‹ค.


4. ๋‚ด์ผ๋ถ€ํ„ฐ ํ”„๋กœ์ ํŠธ์™€ ๋…ธ๋“œ..

ํŒŒ์ดํŒ…!

profile
0๋…„์ฐจ iOS ๊ฐœ๋ฐœ์ž์ž…๋‹ˆ๋‹ค.

0๊ฐœ์˜ ๋Œ“๊ธ€