์ ์ฒด ๊ธ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. ์ด์ 1 2 3 4 5 6 ยทยทยท 19 ๋ค์