JavaRush /Java Blog /Random-KO /GitHub์—์„œ ๊ฐ€์žฅ ์ธ๊ธฐ ์žˆ๋Š” Java ํ”„๋กœ์ ํŠธ 5๊ฐœ
Max Stern
๋ ˆ๋ฒจ 35
ะะธะถะฝะธะน ะะพะฒะณะพั€ะพะด

GitHub์—์„œ ๊ฐ€์žฅ ์ธ๊ธฐ ์žˆ๋Š” Java ํ”„๋กœ์ ํŠธ 5๊ฐœ

Random-KO ๊ทธ๋ฃน์— ๊ฒŒ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค
์ดˆ๋ณด ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ์ผ์ž๋ฆฌ๋ฅผ ์ฐพ๊ธฐ ์‹œ์ž‘ํ•  ๋•Œ ๊ทธ๋Š” ์ข…์ข… ๋นˆ ๋ฒฝ์„ ๋งˆ์ฃผํ•˜๊ฒŒ ๋˜๋Š”๋ฐ, ๊ทธ ๋ฒฝ์— ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ์ž์‹ ๊ฐ ์žˆ๊ฒŒ "์šฐ๋ฆฌ๋Š” ๊ฒฝํ—˜์ด ์žˆ๋Š” ์ „๋ฌธ๊ฐ€๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค."๋ผ๊ณ  ์ผ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ ... ์ด์ œ ์–ด๋–กํ•˜์ง€? ์šฐ๋ฆฌ๋Š” "๊ฒฝํ—˜์„ ์–ป์œผ๋ ค๋ฉด ๊ฒฝํ—˜์ด ํ•„์š”ํ•˜๋‹ค"๋Š” ์ƒํ™ฉ์— ์ฒ˜ํ•ด ์žˆ์Šต๋‹ˆ๊นŒ? ๊ทธ๋งŒํ•ด ์—ฌ๊ธฐ ๋“ค์–ด์˜ค๋Š” ์—ฌ๋Ÿฌ๋ถ„?...
GitHub์—์„œ ๊ฐ€์žฅ ์ธ๊ธฐ ์žˆ๋Š” Java ํ”„๋กœ์ ํŠธ 5๊ฐœ - 1
์‹ค์ œ๋กœ ์ด ์žฌ๊ท€์—์„œ ๋ฒ—์–ด๋‚˜๋Š” ๋ฐฉ๋ฒ•์—๋Š” ์—ฌ๋Ÿฌ ๊ฐ€์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ํšŒ์‚ฌ์—์„œ ์ธํ„ด์‹ญ์„ ๊ตฌํ•˜๊ฑฐ๋‚˜(๋Œ€ํ•™๋ณด๋‹ค ๊ฐ€๊ธฐ๊ฐ€ ๋” ์–ด๋ ต์Šต๋‹ˆ๋‹ค), ์ž๋น„๋กœ ์ธํ„ด์‹ญ์„ ํ•˜๊ฑฐ๋‚˜(์˜ˆ: JavaRush ์˜จ๋ผ์ธ ์ธํ„ด์‹ญ ) ์ดˆ๋ณด์ž์—๊ฒŒ ์ ํ•ฉํ•œ ์˜คํ”ˆ ์†Œ์Šค ํ”„๋กœ์ ํŠธ๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฑด ๊ทธ๋ ‡๊ณ , ๊ฒฝํ—˜์ด ๋งŽ์€ ๊ฐœ๋ฐœ์ž๋„ ๋™์ผํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋ฉฐ, ๊ฐค๋ฆฌ์„ ์— ๋Œ€ํ•œ ์ผ์ƒ์ ์ธ ์ž‘์—…์œผ๋กœ ์ธํ•ด ์ด๋ฏธ ์šฐ์œ„์— ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ Java๋กœ ๋” ์ง„์ง€ํ•œ GitHub ํ”„๋กœ์ ํŠธ๋ฅผ ์ฐพ๊ณ  ๊ธด์žฅ์„ ํ’€๊ธฐ ์œ„ํ•ด ์ž‘์—…ํ•ฉ๋‹ˆ๋‹ค. ๋•Œ๋กœ๋Š” ๋Œ€๊ทœ๋ชจ Java ์˜คํ”ˆ ์†Œ์Šค ํ”„๋กœ์ ํŠธ๊ฐ€ ์–ผ๋งˆ๋‚˜ ์ž‘๋™ํ•˜๋Š”์ง€ ํ™•์ธํ•˜๊ณ  ์ฝ”๋“œ๋ฅผ ์ž์„ธํžˆ ์‚ดํŽด๋ณด๋Š” ๊ฒƒ์ด ๋งค์šฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ธฐ์‚ฌ ์—์„œ Jane Elizabeth(JAXenter.com ๋ณด์กฐ ํŽธ์ง‘์ž)๋Š” GitHub์—์„œ ๊ฐ€์žฅ ์ธ๊ธฐ ์žˆ๋Š” 5๊ฐ€์ง€ Java ํ”„๋กœ์ ํŠธ๋ฅผ ์‚ดํŽด๋ด…๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ์ด ๋ฆฌ์†Œ์Šค์—๋Š” ์—„์ฒญ๋‚œ ์ˆ˜์˜ Java ํ”„๋กœ์ ํŠธ(์ •ํ™•ํžˆ 744,000๊ฐœ)๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ „๋ฌธ ๊ฐœ๋ฐœ์ž์—๊ฒŒ๋Š” ์–ด๋–ค ๊ฒƒ์ด ๊ฐ€์žฅ ํฅ๋ฏธ๋กœ์šด๊ฐ€์š”?

1. ๋ชจํ‚คํ† 

์ด ์ด๋ฆ„์€ ๊ธฐ์–ตํ•˜๊ธฐ ์‰ฝ์Šต๋‹ˆ๋‹ค. Mockito๋Š” ์œ ๋ช…ํ•œ ๋ฏผํŠธ ๋ผ์ž„ ์นตํ…Œ์ผ์ฒ˜๋Ÿผ ๋“ค๋ฆฝ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด Java ์˜คํ”ˆ ์†Œ์Šค ํ”„๋กœ์ ํŠธ๋Š” Java๋กœ ์ž‘์„ฑ๋œ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•œ ๊ฐ€์žฅ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ํ”„๋ ˆ์ž„์›Œํฌ์ž…๋‹ˆ๋‹ค. Mockito๋Š” Shipkit ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ง€์†์ ์œผ๋กœ ๊ฐœ๋ฐœ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค . Mockito 2.0์€ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์•„๋‹ˆ๋ผ ์‚ฌ์šฉ์ž ์ •์˜ ๋…ผ๋ฆฌ์—์„œ Mockito๋ฅผ ํ™•์žฅํ•˜๊ฑฐ๋‚˜ ๋ž˜ํ•‘ํ•ด์•ผ ํ•˜๋Š” ๋‹ค๋ฅธ ํ…Œ์ŠคํŠธ ์œ ํ‹ธ๋ฆฌํ‹ฐ ๋ฐ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ๋Œ€์ƒ์œผ๋กœ ํ–ฅ์ƒ๋œ ํ”„๋ ˆ์ž„์›Œํฌ ํ†ตํ•ฉ์„ ์œ„ํ•œ ํ–ฅ์ƒ๋œ API๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

2. ์ž๋ฐ” ๋””์ž์ธ ํŒจํ„ด

์ด Java ์˜คํ”ˆ ์†Œ์Šค ํ”„๋กœ์ ํŠธ๋Š” ์ด๋ฆ„์— ๊ฑธ๋งž๊ฒŒ java-design-patterns๋ฅผ ํ†ตํ•ด ๊ฐœ๋ฐœ์ž์—๊ฒŒ Java ์–ธ์–ด๋กœ ๋””์ž์ธ ํŒจํ„ด์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ํŠนํžˆ, ๋””์ž์ธ ํŒจํ„ด์€ ๊ฐœ๋ฐœ์ž๊ฐ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด๋‚˜ ์‹œ์Šคํ…œ์„ ๋””์ž์ธํ•  ๋•Œ ์ผ๋ฐ˜์ ์ธ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ณต์‹ํ™”๋œ ๊ถŒ์žฅ ์‚ฌ๋ก€์ž…๋‹ˆ๋‹ค. ํ…Œ์ŠคํŠธ๋˜๊ณ  ์ž…์ฆ๋œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํŒจ๋Ÿฌ๋‹ค์ž„์„ ํ†ตํ•ด ๊ฐœ๋ฐœ ํ”„๋กœ์„ธ์Šค ์†๋„๋ฅผ ๋†’์ž…๋‹ˆ๋‹ค. ๋˜ํ•œ ํŒจํ„ด์„ ์žฌ์‚ฌ์šฉํ•˜๋ฉด ์‚ฌ์†Œํ•œ ๋ถ€์ •ํ™•์„ฑ์ด ๋‚˜์ค‘์— ๋” ํฐ ๋ฌธ์ œ๋กœ ์ปค์ง€๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

3.RxJava _

RxJava๋Š” GitHub์—์„œ ๊ฐ€์žฅ ์ธ๊ธฐ ์žˆ๋Š” Java ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์ค‘ ํ•˜๋‚˜์ด์ž ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ํ”„๋ ˆ์ž„์›Œํฌ ์ž…๋‹ˆ๋‹ค . ReactiveX API๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” RxJava ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด JVM(Java Virtual Machine)์— ๋Œ€ํ•ด ๊ด€์ฐฐ ๊ฐ€๋Šฅํ•œ ์‹œํ€€์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋น„๋™๊ธฐ์‹ ๋ฐ ์ด๋ฒคํŠธ ์ค‘์‹ฌ ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. RxJava๋Š” Observer ํŒจํ„ด์„ ํ™•์žฅํ•˜์—ฌ ๋ฐ์ดํ„ฐ ๋ฐ ์ด๋ฒคํŠธ ์‹œํ€€์Šค๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ๊ฐœ๋ฐœ์ž๊ฐ€ ํ•˜์œ„ ์ˆ˜์ค€ ๋ณ‘๋ ฌํ™”, ์Šค๋ ˆ๋”ฉ, ๋™๊ธฐํ™”, ์Šค๋ ˆ๋“œ ์•ˆ์ „์„ฑ ๋ฐ ๋ณ‘๋ ฌ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์™€ ๊ฐ™์€ ์‚ฌํ•ญ์— ๋Œ€ํ•ด ๊ฑฑ์ •ํ•  ํ•„์š” ์—†์ด ์„ค๋ช… ๋‹จ๊ณ„์—์„œ ์‹œํ€€์Šค๋ฅผ ๊ฒฐํ•ฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ์—ฐ์‚ฐ์ž๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

4.MpAndroidChart _

MPAndroidChart๋Š” API ๋ ˆ๋ฒจ 8 ๋ฐ ์ตœ์‹  ๋ฒ„์ „์—์„œ ์‹คํ–‰๋˜๋Š” Android ์šด์˜ ์ฒด์ œ ๊ฐœ๋ฐœ์„ ์œ„ํ•œ ๊ฐ•๋ ฅํ•˜๊ณ  ์‚ฌ์šฉํ•˜๊ธฐ ์‰ฌ์šด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค. MPAndroidChart๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด Android ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๋‹ค์–‘ํ•œ ์ฐจํŠธ๋ฅผ ๊ทธ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋ฐ”์ผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™” ์œ ํ‹ธ๋ฆฌํ‹ฐ๋กœ ๊ฐ„์ฃผ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. MPAndroidChart์—๋Š” ๊บพ์€์„ ํ˜• ์ฐจํŠธ, ํžˆ์Šคํ† ๊ทธ๋žจ(์„ธ๋กœ, ๊ฐ€๋กœ, ๋ˆ„์ , ๊ทธ๋ฃนํ™”), ์›ํ˜• ์ฐจํŠธ, ๋ถ„์‚ฐํ˜• ์ฐจํŠธ, ์ด›๋Œ€ํ˜• ์ฐจํŠธ(๊ธˆ์œต ๋ฐ์ดํ„ฐ์šฉ), ๋ฐฉ์‚ฌํ˜• ์ฐจํŠธ(์ŠคํŒŒ์ด๋” ์ฐจํŠธ), ์›ํ˜• ์ฐจํŠธ ๋ฐ ์ด๋“ค์˜ ๋‹ค์–‘ํ•œ ์กฐํ•ฉ ๋“ฑ ๋‹ค์–‘ํ•œ ์ฐจํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. . (โ€œ๋‹ค์ด์–ด๊ทธ๋žจโ€์ด๋ผ๋Š” ๋‹จ์–ด ์ž์ฒด๋Š” ๋ถ„๋ฆฌ๋˜๋ฉด ๋ชจ๋“  ์˜๋ฏธ๋ฅผ ์žƒ์Šต๋‹ˆ๋‹ค.)

5. ๊ตฌ์•„๋ฐ”

Java ์–ธ์–ด๋ฅผ ์œ„ํ•œ ์ด ๋›ฐ์–ด๋‚œ Google ํ•ต์‹ฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ์•„์ฃผ ์˜ค๋žซ๋™์•ˆ ์‚ฌ์šฉ๋˜์–ด ์™”์ง€๋งŒ ๋ชจ๋“  ์ข…๋ฅ˜์˜ ๊ฐœ๋ฐœ์ž์—๊ฒŒ ๋งค์šฐ ํŽธ๋ฆฌํ•œ ์˜คํ”ˆ ์†Œ์Šค ์œ ํ‹ธ๋ฆฌํ‹ฐ๋กœ ๋‚จ์•„ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ๋งŽ์€ ์‹œ๊ฐ„์ด ์ ˆ์•ฝ๋˜๊ณ  Java ์–ธ์–ด๋ฅผ ๋” ์‰ฝ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ๊ฐ„๋‹จํ•œ ์œ ํ‹ธ๋ฆฌํ‹ฐ, JDK ์ปฌ๋ ‰์…˜ ์ƒํƒœ๊ณ„ ํ™•์žฅ, ์บ์‹œ, ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ด€์šฉ๊ตฌ ๋“ฑ๊ณผ ๊ฐ™์€ ๊ธฐํƒ€ ์œ ํ‹ธ๋ฆฌํ‹ฐ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ํŠนํžˆ Google Guava๋Š” ์ •๋ ฌ๋œ ์ปฌ๋ ‰์…˜ ์ž‘์—…์— ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž๊ฐ€ ๋งค์šฐ ์ง„๋ณด๋œ ์ •๋ ฌ ๋ฐ ๋น„๊ต ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ปฌ๋ ‰์…˜์˜ ๋‚ด์šฉ์„ ๋น„๊ตํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ์ด ๊ธฐ๋Šฅ์€ Guava์—์„œ ๊ฐ€์žฅ ์ž˜ ๊ฐœ๋ฐœ๋˜๊ณ  ๊ฐœ๋ฐœ๋œ ๊ธฐ๋Šฅ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค.
๊ทธ ๋ฐ–์— ์ฝ์„ ๋‚ด์šฉ:

GitHub์˜ 12๊ฐ€์ง€ ๋†€๋ผ์šด ๊ธฐ๋Šฅ

์ฝ”๋ฉ˜ํŠธ
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION