๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

์ „์ฒด ๊ธ€111

[Spring] StringUtils.hasText()๋กœ ๋ฌธ์ž์—ด ์œ ํšจ์„ฑ ๊ฒ€์ฆํ•˜๊ธฐ. StringUtils.hasText()๋Š”์–ด๋–ค ๊ฒฝ์šฐ์— ์‚ฌ์šฉํ• ๊นŒ? StringUtilsStringUtils ํด๋ž˜์Šค๋Š” ์†์‰ฝ๊ฒŒ ๋ฌธ์ž์—ด์„ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๋Š” ๋‹ค์–‘ํ•œ ๋ฉ”์„œ๋“œ๋ฅผ ์ œ๊ณตํ•œ๋‹ค.isEmpty( ), hasLength( ), hasText( ), containsWhitespace( ) ๋“ฑ ๋‹ค์–‘ํ•œ ๋ฉ”์„œ๋“œ๊ฐ€ ์žˆ๋‹ค.๋ฌธ์ž์—ด์ด ๊ณต๋ฐฑ์ธ์ง€, ๋น„์–ด์žˆ๋Š”์ง€, ์†Œ๋ฌธ์ž์ธ์ง€, ๋Œ€๋ฌธ์ž์ธ์ง€, ์˜์ˆซ์ž์ธ์ง€ ๋“ฑ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๊ฒ€์‚ฌ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค. hasText( )๋ฌธ์ž์—ด์ด ์ง„์ •ํ•œ text์ธ์ง€ ํ™•์ธํ•œ๋‹ค.ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ์ง„์ •ํ•œ ๋ฌธ์ž์—ด์ธ์ง€ ํ™•์ธํ•˜๋ฉด True/False๋กœ ๋ฆฌํ„ดํ•œ๋‹ค.null ์ฒดํฌํ•˜๊ณ  ๊ธธ์ด๊ฐ€ 0์€ ์•„๋‹Œ์ง€, ๊ณต๋ฐฑ์ด ์•„๋‹Œ ๋ฌธ์ž๊ฐ€ ํฌํ•จ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•œ๋‹ค. isEmpty( )isEmpty(null) → NullPointerExceptionisE.. 2025. 9. 16.
[Python] CodeTree - ๋ฌธ์ž์—ด ํŒŒ์ด์ฌ์˜ ๋ฌธ์ž์—ด์— ๋Œ€ํ•ด์•Œ์•„๋ณด์ž! ♣ ๋ฌธ์ž์—ด ์ธ๋ฑ์‹ฑtext[์‹œ์ž‘:๋:๊ฐ„๊ฒฉ]์ด๋ฉฐ, ์˜ˆ๋กœ text[1:5]๋กœ ์ ์„ ์ˆ˜ ์žˆ๋‹ค.1๋ฒˆ์งธ ๋ฌธ์ž๋Š” ํฌํ•จ๋œ๋‹ค.5๋ฒˆ์งธ ๋ฌธ์ž์—ด์€ ํฌํ•จ๋˜์ง€ ์•Š๋Š”๋‹ค.๊ฐ„๊ฒฉ์„ ์ •ํ•˜๋ฉด ํ•ด๋‹น ๊ฐ„๊ฒฉ๋งŒํผ ๊ฑด๋„ˆ๋›ฐ๋ฉฐ ์ถ”์ถœํ•œ๋‹ค.text = "Python is fun"print(text[:5]) # ์ถœ๋ ฅ: Pythoprint(text[2:]) # ์ถœ๋ ฅ: thon is funprint(text[:]) # ์ถœ๋ ฅ: Python is fun ♣ ๋ฌธ์ž์—ด ๋Œ€์†Œ๋ฌธ์ž ๋ณ€ํ™˜upper(): ๋ฌธ์ž์—ด์˜ ๋ชจ๋“  ๋ฌธ์ž๋ฅผ ๋Œ€๋ฌธ์ž๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค.lower(): ๋ฌธ์ž์—ด์˜ ๋ชจ๋“  ๋ฌธ์ž๋ฅผ ์†Œ๋ฌธ์ž๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค.text = "Python Programming"print(text.upper()) # ์ถœ๋ ฅ: "PYTHON PROGRAMMING.. 2025. 9. 11.
[Spring][JPA] @Entity๋ž€ ๋ฌด์—‡์ผ๊นŒ? ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ €์žฅ/์กฐํšŒํ•˜๋Š” ํด๋ž˜์Šค์—@Entity๋ผ๋Š” ์–ด๋…ธํ…Œ์ด์…˜์„ ๋ถ™์—ฌ์คฌ๋‹ค.์™œ @Entity๋ฅผ ๋ถ™์—ฌ์•ผํ• ๊นŒ? @Entity@Entity๊ฐ€ ๋ถ™์€ ํด๋ž˜์Šค๋Š” JPA๊ฐ€ ๊ด€๋ฆฌํ•œ๋‹ค.๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ…Œ์ด๋ธ”๊ณผ 1:1๋กœ ๋งคํ•‘๋˜๋Š” ์˜์† ํด๋ž˜์Šค์ž„์„ ์„ ์–ธํ•˜๋Š” ์• ๋…ธํ…Œ์ด์…˜์ด๋‹ค.์ด ํด๋ž˜์Šค๋กœ ๋งŒ๋“  ๊ฐ์ฒด๋Š” ์˜์†์„ฑ ์ปจํ…์ŠคํŠธ์— ์˜ํ•ด ๊ด€๋ฆฌ๋˜๋ฉฐ, Spring Data JPA๊ฐ€ ์กฐํšŒ/์ €์žฅ/์ˆ˜์ •/์‚ญ์ œ๋ฅผ ๋‹ด๋‹นํ•œ๋‹ค.๊ธฐ๋ณธ ์ƒ์„ฑ์ž๋Š” ํ•„์ˆ˜์ด๋‹ค. (JPA๊ฐ€ ์—”ํ‹ฐํ‹ฐ ๊ฐ์ฒด ์ƒ์„ฑ ์‹œ ๊ธฐ๋ณธ ์ƒ์„ฑ์ž๋ฅผ ์‚ฌ์šฉ) final ํด๋ž˜์Šค, enum, interface, inner class ์—๋Š” ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค.์ €์žฅํ•  ํ•„๋“œ์— final ์‚ฌ์šฉ ๋ถˆ๊ฐ€ํ•˜๋‹ค. @Entity ์˜ˆ์‹œ ์ฝ”๋“œ@Entity@Getter@Setterpublic class Member { @I.. 2025. 9. 9.
[Spring] @Id์™€ @GeneratedValue์ด๋ž€? ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค์— ์ €์žฅ/์กฐํšŒ ํด๋ž˜์Šค์—์„œ@Id์™€ @GeneratedValue๋ฅผ ์„ค์ •ํ–ˆ๋‹ค.๊ณผ์—ฐ @Id์™€ @GeneratedValue๊ฐ€ ๋ญ˜๊นŒ? @Id@Id๋ฅผ ๋ถ™์—ฌ, JPA์—๊ฒŒ ํ•ด๋‹น ํ•„๋“œ๊ฐ€ ์ด ํ…Œ์ด๋ธ”์—์„œ ๊ธฐ๋ณธ ํ‚ค(Primary Key)๋ฅผ ์•Œ๋ฆฐ๋‹ค.ํ•ด๋‹น ํ•„๋“œ๋Š” ๊ฐ์ฒด์˜ ๊ณ ์œ ๋ฒˆํ˜ธ๋ฅผ ๋‹ด๋‹นํ•˜๊ฒŒ ๋œ๋‹ค.JPA๋Š” ๊ธฐ๋ณธ ํ‚ค๋ฅผ ํ†ตํ•ด ์ €์žฅ/์กฐํšŒ/์ˆ˜์ •/์‚ญ์ œํ•  ๋•Œ ์ •ํ™•ํžˆ ์–ด๋–ค ํ–‰(row)์ธ์ง€ ๊ตฌ๋ณ„ํ•œ๋‹ค. @GeneratedValue@Id ํ•„๋“œ ๊ฐ’์„ ์–ด๋–ป๊ฒŒ ์ž๋™์œผ๋กœ ๋งŒ๋“ค์ง€ JPA์—๊ฒŒ ์•Œ๋ ค์ฃผ๋Š” ์–ด๋…ธํ…Œ์ด์…˜์ด๋‹ค.๊ธฐ๋ณธํ‚ค(PK)๋ฅผ ์ง์ ‘ ์„ธํŒ…ํ•˜์ง€ ์•Š๊ณ , ํ”„๋กœ๋ฐ”์ด๋”๊ฐ€ ๋งŒ๋“ค๋„๋ก ํ•œ๋‹ค.@GeneratedValue๋ฅผ ์ง์ ‘ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  @Id ์–ดํ† ๋„ค์ด์…˜๋งŒ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด ์ง์ ‘ ํ• ๋‹นํ•ด์•ผํ•œ๋‹ค.๊ธฐ๋ณธํ‚ค(PK) ๊ฐ’์— ๋Œ€ํ•œ ์ƒ์„ฑ ์ „๋žต์„ ์ œ๊ณตํ•œ๋‹ค. Q. ํ”„๋กœ๋ฐ”์ด๋”๋ž€.. 2025. 9. 8.
[Python] F-string F-string์ด๋ญ˜๊นŒ?♣ F-string์ค‘๊ด„ํ˜ธ ์•ˆ์— ์žˆ๋Š” ๋ณ€์ˆ˜๋‚˜ ํ‘œํ˜„์‹์„ ๋„ฃ์–ด ํ•ด๋‹น ๊ฐ’์„ ์ถœ๋ ฅํ•  ์ˆ˜ ์žˆ๋‹ค.๋ฌธ์ž์—ด ๋งจ ์•ž์— f๋ฅผ ๋ถ™์—ฌ์ฃผ๊ณ , ์ค‘๊ด„ํ˜ธ ์•ˆ์— ์ง์ ‘ ๋ณ€์ˆ˜ ์ด๋ฆ„์ด๋‚˜ ์ถœ๋ ฅํ•˜๊ณ  ์‹ถ์„ ๊ฒƒ์„ ๋„ฃ๋Š”๋‹ค.๊ธฐ์กด์˜ ํฌ๋งทํŒ… ๋ฐฉ์‹๋ณด๋‹ค ๋” ๊ฐ„๊ฒฐํ•˜๊ณ  ์ฝ๊ธฐ ์‰ฌ์šด ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ฐ„๋‹จํ•œ ํ‘œํ˜„์‹๋„ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค. ♣ F-string์„ ์–ด๋–ป๊ฒŒ ์“ธ๊นŒ?print(f"์ด๋ฆ„: ํ™๊ธธ๋™, ๋‚˜์ด: 28")Name = "ํ™๊ธธ๋™"Age = 28print(f"์ด๋ฆ„: {name}, ๋‚˜์ด: {age}")f๋ฅผ ๋ถ™์ด๊ณ  " " ์•ˆ์— ์ถœ๋ ฅํ•  ๋ณ€์ˆ˜์˜ ๊ฐ’์„ { } ๋„ฃ์–ด์ค€๋‹ค. ♣ F-string์˜ ๊ฐ„๋‹จํ•œ ํ‘œํ˜„์‹print(f”1 + 1 = {1 + 1}”) ♣ F-string์˜ ์†Œ์ˆ˜์  ์ง€์ •pi = 3.1415926535…print(f”ํŒŒ์ด.. 2025. 9. 5.
[Vue.js] props์™€ emit๋ฅผ ์ด์šฉํ•ด ๋ถ€๋ชจ ์ปดํฌ๋„ŒํŠธ์™€ ์ž์‹ ์ปดํฌ๋„ŒํŠธ ์‚ฌ์ด์— ๋ฐ์ดํ„ฐ ์ „๋‹ฌํ•˜๊ธฐ. ์ฐธ๊ณ ๋กœ Vue.js์— ๋Œ€ํ•ด์„œ ์ž˜ ๋ชจ๋ฆ…๋‹ˆ๋‹ค.์•„๋ฌด๊ฑฐ๋‚˜ ๋ง‰ ํ•ด๋ณด๋Š” ์ค‘์ด๊ณ  ์˜ณ์€ ์ •๋ณด์ธ์ง€ ์ €๋„ ๋ชจ๋ฆ…๋‹ˆ๋‹ค! props์™€ emit๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ถ€๋ชจ ์ปดํฌ๋„ŒํŠธ์™€ ์ž์‹ ์ปดํฌ๋„ŒํŠธ ์‚ฌ์ด์—๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•ด๋ณด์ž. props๋ถ€๋ชจ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์ž์‹ ์ปดํฌ๋„ŒํŠธ์—๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•œ๋‹ค.๋ช…์‹œ์ ์ธ props ์„ ์–ธ์ด ํ•„์š”ํ•˜๋‹ค. defineProps์˜ ์ฝ”๋“œ ์˜ˆ์‹œ _ ๋ฌธ์ž์—ด ๋ฐฐ์—ด์„ ์‚ฌ์šฉํ•œ ์„ ์–ธ props์˜ ์ฝ”๋“œ ์˜ˆ์‹œ _ ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•œ ์„ ์–ธ(๊ถŒ์žฅ) emit$emit()๋Š” ์ž์‹ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์ด๋ฒคํŠธ๋ฅผ ๋ฐœ์ƒํ‚ค์…” ๋ถ€๋ชจ ์ปดํฌ๋„ŒํŠธ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜๋Š” ์—ญํ•  ๋ฉ”์„œ๋“œ์ด๋‹ค.์ปดํฌ๋„ŒํŠธ์—์„œ ๋ฐœ์ƒ์‹œํ‚ค๋Š” ์ปค์Šคํ…€ ์ด๋ฒคํŠธ๋ฅผ ์„ ์–ธํ•œ๋‹ค.๋ฐœ์ƒ์‹œํ‚ค๋Š” ์ด๋ฒคํŠธ๋Š” ๋‘ ๊ฐ€์ง€ ํ˜•ํƒœ๋กœ ์„ ์–ธ ๊ฐ€๋Šฅํ•˜๋‹ค.๋ฌธ์ž์—ด ๋ฐฐ์—ด์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฐ„๋‹จํ•œ ํ˜•ํƒœ๊ฐ ์†์„ฑ ํ‚ค๊ฐ€ ์ด๋ฒคํŠธ ์ด๋ฆ„์ด๊ณ  ๊ฐ’.. 2025. 9. 5.