[JUnit] JUnit์„ ์ด์šฉํ•œ TDD(Test-Driven Development)

[JUnit] JUnit์„ ์ด์šฉํ•œ TDD(Test-Driven Development)

์˜ค๋Š˜์€ JUnit์„ ์ด์šฉํ•œ TDD(Test-Driven Development) ๊ธฐ๋ณธ ๋ฌธ๋ฒ•๊ณผ ํ™œ์šฉ ์˜ˆ์ œ์— ๋Œ€ํ•ด์„œ ํฌ์ŠคํŒ…ํ•ด ๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์ €๋„ ์ด๋ฒˆ์— ๊ณต๋ถ€ํ•˜๋Š” ๋งˆ์Œ์œผ๋กœ ์ž๋ฃŒ๋ฅผ ์ฐพ์•„์„œ ์ •๋ฆฌ๋ฅผ ํ•ด๋ดค์Šต๋‹ˆ๋‹ค. ์ž˜๋ชป๋œ ์ ์€ ๊ฐ€๊ฐ ์—†์ด ํ”ผ๋“œ๋ฐฑ ์ฃผ์‹œ๋ฉด ํฐ ๋„์›€์ด ๋  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์˜ค๋Š˜๋„ ๊ณต๋ถ€๋ฅผ ์‹œ์ž‘ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๐Ÿ˜ Junit ?! JUnit์€ ์ž๋ฐ”์—์„œ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ํ…Œ์ŠคํŠธ ํ”„๋ ˆ์ž„์›Œํฌ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. TDD๋Š” ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•œ ํ›„, ๊ทธ์— ํ•ด๋‹นํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋Š” ๊ฐœ๋ฐœ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. JUnit์„ ์ด์šฉํ•œ TDD๋ฅผ ์ ์šฉํ•˜๋ฉด ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋ฉด์„œ ๊ฐœ๋ฐœํ•˜๋Š” ๊ณผ์ •์—์„œ ์•ˆ์ •์ ์ด๊ณ  ๊ฒฌ๊ณ ํ•œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ…Œ์ŠคํŠธ ํด๋ž˜์Šค ์ƒ์„ฑ JUnit์„ ์ด์šฉํ•˜์—ฌ ํ…Œ์ŠคํŠธ ํด๋ž˜์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” @Test ์–ด๋…ธํ…Œ์ด์…˜์„ ์ด์šฉ..

  • textsms
[Java 8] Stream API ๊ธฐ๋ณธ ๋ฌธ๋ฒ• ๋ฐ ํ™œ์šฉ ์˜ˆ์ œ

[Java 8] Stream API ๊ธฐ๋ณธ ๋ฌธ๋ฒ• ๋ฐ ํ™œ์šฉ ์˜ˆ์ œ

Java 8์˜ Stream API๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ณ  ๋ณ€ํ™˜ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ•๋ ฅํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด API๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฐฐ์—ด, ๋ฆฌ์ŠคํŠธ, ๋งต ๋“ฑ์˜ ์ปฌ๋ ‰์…˜์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”์ถœํ•˜๊ณ  ํ•„ํ„ฐ๋ง, ๋งคํ•‘, ์ง‘๊ณ„ ๋“ฑ ๋‹ค์–‘ํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ์—๋Š” Stream API์˜ ๊ธฐ๋ณธ ๋ฌธ๋ฒ•๊ณผ ํ™œ์šฉ ์˜ˆ์ œ๋ฅผ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. #1. Stream ์ƒ์„ฑ Stream์€ Collection, List, Set, Array ๋“ฑ์˜ ์ž๋ฃŒ๊ตฌ์กฐ๋กœ๋ถ€ํ„ฐ ์ƒ์„ฑ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Stream์„ ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. #1. 1. Collection์œผ๋กœ๋ถ€ํ„ฐ ์ƒ์„ฑ List list = Arrays.asList("a", "b", "c"); Stream stream = list.stream(); #1. 2. Array๋กœ๋ถ€ํ„ฐ ์ƒ์„ฑ Str..

  • textsms
[Java] ์Šค์ผ€์ค„๋Ÿฌ ๋ฐฐ์น˜

[Java] ์Šค์ผ€์ค„๋Ÿฌ ๋ฐฐ์น˜

ํฌ๋ก  / ์Šค์ผ€์ค„๋Ÿฌ (๋ฐฐ์น˜) ์‹œ๋ฆฌ์ฆˆ Job Scheduler ํฌ๋ก  (Cron) ๊ณผ ํฌ๋ก  ํ‘œํ˜„์‹ Spring Job Scheduler #1. ์žก ์Šค์ผ€์ค„๋Ÿฌ? ํฌ๋ก  ํ‘œํ˜„์‹? ์‹ค๋ฌด์—์„œ๋Š” ๋ฐฐ์น˜, ํฌ๋ก , ์Šค์ผ€์ค„๋Ÿฌ, ์˜ˆ์•ฝ์ž‘์—…, ์žก ๋“ฑ์œผ๋กœ ๋ถ€๋ฅด๋Š”๋ฐ ์ผ๋‹จ ์ •๋ฆฌ๋ฅผ ํ•˜๊ณ  ๋„˜์–ด๊ฐ€๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์Šค์ผ€์ค„๋Ÿฌ (Scheduler), ์žก ์Šค์ผ€์ค„๋Ÿฌ, ์˜ˆ์•ฝ์ž‘์—… : ์ƒˆ๋ฒฝ 3์‹œ์— ์—…๋ฐ์ดํŠธ ๋“ฑ๊ณผ ๊ฐ™์€ ํŠน์ • ์‹œ๊ฐ„/์ฃผ๊ธฐ์— ์–ด๋–ค ์ผ์„ ํ•˜๋Š” ํ”ํžˆ ์˜ˆ์•ฝ(๋ฐ˜๋ณต/๋น„๋ฐ˜๋ณต) ํ•˜๋Š” ์ž‘์—…(Job)๋“ค์„ ์‹คํ–‰์‹œ์ผœ์ฃผ๋Š” ์ฃผ์ฒด์ž…๋‹ˆ๋‹ค. ํฌ๋ก  (Cron) : https://en.wikipedia.org/wiki/Cron ๋ณธ๋ž˜๋Š” ์˜๋ฏธ๋กœ๋Š” ์œ ๋‹‰์Šค๊ณ„์—ด์˜ ์žก์Šค์ผ€์ค„๋Ÿฌ ์‹œ์Šคํ…œ์ด์ง€๋งŒ, ํ˜„์žฌ๋Š” ๊ทธ๋ƒฅ ์žก ์Šค์ผ€์ค„๋Ÿฌ์™€ ๋™์ผํ•œ ์˜๋ฏธ์ฒ˜๋Ÿผ ๋ถˆ๋ฆฝ๋‹ˆ๋‹ค. ๋ฐฐ์น˜ (Batch) : ์ผ๊ด„์ฒ˜๋ฆฌ๋กœ ๋Œ€๋Ÿ‰์˜ ์ž‘์—…์„ ํ•˜๋Š” ..

  • textsms
[Java] ํ™˜๊ฒฝ๋ณ€์ˆ˜ ์„ค์ •

[Java] ํ™˜๊ฒฝ๋ณ€์ˆ˜ ์„ค์ •

#1. ๋‚ด PC ์†์„ฑ์— ๊ณ ๊ธ‰ ์‹œ์Šคํ…œ ์„ค์ • ์—ด๊ธฐ #2. ์‹œ์Šคํ…œ ๋ณ€์ˆ˜ ์•ˆ์— JAVA_HOME ๋“ฑ๋ก ํ›„ ์ž๋ฐ” ์„ค์น˜ ๊ฒฝ๋กœ๋ฅผ ์ถ”๊ฐ€ #3. ํ™˜๊ฒฝ๋ณ€์ˆ˜ ํŽธ์ง‘ ์‹œ์Šคํ…œ ๋ณ€์ˆ˜ ์•ˆ์— Path ๋ฅผ ์ฐพ์•„ ํŽธ์ง‘์„ ๋ˆ„๋ฅด๊ณ  ์ƒˆ๋กœ๋งŒ๋“ค๊ธฐ ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ %JAVA_HOME%bin ๋“ฑ๋ก #4. ๊ฒ€์ฆ ์ œ๋Œ€๋กœ ๋“ฑ๋ก์ด ๋˜์—ˆ๋Š”์ง€ ๊ฒ€์ฆ์„ ์œ„ํ•˜์—ฌ win + R์„ ๋ˆ„๋ฅธ ๋’ค cmd๋ฅผ ์—ด์–ด ์ค๋‹ˆ๋‹ค. ๊ฒ€์ƒ‰ ๋ช…๋ น์–ด๋Š” ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค. java javac java -version ์œ„์— ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅ ํ›„ ์ถœ๋ ฅ๋ฌธ(์•ˆ๋‚ด๋ฌธ)์ด ๋‚˜ํƒ€๋‚œ๋‹ค๋ฉด ์ •์ƒ์ ์œผ๋กœ ๋“ฑ๋ก๋œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์˜ˆ์‹œ๋กœ javac๋ฅผ ์ž…๋ ฅ ํ›„ javac๋Š” ๋‚ด๋ถ€ ๋˜๋Š” ์™ธ๋ถ€ ๋ช…๋ น, ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ํ”„๋กœ๊ทธ๋žจ, ๋˜๋Š” ๋ฐฐ์น˜ ํŒŒ์ผ์ด ์•„๋‹™๋‹ˆ๋‹ค ๋ผ๋Š” ๋ฌธ๊ตฌ๊ฐ€ ๋‚˜์˜ฌ ์‹œ ๋“ฑ๋ก ์ ˆ์ฐจ๋ฅผ ๋‹ค์‹œ ํ™•์ธ ํ•ด๋ณด์‹œ๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค.

  • textsms
[Java] this, super ํ‚ค์›Œ๋“œ, this(), super() ํ•จ์ˆ˜ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•

[Java] this, super ํ‚ค์›Œ๋“œ, this(), super() ํ•จ์ˆ˜ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•

์ถœ์ฒ˜ : http://mainia.tistory.com/85 ์ž๋ฐ”(Java) this, super ํ‚ค์›Œ๋“œ, this(), super() ํ•จ์ˆ˜ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ• ํ™˜๊ฒฝ: Eclipse Mars this๋Š” ํ˜„์žฌ ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ๊ฐ€๋ฆฌํ‚ต๋‹ˆ๋‹ค. super ๋Š” ๋ถ€๋ชจ ํด๋ž˜์Šค๋ฅผ ๊ฐ€๋ฆฌํ‚ต๋‹ˆ๋‹ค. ํ˜„์žฌ ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค์— ์žˆ๋Š” ์†์„ฑ์ด๋‚˜ ํ•จ์ˆ˜๋ฅผ ์ œ์–ดํ•˜๋ ค๋ฉด this.setName() ์„ ํ•˜๊ณ  ๋ถ€๋ชจ ํด๋ž˜์Šค์˜ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๊ณ  ์‹ถ์œผ๋ฉด super.setName() ์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค. ์•„๋ž˜ ์†Œ์Šค๋ฅผ ๋ณด๋ฉด์„œ ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ•˜๋Š”์ง€ ์•Œ์•„ ๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ¤ ํด๋ž˜์Šค์˜ ์†์„ฑ๊ณผ ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ์ด๋ฆ„์ด ๊ฐ™์„ ๋•Œ โ–ผ ์•„๋ž˜ ์†Œ์Šค๋Š” this ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•˜์„ ๋•Œ ์ƒํ™ฉ์ž…๋‹ˆ๋‹ค. ์ฃผ๋กœ set/get ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค ๋•Œ ์‹ค์ˆ˜ํ•˜๋Š” ๊ฒฝ์šฐ ์ž…๋‹ˆ๋‹ค. ๋งค๊ฐœ ๋ณ€์ˆ˜์˜ ์ด๋ฆ„๊ณผ Fruit ์—..

  • textsms