๋ชฉ๋กServer (50)

๐ŸŒฑ → ๐ŸŒณ

python reduce ํ•จ์ˆ˜

reduce ํ•จ์ˆ˜ ํŒŒ์ด์ฌ์˜ functols ๋‚ด์žฅ ๋ชจ๋“ˆ์˜ reduce() ํ•จ์ˆ˜๋Š” ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋Œ€์ƒ์œผ๋กœ ์ฃผ๋กœ ๋ˆ„์  ์ง‘๊ณ„๋ฅผ ๋‚ด๊ธฐ ์œ„ํ•ด์„œ ์‚ฌ์šฉ๋จ ๊ธฐ๋ณธ ๋ฌธ๋ฒ•์€ ์•„๋ž˜์™€ ๊ฐ™์Œ reduce(์ง‘๊ณ„ ํ•จ์ˆ˜, ์ˆœํšŒ ๊ฐ€๋Šฅํ•œ ๋ฐ์ดํ„ฐ[, ์ดˆ๊ธฐ๊ฐ’]) ๊ธฐ๋ณธ์ ์œผ๋กœ ์ดˆ๊ธฐ๊ฐ’์„ ๊ธฐ์ค€์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฃจํ”„ ๋Œ๋ฉด์„œ ์ง‘๊ณ„ ํ•จ์ˆ˜๋ฅผ ๊ณ„์†ํ•ด์„œ ์ ์šฉํ•˜๋ฉด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ˆ„์ ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ž‘๋™ ์ง‘๊ณ„ ํ•จ์ˆ˜๋Š” ๋‘๊ฐœ์˜ ์ธ์ž๋ฅผ ๋ฐ›์•„์•ผ ํ•จ ์ฒซ๋ฒˆ์งธ ์ธ์ž๋Š” ๋ˆ„์ ์ž(accumulator), ๋‘๋ฒˆ์งธ ์ธ์ž๋Š” ํ˜„์žฌ๊ฐ’(current value)๊ฐ€ ๋„˜์–ด์˜ค๊ฒŒ ๋จ ๋ˆ„์ ์ž๋Š” ํ•จ์ˆ˜ ์‹คํ–‰์˜ ์‹œ์ž‘๋ถ€ํ„ฐ ๋๊นŒ์ง€ ๊ณ„์†ํ•ด์„œ ์žฌ์‚ฌ์šฉ๋˜๋Š” ๊ฐ’์ด๊ณ , ํ˜„์žฌ๊ฐ’์€ ๋ฃจํ”„ ๋Œ๋ฉด์„œ ๊ณ„์†ํ•ด์„œ ๋ฐ”๋€Œ๋Š” ๊ฐ’ ์˜ˆ๋ฅผ ๋“ค์–ด arr์˜ ๋ชจ๋“  ์š”์†Œ๋ฅผ ๊ณฑํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ–ˆ์„ ๋•Œ from functools import reduce answe..

Server/Python 2023. 8. 13. 12:31
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
[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