๋์ ์ ๋ณด
๋์๋ช : ์ด๊ฒ์ด ์ทจ์ ์ ์ํ ๋ฐฑ์๋ ๊ฐ๋ฐ์ด๋ค with ์๋ฐ
์ ์: ์ด์คํ
์ ๊ฐ: 36000์
์ฑ ์๊ฐ
PART 1. ๋ฐฑ์๋ ๊ฐ๋ฐ์ ์ทจ์ , ๋ฌด์์ ์ด๋ป๊ฒ ์ค๋นํ ๊น?
์ฑํฐ 1์์๋ ํ๋ก ํธ์๋, ๋ฐฑ์๋์ ๋ํด ์ค๋ช ํ๋ฉฐ ๋ฐฑ์๋ ๊ฐ๋ฐ์๊ฐ ๋ฌด์จ ์ผ์ ํ๋์ง ์ค๋ช ํ๋ค. ์ดํ ๋ฐฑ์๋ ๊ฐ๋ฐ์์๊ฒ ํ์ํ ์ญ๋์ ๋ํด ์ค๋ช ํ๋ค.
๋ํ IT ๊ธฐ์ ์ฑ์ฉ ๊ณผ์ ์ ๋ํด ์์ธํ ์ค๋ช ํ๋ฉฐ ์๋ฅ์ ํ, ์ฝ๋ฉํ ์คํธ์ ๊ณผ์ ํ ์คํธ, ๋ฉด์ ๋ฑ์ ๋ชฉ์ ๊ณผ ์ค๋น๊ณผ์ ์ ๋ํด ์ค๋ช ํ๋ค.
PART 2. ๋ฐฑ์๋ ๊ฐ๋ฐ์ ์ํ ํ์ ๊ธฐ๋ณธ ์ง์
์ฑํฐ 2์์๋ ์๋ฐ, ์ปดํจํฐ ๋คํธ์ํฌ, HTML, ์๋ฐ์คํฌ๋ฆฝํธ์ ๋ํ ๋ด์ฉ์ ๋ค๋ฃฌ๋ค. ์ฑ ์ด ๋๊บผ์ด ๋งํผ IDE ์ค์น๋ถํฐ ์์ํ๋ ํ๊ฒฝ ์ค์ ์ ๋ํด์๋ ์์ธํ ์ค๋ช ๋์ด ์๋ค.
๋จ์ ๊ฐ๋ ๋ง ์ค๋ช ํ๋ ๊ฒ์ด ์๋๋ผ ์ค๊ฐ์ค๊ฐ ๊ฐ๋จํ ํ๋ก๊ทธ๋จ์ ์ง๋ณด๊ธฐ๋ ํ๊ธฐ ๋๋ฌธ์ ์ฒ์ ์์ํ๋ ์ฌ๋๋ ํฅ๋ฏธ๋ฅผ ๊ฐ์ง๊ณ ๋ฐ๋ผ๊ฐ ์ ์์ ๊ฒ ๊ฐ๋ค.
์ด์ ์ ์์ฑํ ์ฝ๋์์ ๋ฐ๋๊ฑฐ๋ ์ถ๊ฐ๋ ๋ถ๋ถ์ ๊ตต๊ฒ ํ์ํ๋ฉฐ ๋ฐ๋ณต์ ์ผ๋ก ๋ณด์ฌ์ฃผ๊ธฐ ๋๋ฌธ์ ์ฑ ๋ง ๋ณด๊ณ ๋ ์ฝ๊ฒ ๋ฐ๋ผํ ์ ์๋ค. ํ์ฌ ์ฝ๋์ ์ํฉ์ ๊ทธ๋ฆผ์ผ๋ก ํํํด์ฃผ๊ธฐ ๋๋ฌธ์ ๊ฐ๋ ์ฑ๋ ์๋นํ ์ข์ ํธ์ด๋ค.
PART 3. ๊ณผ์ ํ ์คํธ๋ฅผ ์ํ ๋ฐฑ์๋ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐํ๊ธฐ
์ฑํฐ 3์์๋ ์ํ ๊ด๋ฆฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ง์ ๋ง๋ค์ด๋ณธ๋ค. ๋จผ์ ์๋์ ๊ฐ์ด ์๊ตฌ์ฌํญ์ ์ ์ํ๊ณ , ์๊ตฌ์ฌํญ์ ํ๋์ฉ ๋ถ์ํ๋ฉฐ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ์ ์ํ๊ณ ํ๋ก์ ํธ์ ๊ตฌ์กฐ๋ฅผ ์ก์๋๊ฐ๋ค. ํ์ ์๊ฐ ์ด๋ป๊ฒ ์ฌ๊ณ ํ๊ณ ์๊ตฌ์ฌํญ์ ํด๊ฒฐํด๋๊ฐ๋์ง ๋ฐฐ์ธ ์ ์๋ค.
์ฑ ์์ ๊ฐ์ฅ ๋ง์์ ๋ค์๋ ๋ถ๋ถ์ ๊ธฐ์ ๋ฉด์ TIP๋ถ๋ถ์ด๋ค. ํ ์ฑํฐ๊ฐ ๋๋ ๋ ๋ง๋ค ํด๋น ์ฑํฐ์ ๊ด๋ จ๋์ด ๋์ฌ ์ ์๋ ๊ธฐ์ ๋ฉด์ ์ง๋ฌธ๊ณผ ๊ทธ์ ๋ํ ํด์ค์ ์ ๊ณตํ๋ค. ๋จ์ CS ์ง์์ ์ธ์ฐ๋ ๊ฒ์ด ์๋๋ผ ํ๋ก์ ํธ์ ๊ด๋ จ๋์ด ์๋ ๊ฐ๋ ์ ์ ์ํ๊ธฐ ๋๋ฌธ์ ์ ๊ธฐ์ ์ผ๋ก ๋ด์ฉ์ ํ์ตํ ์ ์๋ค.
์ง๋ฌธ๊ณผ ๋ต๋ณ ์์๋ ์๋์ ๊ฐ๋ค. ํด๋น ์ฑํฐ์์ ์ค๋ ๋ ์ธ์ดํํ ์ปฌ๋ ์ ์ธ CopyOnWriteArrayList๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ๋์จ ์ง๋ฌธ์ด๋ค.
Q. ์ค๋ ๋ ์ธ์ดํํ๋ค.(Thread Safety)๋ผ๋ ๋ง์ ์ด๋ค ์๋ฏธ์ธ์ง ์ค๋ช ํด๋ณด์ธ์.
A. ‘์ค๋ ๋ ์ธ์ดํํ๋ค’๋ผ๋ ๊ฒ์ ์ฃผ๋ก ์ด๋ค ์ฝ๋๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ๋ฉํฐ ์ค๋ ๋ ํ๊ฒฝ์์ ์ ์ ํ ๋๊ธฐํ๋ฅผ ์ฒ๋ฆฌํด ์ ์์ ์ธ ๋์์ ๋ณด์ฅํ๋์ง๋ฅผ ์๋ฏธํฉ๋๋ค. ๋ง์ฝ ์ค๋ ๋ ์ธ์ดํํ์ง ์๋ค๋ฉด ‘๋ ์ด์ค ์ปจ๋์ ’๊ณผ ๊ฐ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๊ณ ๋ฐ์ดํฐ๊ฐ ๋ถ์ผ์นํ ์ํ์ด ์์ต๋๋ค.
์ปฌ๋ ์ ์ค ์ค๋ ๋ ์ธ์ดํํ ์๋ฃํ์ธ Vector์ ์ค๋ ๋ ์ธ์ดํํ์ง ์์ ์๋ฃํ์ธ ArrayList๊ฐ ๋ํ์ ์ ๋๋ค. ๊ทธ๋ผ ‘ํญ์ ์ค๋ ๋ ์ธ์ดํํ ์ปฌ๋ ์ ์ ์ฌ์ฉํด์ผ ํ๋๊ฐ’ํ๋ ๋ฌธ์ ๊ฐ ์๋๋ฐ์. ๊ทธ๊ฒ์ ํด๋น ์ปฌ๋ ์ ์ธ์คํด์ค์ ๋์์ ์ฌ๋ฌ ๊ฐ์ ์ค๋ ๋๊ฐ ์ ๊ทผํ ์ ์๋์ง์ ๋ฐ๋ผ ๋ฌ๋ผ์ ธ์ผ ํฉ๋๋ค. ๋๊ธฐํ๋ผ๋ ๊ฒ์ ๊ฒฐ๊ตญ ‘๋ฝ(Lock)’ ๊ฐ์ ๋๊ธฐํ ๋งค์ปค๋์ฆ์ ์ฌ์ฉํ์ฌ ์ฑ๋ฅ์ ํฌ์ํ๊ฒ ๋๋๋ฐ, ๋๊ธฐํ๊ฐ ํ์ํ์ง ์์ ๊ณณ์ ์ค๋ ๋ ์ธ์ดํํ ์๋ฃํ์ ์ฌ์ฉํ๋ฉด ์ฑ๋ฅ์ ์ํด๋ฅผ ๋ณด๊ฒ ๋๊ธฐ ๋๋ฌธ์ ๋๋ค. ArrayList๊ฐ ์ฌ์ฉ๋๋ ํ๊ฒฝ์ ๋ณดํต ๋จ์ผ ์ค๋ ๋๊ฐ ์ ๊ทผํ์ฌ ์ปฌ๋ ์ ์ ๋ค๋ฃจ๋ ์ํฉ์ด ๋ง๊ธฐ ๋๋ฌธ์ ์ค๋ ๋ ์ธ์ดํํ์ง ์์๋ ๋ฌธ์ ๊ฐ ๋์ง ์๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค.
์ด๋ ๊ฒ ์ฑํฐ ๋น ๊ธฐ์ ์ง๋ฌธ 4~5๊ฐ์ ๊ทธ์ ๋ํ ๋ชจ๋ฒ๋ต์์ ์ ์ํ๋ค. ํ๋ก์ ํธ์ ๊ด๋ จ๋์ด ๋์ฌ ์ ์๋ ์ง๋ฌธ์ด ์ค๋น๋์ด ์๋ค๋ ๊ฒ์ด ์ด ์ฑ ์ ํฐ ์ฅ์ ์ด๋ค.
์์ ์ค๋ ๋ ์ธ์ดํํ ์ปฌ๋ ์ ์ ์ฌ์ฉํ๋ฏ์ด ๋จ์ํ ๊ธฐ๋ฅ๋ง ๊ตฌํํ๋ ๊ฒ์ด ์๋, ํ์ ์์ ์๊ฐ์์ ์์ ์ฑ, ํด๋ฆฐ์ฝ๋ ๋ฑ ๋ค์ํ ๊ฒ๋ค์ ๊ณ ๋ คํ์ฌ ์ฝ๋๋ฅผ ์์ฑํ๋ค. ๋ํ ๋ง์ง๋ง์ ๋ฆฌํฉํ ๋ง๊ณผ ํ ์คํธ์ฝ๋ ์์ฑ๊น์ง ์งํํ๋ฉฐ ์ฑํฐ๊ฐ ๋ง๋ฌด๋ฆฌ ๋๋ค. ์ฑ ํ ๊ถ์ผ๋ก ์ ์์ ์ธ ํ๋ก์ ํธ๋ฅผ ์งํํ ์ ์๋ค.
๊ฒฝํ์ ์ฒ์ ํ๋ก์ ํธ๋ฅผ ์งํํ ๋์๋ ๋์๊ฐ๋ ์ฝ๋๋ฅผ ์์ฑํ๊ฒ ๋๋ค. ํ์ ์ญ์ ์ฒ์ ํ๋ก์ ํธ๋ฅผ ์งํํ ๋์๋ ํ ์คํธ์ฝ๋์ ์กด์ฌ์กฐ์ฐจ ๋ชฐ๋๋ค. ๊ธฐ๋ฅ๊ตฌํ๋ถํฐ ๋ฆฌํฉํ ๋ง๊น์ง, ํ๋ก์ ํธ์ ์ ์ฒด์ ์ธ ๊ณผ์ ์ ๊ฒฝํํ ์ ์๋ค๋ ๊ฒ์ด ์ข์ ๊ฒ ๊ฐ๋ค.
PART 4. ์ค์ ๊ณผ์ ํ ์คํธ ๋ฌธ์
๋ง์ง๋ง ์ฑํฐ์์๋ 2๊ฐ์ ๋ชจ์ ๊ณผ์ ํ ์คํธ๊ฐ ์ ์๋๋ค.
์ฒซ ๋ฒ์งธ ๊ณผ์ ๋ ๋จ์ถ URL ์๋น์ค ๊ณผ์ ํ ์คํธ๋ก ์๊ตฌ์ฌํญ์ด ์ ๋ฆฌ๋ README.md๋ฅผ ์ ๊ณตํ๋ค.
๋ ๋ฒ์งธ ๊ณผ์ ๋ ์ฃผ๋ฌธ ๊ด๋ฆฌ API ์๋ฒ ๊ฐ๋ฐ์ด๋ค. ๊นํ๋ธ์ ์ค์ผ๋ ํค ์ฝ๋๊ฐ ์ฌ๋ผ๊ฐ์๊ณ ์ด๋ฅผ ํด๋ก ๋ฐ์ ์งํํ๋๋ก ํ๋ค.
๋ ๊ณผ์ ๋ชจ๋ ์๊ตฌ์ฌํญ ๋ถ์๋ถํฐ ํ ์คํธ์ฝ๋ ์์ฑ๊น์ง, ํด์ค์ด ์์ธํ๊ฒ ์์ฑ๋์ด ์๋ค. ์์ ์ฑํฐ์์ ๋ฐฐ์ด ๋ด์ฉ์ ์ฌ์ฉํด ๋ณผ ์ ์๋ ๋ถ๋ถ์ด๋ค. ๋ ๊ณผ์ ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋์ฌ ์ ์๋ ๋ฉด์ ์ง๋ฌธ๊ณผ ๋ต๋ณ ์์๋ฅผ ์ ๊ณตํ๋ค.
์ง๋ฌธ๊ณผ ๋ต๋ณ ์์๋ ์๋์ ๊ฐ๋ค.
Q. ๋จ์ถ URL ์์ฑ์ ์ Base56 ๋ฌธ์์ด์ ์ฌ์ฉํ๋์?
A. 16์ง์๋ก๋ ๊ณ ๋ฏผํด๋ดค์ง๋ง ๊ฒฝ์ฐ์ ์๊ฐ ๋๋ฌด ์ ์ด์ ์ ํํ์ง ์์๊ณ , Base62๋ Base58์๋ ์ฌ๋์ด ์ฝ๊ธฐ ์ด๋ ค์ด ๋ฌธ์๊ฐ ์์ฌ ์์ด์ ์ ํํ์ง ์์์ต๋๋ค. bitly์์ ๋จ์ถ URL๋ก ์ ๊ณต๋๋ ๋ฌธ์์ด์ ๋ถ์ํด ๊ด๋ จ ์ํฐํด์ ๊ฒ์ํด ๋ดค์ต๋๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก ๋์ผํ ๊ธธ์ด๋ผ๋ฉด Base56์ด ๋ง์ ๊ฒฝ์ฐ์ ์๋ฅผ ๋ง๋ค ์ ์๊ณ , ์ฝ๊ธฐ ํธํ๊ธฐ ๋๋ฌธ์ ์ ํํ์ต๋๋ค.
์ดํ
์ฑ ์ด ๋๊บผ์ด ๋งํผ ์๋ฐ ๊ธฐ๋ณธ ๋ฌธ๋ฒ, ์ปดํจํฐ ๋คํธ์ํฌ ์ง์, HTML, JavaScript ๋ฑ์ ์๋ ค์ฃผ๊ณ ์์ํ๊ธฐ ๋๋ฌธ์ ์ด์ฌ์๊ฐ ์ฝ๊ธฐ์๋ ๊ด์ฐฎ๋ค๋ ์๊ฐ์ด ๋ค์๋ค. ํ๋ก์ ํธ ๊ฒฝํ ์ ๋ฌด์ ๊ด๊ณ ์์ด ๊ฐ๋ฐ์๋ผ๋ฉด ํ๋ฒ์ฏค์ ์ฝ๊ธฐ ์ข์ ์ฑ ์ด๋ผ๋ ์๊ฐ์ด ๋ ๋ค.
๊ฐ๋ฐํ๊ฒฝ ์ธํ ๋ฑ๋ ์ด๋ ต์ง ์๊ณ ์ฑ ์์ ์ํค๋๋๋ก ํ๋ฉด ๊ฐ๋จํ๊ฒ ๋ฐ๋ผํ ์ ์๋ค. ๋ ๊ธฐ์ ๋ฉด์ ์ ์ค๋นํ ์ ์๋ ํํธ๋ ์์ด์ ์ทจ์ ์ ์ค๋นํ๋ ๋ฐฑ์๋ ๊ฐ๋ฐ์๋ผ๋ฉด ๋๊ณ ๋๊ณ ๊บผ๋ด์ฝ๊ฒ ๋์ง ์์๊น ์ถ๋ค.
์ถ๊ฐ ์๋ฃ
์ฑ ๋์์ ๊ฐ์
https://www.youtube.com/playlist?list=PLVsNizTWUw7FBMFX9pezh5Gxg5AtNmoMv
ํ๋น ์ถํ ๋คํธ์ํฌ ๊ณต์ ์ฑ ์๊ฐ ๋งํฌ
https://www.hanbit.co.kr/store/books/look.php?p_code=B9912985019
ํ๋น๋ฏธ๋์ด ์ํ๋จ <๋๋๋ฆฌ๋ทฐ์ด๋ค> ํ๋์ ์ํด์ ์ฑ ์ ์ ๊ณต ๋ฐ์ ์์ฑ๋ ์ํ์ ๋๋ค.
'๋์ธํ๋ > ํ๋น๋ฏธ๋์ด๋ฆฌ๋ทฐ์ด' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋์ ๋ฆฌ๋ทฐ] ์ด๊ฒ์ด ์ทจ์ ์ ์ํ ์ปดํจํฐ ๊ณผํ์ด๋ค with CS ๊ธฐ์ ๋ฉด์ (1) | 2024.09.29 |
---|---|
[๋์ ๋ฆฌ๋ทฐ] ์ค์ ๋ ๋์ค (1) | 2024.06.23 |
[๋์๋ฆฌ๋ทฐ] ์ผํธ ๋ฒก์ Tidy First? (0) | 2024.05.26 |
[๋์ ๋ฆฌ๋ทฐ] ๊ฐ๋ฐ์ ๊ธฐ์ ๋ฉด์ ๋ ธํธ (0) | 2024.04.27 |
๋๊ธ