• ABOUT
  • POSTS
  • GUESTBOOK

ยฉ 2025 BlueCool12 All rights reserved.

2025.08.27Tips

๐Ÿ”ฃ ๋ฉ”ํƒ€๋ฌธ์ž ์ดํ•ด๋กœ ์‹œ์ž‘ํ•˜๋Š” ์ •๊ทœํ‘œํ˜„์‹

๊ฐœ๋ฐœ์„ ํ•˜๋‹ค ๋ณด๋ฉด ํŠน์ • ํ…์ŠคํŠธ๋งŒ ๊ณจ๋ผ๋‚ด๊ฑฐ๋‚˜ ๊ตฌ๋ถ„ํ•ด์•ผ ํ•˜๋Š” ์ˆœ๊ฐ„์ด ์ฐพ์•„์˜จ๋‹ค. ์ด๋•Œ ๊ฐ€์žฅ ๋น ๋ฅด๊ณ  ๊ฐ€๋ฒผ์šฐ๋ฉฐ ์–ด๋””์„œ๋‚˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด ์ •๊ทœํ‘œํ˜„์‹(Regular Expression, regex)์ด๋‹ค. 

์ •๊ทœํ‘œํ˜„์‹์„ ์ž˜ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ํŒจํ„ด์˜ ์˜๋ฏธ๋ฅผ ๋ฐ”๊พธ๋Š” ๋ฉ”ํƒ€๋ฌธ์ž์— ๋Œ€ํ•ด ์ดํ•ดํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค. ๋ฉ”ํƒ€๋ฌธ์ž๋Š” ์ผ๋ฐ˜ ๋ฌธ์ž์™€ ๋‹ฌ๋ฆฌ ํŠน๋ณ„ํ•œ ๋™์ž‘์„ ์ˆ˜ํ–‰ํ•ด ํ…์ŠคํŠธ๋ฅผ ๋” ์ •ํ™•ํ•˜๊ณ  ์งง๊ฒŒ ์ฐพ๊ณ  ๊ฒ€์ฆํ•˜๊ณ  ์น˜ํ™˜ํ•˜๊ณ  ์ถ”์ถœํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•œ๋‹ค. 
 


 

[๋ฉ”ํƒ€๋ฌธ์ž] 

์ •๊ทœ์‹์€ "ํ† ํฐ + ๊ทœ์น™"์˜ ์กฐํ•ฉ์ด๋‹ค. ๋ฌธ์ž๋ฅผ ์‹ค์ œ๋กœ ์†Œ๋น„ํ•˜๋Š” ํ† ํฐ(๋ฆฌํ„ฐ๋Ÿด, ๋ฌธ์ž ํด๋ž˜์Šค, ์ถ•์•ฝ ํด๋ž˜์Šค, ๊ทธ๋ฃน ๋“ฑ)๊ณผ ์—ฐ์‚ฐ์ž(์ˆ˜๋Ÿ‰์ž, ๋ถ„๊ธฐ) ๊ทธ๋ฆฌ๊ณ  ๋ฌธ์ž๋ฅผ ์†Œ๋น„ํ•˜์ง€ ์•Š๋Š” ์ œ๋กœํญ ์ฃผ์žฅ(์•ต์ปค, ๊ฒฝ๊ณ„, ํƒ์ƒ‰)์„ ์กฐํ•ฉํ•œ๋‹ค. 

๋ฉ”ํƒ€๋ฌธ์ž๋Š” ์ด ํ† ํฐ, ์—ฐ์‚ฐ์ž, ์ฃผ์žฅ์— ํŠน์ˆ˜ ์˜๋ฏธ๋ฅผ ๋ถ€์—ฌํ•˜๊ฑฐ๋‚˜ ์ˆ˜์ •ํ•˜๋Š” ๊ธฐํ˜ธ์˜ ์ด์นญ์ด๋‹ค. 
 

1) . - ๊ฐœํ–‰์„ ์ œ์™ธํ•œ ์ž„์˜์˜ ๊ธ€์ž 1๊ฐœ 

. (dot)์€ ์ค„๋ฐ”๊ฟˆ ๋ฌธ์ž๋ฅผ ์ œ์™ธํ•˜๊ณ  ์–ด๋–ค ๊ธ€์ž๋“  1๊ฐœ๋ฅผ ์˜๋ฏธํ•œ๋‹ค. 

a.b โ†’ โ€œacbโ€, โ€œa bโ€, โ€œaํ•œbโ€, โ€œa_bโ€ ๋“ฑ์ด ํฌํ•จ๋œ๋‹ค. 

2) [ ] - ๋ฌธ์ž ํด๋ž˜์Šค (ํ›„๋ณด ์ค‘ 1๊ธ€์ž)

[โ€ฆ] ์•ˆ์— ํ—ˆ์šฉํ•  ๋ฌธ์ž๋“ค์˜ ์ง‘ํ•ฉ์„ ์ ๊ณ  ๊ฐ ๊ธ€์ž๋ฅผ ๋งค์นญํ•œ๋‹ค. 

[abc] โ†’ a ๋˜๋Š” b ๋˜๋Š” c
[0-9] โ†’ 0~9

[^โ€ฆ] ์ฒ˜๋Ÿผ ๋งจ ์•ž์— ^๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ถ€์ •์„ ์˜๋ฏธํ•œ๋‹ค.

[^0-9] โ†’ ์ˆซ์ž๊ฐ€ ์•„๋‹Œ 1๊ธ€์ž 

3) - - ํ•˜์ดํ”ˆ(๋ฒ”์œ„)

๋ฌธ์ž ํด๋ž˜์Šค [โ€ฆ] ์•ˆ์—์„œ ๋ฒ”์œ„๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

[A-Z] โ†’ A๋ถ€ํ„ฐ Z๊นŒ์ง€
[0-9] โ†’ ์ˆซ์ž 0~9

ํด๋ž˜์Šค ์•ˆ์—์„œ ๋งจ ์•ž/๋’ค์— ๋‘๋Š” ๊ฒฝ์šฐ ๋ฆฌํ„ฐ๋Ÿด๋กœ ์ทจ๊ธ‰๋˜๊ธฐ ๋•Œ๋ฌธ์— ์ฃผ์˜

4) | - ๋˜๋Š”/๋ถ„๊ธฐ

a|b ๋Š” a ๋˜๋Š” b ๋ฅผ ๋œปํ•œ๋‹ค. ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๊ฐ€์žฅ ๋‚ฎ๊ธฐ ๋•Œ๋ฌธ์— ๊ด„ํ˜ธ๋กœ ๋ฌถ์ง€ ์•Š์œผ๋ฉด ์ขŒ์šฐ ์ „์ฒด๋ฅผ ๋‚˜๋ˆˆ๋‹ค. 

ab|cd = (ab)|(cd)
a|bc = (a)|(bc) 

ํ‰๊ฐ€ ์ˆœ์„œ๋Š” ์™ผ์ชฝ์—์„œ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์ง„ํ–‰๋œ๋‹ค. ํ˜„์žฌ ์‹œ์ž‘ ์œ„์น˜์—์„œ ์™ผ์ชฝ ๋Œ€์•ˆ๋ถ€ํ„ฐ ์‹œ๋„ํ•˜๊ณ  ๊ทธ ๋Œ€์•ˆ์ด ์ „์ฒด ํŒจํ„ด์„ ๋งŒ์กฑํ•˜๋ฉด ๊ฑฐ๊ธฐ์„œ ํ™•์ •๋œ๋‹ค. 

์ž…๋ ฅ: caterer
ํŒจํ„ด: (cat|cater)er
๋™์ž‘: cat๋Œ€์•ˆ์„ ๋จผ์ € ์‚ฌ์šฉํ•˜์—ฌ cat + er = cater๋กœ ์ด๋ฏธ ํŒจํ„ด์ด ์„ฑ๊ณตํ•˜๋ฉด ๋” ๊ธด cater ๋Œ€์•ˆ์€ ์‹œ๋„ํ•˜์ง€ ์•Š๊ณ  ๋๋‚œ๋‹ค. 

๋”ฐ๋ผ์„œ ๊ฒน์น˜๋Š” ๋Œ€์•ˆ์ด ์žˆ๋‹ค๋ฉด ๊ธด ๊ฒƒ ํ˜น์€ ๊ตฌ์ฒด์ ์ธ ๊ฒƒ์„ ์•ž์— ๋‘๋Š” ๊ฒƒ์ด ์ข‹๋‹ค. 

5) \ - ์ด์Šค์ผ€์ดํ”„ & ์•ฝ์–ด ํด๋ž˜์Šค

\ ๋Š” ๋‘ ๊ฐ€์ง€ ์˜๋ฏธ๋กœ ์‚ฌ์šฉ๋˜๋Š”๋ฐ ์ฒซ ๋ฒˆ์งธ๋Š” ๋ฉ”ํƒ€๋ฌธ์ž๋ฅผ ๋ฌธ์ž ์ž์ฒด(๋ฆฌํ„ฐ๋Ÿด)๋กœ ์‚ฌ์šฉํ•ด์•ผ ํ•  ๋•Œ ์ด์Šค์ผ€์ดํ”„ ํ•œ๋‹ค.

pyomin\.com โ†’ ์‹ค์ œ ์ (.)
file\(name\)\.txt

๋‘ ๋ฒˆ์งธ๋Š” ์•ฝ์–ด ํด๋ž˜์Šค(์ž์ฃผ ์“ฐ๋Š” ์ง‘ํ•ฉ)๋ฅผ ํ‘œํ˜„ํ•  ๋•Œ ์‚ฌ์šฉ๋œ๋‹ค.

\d โ†’ ์ˆซ์ž [0-9]
\w โ†’ ๋‹จ์–ด๋ฌธ์ž [A-Za-z0-9_]
\s โ†’ ๊ณต๋ฐฑ๋ฅ˜(์ŠคํŽ˜์ด์Šค, ํƒญ \t, ๊ฐœํ–‰ \n ๋“ฑ)
\b โ†’ ๋‹จ์–ด ๊ฒฝ๊ณ„(์ œ๋กœํญ)
\p โ†’ ์œ ๋‹ˆ์ฝ”๋“œ ์†์„ฑ ์ด์Šค์ผ€์ดํ”„ 

๋Œ€๋ฌธ์ž๋Š” ๋ฐ˜๋Œ€ ์ง‘ํ•ฉ์„ ์˜๋ฏธํ•˜๋ฉฐ(\D, \W, \S) \B๋Š” ๊ฒฝ๊ณ„์˜ ๋ถ€์ •์„ ์˜๋ฏธํ•œ๋‹ค. 

\s๋ฅผ ์ œ์™ธํ•œ ๋‚˜๋จธ์ง€๋Š” ASCII ํ•œ์ •์ด๊ธฐ ๋•Œ๋ฌธ์— ํ•œ๊ธ€/์ „๊ฐ ์ˆซ์ž ๋“ฑ์€ ํฌํ•จ๋˜์ง€ ์•Š๋Š”๋‹ค. 

6) {m,n} - ์ˆ˜๋Ÿ‰์ž (๋ฐ˜๋ณต ๊ฐœ์ˆ˜)

๋ฐ”๋กœ ์•ž ํ† ํฐ์„ m~nํšŒ ๋ฐ˜๋ณตํ•œ๋‹ค. 

\d{3} โ†’ ์ˆซ์ž ์ •ํ™•ํžˆ 3๊ฐœ
\d{3,} โ†’ ์ˆซ์ž 3๊ฐœ ์ด์ƒ
\d{2,4} โ†’ ์ˆซ์ž 2~4๊ฐœ

์ž์ฃผ ์“ฐ์ด๋Š” ์ˆ˜๋Ÿ‰์ž๋Š” ์ถ•์•ฝํ˜•์ด ์กด์žฌํ•œ๋‹ค. 
{0,1} โ†’ ?
{0,}   โ†’ *
{1,}   โ†’ +

์ˆ˜๋Ÿ‰์ž๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ํƒ์š•(greedy)์ด๋‹ค. ๊ฐ€๋Šฅํ•œ ๋งŽ์ด ์†Œ๋น„ํ•˜๋ ค ํ•˜์ง€๋งŒ ์ „์ฒด ์ •๊ทœ์‹์ด ๋งค์นญ๋˜๋„๋ก ํ•„์š”ํ•œ ๋งŒํผ์€ ๋‹ค์‹œ ๋‚ด์–ด์ค€๋‹ค. ํ•˜์ง€๋งŒ ์ˆ˜๋Ÿ‰์ž ๋’ค์— ?๋ฅผ ๋ถ™์ด๋ฉด ๊ฒŒ์œผ๋ฆ„(lazy)์ด ๋œ๋‹ค. ๊ฐ€๋Šฅํ•œ ์ ๊ฒŒ ์†Œ๋น„ํ•˜๋˜ ๋งค์นญ์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•˜๋ฉด ์ ์  ๋” ๋จน๋Š”๋‹ค. 

๋Œ€๋ถ€๋ถ„์˜ ์—”์ง„์€ ์ขŒ์ธก๋ถ€ํ„ฐ ๊ฐ€์žฅ ์ด๋ฅธ ์‹œ์ž‘ ์œ„์น˜๋ฅผ ๋จผ์ € ๊ณ ๋ฅด๊ณ  ๊ทธ ์„ ํƒ ์•ˆ์—์„œ ํƒ์š•/๊ฒŒ์œผ๋ฆ„ ๊ทœ์น™๋Œ€๋กœ ์†Œ๋น„๋Ÿ‰์„ ์กฐ์ ˆํ•œ๋‹ค. 

์˜ˆ๋ฅผ ๋“ค์–ด a1234b๋ผ๋Š” ๋ฌธ์ž์—ด์ด ์žˆ์„ ๋•Œ

ํŒจํ„ด1: /a\d{2,4}b/ (ํƒ์š•)

a ๋งค์นญ โ†’ \d{2,4} ๊ฐ€์žฅ ๋งŽ์ด(4๊ฐœ) ๋จน์–ด ๋ณด๊ธฐ โ†’ 1234 โ†’ ๋‚จ์€ b๊ฒ€์‚ฌ โ†’ ์กด์žฌ โ†’ ์ „์ฒด ๋งค์นญ ์„ฑ๊ณต โ†’ ๊ฒฐ๊ณผ: a1234b

ํŒจํ„ด2: /a\d{2,4}?b/ (๊ฒŒ์œผ๋ฆ„)
a ๋งค์นญ โ†’ \d{2,4} ์ตœ์†Œ(2๊ฐœ) ๋จน์–ด ๋ณด๊ธฐ โ†’ 12 โ†’ b ๊ฒ€์‚ฌ (๋‹ค์Œ ๋ฌธ์ž๊ฐ€ 3์ด๋ผ ์‹คํŒจ) โ†’ ๋ฐฑํŠธ๋ž˜ํ‚น์œผ๋กœ ์ˆซ์ž ํ•˜๋‚˜ ๋”(3) ๋จน์Œ โ†’ b ๊ฒ€์‚ฌ (๋‹ค์Œ ๋ฌธ์ž๊ฐ€ 4๋ผ์„œ ์‹คํŒจ) โ†’ ์ˆซ์ž ํ•˜๋‚˜ ๋”(4) ๋จน์Œ โ†’ b ๊ฒ€์‚ฌ โ†’ ์„ฑ๊ณต โ†’ ๊ฒฐ๊ณผ: a1234b 

์ •๋ฆฌํ•˜๋ฉด ํƒ์š•์€ ๋งŽ์ด โ†’ ํ•„์š”ํ•˜๋ฉด ์ค„์ด๊ธฐ, ๊ฒŒ์œผ๋ฆ„์€ ์ ๊ฒŒ โ†’ ํ•„์š”ํ•˜๋ฉด ๋Š˜๋ฆฌ๊ธฐ๋กœ ๋ฐฑํŠธ๋ž˜ํ‚น์„ ํ†ตํ•ด ์ „์ฒด ํŒจํ„ด์ด ๋งž๋„๋ก ์†Œ๋น„๋Ÿ‰์„ ์กฐ์ ˆํ•œ๋‹ค. 

7) ^ $ - ์‹œ์ž‘/๋ ์•ต์ปค

^๋Š” ๋ฌธ์ž์—ด(๋˜๋Š” ์ค„)์˜ ์‹œ์ž‘์„ ์˜๋ฏธํ•˜๊ณ  $๋Š” ๋์„ ์˜๋ฏธํ•œ๋‹ค. 

^\d+$ โ†’ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋๊นŒ์ง€ ์ˆซ์ž๋งŒ
^Hello โ†’ โ€œHelloโ€๋กœ ์‹œ์ž‘
end$ โ†’ โ€œendโ€๋กœ ๋

๋ฉ€ํ‹ฐ๋ผ์ธ ํ”Œ๋ž˜๊ทธ m์„ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ ๊ฐ ์ค„์˜ ์‹œ์ž‘/๋๋„ ์•ต์ปค๋กœ ์ทจ๊ธ‰๋œ๋‹ค. ๋˜ํ•œ ^๋Š” ๋ฌธ์ž ํด๋ž˜์Šค ๋ฐ–์ผ ๋•Œ์—๋งŒ ์•ต์ปค๋กœ ์‚ฌ์šฉ๋œ๋‹ค. 

8) ( ) - ๊ทธ๋ฃน/์บก์ฒ˜

(โ€ฆ)๋กœ ๋ฌถ์œผ๋ฉด ํ•˜๋‚˜์˜ ํ† ํฐ์ฒ˜๋Ÿผ ์ทจ๊ธ‰๋˜์–ด ์ˆ˜๋Ÿ‰์ž๋ฅผ ๋ถ™์ผ ์ˆ˜ ์žˆ๋‹ค. 

(ab){3} โ†’ ababab
(https?):// โ†’ http:// ๋˜๋Š” https://

๋˜ํ•œ (โ€ฆ)๋กœ ๊ฐ์‹ผ ๋ถ€๋ถ„์ด ๋งค์น˜๋  ๋•Œ ์‹ค์ œ ํ…์ŠคํŠธ๋ฅผ ๊ทธ๋ฃน์— 1๋ถ€ํ„ฐ ์ˆœ์„œ๋Œ€๋กœ ์ €์žฅํ•œ๋‹ค. 

์ž…๋ ฅ: 2025-08-28
ํŒจํ„ด: (\d{4})-(\d{2})-(\d{2})
๊ทธ๋ฃน: 1 = โ€œ2025โ€, 2 = โ€œ08โ€, 3 = โ€œ28โ€

์ด๋ ‡๊ฒŒ ์ €์žฅ๋œ ๋ฌธ์ž์—ด์„ ๊ทธ๋Œ€๋กœ ๋‹ค์‹œ ์žฌ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. 

๋งŒ์•ฝ ์บก์ฒ˜๋งŒ ํ•˜๊ณ  ๊ทธ๋ฃน์„ ์žฌ์‚ฌ์šฉํ•  ์ผ์ด ์—†๋‹ค๋ฉด (?:..)์„ ์‚ฌ์šฉํ•œ๋‹ค. 

^(?:https?|ftp):// โ†’ http/https/ftp ๊ณตํ†ต ์ ‘๋‘๋ถ€ ์ฒ˜๋ฆฌ
 

์ด์ „ ๊ธ€
๐Ÿ”„ ์ž๋ฐ” Stream API ๊ฐ€์ด๋“œ - ์ƒ์„ฑ, ์—ฐ์‚ฐ, ์žฅ๋‹จ์  ์ •๋ฆฌ
๋‹ค์Œ ๊ธ€
๐Ÿž JPA N+1 ๋ฌธ์ œ - Fetch Join & EntityGraph
์žฅ์‹์šฉ ๋กœ๊ณ