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

TIL14

[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.
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.
Jira ์‚ฌ์šฉ๋ฒ• ์ •๋ฆฌ Jira ๋ž€ ๋ฌด์—‡์ธ๊ฐ€ ํ˜ธ์ฃผ ํšŒ์‚ฌ Atlassian์—์„œ ๊ฐœ๋ฐœ๋œ ํˆด(๋„๊ตฌ) ์ผ๋ณธ์–ด Godzilla์—์„œ ํŒŒ์ƒ๋จ ์†Œํ”„ํŠธ์›จ์–ด์™€ ๊ด€๋ จํ•œ ์ด์Šˆ์™€ ๋ฒ„๊ทธ๋ฅผ ์ถ”์ ํ•˜๊ธฐ ์œ„ํ•œ ๋„๊ตฌ 1. Jira์˜ ์‚ฌ์šฉ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ๊ด€๋ฆฌ ์š”์ฒญ ์• ์ž์ผ ๋ฐฉ๋ฒ•๋ก  - ์Šคํฌ๋Ÿผ ์ „์ฒด ํ”„๋กœ์ ํŠธ ๊ด€๋ฆฌ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ์—…๋ถ€ ๊ด€๋ฆฌ ๋ฒ„๊ทธ ์ถ”์  ๋“ฑ ๐Ÿค” ๊ทธ๋ž˜์„œ ๋ญ˜ ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ผ๊นŒ? *"ํ˜‘์—…์„ ์›ํ™œํžˆ"* Planning - User Story, Issue๋ฅผ ๋งŒ๋“ค์–ด Sprint ๊ณ„ํš Tracking - ์—…๋ฌด์˜ ์šฐ์„ ์ˆœ์œ„, ์ˆ˜ํ–‰์ƒํƒœ ๊ด€๋ฆฌ (๊ฐ€์‹œ์„ฑ) Release - ์ผ๊ฐ์˜ ๊ฐœ๋ฐœ ์™„๋ฃŒ ๋“ฑ ์ตœ์‹ ์ •๋ณด๋ฅผ ๊ฐ€์ง€๊ณ  ์ œํ’ˆ ์ถœ์‹œ ๊ด€๋ฆฌ Report - ์‹ค์‹œ๊ฐ„ ์‹œ๊ฐ์  ๋ฐ์ดํ„ฐ ๊ธฐ๋ฐ˜ ํŒ€ ํšจ์œจ ํ–ฅ์ƒ 2. Jira ์‚ฌ์šฉ ๊ณผ์ • - ์Šคํ”„๋ฆฐํŠธ X ์ง€๋ผ๋ฅผ ์„ ํƒํ•œ๋‹ค. ํ”„๋กœ์ ํŠธ ์˜ต์…˜์„ ์„ ํƒํ•œ๋‹ค ๋ผ์ด๋ธŒ.. 2022. 7. 17.
Node.js ๋ฅผ ์ด์šฉํ•˜์—ฌ ์‹ค์‹œ๊ฐ„ ์ฑ„ํŒ… ์„œ๋น„์Šค ๋งŒ๋“ค๊ธฐ ๋‹ค์Œ ์ˆœ์œผ๋กœ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•˜์˜€์Šต๋‹ˆ๋‹ค. 1. JavaScript๋ž€ ๋ญ˜๊นŒ? 2. Node.js 3. Express 4. ์ฑ„ํŒ… Server/Client ๊ตฌํ˜„ํ•˜๊ธฐ ๋ณธ ๋‚ด์šฉ์€ ์‹ค์‹œ๊ฐ„ ์ฑ„ํŒ… ์„œ๋น„์Šค๋ฅผ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ์•Œ์•„์•ผ ํ•  ๋‚ด์šฉ์„ ์ •๋ฆฌํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. Node.js์ด ๋ฌด์—‡์ธ์ง€๋ฅผ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” JavaScript๊ฐ€ ๋ฌด์—‡์ธ์ง€ ๋จผ์ € ๋ช…ํ™•ํ•˜๊ฒŒ ์ •์˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. 1. JavaScript๋ž€ ๋ญ˜๊นŒ? JavaScript๋ž€, ๋ธŒ๋ผ์šฐ์ €์—์„œ ๋™์ž‘ํ•˜๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์ž…๋‹ˆ๋‹ค. โœ… HTML/CSS๊ฐ€ ์›น ๋ธŒ๋ผ์šฐ์ € ๊ตฌ์กฐ๋ฅผ ๋งŒ๋“ค๊ณ  ์Šคํƒ€์ผ๋ง ํ•˜๊ธฐ ์œ„ํ•œ ์ •์  ๋งˆํฌ์—… ์–ธ์–ด๋ผ๋ฉด, JavaScript๋Š” ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ์™€ ๊ฐ™์€ ๋™์ ์œผ๋กœ task๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ์Šคํฌ๋ฆฝํŒ… ์–ธ์–ด์ž…๋‹ˆ๋‹ค. ๋ธŒ๋ผ์šฐ์ €์—์„œ ๋™์ž‘ํ•˜๊ธฐ ๋•Œ๋ฌธ์— OS ๊ธฐ๋Šฅ(ํŒŒ์ผ ์ฝ๊ธฐ, ์“ฐ๊ธฐ / ๋„คํŠธ์›Œํฌ ํ†ต์‹  ๋“ฑ)์— ์•ก.. 2022. 7. 10.