๋ชฉ๋ก์ „์ฒด ๊ธ€ (181)

๐ŸŒฑ → ๐ŸŒณ

[Java] Collection ๊ตฌ์กฐ ์ •๋ฆฌ

1. Collection Interface Iterator ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ƒ์†ํ•œ Collection์€ ๊ฐ€์žฅ ๊ธฐ๋ณธ์ด ๋˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋กœ add(), size(), iterator() ๋ฉ”์†Œ๋“œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. Collection ์ธํ„ฐํŽ˜์ด์Šค List์™€ Set ์ธํ„ฐํŽ˜์ด์Šค์˜ ๋งŽ์€ ๊ณตํ†ต๋œ ๋ถ€๋ถ„์„ Collection ์ธํ„ฐํŽ˜์ด์Šค์—์„œ ์ •์˜ํ•˜๊ณ , ๋‘ ์ธํ„ฐํŽ˜์ด์Šค๋Š” ๊ทธ๊ฒƒ์„ ์ƒ์†๋ฐ›์Œ P.S Collections๋ž€? Collection์ธํ„ฐํŽ˜์ด์Šค์™€ ๋‹ฌ๋ฆฌ Java 1.2์ด์ƒ๋ถ€ํ„ฐ Collections๋ผ๋Š” staticํด๋ž˜์Šค๊ฐ€ ์กด์žฌํ•จ Collections ๋Š” ์ปฌ๋ ‰์…˜ ํ”„๋ ˆ์ž„์›์— ์†ํ•˜๋Š” ํด๋ž˜์Šค๋ฅผ ์ง€์›ํ•ด์ฃผ๋Š” ๋‹ค์–‘ํ•œ ๋ฉ”์†Œ๋“œ๊ฐ€ ์กด์žฌ Collection์ด๋ž€ ๋ง๋Œ€๋กœ ๋ฐ์ดํ„ฐ์˜ ๊ทธ๋ฃน ์ง‘ํ•ฉ์ฒด๋ผ๋Š” ์˜๋ฏธ๋ฅผ ๊ฐ€์ง„๋‹ค. ์ž๋ฐ”์— Collection ์ž๋ฃŒ๊ตฌ์กฐ๋Š” ํฌ๊ฒŒ Lis..

JPA ์˜์†์„ฑ ์ปจํ…์ŠคํŠธ๋ž€?

์˜์†์„ฑ ์ปจํ…์ŠคํŠธ ์ด์  1. 1์ฐจ ์บ์‹œ ์กฐํšŒ JPA๋Š” DB๋ฅผ ์ง์ ‘ ์กฐํšŒํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ 1์ฐจ ์บ์‹œ, ์ฆ‰ ์˜์†์„ฑ ์ปจํ…์ŠคํŠธ๋ฅผ ์šฐ์„ ์ ์œผ๋กœ ์กฐํšŒํ•œ๋‹ค. ๋”ฐ๋ผ์„œ DB์˜ I/O ๋ถ€๋‹ด์ด ์ ๊ฒŒ ๋ฐœ์ƒํ•˜์—ฌ ์„ฑ๋Šฅ์˜ ์ด์ ์ด ์žˆ๋‹ค๋Š” ๊ฒƒ์ด JPA์˜ ์žฅ์ ์ด๋ผ ํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ JPA๋Š” Entity์˜ PK๋ฅผ ์ด์šฉํ•˜์—ฌ ์‹๋ณ„์„ ํ•˜๊ฒŒ ๋˜๋ฉฐ, 1์ฐจ ์บ์‹œ์—๋Š” ๊ณ ์œ  ์‹๋ณ„์ž ๊ฐ’์œผ๋กœ ์—”ํ‹ฐํ‹ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ์žˆ๋‹ค. JPA์˜ findById() ๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜๊ฒŒ ๋˜๋ฉด ์šฐ์„ , 1์ฐจ ์บ์‹œ์—์„œ ์‹๋ณ„์ž ๊ฐ’์œผ๋กœ ์ €์žฅ๋œ Entity๋ฅผ ์ฐพ๊ณ  1์ฐจ ์บ์‹œ์— ์กด์žฌํ•˜๋ฉด ํ•ด๋‹น ๊ฐ์ฒด๋ฅผ ๋ฆฌํ„ด, ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด DB์— ์ง์ ‘ ์กฐํšŒํ•ด 1์ฐจ ์บ์‹œ์— ์ ์žฌํ•œ ํ›„ ํ•ด๋‹น ๊ฐ์ฒด๋ฅผ ๋ฆฌํ„ดํ•œ๋‹ค. 2. ๋™์ผ์„ฑ ๋ณด์žฅ 3. ํŠธ๋žœ์žญ์…˜์„ ์ง€์›ํ•˜๋Š” ์“ฐ๊ธฐ ์ง€์—ฐ 4. ๋ณ€๊ฒฝ ๊ฐ์ง€(Dirty Checking) J..

Server/Java & Spring 2023. 6. 1. 20:37
[Java] ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ(OOP)

๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ(OOP)์ด๋ž€? ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ: OOP(Object Oriented Programing) ์ ˆ์ฐจ์ง€ํ–ฅ์  -> ๊ฐ์ฒด์ง€ํ–ฅ์  ๊ฐ์ฒด: ๋Œ€์ƒ (๋ถ•์–ด๋นต)ํด๋ž˜์Šค: ๊ณตํ†ต๋œ ์†์„ฑ๋“ค์˜ ์ •์˜ (๋ถ•์–ด๋นต ํ‹€) OOP: ๊ฐ์ฒด๋“ค์„ ์œ ๊ธฐ์ ์œผ๋กœ ์—ฐ๊ฒฐํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ OOP์˜ 4๊ฐ€์ง€ ํŠน์ง• ์ถ”์ƒํ™” ์ถ”์ƒํ™”๋Š” ๊ฐ์ฒด๋“ค์˜ ๊ณตํ†ต๋œ ํŠน์ง•์„ ํŒŒ์•…ํ•ด ์ •์˜ํ•ด ๋†“์€ ์„ค๊ณ„ ๊ธฐ๋ฒ• ๋ชฉ์ ๊ณผ ๊ด€๋ จ์ด ์—†๋Š” ๋ถ€๋ถ„์„ ์ œ๊ฑฐํ•˜์—ฌ ํ•„์š”ํ•œ ๋ถ€๋ถ„๋งŒ์„ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•œ ๊ฐœ๋…์ด๋‹ค. ์บก์Šํ™” ํ•˜๋‚˜์˜ ๊ฐ์ฒด์— ๋Œ€ํ•ด ๊ทธ ๊ฐ์ฒด๊ฐ€ ํŠน์ •ํ•œ ๋ชฉ์ ์„ ์œ„ํ•œ ํ•„์š”ํ•œ ๋ณ€์ˆ˜๋‚˜ ๋ฉ”์†Œ๋“œ๋ฅผ ํ•˜๋‚˜๋กœ ๋ฌถ๋Š” ๊ฒƒ ๋ถˆํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ๊ฐ์ถœ ์ˆ˜ ์žˆ์Œ: ์ •๋ณด์€๋‹‰(private) ์ƒ์† ๋ถ€๋ชจ ํด๋ž˜์Šค์˜ ์†์„ฑ์„ ์ž์‹ ํด๋ž˜์Šค์—์„œ ๋ฌผ๋ ค๋ฐ›์•„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ ๋‹จ์ผ ์ƒ์† (๋‹ค์ค‘ ์ƒ์†์ด ์ธํ„ฐํŽ˜์ด์Šค์˜ ๋ชฉ์ ์€ ์•„๋‹ˆ๋‚˜ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ†ตํ•ด ๋‹ค..

Server/Java & Spring 2023. 5. 31. 11:30
[Baekjoon] 1715๋ฒˆ : ์นด๋“œ ์ •๋ ฌํ•˜๊ธฐ python

https://www.acmicpc.net/problem/1715 1715๋ฒˆ: ์นด๋“œ ์ •๋ ฌํ•˜๊ธฐ ์ •๋ ฌ๋œ ๋‘ ๋ฌถ์Œ์˜ ์ˆซ์ž ์นด๋“œ๊ฐ€ ์žˆ๋‹ค๊ณ  ํ•˜์ž. ๊ฐ ๋ฌถ์Œ์˜ ์นด๋“œ์˜ ์ˆ˜๋ฅผ A, B๋ผ ํ•˜๋ฉด ๋ณดํ†ต ๋‘ ๋ฌถ์Œ์„ ํ•ฉ์ณ์„œ ํ•˜๋‚˜๋กœ ๋งŒ๋“œ๋Š” ๋ฐ์—๋Š” A+B ๋ฒˆ์˜ ๋น„๊ต๋ฅผ ํ•ด์•ผ ํ•œ๋‹ค. ์ด๋ฅผํ…Œ๋ฉด, 20์žฅ์˜ ์ˆซ์ž ์นด๋“œ ๋ฌถ์Œ๊ณผ 30์žฅ www.acmicpc.net ์„ค๊ณ„ ๋ฐฉ๋ฒ• ๋น„๊ต ํšŸ์ˆ˜๊ฐ€ ๊ฐ€์žฅ ์ž‘์œผ๋ ค๋ฉด ๊ฐ€์žฅ ์ž‘์€ ๊ฐ’๋“ค๋ถ€ํ„ฐ ๋จผ์ € ๊ณ„์‚ฐํ•ด์•ผ ํ•œ๋‹ค. ๋‹จ ํ•˜๋‚˜์˜ ๊ฐ’์ด ๋‚จ์„ ๋•Œ๊นŒ์ง€ ๊ฐ€์žฅ ์ž‘์€ ๊ฐ’ 2๊ฐœ๋ฅผ ๊ณ„์‚ฐ, ์ถ”๊ฐ€ ๊ทธ๋ฆฌ๊ณ  ์ €์žฅ์„ ๋ฐ˜๋ณตํ•œ๋‹ค. ์ผ๋ฐ˜์ ์ธ ๋ฐฐ์—ด๋กœ ์ฒ˜๋ฆฌํ•  ๊ฒฝ์šฐ ์‹œ๊ฐ„ ์ดˆ๊ณผ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. ์ •๋ ฌํ•˜๋Š” ๊ณผ์ •์„ ์šฐ์„ ์ˆœ์œ„ ํ์— ๋งก๊ฒจ์ฃผ๋ฉด ํ•ด๊ฒฐ ์ฝ”๋“œ ์‹œ๊ฐ„์ดˆ๊ณผ ์ฝ”๋“œ import sys input = sys.stdin.readline n = int(input()) ca..

[Python] ํž™ ์ž๋ฃŒ๊ตฌ์กฐ / ํž™ํ(heapq) / ํŒŒ์ด์ฌ์—์„œ heapq ๋ชจ๋“ˆ ์‚ฌ์šฉ

ํž™์€ ํŠน์ •ํ•œ ๊ทœ์น™์„ ๊ฐ€์ง€๋Š” ํŠธ๋ฆฌ๋กœ, ์ตœ๋Œ“๊ฐ’๊ณผ ์ตœ์†Ÿ๊ฐ’์„ ์ฐพ๋Š” ์—ฐ์‚ฐ์„ ๋น ๋ฅด๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด ๊ณ ์•ˆ๋œ ์™„์ „์ด์ง„ํŠธ๋ฆฌ๋ฅผ ๊ธฐ๋ณธ์œผ๋กœ ํ•œ๋‹ค. ํž™ property : A๊ฐ€ B์˜ ๋ถ€๋ชจ๋…ธ๋“œ์ด๋ฉด A์˜ ํ‚ค๊ฐ’๊ณผ B์˜ ํ‚ค๊ฐ’ ์‚ฌ์ด์—๋Š” ๋Œ€์†Œ ๊ด€๊ณ„๊ฐ€ ์„ฑ๋ฆฝํ•œ๋‹ค ์ตœ์†Œ ํž™: ๋ถ€๋ชจ ๋…ธ๋“œ์˜ ํ‚ค๊ฐ’์ด ์ž์‹ ๋…ธ๋“œ์˜ ํ‚ค๊ฐ’๋ณด๋‹ค ํ•ญ์ƒ ์ž‘์€ ํž™ ์ตœ๋Œ€ ํž™: ๋ถ€๋ชจ ๋…ธ๋“œ์˜ ํ‚ค๊ฐ’์ด ์ž์‹ ๋…ธ๋“œ์˜ ํ‚ค๊ฐ’๋ณด๋‹ค ํ•ญ์ƒ ํฐ ํž™ ์ด๋Ÿฌํ•œ ์†์„ฑ์œผ๋กœ ์ธํ•ด ํž™์—์„œ๋Š” ๊ฐ€์žฅ ๋‚ฎ์€(ํ˜น์€ ๋†’์€) ์šฐ์„ ์ˆœ์œ„๋ฅผ ๊ฐ€์ง€๋Š” ๋…ธ๋“œ๊ฐ€ ํ•ญ์ƒ ๋ฃจํŠธ์— ์˜ค๊ฒŒ ๋˜๊ณ  ์ด๋ฅผ ์ด์šฉํ•ด ์šฐ์„ ์ˆœ์œ„ ํ์™€ ๊ฐ™์€ ์ถ”์ƒ์  ์ž๋ฃŒํ˜•์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋•Œ ํ‚ค๊ฐ’์˜ ๋Œ€์†Œ ๊ด€๊ณ„๋Š” ๋ถ€๋ชจ/์ž์‹ ๊ฐ„์—๋งŒ ์„ฑ๋ฆฝํ•˜๊ณ , ํ˜•์ œ๋…ธ๋“œ ์‚ฌ์ด์—๋Š” ๋Œ€์†Œ ๊ด€๊ณ„๊ฐ€ ์ •ํ•ด์ง€์ง€ ์•Š๋Š”๋‹ค. ํŒŒ์ด์ฌ ํž™ ์ž๋ฃŒ๊ตฌ์กฐ ํŒŒ์ด์ฌ heapq ๋ชจ๋“ˆ์€ heapq (priority queue) ์•Œ๊ณ ..

Algorithms 2023. 5. 30. 13:17
[Spring boot] properties ์‚ฌ์šฉ์‹œ "Could not resolve placeholder" ์˜ค๋ฅ˜ ๋ฐœ์ƒ

ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด์„œ ์‚ฌ์ง„, ๋™์˜์ƒ๊ณผ ๊ฐ™์€ ๋ฏธ๋””์–ด ํŒŒ์ผ๋“ค์„ AWS์˜ S3์— ์ €์žฅํ•˜๊ธฐ ์œ„ํ•˜์—ฌ application.yml ํŒŒ์ผ์— S3์— ๊ด€๋ จ๋œ ์ธ์ฆ ์ •๋ณด๋“ค์„ ์ถ”๊ฐ€ํ–ˆ๋‹ค. ๋กœ์ปฌ์—์„œ๋Š” ์ž˜ ๋Œ์•„๊ฐ€๋Š”๋ฐ github actions๋ฅผ ํ†ตํ•ด ci/cd ๊ตฌ์ถ•ํ•˜์ž ๋ฌธ์ œ ๋ฐœ์ƒ ๊ทธ๋Ÿฌ๋‹ˆ๊นŒ ๋ฐฐํฌํ•˜๋Š” ๊ณผ์ •์—์„œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ ๊ฒƒ ๊ฐ™๋‹ค ๊ทผ๋ฐ ์ผ๋‹จ ๋ฐฐํฌ๋Š” ์ž˜ ๋จ codedeploy์—์„œ๋„ ์„ฑ๊ณต ps -ef | grep jar ๋ช…๋ น์–ด๋กœ ์‹คํ–‰์ค‘์ธ jar ํŒŒ์ผ ํ™•์ธ ์ฒ˜์Œ์—๋Š” ์ œ๋Œ€๋กœ ๋Œ์•„๊ฐ€๋Š” ๋“ฏ ํ–ˆ์œผ๋‚˜ 10์ดˆ ์ •๋„ ๋’ค์— ๋‹ค์‹œ ํ™•์ธํ•ด๋ณด๋ฉด ๊บผ์ง€๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค ์•„ .. ์ด๊ฑฐ ์ง€๊ธˆ application์ด ๋Œ์•„๊ฐ€๋Š”๋ฐ ์‹คํŒจํ•œ๊ฑฐ๊ตฌ๋‚˜ ๊ฐ•์ œ๋กœ ๋‹ค์‹œ java ์‹คํ–‰์‹œ์ผœ๋ณด์ž ์—ญ์‹œ๋‚˜ .. application run failed ์˜€๊ตฌ๋‚˜ ^^ . . . ๋ชจ๊ฐ€ ๋ฌธ..

Server/Java & Spring 2023. 5. 28. 10:46