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

Java32

[Spring][JPA] ์ž๋ฐ”์˜ ๊ฐ์ฒด ์ง€ํ–ฅ์„ ๋” ์ž˜ ์‚ด๋ฆฌ๋Š” @ManyToOne๊ณผ @OneToMany ํ•˜๋‚˜์˜ ์‚ฌ์šฉ์ž๊ฐ€์—ฌ๋Ÿฌ ๊ถŒํ•œ์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์„ ๋•Œ@ManyToOne์„ ๋ถ™์˜€๋‹ค.๊ทธ๋ ‡๋‹ค๋ฉด @ManyToOne์ด ๋ญ˜๊นŒ?? @ManyToOne๋‹ค๋Œ€์ผ ๊ด€๊ณ„ ๋งคํ•‘์ผ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์—”ํ‹ฐํ‹ฐ๊ฐ€ ํ•˜๋‚˜์˜ ์—”ํ‹ฐํ‹ฐ๋ฅผ ์ฐธ์กฐํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.์˜ˆ์‹œ) ์‚ฌ์›A, ์‚ฌ์›B, ์‚ฌ์›C๋Š” ๋ชจ๋‘ ๊ฐœ๋ฐœํŒ€ ์†Œ์†์ด๋‹ค. ์ด๋Ÿฐ ๊ฒฝ์šฐ ์—ฌ๋Ÿฌ๋ช…(Many)์˜ ์‚ฌ์›์ด ํ•˜๋‚˜(One)์˜ ๋ถ€์„œ์— ์†ํ•ด์žˆ๋‹ค๊ณ  ํ•œ๋‹ค.์™ธ๋ž˜ํ‚ค๋Š” ์ฃผ๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ค๊ณ„์ƒ Many ์ชฝ์— ์†ํ•ด์žˆ๋‹ค.JPA์—์„œ ๊ถŒ์žฅํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค. @OneToManyํ•˜๋‚˜์˜ ์—”ํ‹ฐํ‹ฐ๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์—”ํ‹ฐํ‹ฐ๋ฅผ ์ฐธ์กฐํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.์ผ๋Œ€๋‹ค ๋‹จ๋… ๋งคํ•‘๋ณด๋‹ค๋Š” ๋ณดํ†ต ManyToOne๊ณผ ํ•จ๊ป˜ ์–‘๋ฐฉํ–ฅ ์—ฐ๊ด€๊ด€๊ณ„๋ฅผ ๋งบ์„ ๋•Œ ์ฃผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค.์˜ˆ์‹œ) ๊ฐœ๋ฐœํŒ€์—๋Š” ์‚ฌ์›A, ์‚ฌ์›B, ์‚ฌ์›C๊ฐ€ ์†ํ•ด์žˆ๋‹ค. ์ด๋Ÿฐ ๊ฒฝ์šฐ ํ•˜๋‚˜(One)์˜ ๋ถ€์„œ์— .. 2026. 4. 2.
[Spring][JPA] @Column์€ ์ •์˜, ์†์„ฑ, ์˜ˆ์‹œ ์ฝ”๋“œ + int์™€ Integer๋Š” ์–ด๋–ป๊ฒŒ ๋‹ค๋ฅธ๊ฐ€? ์—”ํ‹ฐํ‹ฐ๋ฅผ ์ž‘์„ฑํ•˜๋‹ค๋ณด๋ฉด,ํ•„๋“œ์— @Column์„ ๋ถ™์ด๋Š” ์ฝ”๋“œ๋ฅผ ๋ณด๊ฒŒ ๋œ๋‹ค.๋ˆˆ์น˜๋กœ ๋Œ€์ถฉ ์–ด๋–ค ๋А๋‚Œ์ธ์ง€ ์•Œ์ง€๋งŒ๊ทธ๋ž˜๋„ ์ •ํ™•ํžˆ ์•Œ๊ณ  ๋„˜์–ด๊ฐ€๋ณด์ž. @Column๊ฐ์ฒด์˜ ํ•„๋“œ๋ฅผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ…Œ์ด๋ธ”์˜ ์ปฌ๋Ÿผ์— ์–ด๋–ป๊ฒŒ ๋งคํ•‘ํ• ์ง€ ์ •์˜ํ•˜๋Š” ์–ด๋…ธํ…Œ์ด์…˜์ด๋‹ค.์ž๋ฐ” ๋ณ€์ˆ˜๋ช…๊ณผ DB ์ปฌ๋Ÿผ๋ช…์ด ๋‹ค๋ฅผ ๋•Œ, ์ปฌ๋Ÿผ์— ์ œ์•ฝ์กฐ๊ฑด(๊ธธ์ด, NULL ์—ฌ๋ถ€ ๋“ฑ)์„ ๊ฑธ๊ณ  ์‹ถ์„ ๋•Œ ์ฃผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค. @Column์˜ ์†์„ฑname: ๋งคํ•‘ํ•  ํ…Œ์ด๋ธ”์˜ ์ปฌ๋Ÿผ ์ด๋ฆ„์„ ์ง€์ •ํ•œ๋‹ค.nullable: false๋กœ ์„ค์ •ํ•˜๋ฉด DDL ์ƒ์„ฑ ์‹œ NOT NULL ์ œ์•ฝ์กฐ๊ฑด์ด ๋ถ™๋Š”๋‹ค. unique: ํ•œ ์ปฌ๋Ÿผ์— ๊ฐ„๋‹จํžˆ ์œ ๋‹ˆํฌ ์ œ์•ฝ์กฐ๊ฑด์„ ๊ฑธ ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.length: ๋ฌธ์ž์—ด(String) ํƒ€์ž…์˜ ๊ธธ์ด๋ฅผ ์ง€์ •ํ•œ๋‹ค. (Varchar์˜ ๊ธธ์ด)insertable: false๋กœ ์„ค์ •ํ•˜๋ฉด ์—”.. 2026. 3. 28.
[Spring] ๊น€์˜ํ•œ ์Šคํ”„๋ง MVC_ ์„น์…˜5. MVC ํ”„๋ ˆ์ž„์›Œํฌ ๋งŒ๋“ค๊ธฐ ์„น์…˜ 5๋Š” ํ˜„์žฌ์˜ Spring MVC๊นŒ์ง€ ์˜ค๊ฒŒ๋œ ๊ณผ์ •์„ ์ฐจ๊ทผ์ฐจ๊ทผ ์‚ดํŽด๋ดค๋‹ค. ์•ž์„œ ๋ฐฐ์šด ์ ์—์„œ ๊ฐ€์žฅ ํฐ ๋ณ€ํ™”๋Š” ํ”„๋ก ํŠธ ์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ์š”์ฒญ๊ณผ ์‘๋‹ต์„ ์ปจํŠธ๋กค๋Ÿฌ์—์„œ ์ฒ˜๋ฆฌํ–ˆ๋˜ ๊ฒƒ๊ณผ ๋‹ฌ๋ฆฌ ํ”„๋ก ํŠธ ์ปจํŠธ๋กค๋Ÿฌ์— ์—ญํ• ์„ ์ „๊ฐ€ํ•ด ๊ฐœ๋ฐœ์ž๋Š” ์ ์  ํŽธ๋ฆฌํ•˜๊ฒŒ ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ค‘๋ณต๋˜๋Š” ์ฝ”๋“œ๋ฅผ ์ตœ๋Œ€ํ•œ ์ค„์ด๋ฉฐ ์ ์ง„์ ์ธ ๊ตฌ์กฐ์  ๋ณ€ํ™”๋ฅผ ์ฃผ์—ˆ๋‹ค. โ˜˜๏ธ ์ž˜๋ชป๋œ ์ •๋ณด๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค โœ”๏ธ V1_ ํ”„๋ก ํŠธ ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ๋„์ž…ํ•˜์ž.ํ”„๋ก ํŠธ ์ปจํŠธ๋กค๋Ÿฌ๋กœ ์š”์ฒญ์„ ๋ฐ›์•„ ์•Œ๋งž๋Š” ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ์ฐพ์•„ ํ˜ธ์ถœํ•œ๋‹ค.๋‚˜๋จธ์ง€ ์ปจํŠธ๋กค๋Ÿฌ๋Š” ์„œ๋ธ”๋ฆฟ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค. โ–บ ControllerV1.interfacepublic interface ControllerV1 { void process(HttpServletRequest r.. 2025. 7. 14.
[Java] Set<E> ์ปฌ๋ ‰์…˜ ์ธํ„ฐํŽ˜์ด์Šค, HashSet<E>, LinkedHashSet<E>, TreeSet<E> ์ฐจ์ด์  ๐Ÿ“š ์ฐธ๊ณ ํ•œ ์ฑ… - ๊ธฐ๋ณธ์ ์ธ ๊ฐœ๋…์„ ์ •๋ฆฌํ•˜๊ณ  ์ถ”๊ฐ€์ ์œผ๋กœ ๊ถ๊ธˆํ•œ ๊ฒƒ๋“ค์„ ์ •๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค - ๐Ÿฅ ๐Ÿฅ ๐Ÿฅ โœ”๏ธ Set_ 646p • Set: ๋™์ผํ•œ ํƒ€์ž…์„ ๋ฌถ์–ด ๊ด€๋ฆฌํ•˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ๋กœ ์ธ๋ฑ์Šค ์ •๋ณด๋ฅผ ํฌํ•จํ•˜๊ณ  ์žˆ์ง€ ์•Š์€, ์ง‘ํ•ฉ์˜ ๊ฐœ๋…๊ณผ ๊ฐ™์€ ์ปฌ๋ ˆ์…˜์ด๋‹ค.Set hset1 = new HashSet();hset1.add("a");hset1.add("b");hset1.add("c");System.out.println(hset1.toString());System.out.println(hset1.size());hset1.add("a");System.out.println(hset1.toString());System.out.println(hset1.size());Set๋Š” ์ธ๋ฑ์Šค ์ •๋ณด๊ฐ€ ์—†์–ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ค‘๋ณตํ•ด ์ €์žฅํ•˜.. 2025. 7. 7.
[Spring] ๊น€์˜ํ•œ ์Šคํ”„๋ง MVC_ ์„น์…˜4. ์„œ๋ธ”๋ฆฟ, JSP, MVC ํŒจํ„ด(2) ์„น์…˜ 4๋Š” ์•„์ฃผ ๊ฐ„๋‹จํ•œ ํšŒ์›๊ด€๋ฆฌ ์›น์„ ๋งŒ๋“ค์—ˆ๋‹ค. ์ฒ˜์Œ์—๋Š” ์„œ๋ธ”๋ฆฟ์œผ๋กœ ํ•ด๋ณด๊ณ  JSP, SpringMVC๋ฅผ ์ฐจ๋ก€๋กœ ์‚ดํŽด๋ดค๋‹ค. ์„œ๋ธ”๋ฆฟ๊ณผ JSP๋กœ ๋งŒ๋“  ์ฝ”๋“œ์—๋Š” ์–ด๋–ค ๋ถˆํŽธํ•œ ์ ์ด ์žˆ๋Š”์ง€, SpringMVC๋Š” ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๋Š”์ง€ ์‚ดํŽด๋ณด๋ฉฐ ์„œ๋ธ”๋ฆฟ๊ณผ JSP์˜ ๋ฌธ์ œ์ ์„ ์–ด๋–ป๊ฒŒ ๋ณด์™„ํ–ˆ๋Š”์ง€ ์‚ดํŽด๋ดค๋‹ค. โ˜˜๏ธ ์ž˜๋ชป๋œ ์ •๋ณด๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค โœ”๏ธ MVC ํŒจํ„ด - ํšŒ์›์ •๋ณด ์ €์žฅ๊ณผ ์ถœ๋ ฅ์„œ๋ธ”๋ฆฟ์„ ์ปจํŠธ๋กค๋Ÿฌ๋กœ ์‚ฌ์šฉํ•˜๊ณ , JSP๋ฅผ ๋ทฐ๋กœ ์‚ฌ์šฉํ•œ๋‹ค. โ–บ MvcMemeberFormServlet.classํšŒ์› ๋“ฑ๋ก ํผ ํด๋ž˜์Šค์ปจํŠธ๋กค๋Ÿฌ ์—ญํ• ์„ ๋‹ด๋‹นํ•œ๋‹ค. RequestDispatcher: ํด๋ผ์ด์–ธํŠธ๋กœ๋ถ€ํ„ฐ ์ตœ์ดˆ๋กœ ๋“ค์–ด์˜จ ์š”์ฒญ์„ ์›ํ•˜๋Š” ์ž์›์œผ๋กœ ์š”์ฒญ์„ ๋„˜๊ธฐ๋Š” ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•˜๊ฑฐ๋‚˜, ํŠน์ • ์ž์›์— ์ฒ˜๋ฆฌ๋ฅผ ์š”์ฒญํ•˜๊ณ  ์ฒ˜๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ ์–ป์–ด์˜ค๋Š” ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ํด.. 2025. 7. 4.
[Spring] ๊น€์˜ํ•œ ์Šคํ”„๋ง MVC_ ์„น์…˜4. ์„œ๋ธ”๋ฆฟ, JSP, MCVํŒจํ„ด(1) ์„น์…˜ 4๋Š” ์•„์ฃผ ๊ฐ„๋‹จํ•œ ํšŒ์›๊ด€๋ฆฌ ์›น์„ ๋งŒ๋“ค์—ˆ๋‹ค. ์ฒ˜์Œ์—๋Š” ์„œ๋ธ”๋ฆฟ์œผ๋กœ ํ•ด๋ณด๊ณ  JSP, SpringMVC๋ฅผ ์ฐจ๋ก€๋กœ ์‚ดํŽด๋ดค๋‹ค. ์„œ๋ธ”๋ฆฟ๊ณผ JSP๋กœ ๋งŒ๋“  ์ฝ”๋“œ์—๋Š” ์–ด๋–ค ๋ถˆํŽธํ•œ ์ ์ด ์žˆ๋Š”์ง€, SpringMVC๋Š” ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๋Š”์ง€ ์‚ดํŽด๋ณด๋ฉฐ ์„œ๋ธ”๋ฆฟ๊ณผ JSP์˜ ๋ฌธ์ œ์ ์„ ์–ด๋–ป๊ฒŒ ๋ณด์™„ํ–ˆ๋Š”์ง€ ์‚ดํŽด๋ดค๋‹ค. โ˜˜๏ธ ์ž˜๋ชป๋œ ์ •๋ณด๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค โœ”๏ธ ํšŒ์› ๊ด€๋ฆฌ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์š”๊ตฌ์‚ฌํ•ญํšŒ์› ๊ด€๋ฆฌ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด์„œ username๊ณผ age๋ฅผ ์ •๋ณด๋กœ ๊ฐ€์ง„๋‹ค.ํšŒ์› ์ €์žฅ๊ณผ ํšŒ์› ๋ชฉ๋ก์„ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๋Š” ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ ๋‹ค. โ–บ Memeber.class@Getter @Setterpublic class Member { private Long id; private String username; private in.. 2025. 7. 1.