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

๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ37

DWaaS๋ž€ ๋ฌด์—‡์ผ๊นŒ? ๋ฐ์ดํ„ฐ ์›จ์–ดํ•˜์šฐ์Šค ์„œ๋น„์Šค๋ž€ ๋ญ˜๊นŒ? (DWaaS) ๋ฐ์ดํ„ฐ ์‚ฌ์šฉ์ด ์ฆ๊ฐ€ํ•˜๋ฉด์„œ, ์–ด๋–ค ๋ฐ์ดํ„ฐ ๊ธฐ๋ฐ˜ ์‹œ์„ค์„ ์„ ํƒํ• ์ง€๊ฐ€ ํ”ผํ•  ์ˆ˜ ์—†๋Š” ์ผ์ด ๋˜๊ณ  ์žˆ๋‹ค. ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ๋ฅผ ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌํ•˜๋ฉด ์ข‹์„์ง€์— ๊ด€ํ•ด์„œ ๋งŽ์€ ํšŒ์‚ฌ๋“ค์ด ๊ณ ๋ฏผ์ค‘์ด๋‹ค. ํšŒ์‚ฌ๋“ค์€ ๋ฐ์ดํ„ฐ๋ฅผ ๊น”๋”ํ•˜๊ณ  ์ง‘์•ฝ๋œ ํ˜•ํƒœ๋กœ ๋ณด๊ธธ ์›ํ•˜๋Š”๋ฐ, 'Structured data'๋ผ๋Š” ๊ฐœ๋…์„ ์•Œ์•„๋‘˜ ํ•„์š”๊ฐ€ ์žˆ๋‹ค. Structured Data๋ž€, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๊ฐ ์—ด์— ๊น”๋”ํžˆ ๋ฐ์ดํ„ฐ๋ฅผ ์ง‘์–ด๋„ฃ์„ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค. ๋ฐ์ดํ„ฐ ์›จ์–ดํ•˜์šฐ์Šค ๋ฐ์ดํ„ฐ ์›จ์–ดํ•˜์šฐ์Šค๋Š” ๋ณด๋‹ค ๋ฐ์ดํ„ฐ์— ๊ธฐ๋ฐ˜ํ•˜์—ฌ ์˜์‚ฌ ๊ฒฐ์ •์„ ๋‚ด๋ฆด ์ˆ˜ ์žˆ๋„๋ก ์ •๋ณด๋ฅผ ๋ถ„์„ํ•˜๊ธฐ ์‰ฌ์šด ํ˜•ํƒœ๋กœ ์ €์žฅํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค. ํŠธ๋žœ์žญ์…˜ ์‹œ์Šคํ…œ, ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋“ฑ์ด ์ด์— ์†ํ•œ๋‹ค. ์ •์ œํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋Š” ๊ธฐ์—…์˜ ๊ฒฝ์Ÿ๋ ฅ์„ ์œ„ํ•ด ํ•„์ˆ˜ .. 2022. 8. 6.
[Error] IllegalStateException: @Order on WebSecurityConfigurers must be unique ์—๋Ÿฌ Git Branch Merge ๊ณผ์ • ํ›„ Application ์‹คํ–‰ ์‹œ ๋งˆ์ฃผํ•œ ์—๋Ÿฌ๋‹ค. org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.security.config.annotation.web.configuration.WebSecurityConfiguration': Injection of autowired dependencies failed; nested exception is java.lang.IllegalStateException: @Order on WebSecurityConfigurers must be unique. Order of 100 was already.. 2022. 7. 28.
[Error] ๋ถ„๋ฆฌ๋œ HEAD ๋‚ด ์ปค๋ฐ‹ IntelliJ์—์„œ ๊นƒ์„ ์ปค๋ฐ‹ํ•  ๋•Œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฌธ์ œ๋ฅผ ๋งˆ์ฃผํ•  ์ˆ˜ ์žˆ๋‹ค. ํ•ด์„ํ•ด๋ณด๋ฉด ํ˜„์žฌ ์ž‘์—… ์ค‘์ธ ๋ธŒ๋žœ์น˜์™€ remote์— ์žˆ๋Š” ๋ธŒ๋žœ์น˜๊ฐ€ ๋‹ฌ๋ผ ์ปค๋ฐ‹์„ ํ•  ์‹œ, ๋‚ด์šฉ์„ ์žƒ์„ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ์—ฌ๊ธฐ์„œ Head๋ž€ ํ˜„์žฌ ๋‚ด๊ฐ€ ์ž‘์—… ์ค‘์ธ ๋ธŒ๋žœ์น˜๋ฅผ ๊ฐ€๋ฆฌํ‚ฌ ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ์šฉ์–ด๋‹ค. git checkout ์œผ๋กœ ๊ฐ„๋‹จํžˆ ๋ณ€๊ฒฝํ•œ ํ›„ ์ปค๋ฐ‹ํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋‹ค์†Œ ๋ณต์žกํ•ด์ง€๋Š” ๊ฒฝ์šฐ๋„ ์žˆ๋‹ค. ์˜ฎ๊ธฐ๊ณ ์žํ•˜๋Š” ๋ธŒ๋žœ์น˜์˜ ๋‚ด์šฉ๊ณผ ํ˜„์žฌ ์ž‘์—… ์ค‘์ธ ๋ธŒ๋žœ์น˜์˜ ๋‚ด์šฉ์ด ๋‹ฌ๋ผ์ ธ์„œ ์˜ฎ๊ธฐ๊ณ ์ž ํ•˜๋Š” ํŒŒ์ผ์˜ ๋‚ด์šฉ์ด๋‚˜ ํ˜„์žฌ ์ž‘์—… ์ค‘์ธ ๋‚ด์šฉ์ด ์†์‹ค๋  ์ˆ˜ ์žˆ๋‹ค๋Š” ๋‚ด์šฉ์ด๋‹ค. ๊นƒ์ด ์ต์ˆ™ํ•˜์ง€ ์•Š์œผ์‹œ๋‹ค๋ฉด ๋‚ด์šฉ์„ ๋ฐฑ์—… ํ›„ ๋ธŒ๋žœ์น˜๋ฅผ ๋ณ€๊ฒฝํ•˜์‹œ๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค. checkout์— ์˜ํ•ด ๋ฎ์—ฌ์“ฐ์—ฌ๋„ ๋ณ„ ์ƒ๊ด€์—†๋Š” ํŒŒ์ผ๋“ค์ด๋ผ๋ฉด, ๊ทธ๋Œ€๋กœ ์ฒดํฌ์•„์›ƒ์„ ์ง„ํ–‰ํ•˜๋ฉด ๋œ๋‹ค. > git stash >.. 2022. 7. 24.
[Error] application.yml ์— ์ •์˜ํ•œ ๊ฐ’ ์ธ์‹ํ•˜์ง€ ๋ชปํ•  ๊ฒฝ์šฐ @Value๋ž€? ์Šคํ”„๋ง์ด ๊ด€๋ฆฌํ•˜๋Š” Bean ์— ๊ฐ’๋“ค์„ ์ฃผ์ž…ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ์–ด๋…ธํ…Œ์ด์…˜์ด๋‹ค. ์ƒ์„ฑ์ž, ๋ฉ”์†Œ๋“œ ํŒŒ๋ผ๋ฏธํ„ฐ ๋ ˆ๋ฒจ์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค. Lombok ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—๋„ @Value๊ฐ€ ์กด์žฌํ•œ๋‹ค. ์—ฌ๊ธฐ์„œ ์–ธ๊ธ‰๋œ @Value๋Š” springframework์˜ annotation์—์„œ ์ฐธ์กฐํ•œ Value ์ด๋‹ค. Lombok์˜ @Value๋Š” immutable class๋ฅผ ๋งŒ๋“ค ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. - Lombok์˜ @Value๋Š” ๋ชจ๋“  ํ•„๋“œ๋ฅผ final, private type์œผ๋กœ ์„ค์ •ํ•˜๊ณ  setter ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค์ง€ ์•Š๋Š”๋‹ค. application.yml์— ์ •์˜ํ•œ ํ‚ค์™€ ๊ฐ’์„ ์ฝ์–ด์˜ค๊ธฐ ์œ„ํ•ด @Value ์‚ฌ์šฉ application.yml์—์„œ jwt์˜ secret์ด๋ผ๋Š” ํ‚ค๋ฅผ @Value ์–ด๋…ธํ…Œ์ด์…˜์„ ์ด์šฉํ•˜์—ฌ ์‚ฌ์šฉํ•˜๊ณ ์ž ํ–ˆ๋‹ค ๊ทธ๋Ÿฌ๋‚˜ .. 2022. 7. 23.
๋ฐฑ์ค€ 12764 - ์‹ธ์ง€๋ฐฉ์— ๊ฐ„ ์ค€ํ•˜ (์šฐ์„ ์ˆœ์œ„ํ) ๋ฌธ์ œ ๋งํฌ: https://www.acmicpc.net/problem/12764 12764๋ฒˆ: ์‹ธ์ง€๋ฐฉ์— ๊ฐ„ ์ค€ํ•˜ ์ฒซ์งธ ์ค„์— ์‚ฌ๋žŒ์˜ ์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” \(N\)์ด ์ฃผ์–ด์ง„๋‹ค. \((1 \le N \le 100,000)\) ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ \(N\)๊ฐœ์˜ ์ค„์— ๊ฑธ์ณ์„œ ๊ฐ ์‚ฌ๋žŒ์˜ ์ปดํ“จํ„ฐ ์ด์šฉ ์‹œ์ž‘ ์‹œ๊ฐ \(P\)์™€ ์ข…๋ฃŒ ์‹œ๊ฐ \(Q\)๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. \((0 \le P \lt Q \le 1,000 www.acmicpc.net ๋ฌธ์ œ ์š”์•ฝ ์ž๋ฆฌ๊ฐ€ 1๋ฒˆ ๋ถ€ํ„ฐ ์ˆœ์„œ๋Œ€๋กœ ๋งค๊ฒจ์ ธ ์žˆ๋‹ค. ์‹ธ์ง€๋ฐฉ์— ๋“ค์–ด์™”์„ ๋•Œ ๋น„์–ด์žˆ๋Š” ์ž๋ฆฌ ์ค‘ ๋ฒˆํ˜ธ๊ฐ€ ๊ฐ€์žฅ ์ž‘์€ ์ž๋ฆฌ์— ์•‰๋Š” ๊ฒƒ์ด ๊ทœ์น™์ด๋‹ค. ์‹ธ์ง€๋ฐฉ์„ ์ด์šฉํ•˜๋Š” ์‹œ๊ฐ„์ด ์ฃผ์–ด์ง„๋‹ค๊ณ  ํ•  ๋•Œ, ์ด์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ปดํ“จํ„ฐ์˜ ์ตœ์†Œ ๊ฐœ์ˆ˜์™€ ์ž๋ฆฌ๋ณ„๋กœ ๋ช‡ ๋ช…์˜ ์‚ฌ๋žŒ์ด ์‚ฌ์šฉํ–ˆ๋Š”์ง€ ์ถœ๋ ฅ [์ œํ•œ ์‚ฌํ•ญ] N: ์‚ฌ๋žŒ์˜ ์ˆ˜ (1 ≤ .. 2022. 7. 20.
Comparator.comparing() - Java8 Comparator.comparing ๋ฉ”์†Œ๋“œ Java8๋ถ€ํ„ฐ Comparator์— ์ธํ„ฐํŽ˜์ด์Šค์™€ ๋ฉ”์†Œ๋“œ๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ๋Š”๋ฐ, comparing์ด ๊ทธ ์ค‘ ํ•˜๋‚˜์ด๋‹ค. static function์ด๋ฉฐ, ์–ด๋–ค ์ˆœ์œผ๋กœ ์ •๋ ฌํ•ด์•ผํ• ์ง€์— ๊ด€ํ•ด Comparator type์œผ๋กœ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ์šฐ์„  API ๋ฌธ์„œ๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ Comparator.comparing๊ณผ ๊ด€๋ จํ•œ ์‚ฌํ•ญ์„ ์ •๋ฆฌํ•œ ๋’ค, PQ์—์„œ ๊ฐ„๋‹จํžˆ Comparator์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฒ•์— ๊ด€ํ•ด ์ •๋ฆฌํ•œ๋‹ค. Pirority Queue ์—์„œ ์ƒ์„ฑ ์‹œ, Comparator.comparing๋ฅผ ์ธ์ž๊ฐ’์œผ๋กœ ์ค€๋‹ค๋Š” ๊ฒƒ์€, PQ ๊ฐ์ฒด๋ฅผ ์–ด๋–ค ์‹์œผ๋กœ ์ •๋ ฌํ• ์ง€๋ฅผ parameter ํ˜•์‹์œผ๋กœ ์•Œ๋ ค์ฃผ๋Š” ๊ฒƒ์ด๋‹ค. API /** * Accepts a function that extracts a {@link jav.. 2022. 7. 20.
.properties์™€ .yml ์ฐจ์ด ๋‹ค๋ฅธ ํ™˜๊ฒฝ์—์„œ๋„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋™์ž‘ํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค์ • ๊ด€๋ จ ์ •๋ณด๊ฐ€ ๋“ค์–ด์žˆ๋Š” ํ•˜๋‚˜์˜ ํŒŒ์ผ์ด๋‹ค. ํฌํŠธ ์„ค์ •, ์–ด๋–ค ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ์—ฐ๊ฒฐํ•ด์ค„ ๊ฒƒ์ธ์ง€์™€ ๊ด€๋ จํ•œ ์ •๋ณด ๋“ฑ์„ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋‹ค. ์Šคํ”„๋ง ๋ถ€ํŠธ์˜ ์„œ๋ฒ„๋ฒˆํ˜ธ๋Š” 8080์ด default ์ด์ง€๋งŒ, ๋‹ค๋ฅธ ํฌํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ์„ค์ • ํŒŒ์ผ์— ์„ ์–ธํ•ด์ค„ ์ˆ˜ ์žˆ๋‹ค. server.port = 9090 ๋‘ ํŒŒ์ผ ๋ชจ๋‘ ์„ค์ • ํŒŒ์ผ์ด๋ผ๋Š” ๊ณตํ†ต์ ์„ ๊ฐ€์ง€๊ณ  ์žˆ์ง€๋งŒ, ์„œ์ˆ ํ•˜๋Š” ๋ฐฉ์‹์€ ๋‹ค๋ฅด๋‹ค. Elastric Search๋‚˜ MongoDB database๋Š” YAML(.yml)์„ default configuration format์œผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค. Java์—์„œ๋Š” ์ฃผ๋กœ .properties๋ฅผ ๋งŽ์ด ์ด์šฉํ•œ๋‹ค. ***.yml # ๊ตฌ๋ถ„์ž: spacebar, (XX tab) somemap: key:val.. 2022. 7. 19.