Hamutaro - Hamtaro 4

Java 22

[JPA] JPA ์—ฐ๊ด€๊ด€๊ณ„ ๋งคํ•‘ 1 - 1:N, N:1, N:N

JPA ์—ฐ๊ด€๊ด€๊ณ„ ๋งคํ•‘JPA๋กœ ์—”ํ‹ฐํ‹ฐ๋ฅผ ์„ค๊ณ„ํ•  ๋•Œ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๋ถ€๋ถ„์ด ์—ฐ๊ด€๊ด€๊ณ„ ๋งคํ•‘์ด๋‹ค.RDB๋Š” ํ…Œ์ด๋ธ”๊ณผ FK๋กœ ๊ด€๊ณ„๋ฅผ ๋งบ๊ณ , JPA๋Š” ์ด๋ฅผ ๊ฐ์ฒด ๊ทธ๋ž˜ํ”„ ํ˜•ํƒœ๋กœ ํ‘œํ˜„ํ•œ๋‹ค. 1:N (One-To-Many)ํ•˜๋‚˜ -> ์—ฌ๋Ÿฌ ๊ฐœ ๊ด€๊ณ„์˜ˆ์‹œํšŒ์› 1๋ช… -> ์ฃผ๋ฌธ ์—ฌ๋Ÿฌ ๊ฐœ๊ฒŒ์‹œ๊ธ€ 1๊ฐœ -> ๋Œ“๊ธ€ ์—ฌ๋Ÿฌ ๊ฐœํŠน์ง•FK๋Š” ํ•ญ์ƒ N(๋‹ค) ์ชฝ์— ์กด์žฌ์‹ค์ œ๋กœ ๊ด€๊ณ„๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ์ชฝ์€ ๋Œ€๋ถ€๋ถ„ N์ชฝ1์ชฝ์—์„œ 1:N ๋‹จ๋ฐฉํ–ฅ ๋งคํ•‘์€ ๊ถŒ์žฅํ•˜์ง€ ์•Š์Œ๋งคํ•‘ ์˜ˆ์‹œ (์–‘๋ฐฉํ–ฅ)N:1 + 1:N ์–‘๋ฐฉํ–ฅ ์กฐํ•ฉ@Entityclass Member { @OneToMany(mappedBy = "member") private List orders = new ArrayList();}@Entityclass Order { @ManyToOne @JoinColu..

Backend/Java 2025.11.12

[LV2/JAVA] ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜

https://school.programmers.co.kr/learn/courses/30/lessons/12945 ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.programmers.co.kr  1. ์žฌ๊ท€ํ•จ์ˆ˜(recursive)๋กœ ํ’€๋ฉด ์ž…๋ ฅ๊ฐ’์ด ํด ๊ฒฝ์šฐ ๋ฉ”๋ชจ๋ฆฌ์ฐจ์ง€๋ฅผ ๋งŽ์ด ํ•˜๊ณ  ์‹œ๊ฐ„๋ณต์žก๋„๊ฐ€ ์ฆ๊ฐ€ํ•œ๋‹ค.2. ์ค‘๋ณต์—ฐ์‚ฐ์„ ์—†์• ๋Š” dynamic programming์„ ํ•ด์•ผํ•œ๋‹ค.3. ์ฒซ๋ฒˆ์งธ์™€ ๋‘๋ฒˆ์งธ ๊ฒฝ์šฐ๋Š” ๋ฏธ๋ฆฌ ๊ฐ’์„ ์ดˆ๊ธฐํ™”ํ•˜๊ณ  ์‹œ์ž‘ํ•œ๋‹ค.4. ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด์„œ ๊ฐ ์—ฐ์‚ฐ์— 1234567์˜ ๋‚˜๋จธ์ง€ ์—ฐ์‚ฐ์„ ํ•ด์•ผํ•œ๋‹ค. ๋‚ด ํ’€์ดclass Solution { public int solution(i..

[LV2/JAVA] ์ตœ์†Ÿ๊ฐ’ ๋งŒ๋“ค๊ธฐ

https://school.programmers.co.kr/learn/courses/30/lessons/12941 ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.programmers.co.kr   1. ์ตœ์†Ÿ๊ฐ’์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ๋ชฉ์ ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋‘ ๋ฐฐ์—ด ์š”์†Œ์˜ ๊ณฑ์˜ ํ•ฉ์ด ๊ฐ€์žฅ ์ž‘๊ฒŒ ๋‚˜์˜ฌ๋งŒํ•œ ๊ฒฝ์šฐ๋ฅผ ์ƒ๊ฐํ•ด๋ด์•ผํ•œ๋‹ค.2. ๋ฐฐ์—ด A๋ฅผ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ, ๋ฐฐ์—ด B๋ฅผ ๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌํ•ด์„œ ๊ฐ๊ฐ ๊ณฑํ•˜๋ฉด ๊ฐ€์žฅ ์ž‘์€ ๊ฐ’์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.3. ์ฒ˜์Œ์—๋Š” ๋ฐฐ์—ด B๋ฅผ reverseOrder() ํ•˜๋ ค๊ณ  ํ–ˆ์ง€๋งŒ no suitable method found for sort ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•จ.4. Integer ๋ฐฐ์—ด์ด๋ฉด Arrays.s..

[LV1/JAVA] ํ–‰๋ ฌ์˜ ๋ง์…ˆ

https://school.programmers.co.kr/learn/courses/30/lessons/12950 ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.programmers.co.kr  1. ์˜ˆ์ „์— ํ•™๊ต์—์„œ C์–ธ์–ด ๋ฐฐ์šธ ๋•Œ ์ดํ›„๋กœ ์˜ค๋žœ๋งŒ์— ๋ณด๋Š” 2์ฐจ์› ๋ฐฐ์—ด... ์‹ค๋ฌด์—์„œ๋Š” ๊ฑฐ์˜ ์“ธ ์ผ์ด ์—†์—ˆ๋‹ค.2. ํ—ท๊ฐˆ๋ ค์„œ ๋ฐฐ์—ด ์š”์†Œ์— ๋Œ€ํ•œ ๊ทธ๋ฆผ์„ ๊ทธ๋ฆฌ๋ฉฐ ํ’€์—ˆ๋‹ค. ๋‚˜์˜ ํ’€์ดclass Solution { public int[][] solution(int[][] arr1, int[][] arr2) { int[][] answer = new int[arr1.length][arr1[0]...

[JAVA] ๋ฐฐ์—ด ์ •๋ ฌ ๋ฉ”์„œ๋“œ Arrays.sort

https://codegym.cc/ko/groups/posts/ko.1107.java--- Java์—์„œ ๋ฐฐ์—ด์„ ์ •๋ ฌํ•˜๋Š” ๋ฐฉ๋ฒ•์ •๋ ฌ์€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์ด๊ณ  ํ•„์š”ํ•œ ์ž‘์—… ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. ํŠน์ • ์ˆœ์„œ๋กœ ์ผ๋ถ€ ์š”์†Œ ์ง‘ํ•ฉ์˜ ์ˆœ์„œ๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์ด ๋ฌธ์„œ๋Š” Java์—์„œ ๋ฐฐ์—ด์„ ์ •๋ ฌํ•˜๋Š” ํ‘œ์ค€ ๋ฐฉ๋ฒ•์— ๊ด€ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œcodegym.cc ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ๋ฌธ์ œ๋ฅผ ํ’€๋‹ค๋ณด๋ฉด ๋ฐฐ์—ด์„ ์ •๋ ฌํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค.์ด๋Ÿด ๋•Œ Arrays.sort ์— ๋Œ€ํ•ด ์•Œ๊ณ  ์žˆ์œผ๋ฉด ๊ฐ„๋‹จํ•˜๊ฒŒ ๋ฐฐ์—ด์„ ์ •๋ ฌํ•  ์ˆ˜ ์žˆ๋‹ค. Arrays.sort ์ž๋ฐ”์—์„œ ๋ฐฐ์—ด์„ ์ •๋ ฌํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๋ฉ”์„œ๋“œ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ ํƒ€์ž…์˜ ๋ฐฐ์—ด์„ ์ •๋ ฌํ•  ์ˆ˜ ์žˆ์Œ์‚ฌ์šฉํ•˜๋ ค๋ฉด 'java.util.Arrays' ํด๋ž˜์Šค๋ฅผ import ํ•ด์•ผ ํ•จ1. ๊ธฐ๋ณธํ˜• ๋ฐฐ์—ด ์ •๋ ฌ์ •์ˆ˜, ์‹ค์ˆ˜, ๋ฌธ์ž ๋“ฑ ๊ธฐ๋ณธ ๋ฐ์ด..

Backend/Java 2024.08.29

[LV1/JAVA] ์ฝœ๋ผ์ธ  ์ถ”์ธก

https://school.programmers.co.kr/learn/courses/30/lessons/12943 ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.programmers.co.kr  1. while ๋ฌธ์„ ์‚ฌ์šฉํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ œํ•œ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋ฉด break ๋ฌธ์œผ๋กœ ๋ฐ˜๋ณต๋ฌธ์„ ๋น ์ ธ๋‚˜๊ฐ€์•ผ ํ•œ๋‹ค2. ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ ๋ฐœ์ƒ์„ ๋ฐฉ์ง€ํ•ด์„œ ์• ์ดˆ์— num์˜ ์ž๋ฃŒํ˜•์„ longํ˜•์œผ๋กœ ๋ฐ”๊พธ๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ๋‹ค ๋‚ด ํ’€์ดclass Solution { public int solution(int num) { int answer = 0; while(num!=1){ ..

[Java] Math ํด๋ž˜์Šค : Math.pow(), Math.sqrt()

Math ํด๋ž˜์Šค๋ž€? ์ˆ˜ํ•™์  ์—ฐ์‚ฐ์„ ์œ„ํ•œ ๋‹ค์–‘ํ•œ ์ •์  ๋ฉ”์†Œ๋“œ๋ฅผ ์ œ๊ณตํ•˜๋Š” ํด๋ž˜์Šคimport๋ฌธ ์—†์ด๋„ ๋ฐ”๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์—†๋„๋ก ์„ค๊ณ„๋˜์–ด ์žˆ์œผ๋ฉฐ, ๋ชจ๋“  ๋ฉ”์†Œ๋“œ๋Š” static์œผ๋กœ ์ •์˜๋˜์–ด ์žˆ์–ด์„œ ํด๋ž˜์Šค ์ด๋ฆ„์œผ๋กœ ๋ฐ”๋กœ ํ˜ธ์ถœ ๊ฐ€๋Šฅ Math.pow() ๊ฑฐ๋“ญ์ œ๊ณฑ ๊ณ„์‚ฐ๋ฐ˜ํ™˜ํƒ€์ž…์ด double์ด๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค๋ฅธ ํƒ€์ž…์œผ๋กœ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๋ช…์‹œ์  ํ˜•๋ณ€ํ™˜ ํ•„์š”public static double pow(double a, double b) public class MathPowExample { public static void main(String[] args) { double result1 = Math.pow(2, 3); // ๊ฒฐ๊ณผ: 8.0 System.out.println("2์˜ 3์ œ๊ณฑ: " ..

Backend/Java 2024.08.22

[Bronze III/JAVA] 10818 ์ตœ์†Œ, ์ตœ๋Œ€

https://www.acmicpc.net/problem/10818   1. ์ฑ„์ ์€ ํ†ต๊ณผํ–ˆ์ง€๋งŒ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ต‰์žฅํžˆ ๋งŽ์ด ๋‚ญ๋น„ํ•˜๋Š” ์ฝ”๋“œ์˜€๋‹ค2. Arrays.sort()๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ”๋ชจ๋ฆฌ ๋‚ญ๋น„๋„ ์ค„์ด๊ณ  ๋” ๊ฐ„๊ฒฐํ•œ ์ฝ”๋“œ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค3. Arrays๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด import ํ•ด์ฃผ๋Š” ๊ฒƒ๋„ ์žŠ์ง€๋ง์ž  ๋‚ด ํ’€์ดimport java.util.*;class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int[] arr = new int[n]; int max = -1000000; int min = 1000000; ..

Algorithm/BOJ 2024.08.19

[Java] ๋ฌธ์ž์—ด ๋‹ค๋ฃจ๊ธฐ

indexOf ํŠน์ • ๋ฌธ์ž ๋˜๋Š” ๋ฌธ์ž์—ด์ด ์ฒ˜์Œ์œผ๋กœ ๋‚˜ํƒ€๋‚˜๋Š” index๋ฅผ ๋ฐ˜ํ™˜, ์ฐพ๋Š” ๊ฐ’์ด ์—†์œผ๋ฉด -1 ๋ฐ˜ํ™˜ํ•จString str = "Hello, World!";int index = str.indexOf("World"); // 7int charIndex = str.indexOf('o'); // 4 charAt ๋ฌธ์ž์—ด์˜ ํŠน์ • ์ธ๋ฑ์Šค์— ์œ„์น˜ํ•œ ๋ฌธ์ž๋ฅผ ๋ฐ˜ํ™˜ํ•จString str = "Hello";char c = str.charAt(1); // 'e' substring ๋ฌธ์ž์—ด์˜ ์ผ๋ถ€๋ฅผ ์ถ”์ถœํ•˜์—ฌ ๋ฐ˜ํ™˜ํ•จ์‹œ์ž‘ index๋Š” ํฌํ•จ, ์ข…๋ฃŒ index๋Š” ํฌํ•จ๋˜์ง€ ์•Š์ŒString str = "Hello, World!";String sub = str.substring(7); // "World!"String sub2 = str..

Backend/Java 2024.08.13

[JAVA] StringBuilder ์ฃผ์š” ๋ฉ”์†Œ๋“œ

StringBuilder๋ž€? Java์—์„œ ๋ฌธ์ž์—ด์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋Š” ํด๋ž˜์Šค StringBuilder์˜ ์ฃผ์š” ๋ฉ”์†Œ๋“œ append()๋ฌธ์ž์—ด, ๋ฌธ์ž, ์ˆซ์ž, boolean ๋“ฑ ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ StringBuilder ๊ฐ์ฒด์˜ ๋์— ์ถ”๊ฐ€ StringBuilder sb = new StringBuilder("Hello");sb.append(" World");System.out.println(sb.toString()); // ์ถœ๋ ฅ: "Hello World"  insert()์ง€์ •๋œ ์œ„์น˜์— ๋ฌธ์ž์—ด ๋˜๋Š” ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ์‚ฝ์ž… StringBuilder sb = new StringBuilder("Hello");sb.insert(5, " World");System.out.println(sb.toString()); // ์ถœ..

Backend/Java 2024.07.24