๋น ๋ฅธ ์์ฝ
์ด ํ์๋ Java ํ๋ก๊ทธ๋๋ฐ์์ Selenium๊ณผ Lombok์ ์ฌ์ฉ์ ์ค์ ์ ๋์์ผ๋ฉฐ, ๋ธ๋ผ์ฐ์ ๋์ ์๋ํ, ํด๋์ค ๊ตฌ์ฑ ๋ฐ Lombok ์ฃผ์์ ์ฌ์ฉํ์ฌ ์ฝ๋๋ฅผ ๋จ์ํํ๋ ๋ฐฉ๋ฒ์ ๋ํ ํ ๋ก ์ด ์์์ต๋๋ค. ํ์ ๋ํ ์น ์๋ํ๋ฅผ ์ํ ๋น๋ ํจํด๊ณผ DOM(Document Object Model)์ ์ฌ์ฉ์ ํ๊ตฌํ์ต๋๋ค. ๋ํ IT ์ธ์ฆ, Lombok Library, ๊ทธ๋ฆฌ๊ณ Naver์ ์๋ ๋ก๊ทธ์ธํ๊ธฐ ์ํ Java ํ๋ก๊ทธ๋จ ๊ฐ๋ฐ์ ๋ํ ํ ๋ก ์ด ์์์ต๋๋ค.
๋ค์ ๋จ๊ณ
ํ: ์ฝ๋ ์๋ํ๋ฅผ ์ํด ๊ฐ๋ฐ ํ๊ฒฝ์ Lombok ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์นํ๊ณ ๊ตฌ์ฑํฉ๋๋ค.
ํ: ์น ๋ธ๋ผ์ฐ์ ์๋ํ ํ
์คํธ๋ฅผ ์ํด ํ๋ก์ ํธ์ Selenium ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ถ๊ฐํฉ๋๋ค.
ํ: Chrome ๋๋ผ์ด๋ฒ์ ๋ธ๋ผ์ฐ์ ์๋ํ์ ํ์ํ ์์กด์ฑ์ ์ค์ ํฉ๋๋ค.
ํ: 3์๊น์ง Selenium์ ์ฌ์ฉํ์ฌ ์๋ ๋ก๊ทธ์ธ ํ๋ก๊ทธ๋จ์ ๊ฒํ ํ๊ณ ๊ตฌํํฉ๋๋ค.
ํ: Selenium๊ณผ Lombok์ ์ฌ์ฉํ์ฌ ๋ก๊ทธ์ธ ์๋ํ ํ๋ก์ธ์ค์ ๋ํ ๋ฌธ์๋ฅผ ์์ฑํฉ๋๋ค.
ํ: ๋ค์ ๋ฌ ์ด์ ํ์ ํ์๋ฅผ ์์ฝํ์ฌ ์งํ ์ํฉ๊ณผ ๊ตฌํ ์ธ๋ถ ์ฌํญ์ ๋
ผ์ํ์ญ์์ค.
์์ฝ
์
๋ ๋๊ณผ ๋กฌ๋ณต ์ฌ์ฉ์ ๋ํ ํ ๋ก
ํ์์์ ALOHA๋ ์๋ํ๋ ํ
์คํธ๋ฅผ ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ธ Selenium๊ณผ ์ฝ๋ ์์ฑ์ ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ธ Lombok์ ์ฌ์ฉ์ ๋ํด ๋
ผ์ํ์ต๋๋ค. ALOHA๋ Selenium์ ์ฌ์ฉํ์ฌ Java ํ๋ก๊ทธ๋จ์ผ๋ก ๋ธ๋ผ์ฐ์ ๋ฅผ ์ง์ ์ ์ดํ๋ ๋ฐฉ๋ฒ๊ณผ ์น ํ์ด์ง๋ฅผ ์กฐ์ํ๋ ๋ฐฉ๋ฒ์ ์์ฐํ์ต๋๋ค. ํ์ ๋ํ ํด๋์ค๋ฅผ ์ ์ ํ๊ฒ ๊ตฌ์ฑํ๊ณ ๋ณ์๋ฅผ ์ฌ์ฉํ๋ ํ์์ฑ์ ๋ํด ๋
ผ์ํ์ต๋๋ค. ALOHA๋ ๋๋ค์์ ๋๋ค์์ผ๋ก ๋ฐ๊พธ๊ณ , ๊ฒํฐ์ ์ธํฐ๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค๊ณ ์ธ๊ธํ์ต๋๋ค. ํ์ ๋ํ ์ฝ๋์์ ๋๋ฌธ์์ ์๋ฌธ์๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๋ํด ๋
ผ์ํ์ต๋๋ค. ALOHA๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ณํฉํด์ผ ํ๋ค๋ ํ์์ฑ์ ์ธ๊ธํ๋ฉฐ ๋ํ๋ฅผ ๋๋์ต๋๋ค.
Lombok ์ค์น ๋ฐ Eclipse ์ค์
ํ ๋ก ์ Java ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ธ Lombok์ ์ค์น ๋ฐ ์ค์ ์ ์ค์ ์ ๋ก๋๋ค. ๋ฐํ์๋ ์ฐธ๊ฐ์๋ค์๊ฒ ํ๋ก์ ํธ ์น์ฌ์ดํธ์์ Lombok๋ฅผ ๋ค์ด๋ก๋ํ๊ณ , ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํด๋๋ก ์ด๋ํ์ฌ Eclipse์ ํจ๊ป ์ฌ์ฉํ๊ธฐ ์ํ ์ค์น ๋ฐฉ๋ฒ์ ์๋ดํฉ๋๋ค. ์ด ๋ฌธ์์์๋ Lombok์ Eclipse์ ํ๋ก์ ํธ ๋น๋ ๊ฒฝ๋ก์ ์ถ๊ฐํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช
ํฉ๋๋ค. ์ธ๋ถ ๋๋ ํ๋ก์ ํธ ๋ด์์ Lombok๋ฅผ ์ถ๊ฐํ๋ฉด ๋ฉ๋๋ค. ์ด ๊ณผ์ ์ Eclipse.ini ํ์ผ์ ์์ ํ์ฌ Lombok๋ฅผ Java ์์ด์ ํธ๋ก ํฌํจํ๋๋ก ํ๋ ๊ฒ์
๋๋ค. ์ฐ์ฌ๋ Eclipse์์ Lombok์ ์ฌ์ฉํ๋ ๋ฐ ์ด๋ฌํ ๋จ๊ณ์ ์ค์์ฑ์ ๊ฐ์กฐํ๊ณ VS Code์ ๊ฒฝ์ฐ ํ๋ก์ธ์ค๊ฐ ์ฝ๊ฐ ๋ค๋ฅด๋ค๊ณ ์ธ๊ธํฉ๋๋ค.
Lombok๋ Java ์ฝ๋ ์์ฑ์ ๊ฐ์ํํฉ๋๋ค.
ํ์์์ Aloha๋ Boilerplate ์ฝ๋๋ฅผ ์๋์ผ๋ก ์์ฑํ์ฌ Java ์ฝ๋๋ฅผ ๋จ์ํํ๋ ๋๊ตฌ์ธ Lombok์ ์ฌ์ฉ์ ๋ํด ๋
ผ์ํ์ต๋๋ค. ๊ทธ๋ Lombok์ ์ฌ์ฉํ์ฌ ์์ฑ์, ๊ฒํฐ ๋ฐ ์ธํฐ๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ๊ณผ ์ฝ๋๋ฅผ ๋จ์ํํ๊ธฐ ์ํด ์ฃผ์์ ์ ์ฉํ๋ ๋ฐฉ๋ฒ์ ์์ฐํ์ต๋๋ค. Aloha๋ ๋ํ ๋น๋ ํจํด์ ์ฌ์ฉ๊ณผ ์ถ๋ ฅ์ ํ์ผ๋ก ๋ก๊ทธ๋ง ํ ์์๋ ๊ธฐ๋ฅ์ ์ธ๊ธํ์ต๋๋ค. ๊ทธ๋ ํ์ด ๋กฌ๋ณต์ ์ฌ์ฉํด ๋ณด๋๋ก ๊ถ์ฅํ๊ณ ์ฐ์ต์์ํ ์์ ๋ฅผ ์ ๊ณตํ์ต๋๋ค.
IT ์ธ์ฆ ๋ฐ ๊ฒฝ๋ ฅ ๊ฐ๋ฐ
์ด ๊ทธ๋ฃน์ AWS, CKA ๋ฐ SQLD๋ฅผ ํฌํจํ ๋ค์ํ IT ์ธ์ฆ๊ณผ ๊ทธ ๋น์ฉ์ ๋ํด ํ ๋ก ํฉ๋๋ค. ๊ทธ๋ค์ ์ด๋ค ์ธ์ฆ์ ์ถ๊ตฌํด์ผ ํ๋์ง ๊ณ ๋ คํ๋ฉฐ ์ผ๋ถ๋ ํฅํ 6 ๊ฐ์ ๋์ AWS ๋ฐ SQLD์ ์ง์คํ ๊ฒ์ ์ ์ํฉ๋๋ค. ๋ํ๋ IT ์
๊ณ์ ๊ฒฝ๋ ฅ ์ง์ ์ ๋ํด ์ธ๊ธํ๋ฉฐ ์ ๋ณด ๊ด๋ฆฌ์ ๋ฐ ์ฌ๋ฌด์ด์ฅ๊ณผ ๊ฐ์ ์ญํ ์ ์ธ๊ธํฉ๋๋ค. ๋ํ ์ฝ๋ฉ ์ธ์ฆ์ ๊ด๋ จ์ฑ์ ๋ํด ๊ฐ๋ตํ๊ฒ ๋
ผ์ํ๊ณ ์
๊ณ ์ธ์ ์ธก๋ฉด์์ TOEIC์ ๋น๊ตํฉ๋๋ค.
Lombok Library๋ Java ์ฝ๋๋ฅผ ๊ฐ์ํํฉ๋๋ค.
์ฐ์ฌ๋ ์ฃผ์์ ํตํด getter, setter ๋ฐ constructor์ ๊ฐ์ ๋ฐ๋ณต ์ฝ๋ ์์๋ฅผ ์๋์ผ๋ก ์์ฑํ์ฌ Java ์ฝ๋๋ฅผ ๋จ์ํํ๋ ๋๊ตฌ ์ธ Lombok Library๋ฅผ ์ค๋ช
ํฉ๋๋ค. ํ๋ก์ ํธ ๋น๋ ๊ฒฝ๋ก์ Lombok์ ์ถ๊ฐํ๊ณ @Data์ ๊ฐ์ ์ฃผ์์ ํด๋์ค์ ์ ์ฉํ๋ ๊ฒ์ ํฌํจํ์ฌ Java ํ๋ก์ ํธ์์ Lombok๋ฅผ ์ค์นํ๊ณ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค. ๋ฐํ์๋ ๋ํ ํจํค์ง ์ด๋ฆ ์ถฉ๋ ๋ฐ ๋ชจ๋ ์ธ์ ๋ฌธ์ ์ ๊ฐ์ ์ค์น ์ค์ ๋ฐ์ํ ์ ์๋ ์ผ๋ฐ์ ์ธ ๋ฌธ์ ๋ฅผ ๋ค๋ฃจ๊ณ ์ด๋ฅผ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค. ๊ทธ๋ฐ ๋ค์ @RequiredArgsConstructor ๋ฐ @NoArgsConstructor์ ๊ฐ์ ๋ค์ํ Lombok ์ฃผ์๊ณผ ๊ทธ ๊ธฐ๋ฅ์ ์์ฐํ๊ณ ์ด๋ฌํ ์ฃผ์์ด ์ด๋ป๊ฒ ๋ค๋ฅธ ์ ํ์ ์์ฑ์์ ๋ฉ์๋๋ฅผ ์๋์ผ๋ก ์์ฑํ๋์ง ์ค๋ช
ํฉ๋๋ค.
Java ์์ฑ์ ๋ฐ ๋น๋ ํจํด
ํ ๋ก ์ Java ํ๋ก๊ทธ๋๋ฐ ๊ฐ๋
, ํนํ ์์ฑ์์ ๋น๋ ํจํด์ ์ฌ์ฉ์ ์ค์ ์ ๋ก๋๋ค. ๋ฐํ์๋ ํ์ํ ์์ฑ์๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ์ ์ค๋ช
ํ๊ณ ์ฝ๋์์ ๋
ธ๋์ ๋ฐ์ค์ ์ฌ์ฉํ๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ๋น๋ ํจํด์ ๋ณต์กํ ๊ฐ์ฒด๋ฅผ ์ ์ฐํ๊ฒ ๋ง๋ค ์ ์๋ ๋์์ธ ํจํด์ผ๋ก ์๊ฐํ๋ฉฐ, ์ค์ฒฉ๋ ํด๋์ค๋ฅผ ์ฌ์ฉํ์ฌ ๊ตฌํํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค. ๋ํ๋ Lombok ์ฃผ์์ ์ฌ์ฉํ์ฌ ๋น๋ ํจํด์ ๋ํ ์ฝ๋๋ฅผ ์๋์ผ๋ก ์์ฑํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์ค๋ช
์ผ๋ก ๋๋๋ฉฐ ์ ์ฐํ ๊ฐ์ฒด ๊ตฌ์กฐ๋ฅผ ๋ง๋๋ ํ๋ก์ธ์ค๋ฅผ ๋จ์ํํฉ๋๋ค.
๋ค์ด๋ฒ ๋ก๊ทธ์ธ์ ์ํ Java ํ๋ก๊ทธ๋จ
์ด ํ์๋ Naver์ ์๋ ๋ก๊ทธ์ธ์ ์ํ Java ํ๋ก๊ทธ๋จ์ ๋ง๋๋ ๋ฐ ์ค์ ์ ๋ก๋๋ค. ๊ฐ์ฌ๋ Eclipse์์ ํ๋ก์ ํธ๋ฅผ ์ค์ ํ๊ณ , Selenium๊ณผ Lombok์ ๊ฐ์ ํ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ถ๊ฐํ๋ฉฐ ๋ฉ์ธ ํด๋์ค๋ฅผ ์์ฑํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค. ์น ์๋ํ ๋ฐ ํ
์คํธ๋ฅผ ์ํ Selenium์ ๋ชฉ์ ์ ์ค๋ช
ํฉ๋๋ค. ๊ฐ์ฌ๋ ๋ชจ๋ ๊ฐ์ ธ์ค๊ธฐ์ ์ข
์์ฑ ํด๊ฒฐ์ ๋ช ๊ฐ์ง ๋ฌธ์ ๋ฅผ ๊ฒช์ต๋๋ค. Chrome ๋ธ๋ผ์ฐ์ ๋ฅผ ์คํํ๊ณ Naver ์น์ฌ์ดํธ๋ก ์ด๋ํ๊ธฐ ์ํ ์ฝ๋๋ฅผ ์์ฑํ๊ธฐ ์์ํ์ง๋ง, "ํด๋์ค๋ฅผ ์ฐพ์ ์ ์์" ์ค๋ฅ๊ฐ ๋ฐ์ํ์ฌ ์ผ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ๋๋ฝ๋๊ฑฐ๋ ํธํ๋์ง ์์ ์ ์์ต๋๋ค.
๊ด๋ จ ์๋ ์ฃผ์ ์ ๋ํ ํผ๋์ค๋ฌ์ด ๋ํ
์์ฑ ์ธ์ ์ค๋ฅ๋ก ์ธํด ๋
น์ ๋ด์ฉ์ด ๋จ์ ๋ ๋ํ๋ ๋
์ฐฝ์ ์ธ ๊ฒ์ผ๋ก ๋ณด์
๋๋ค. ๋ฐํ์๋ ๋จ์ฑ ๊ฐ์ ๋ถ, Chrome Drama, ๊ทธ๋ฆฌ๊ณ ์๋ก์ด API ๋ฑ ๋ค์ํ ๊ด๋ จ ์๋ ์ฃผ์ ๋ฅผ ์ธ๊ธํฉ๋๋ค. ๋ํ ์ผ์ ๋ฐ ์์
์๋ฃ์ ๋ํด ๋
ผ์ํ์ง๋ง ๋งฅ๋ฝ์ด ๋ถ๋ถ๋ช
ํฉ๋๋ค. ์ผ๊ด๋ ์ ๋ณด๊ฐ ๋ถ์กฑํ๊ธฐ ๋๋ฌธ์ ์ด ๊ธฐ๋ก์์ ๊ฒฐ์ , ์กฐ์ ๋๋ ํ๋ ํญ๋ชฉ์ ๋ํ ์๋ฏธ ์๋ ์์ฝ์ ์ ๊ณตํ๋ ๊ฒ์ด ์ด๋ ต์ต๋๋ค.
JavaScript๋ฅผ ์ฌ์ฉํ์ฌ ๋ธ๋ผ์ฐ์ ์์
์ ์๋ํํฉ๋๋ค.
ํ์์์ ALOHA๋ JavaScript์ DOM(Document Object Model)์ ์ฌ์ฉํ์ฌ ๋ธ๋ผ์ฐ์ ๋์์ ์๋ํํ๋ ํ๋ก์ธ์ค์ ๋ํด ๋
ผ์ํ์ต๋๋ค. ์๋ํ๋ ํ
์คํธ ์ํํธ์จ์ด๋ฅผ ์ฌ์ฉํ์ฌ ์น์ฌ์ดํธ์ ๋ก๊ทธ์ธํ๋ ๋ฐฉ๋ฒ๊ณผ ์นํ์ด์ง์ ์์๋ฅผ ์กฐ์ํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ฃผ์์ต๋๋ค. ALOHA๋ ๋ํ DOM์ ์ฌ์ฉํ์ฌ ์น ์์์ ์ํธ ์์ฉํ๋ ๊ฐ๋
๊ณผ JavaScript๋ฅผ ์ฌ์ฉํ์ฌ ์์
์ ์๋ํํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช
ํ์ต๋๋ค. ํ์ ๋ํ ์ด๋ฏธ์ง ๊ฒ์ ๋ฐ ํ์ผ ๋ค์ด๋ก๋์ ๊ฐ์ ๋ ๋ณต์กํ ๊ธฐ๋ฅ์ ๊ตฌํํ ๊ฐ๋ฅ์ฑ์ ๋
ผ์ํ์ต๋๋ค. ALOHA๋ ์ด๋ฌํ ์์
์ ์งํํ๊ธฐ ์ํด ๊ธฐ์ ์ ๊ณ์ ๋ฐฐ์ฐ๊ณ ์
๊ทธ๋ ์ด๋ ํ ๊ฒ์ด๋ผ๊ณ ์ธ๊ธํ์ต๋๋ค.
์ฝ์ํธ ํฐ์ผ ๋ฐ ๊ธฐ์ ํ ๋ก
ํ์์์๋ ๋ช
ํํ ์ด์ ์์ด ๋ค์ํ ์ฃผ์ ๋ฅผ ๋
ผ์ํฉ๋๋ค. ์ฐธ๊ฐ์๋ค์ ์ฝ์ํธ ํฐ์ผ ํ๋ณด์ ๋ํด ์ด์ผ๊ธฐํ๋ฉฐ, ๋๊ตฐ๊ฐ๋ 100๊ฐ์ ํฐ์ผ์ ํ๋ณดํ๋ผ๊ณ ์ ์ํ๊ณ ์์ฒ ๋ช
์ด ์ฝ์ํธ์ ์ฐธ์ํ๋ค๊ณ ์ธ๊ธํ์ต๋๋ค. ํฐ์ผ ๋น์ฉ๋ ๋
ผ์ํ๋ฉฐ, ํ ์ฌ๋์ด 30๋ง์์ด๋ผ๊ณ ๋งํ์ต๋๋ค. ๊ทธ ํ ๋ํ๋ ์์คํ
์ด๋ ํ๋ก๊ทธ๋จ์ ๊ธฐ์ ์ ์ธ ์ธก๋ฉด์ผ๋ก ๋์ด๊ฐ๋ฉฐ ์๋ ํ๋ก๊ทธ๋จ๊ณผ ์ค์ ํ๋ก์ธ์ค์ ๋ํด ์ธ๊ธํฉ๋๋ค. ๋ง์ง๋ง์ ๋ชจ์๊ณผ ๊ทธ๋ฆผ์ ๋ง๋๋ ๊ฒ์ ๋ํ ๊ฐ๋ตํ ํ ๋ก ์ด ์์ผ๋ฉฐ, ํ๋์๊ณผ ๊ฒ์ ์ ์ฌ์ด์ ์์ ์ ํ์ ๋ํ ๋ถํ์ค์ฑ์ด ์์ต๋๋ค.