์ „์ฒด ๊ธ€ 267

[java] SpringBoot ์‚ฌ์šฉ ์‹œ field์— ๋ณ€์ˆ˜ ์„ ์–ธ ๊ด€๋ จ ๋ฌธ์ œ

์–ด์ œ ์ €๋… ์˜† ํŒ€์˜ ๋‹ค๋ฅธ ๋™๋ฃŒ๊ฐ€ ์œ„์˜ ๋ฌธ์ œ์— ๋Œ€ํ•ด์„œ ์งˆ๋ฌธ์„ ํ•ด ์™”์Šต๋‹ˆ๋‹ค. Field์— String ๋ณ€์ˆ˜์— static์„ ์„ ์–ธํ•˜์ง€ ์•Š์„ ์‹œ error๊ฐ€ ๋‚˜๋Š”๋ฐ ๊ทธ ์ด์œ ๋ฅผ ๋ชจ๋ฅด๊ฒ ๋‹ค๊ณ  ํ•˜๋”๊ตฐ์š”. ๊ฐ„๋‹จํ•œ ๋ฌธ์ œ์˜€๋Š”๋ฐ '์ด๊ฒƒ ๋•Œ๋ฌธ์ด๋‹ค!' ๋ผ๊ณ  ์ฝ• ์ง‘์–ด์„œ ์ด์•ผ๊ธฐ ํ•˜๊ธฐ๊ฐ€ ํž˜๋“ค๋”๊ตฐ์š”. ๊ทธ๋ž˜์„œ ๊ด€๋ จ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋ฉด์„œ ์ œ๋Œ€๋กœ ์„ค๋ช… ํ•  ์ˆ˜ ์žˆ์„ ์ •๋„๋กœ ์ •๋ฆฌํ•ด ๋ณด๋Š”๊ฒƒ์ด ์ด๋ฒˆ ๊ธ€์˜ ๋ชฉ์ ์ž…๋‹ˆ๋‹ค. ๋ฌธ์ œ ํšŒ์‚ฌ์˜ ์ฝ”๋“œ๋ฅผ ๋ถˆ๋Ÿฌ์˜ฌ ์ˆœ ์—†์œผ๋‹ˆ ํšŒ์‚ฌ์ฝ”๋“œ์™€ ๋น„์Šทํ•œ ์•„๋ž˜์˜ ์ฝ”๋“œ๋กœ ์ง„ํ–‰ํ•˜๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. @Slf4j @Service @AllArgsConstructor // 1. ์–ด๋…ธํ…Œ์ด์…˜์˜ ๊ธฐ๋Šฅ ํŒŒ์•… public class SpringBootFieldStaticSample { private SpringBootFieldStaticSam..

Languages/java 2022.11.29

[python] FastAPI ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌ๊ธ€ ํฌ๋กค๋งํ•˜๊ธฐ[1]_(์„ค์น˜๋ถ€ํ„ฐ uvicorn์‹คํ–‰๊นŒ์ง€)

fastAPi ํ”„๋ ˆ์ž„ ์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ python์œผ๋กœ ๊ธฐ๋ณธ์ ์ธ ๊ตฌ๊ธ€ ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๋ฅผ ํฌ๋กค๋ง ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ๊ตฌํ˜„ํ•ด ๋ณด์•˜์Šต๋‹ˆ๋‹ค. ํ”„๋กœ๊ทธ๋žจ์„ ๊ตฌํ˜„ํ•˜๋ฉด์„œ ํ–ˆ๋˜ ์‚ฝ์งˆ(?)๋“ค๊ณผ ๋Š๊ผˆ๋˜ ๊ฒƒ๋“ค์„ ์ •๋ฆฌํ•  ๊ฒธ ์ž‘์„ฑํ•ด ๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. python์˜ ๊ฒฝ์šฐ ์ดˆ๊ธ‰์ˆ˜์ค€(for๋ฌธ ์ •๋„ ์ž‘์„ฑ)์ธ ์ƒํƒœ์˜€์œผ๋ฉฐ fastAPI ์ฒ˜์Œ์‚ฌ์šฉ(์‹œ์ž‘ํ•˜๋Š”๋‚  ์ฒ˜์Œ ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.)ํ•ด ๋ณด์•˜์Šต๋‹ˆ๋‹ค. ๋ชฉ์ฐจ a. fastAPI ๊ธฐ๋ณธ ๊ฐœ๋… b. ์‹คํ–‰ ์ „ ์ค€๋น„ โ€‹ 1. python ๊ฐ€์ƒํ™˜๊ฒฝ โ€‹ 2. library ์„ค์น˜ c. uvicorn ์‹คํ–‰ 1. main.py ์ƒ์„ฑ 2. ๋ผ์ด๋ธŒ ์„œ๋ฒ„ ์‹คํ–‰gitHub์„ ํ†ตํ•ด ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. a. ๊ธฐ๋ณธ ๊ฐœ๋… FastAPI FastAPI is a modern, fast (high-performance), web fra..

Languages/python 2022.11.17

[Language] ๊ธฐ๋ณธํ˜•(Primitive Type)๊ณผ ์ฐธ์กฐํ˜•(Reference Type)

ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์˜ ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ๊ฐœ๋… ์ค‘ ํ•˜๋‚˜์ธ ๋ณ€์ˆ˜์˜ ๊ธฐ๋ณธํ˜•(Primitive type)๊ณผ ์ฐธ์กฐํ˜•(Reference type)์ž…๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ๊ฒฝ๋ ฅ 2๋…„์ฐจ(1๋…„ ๋ฐ˜)์ธ๋ฐ ์ด๊ฒƒ๋„ ๋ชจ๋ฅด๋ƒ? ๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค๋งŒ... ๋ช‡์ผ ์ „ ๊ธฐ๋ณธํ˜•๊ณผ ์ฐธ์กฐํ˜•์˜ ์ฐจ์ด์— ๋Œ€ํ•œ ์งˆ๋ฌธ์„ ๋ฐ›๊ณ  ๋ฒ„๋ฒ…๊ฑฐ๋ฆฌ๋˜ ์ œ ์ž์‹ ์„ ๋˜๋Œ์•„๋ณด๊ณ  ๋ญ”๊ฐ€ ์•Œ๊ธด ์•„๋Š”๋ฐ ์ œ๋Œ€๋กœ ์•Œ์ง€ ๋ชปํ•˜๋‹ˆ ๋ฉ”๋„๋Ÿฝ๊ฒŒ ์„ค๋ช…์„ ๋ชปํ•˜๋Š”๊ตฌ๋‚˜ ์‹ถ๋”๊ตฐ์š”. ๊ทธ๋ž˜์„œ ์งˆ๋ฌธ์„ ๋ฐ›์•˜์„ ๋•Œ ๊ฐ„๋žตํ•˜๊ฒŒ ์ฐจ๊ทผ์ฐจ๊ทผ ์ˆœ์„œ๋Œ€๋กœ ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ธฐ๋ณธ๊ธฐ๋ฅผ ๋‹ค์‹œ ๋‹ค์ง€๊ธฐ ์œ„ํ•œ ์šฉ๋„๋กœ ๊ธ€์„ ์ •๋ฆฌํ•ด ๋ณด์•˜์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธํ˜• ํƒ€์ž…(Primitive Type) 1. ์ข…๋ฅ˜ java์—์„œ๋Š” ์ด 8๊ฐ€์ง€์˜ primitive type์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. type memory default value data expression range ๋…ผ๋ฆฌํ˜• ..

Languages 2022.11.14

[java] Function์„ ํ™œ์šฉํ•˜์—ฌ If๋ฌธ ์ œ๊ฑฐํ•˜๊ธฐ

ํšŒ์‚ฌ์—์„œ ๊ธฐ์กด์— ์ž‘์„ฑ๋˜์–ด์žˆ๋Š” ์ฝ”๋“œ๋ฅผ ๋ณด๋‹ค ํ•˜๋‚˜์˜ method ๋‚ด์— ์‹ญ์—ฌ๊ฐœ์˜ if๋ฌธ...์œผ๋กœ ์ž‘์„ฑ๋œ ํŒŒ์ผ์„ ๋ณด๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํŒŒ์•…ํ•˜๋Š”๊ฒŒ ๋„ˆ๋ฌด ํž˜๋“ค๋”๊ตฐ์š”... ๊ทธ๋ž˜์„œ ์กฐ๊ธˆ ๋” ํŒŒ์•…ํ•˜๊ธฐ ์‰ฝ๊ณ  ์œ ์ง€๋ณด์ˆ˜์— ํšจ๊ณผ์ ์ธ ์ฝ”๋“œ๋Š” ์—†์„๊นŒ ๊ณ ๋ฏผ์„ ํ–ˆ๋‹ค ์˜ˆ์ „์— ์ฐจ์žฅ๋‹˜์ด ๊ตฌํ˜„ํ•ด๋†“์œผ์‹ (๋‹น์‹œ์—๋Š” Functional Interface๋ฅผ ๋ชฐ๋ผ ์ดํ•ดํ•˜๊ธฐ ๋ฌด์ฒ™ ์–ด๋ ค์› ๋‹ค๋Š” ์‚ฌ์‹ค์€ ๋น„๋ฐ€) ์ฝ”๋“œ์™€ ๋ช‡์ผ์ „์— ๋ณด์•˜๋˜ ๋‹ค๋ฅธ ์–ธ์–ด๋“ค์˜ if๋ฌธ ์ฒ˜๋ฆฌ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์ƒ๊ฐ์ด ๋‚˜๋”๊ตฐ์š”. ๊ทธ๋ž˜์„œ ๊ทธ๊ฒƒ๊ณผ ๋น„์Šทํ•œ ๋ฐฉ์‹์œผ๋กœ ์ „๋ฐ˜์ ์ธ refactoring์„ ์ง„ํ–‰ํ•ด ๋ณด์•˜์Šต๋‹ˆ๋‹ค. ์ ์šฉ์„ ๋‹ค ํ•˜๊ณ  ๋‚˜๋‹ˆ ์ •๋ฆฌํ•  ํ•„์š”๊ฐ€ ์žˆ์„ ๋“ฏ ํ•ด์„œ sample ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์„œ java์—์„œ if๋ฌธ์„ ์ œ๊ฑฐํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ •๋ฆฌํ•ด ๋ณด์•˜์Šต๋‹ˆ๋‹ค. Sample if ๊ฐ€ '๋งŽ์ด' ์‚ฌ์šฉ๋˜๊ณ  ์žˆ๋Š” ..

Languages/java 2022.11.09

[vim]Vim์„ IDE์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•˜๊ธฐ(์ž๋™์™„์„ฑ, ํ…Œ๋งˆ ๋“ฑ)

์˜ค๋žœ๋งŒ์— python ์œผ๋กœ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋กœ ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์ง€ ์•Š์•„ vim์„ ํ™œ์šฉํ•˜์—ฌ ๊ฐœ๋ฐœ์„ ์ง„ํ–‰ํ•˜๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ํ‰์†Œ java๋กœ intellij๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์ž‘์„ฑํ•˜๋‹ค ๋ณด๋‹ˆ ๋ฌด์—‡์ธ๊ฐ€ ๋ถ€์กฑํ•œ ๋Š๋‚Œ์ด ๋“ค๋”๊ตฐ์š”. ๊ทธ๋ž˜์„œ vim์„ ide์ฒ˜๋Ÿผ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์ง€ ์•Š์„๊นŒ ํ•˜์—ฌ ๊ทธ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์ž‘์„ฑํ•ด ๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ํด ์ค„๊ธฐ๋Š” ์•„๋ž˜์˜ YouTube ์˜์ƒ์„ ์ฐธ๊ณ ํ–ˆ์Šต๋‹ˆ๋‹ค๋งŒ Vundle์ด ์•„๋‹Œ vim-plug๋ฅผ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. https://www.youtube.com/watch?v=HKJUILUvkGk 1. vim plugin manager ์„ค์น˜ํ•˜๊ธฐ Pathogen, Vundle.vim, vim-plug ์ด๋ ‡๊ฒŒ ์„ธ๊ฐœ๊ฐ€ ์žˆ๋Š”๋ฐ ์™ผ์ชฝ๋ถ€ํ„ฐ ์˜ˆ์ „ ๋ฒ„์ „์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜์‹œ๋ฉด ๋˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์ € ์—ญ์‹œ ์ฒ˜์Œ์—๋Š” Vundle..

Tools 2022.10.30

[java]default method์˜ ํ˜ธํ™˜์„ฑ

๋ชจ๋˜ ์ž๋ฐ” ์ธ ์•ก์…˜์˜ default method ๋ถ€๋ถ„์„ ์ฝ๋˜ ์ค‘์— ํ˜ธํ™˜์„ฑ์ด๋ž€ ๋‹จ์–ด๋ฅผ ์ง€๋‚˜์น˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‹ค ๋ฌธ๋“ ์ œ๊ฐ€ ์ƒ๊ฐํ•˜๋Š” ํ˜ธํ™˜์„ฑ๊ณผ ํ”„๋กœ๊ทธ๋žจ์—์„œ ์ด์•ผ๊ธฐํ•˜๋Š” ํ˜ธํ™˜์„ฑ์ด ๋งž๋‚˜? ํ•˜๋Š” ์˜๋ฌธ์„ ๊ฐ€์ง€๊ณ  ์žˆ์„ ๋•Œ ์ฑ…์—์„œ ํ˜ธํ™˜์„ฑ์— ๋Œ€ํ•ด ํ•œ๋ฒˆ ๋” ์ƒ์„ธํ•˜๊ฒŒ ์„ค๋ช…์„ ํ•ด ๋†“์•˜๋”๊ตฐ์š”. ๊ทธ๋ž˜์„œ ์ด๋ฅผ ๊ธ€๋กœ ์ž‘์„ฑ์„ ํ•ด ๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. default method default method๋Š” ์ž๋ฐ” 8์—์„œ ์ฒ˜์Œ ๋‚˜ํƒ€๋‚œ ๊ธฐ๋Šฅ์œผ๋กœ List ์ธํ„ฐํŽ˜์ด์Šค์— sort() ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋˜๋ฉด์„œ ์ž…๋‹ˆ๋‹ค. ๋‚ด๋ถ€๋ฅผ ๋ณด์‹œ๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด default ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๊ธฐ์กด์— List ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ƒ์†ํ•œ ๋ชจ๋“  ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉ์ž๋“ค์ด ์ˆ˜์ •ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ๋„๋ก default ๋ฉ”์„œ๋“œ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ์ธํ„ฐํŽ˜์ด์Šค์— static ๋ฉ”์„œ๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜์ง€ ์•Š๊ณ  ์™œ def..

Languages/java 2022.10.26

[SLF4J]Class path contains multiple SLF4J bindings. ํ•ด๊ฒฐ

์˜ˆ์ „ jitpack์„ ์ด์šฉํ•˜์—ฌ ๊ฐ„๋‹จํ•œ eisenUtils ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ƒ์„ฑํ–ˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์ง€๊ธˆ๋„ ์ข…์ข… ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š”๋ฐ ๋‚ด๋ถ€์— ์ถœ๋ ฅ์„ System.out.println()์œผ๋กœ ๋˜์–ด ์žˆ๋”๊ตฐ์š”. ํ•ด์„œ ํ•ด๋‹น ๋กœ์ง์„ Logger๋ฅผ ์‚ฌ์šฉ๋„๋ก ๋ณ€๊ฒฝํ–ˆ์—ˆ์Šต๋‹ˆ๋‹ค๋งŒ... ์ด๋•Œ๋ถ€ํ„ฐ slf4j ๊ด€๋ จ ๋ฐ”์ธ๋”ฉ ๋ฌธ์ œ๊ฐ€ ๊ณ„์† ๋œจ๋”๊ตฐ์š”. ์ด์— ์ด๊ฑธ ํ•ด๊ฒฐํ–ˆ๋˜ ๊ณผ์ •์— ๋Œ€ํ•ด ๊ธ€์„ ์ž‘์„ฑํ•˜๋ฉด์„œ ๊ด€๋ จ ์ง€์‹๋“ค์„ ์žŠ์–ด๋ฒ„๋ฆฌ์ง€ ์•Š๋„๋ก ์ž‘์„ฑํ•ด ๋ด…๋‹ˆ๋‹ค. jitpack์ด ๊ถ๊ธˆํ•˜์‹œ๋‹ค๋ฉด JitPack์„ ํ™œ์šฉํ•˜์—ฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ƒ์„ฑํ•˜๊ธฐ(maven, gradle) ์•„ํ‹ฐํด์„ ์ฐธ๊ณ ํ•ด ์ฃผ์„ธ์š”! Error SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:file:{Path}/.grad..

TIL 2022.10.13

[INFCON] ์ธํ”„์ฝ˜ 2022 ํ›„๊ธฐ

7์›” ๋ง์ฆˆ์Œ์— ์ฐธ๊ฐ€ ์‹ ์ฒญ์„ ํ–ˆ๋˜(๋–จ์–ด์กŒ์ง€๋งŒ...) 2022.08.26. ์‚ผ์ •๋™ COEX ๊ทธ๋žœ๋“œ ๋ณผ๋ฃธ์—์„œ ์—ด๋ฆฐ ์ธํ”„์ฝ˜์„ ์šฐ์—ฌ๊ณก์ ˆ ๋์— ๋‹ค๋…€์™”์Šต๋‹ˆ๋‹ค. ํ‹ฐ์ผ“์ด ์—†๋Š” ์ƒํ™ฉ์—์„œ ์ธํ”„์ฝ˜ ์ฐธ์—ฌ ํ›„ ๋Š๊ผˆ๋˜ ์ ๋“ค์„ ๊ฐ„๋žตํ•˜๊ฒŒ ํ•œ๋ฒˆ ์ •๋ฆฌํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. https://infcon.day/ ๊ณ„๊ธฐ ์ธํ”„์ฝ˜ ์ฐธ์„์„ ์‹ ์ฒญํ•œ๊ฒŒ 7์›” 26์ผ ๊ฒฝ์ด์—ˆ์œผ๋‹ˆ ๋ฒŒ์จ ์‹œ๊ฐ„์ด ์ด๋ ‡๊ฒŒ ์ง€๋‚ฌ๋„ค์š”. 8์›” 2์ผ๊ฒฝ ๋ฐœํ‘œ๊ฐ€ ์žˆ์—ˆ๋Š”๋ฐ ๊ทธ๋•Œ ๋–จ์–ด์กŒ๋‹ค๋Š” ๋ฌธ์ž๋ฅผ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค... ใ… ใ…  ๊ทธ๋ ‡๊ฒŒ ์•„์‰ฝ๊ฒŒ ์ฐธ์„์„ ๋ชปํ•˜๋‚˜ ์‹ถ์–ด ๋ฐ˜ ํฌ๊ธฐํ•˜๊ณ  ์žˆ๋Š” ๋‹น์ฒจ๋œ ์ง€์ธ ์ค‘ ํ•œ๋ถ„์ด ๋‹น๊ทผ๋งˆ์ผ“๊ณผ ๊ฐ™์€ ๊ณณ์—์„œ ๊ตฌํ•ด๋ณด๋ผ๊ณ  ํ•˜์‹œ๋”๊ตฐ์š”! ๊ทธ๋ž˜์„œ ๋‹น๊ทผ๋งˆ์ผ“์— ํ‹ฐ์ผ“์„ ๊ตฌํ•œ๋‹ค๊ณ  ๋‚ด์šฉ์„ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค๋งŒ... ์ง€์—ญ ํƒ“์ธ์ง€ ์•„๋‹ˆ๋ฉด ๋„ˆ๋ฌด ๋Šฆ๊ฒŒ ์˜ฌ๋ฆฐ ํƒ“์ธ์ง€ ์—ฐ๋ฝ์ด ๋”ฐ๋กœ ์—†๋”๊ตฐ์š” ใ…  ๊ทธ๋Ÿฐ ์ƒํƒœ์—์„œ ์ธํ”„์ฝ˜ ๋‹น์ผ์ธ 8์›” 26..

TIL 2022.10.11

[IntelliJ] ์™ธ๋ถ€๋ชจ๋“ˆ(JAR)์˜ class ํŒŒ์ผ ์ฝ”๋“œ๊ฐ€ compiled code๋กœ ํ‘œ๊ธฐ๋˜๋Š” ํ˜„์ƒ

์ตœ๊ทผ๋“ค์–ด ๋‘๋ฒˆ์ด๋‚˜ ํ•ด๋‹น ํ˜„์ƒ์„ ๊ฒช์—ˆ์Šต๋‹ˆ๋‹ค. ๋‘๋ฒˆ์งธ๋„ ์ฒซ๋ฒˆ์งธ์™€ ๋™์ผํ•˜๊ฒŒ ๊ตฌ๊ธ€๋ง(...)์„ ํ•˜๋Š” ์ ˆ ๋ณด๋ฉฐ ๋ธ”๋กœ๊ทธ์— ์ •๋ฆฌํ•ด์„œ ์˜ฌ๋ ค์•ผ๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์„ ๊ฐ€์ง€๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ํ˜„์ƒ ๋ฐœ์ƒ ์‹œ ์ €์ฒ˜๋Ÿผ ํ•ด๊ฒฐ์ด ์ž˜ ๋˜๊ธธ ๋ฐ”๋ผ๊ฒ ์Šต๋‹ˆ๋‹ค. Problem ์œ„์˜ ์ด๋ฏธ์ง€์—์„œ ๋ณด๋Š” ๋ฐ”์™€ ๊ฐ™์ด ์ธํ…”๋ฆฌ์ œ์ด์—์„œ ์™ธ๋ถ€ ๋ชจ๋“ˆ(JAR)์˜ class ํŒŒ์ผ์„ ์—ด์—ˆ์„ ์‹œ /* complied code */๋กœ ํ‘œ๊ธฐ๋˜๋Š” ํ˜„์ƒ์„ ์ตœ๊ทผ๋“ค์–ด ๋‘๋ฒˆ์ด๋‚˜ ๊ฒช๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํ•œ๋ฒˆ์€ ํšŒ์‚ฌ์—์„œ IDE ํˆด์ธ intelliJ๋ฅผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ๋Š”๋ฐ ์ด ๋•Œ์™€ ๋‘๋ฒˆ์งธ๋Š” ๊ฐœ์ธ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” intelliJ ๋ฒ„์ „์„ ์—…๋ฐ์ดํŠธ ํ•˜๋ฉด์„œ ๊ฒช๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์›์ธ์€ ๋””์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ œ๋Œ€๋กœ ์ฝ”๋“œ๋ฅผ ํ•ด์„ํ•˜์ง€ ๋ชปํ•ด์„œ(?) ๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. Solution plugin ์ค‘์— `Java Bytecode..

Tools 2022.09.26

[Junit] private Method ํ…Œ์ŠคํŠธํ•˜๊ธฐ2(Exception ๊ฒ€์ฆ)

์–ผ๋งˆ์ „ Junit ์ค‘ privateMethod๋ฅผ ํ…Œ์ŠคํŠธ ํ•˜๋Š” ์ค‘์— ์‹คํŒจํ–ˆ์„ ๊ฒฝ์šฐ์— ๋Œ€ํ•ด test๋ฅผ ํ•˜๋ ค๋‹ค ์˜๋„ํ•œ ๋Œ€๋กœ ํ’€๋ฆฌ์ง€ ์•Š์•„ ํ•ด๋‹น ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•˜์ง€ ๋ชปํ•˜๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋˜ ์ค‘ ํ† ๋น„์˜ spring ์ฑ…์—์„œ ํ•ด๋‹น ๊ด€๋ จ๋œ exception ํ™•์ธํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค.ใ…Žใ…Ž ์ƒ๊ฐ๋ณด๋‹ค ์‰ฌ์šด ๋ฐฉ๋ฒ•์ด์—ˆ์ง€๋งŒ ๊ทธ๋•Œ ๋‹น์‹œ์—๋Š” ๋– ์˜ค๋ฅด์ง€ ์•Š๋”๊ตฐ์š”!ใ…Žใ…Ž(๋ถ„๋ช… ํ•ด๋‹น exception ๋‚ด๋ถ€๋ฅผ ํ™•์ธํ•˜๋ฉด ๋ ๊ฒƒ ๊ฐ™์•˜์ง€๋งŒ ๊ทธ ๋‚ด๋ถ€๋ฅผ ํ™•์ธํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ชฐ๋ผ์„œ ๋ชปํ–ˆ์—ˆ์—ˆ๋„ค์š”ใ… ใ… ) ๊ทธ๋ž˜์„œ ๊ด€๋ จ๋œ ํ•ด๊ฒฐ๋ฒ•์„ ์ž‘์„ฑํ•ด ๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. Before we go further ์ด ๊ธ€์€ private method๋ฅผ junit์œผ๋กœ Exceptionํ…Œ์ŠคํŠธ๋ฅผ ์–ด๋–ป๊ฒŒ ํ•˜๋Š”์ง€์— ๊ด€ํ•ด ์ž‘์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋งŒ์•ฝ private method๋ฅผ junit์œผ๋กœ ์–ด๋–ป๊ฒŒ ํ…Œ์ŠคํŠธ..

Languages/java 2022.09.23
728x90
๋ฐ˜์‘ํ˜•