Spring 6

[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

[SpringBoot] SpringBoot์— mariadb์™€ mybatis ์—ฐ๊ฒฐ์‹œํ‚ค๊ธฐ

Note ์—ฌ๋Ÿฌ ๊ธ€๋“ค์„ ์‚ดํŽด ๋ณด์•˜์ง€๋งŒ ํ•˜๋‚˜์˜ ๊ธ€๋งŒ์„ ๋”ฐ๋ผํ•ด์„œ ์ œ๋Œ€๋กœ ์‹คํ–‰๋˜๋Š”๊ฒƒ์ด ์—†์–ด ๋”ฐ๋กœ ๊ธฐ๋ก์šฉ์œผ๋กœ ๊ธ€์„ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค. ๊ธ€์„ ์‹œ์ž‘ํ•˜๊ธฐ์— ์•ž์„œ ๊ฐ„๋žตํ•˜๊ฒŒ ์–ด๋–ค ํŒŒ์ผ๋“ค์„ ์ƒ์„ฑํ•ด์•ผํ•˜๊ณ  ์„ค์ •ํ•ด์•ผํ•˜๋Š”์ง€ ํ๋ฆ„์„ ์ ์–ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. build.gradleํŒŒ์ผ์— dependencies ์ถ”๊ฐ€ํ•˜๊ธฐ.(mybatis, jdbc, mariadb) domain(vo) ์ƒ์„ฑํ•˜๊ธฐ service ํŒŒ์ผ ์ƒ์„ฑํ•˜๊ธฐ(@Service) controller.java ํŒŒ์ผ ์ƒ์„ฑํ•˜๊ธฐ(@Controller) application.java ์‹คํ–‰ํŒŒ์ผ -> @MapperScan(value = {"com.tistory.eisen"}) application.properties ํŒŒ์ผ์— mybatis ์„ค์ •๊ฐ’ ๋„ฃ๊ธฐ(์„ ํƒ์— ๋”ฐ๋ผ mybatis-config.xml) mapp..

[Spring] (mybatis-spring) @Repository๋กœ proxy์ž๋™์ƒ์„ฑ.

ํ”„๋กœ์ ํŠธ๋ฅผ ํ•˜๋˜ ์ค‘ ๋ฌธ๋“ MemberDao์— ๋Œ€ํ•œ ์˜๋ฌธ์ด ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.Spring์—์„œ interface๋กœ Inject๋ฅผ ๋ฐ›๊ฒŒ ๋œ๋‹ค๋ฉด @Component์™€ ๊ฐ™์€ ์–ด๋…ธํ…Œ์ด์…˜์œผ๋กœ ๋“ฑ๋ก๋œ ๋นˆ๋“ค์— ๋Œ€ํ•ด ํด๋ž˜์Šค๋ฅผ ๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค.๊ทธ๋Ÿฐ๋ฐ ์•„๋ž˜์˜ ์ด๋ฏธ์ง€์™€ ๊ฐ™์ด MemberDao๋Š” interface์ด๋ฉด์„œ ๋”ฐ๋กœ bean์— ๋“ฑ๋ก๋œ ๊ตฌํ˜„์ฒด ํด๋ž˜์Šค๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.๊ทธ๋ž˜์„œ ๊ถ๊ธˆํ•จ์— ์ด๋ฆฌ์ €๋ฆฌ ์‚ดํŽด๋ณด๋‹ค๊ฐ€ ๊ฒฐ๊ตญ ์งˆ๋ฌธํ•ด์„œ ๋‹ต์„ ์–ป๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜์™€ ๊ฐ™์ด bean์— ํ•ด๋‹น dao์— @Repository๋ผ๊ณ  ๋“ฑ๋กํ•œ ๋…€์„๋“ค์— ํ•œํ•ด์„œ mybatis-spring์ด ๋‚ด๋ถ€์ ์œผ๋กœ ๋“ฑ๋ก๋œ xml๋“ค์˜ namespace๋“ค์„ ๊ฒ€์ƒ‰ ํ›„ ๊ฐ™์€ ์ด๋ฆ„์„ ๊ฐ€์ง„ ๋…€์„๋“ค์—๊ฒŒ proxymapper๋ฅผ ์ƒ์„ฑํ•ด ์ค๋‹ˆ๋‹ค.์ด๋Ÿฌํ•œ ๊ณผ์ •์„ ๊ฑฐ์ณ์„œ MemberDao ๊ตฌํ˜„์ฒด๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š..

Project2021 2021.06.09

[Spring]Spring-websocket์œผ๋กœ ๊ฐ„๋‹จํ•œ ์‹ค์‹œ๊ฐ„ ์ฑ„ํŒ… ๊ตฌํ˜„ํ•ด๋ณด๊ธฐ

์„ค๋ช… https://m.blog.naver.com/scw0531/221052774287 httpํ†ต์‹ ์˜ ํŠน์ง•๊ณผ ํ•œ๊ณ„ httpํ†ต์‹  ํŠน์ง• client๊ฐ€ server์—๊ฒŒ ์ž์‹ ์ด ๋ฐ›๊ณ ์‹ถ์€ ์ •๋ณด๋ฅผ request์— ๋‹ด์•„ ์ „์†กํ•œ๋‹ค. server๋Š” client์˜ request์— ๋”ฐ๋ผ์„œ ์•Œ๋งž์€ response๋กœ ์‘๋‹ตํ•œ๋‹ค. client๋Š” server์—๊ฒŒ ๋ฐ›์€ response์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ์ฆ‰, client๊ฐ€ ์ž์‹ ์ด ์–ด๋–ค ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›๊ณ ์‹ถ์€์ง€ server์— ์š”์ฒญ์„ ํ•ด์•ผ, server๊ฐ€ ๊ทธ ์š”์ฒญ์— ๋งž๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ณตํ•ด ์ฃผ๋Š” ๋ฐฉ์‹์ด๋‹ค. ๊ทธ๋ž˜์„œ httpํ†ต์‹ ์˜ Stateless, Connectionless๋ผ๋Š” ๊ฐ€์žฅ ํฌ๊ณ  ์ค‘์š”ํ•œ ํŠน์ง•์ด ์žˆ๋‹ค. client๊ฐ€ server์— request๋ฅผ ๋ณด๋‚ด๋ฉด, ์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ respon..

Project2021 2021.05.12

[Spring] ์ „์ž์ •๋ถ€ framework ์„ค์น˜ํ•˜๊ธฐ

๊ด€๋ จ ์ง€์‹์ด ์กฐ๊ธˆ์ด๋ผ๋„ ์žˆ๋‹ค๋ฉด ์ „์ž์ •๋ถ€ framework๋ฅผ ์„ค์น˜ํ•˜๋Š” ๊ฒƒ์€ ์–ด๋ ต์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ €๋Š” ๊ด€๋ จ ์ง€์‹์ด ์ „๋ฌดํ•œ ์ƒํƒœ์—์„œ ์„ค์น˜๋ฅผ ํ–ˆ๊ธฐ์—... ๊ทธ ์ „์— ์กฐ๊ธˆ ์ •๋ณด๋ฅผ ์•Œ์•„๋ณด์•˜์Šต๋‹ˆ๋‹ค. ์ „์ž์ •๋ถ€ ํ”„๋ ˆ์ž„์—๋Š” ๋ช‡๊ฐ€์ง€ ์ข…๋ฅ˜๊ฐ€ ์กด์žฌํ•˜๋Š”๋ฐ ๊ฐœ๋ฐœํ™˜๊ฒฝ, ์‹คํ–‰ํ™˜๊ฒฝ, ๊ด€๋ฆฌํ™˜๊ฒฝ, ์šด์˜ํ™˜๊ฒฝ ๋“ฑ์œผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.์ €๋Š” ์ด ์ค‘ ๊ฐœ๋ฐœํ™˜๊ฒฝ 3.10 ๋ฒ„์ „์„ ๋ฐ›์•„์„œ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค ์ด๋ ‡๊ฒŒ ๊ฐ ๋ฒ„์ „์— ๋งž๊ฒŒ ํ•ด๋‹นํ•˜๋Š” ๋ฒ„์ „๋“ค์„ ์ž˜ ์†Œ๊ฐœํ•ด ๋†“์•˜์Šต๋‹ˆ๋‹ค ์–ด๋Š์ •๋„ ์‚ดํŽด๋ณด์•˜์œผ๋‹ˆ ์‹ค์ œ ์„ค์น˜๋ฅผ ํ•ด ๋ณด์•˜์Šต๋‹ˆ๋‹ค.๋งฅ ์‚ฌ์šฉ์ž๋Š” ๋‘๋ฒˆ์งธ๊บผ ์‚ฌ์šฉํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค!(์ €๋Š” ์œˆ๋„์šฐ, ๋งฅ ๋‘˜ ๋‹ค ์‚ฌ์šฉํ•˜๊ธฐ์— ๋‘๊ฐœ ๋‹ค ์„ค์น˜ํ•ด ๋ณด์•˜์Šต๋‹ˆ๋‹ค)๊ทธ๋Œ€๋กœ ์„ค์น˜ํ•œ ํ›„ ๋ณธ์ธ์˜ ํ™˜๊ฒฝ์— ๋งž์ถฐ์„œ ์„ธ๋ถ€์ ์ธ ์„ค์ •์„ ์„ธํŒ…ํ•˜๋ฉด ๋.๊ธฐ๋ณธ์ ์ธ ๊ฐœ๋ฐœํ™˜๊ฒฝ ์„ธํŒ…์ด ๋˜์–ด ์žˆ๋Š” ์ƒํƒœ๋ผ๋ฉด ์„ค์น˜ํ•˜๋Š”๊ฒƒ์€ ํฌ๊ฒŒ ์–ด๋ ต์ง€ ์•Š์Šต๋‹ˆ๋‹ค...

Languages/java 2021.04.24

[JAVA] SPRING์˜ ๊ตฌ์กฐ๋„ ๋ฐ ํ๋ฆ„๋„

** ์ฐธ์กฐ : ์—ด๊ณตํ•˜๋Š” ํ•™์šฐ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ด๋ ‡๊ฒŒ ์ž‘์„ฑํ•ด ๋ณด์•˜๋‹ค. ํ›„์— ๊ฐ๊ฐ ๋ฉ”์„œ๋“œ๋“ค ๋“ฑ์„ ๋”ํ•ด์„œ ์กฐ๊ธˆ ๋” ์ž์„ธํ•˜๊ฒŒ ์ •๋ฆฌํ•ด ๋ณด์•„์•ผ๊ฒ ์Œ.

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