
CD ? Continuous Deployment, ์ง์์ ๋ฐฐํฌ๋ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ ๋ฐ ๋ฐฐํฌ ๊ณผ์ ์์ ์ฌ์ฉ๋๋ ๋ฐฉ์์ด๋ค. ์ฝ๋์ ๋ณ๊ฒฝ์ด ๋ฐ์ํ์๋, ์๋์ ์ผ๋ก ์ ํ๋ฆฌ์ผ์ด์ ์ ๋น๋ํ๊ณ ํ ์คํธํ์ฌ ์ด์ํ๊ฒฝ์ ๋ฐฐํฌํ๋ค. ์ง์์ ๋ฐฐํฌ๋ฅผ ๊ตฌํํ๊ธฐ ์ํด์ ์ฌ๋ฌ๊ฐ์ง ๋๊ตฌ์ ํ๋ก์ธ์ค๊ฐ ํ์ํ๋ฐ, ์๋ฅผ๋ค์ด ์ฝ๋ ๋ณ๊ฒฝ์ฌํญ์ ๋ฒ์ ๊ด๋ฆฌ ์์คํ ์ ์ปค๋ฐํ๋ฉด ํด๋น ์ฝ๋๋ฅผ ์๋์ผ๋ก ๋น๋ํ๊ณ , ํ ์คํธ๋ฅผ ์คํํ๊ณ , ๋น๋ ๊ฒฐ๊ณผ๋ฌผ์ ์ด์ํ๊ฒฝ์ ๋ฐฐํฌํ๋ CI / CD ํ์ดํ๋ผ์ธ์ด ๊ตฌ์ฑ๋๋ค. ์ง์์ ๋ฐฐํฌ๋ฅผ ํตํด ๊ฐ๋ฐ ๋ฐ ์ด์ํ๊ฐ์ ์ํต๊ณผ ํ์ ์ ํฅ์ ์ํฌ์์๋ค. ๊ฐ๋ฐํ์ ๋๋น ๋ฅด๊ณ ์์ ์ ์ธ ๋ฐฐํฌ๊ฐ ๊ฐ๋ฅํ๊ณ ์ฌ์ฉ์์ ์๊ตฌ์ฌํญ์ ๋น ๋ฅด๊ฒ ๋์์ด ๊ฐ๋ฅํ๋ค. ์ง์์ ๋ฐฐํฌ ๋ฐฉ์์ ์ ํ๋ฆฌ์ผ์ด์ ๋ฐฐํฌ ์ฃผ๊ธฐ๋ฅผ ๋จ์ถํ๊ณ , ๋ฒ๊ทธ๋ฅผ ๋น ๋ฅด๊ฒ ์์ ํ ์์๊ฒ ๋์์ค๋ค. ํ์ง..

CI ? CI๋ ์ง์์ ํตํฉ์ด๋ผ๋ ๋ป์, ๊ฐ๋ฐ ํ๋ก์ธ์ค์ด๋ค. ์ง์์ ํตํฉ์ ์๋น์ค ์ ๋ฌ์ ์์ ์ ํ๋์ด์ผ ํ๋ ๊ณผ์ ์ด๊ณ ์ฌ๋์ ์ค์๋ฅผ ์ค์ด๋ ์๋ํ ๊ณผ์ ์ด๋ค. ์ฆ ์ฝ๋๋ฅผ ์๋์ผ๋ก ๋น๋ํ๊ณ ํ ์คํธ๋ฅผ ์ํํ๋ ํ๋ก์ธ์ค๋ก ๋งค์ฐ ์ค์ํ ๊ฐ๋ฐ ๋ฐฉ๋ฒ๋ก ์ค ํ๋์ด๋ค. ๊ฐ๋ฐ์๋ค์ ์ค์๋ฅผ ์ค์ฌ์ ์ฝ๋ ํ์ง์ด ํฅ์๋๋ค. ๋ฌธ์ ๊ฐ ์๊ฒผ์๋ ๋น ๋ฅธ ํผ๋๋ฐฑ์ ๋ฐ๋๋ค. ๋น๋ ๋ฐ ํ ์คํธ๋ฅผ ์๋ํํ์ฌ, ๊ฐ๋ฐ์๊ฐ ์ค์ ๊ฐ๋ฐ์ ์ง์ค์ด ๊ฐ๋ฅํ๋ค. Build ๋น๋ ๋ ์์ค์ฝ๋ ํ์ผ์ ์ปดํจํฐ๊ฐ ์ดํดํ ์์๊ฒ ๋ณํํ๋ ๊ณผ์ ์ ๋งํ๋ค. ์ด๋ฌํ ๊ฒฐ๊ณผ๋ฌผ์ Artifact(์ํฐํฉํธ) ๋ผ๊ณ ๋ถ๋ฅด๊ณ ๋ฐ์ด๋๋ฆฌํ์ผ, ๋ผ์ด๋ธ๋ฌ๋ฆฌ, ํจํค์ง ํํ๋ก ์ ๊ณต๋๋ค. ๋น๋๊ณผ์ ์ ๋งค์ฐ ๋ณต์กํ๊ณ ๋ฒ๊ฑฐ๋ก์ด๋ฐ ์๋์ผ๋ก ์ด๋ฅผ ์ฒ๋ฆฌํ๊ฒ๋๋ฉด ์ค๋๊ฑธ๋ฆฌ๊ณ ์ฌ๋์ด ์ง์ ํ๋ค๋ณด๋ ์ค์์ ๊ฐ๋ฅ์ฑ์ด ๋..

๋ถํธ์คํธ๋ํ์ ์ด์ pull oneself up by one's bootstraps "์์ ์ ๋ถํธ์คํธ๋ฉ์ผ๋ก ์์ ์ ๋์ด์ฌ๋ฆฌ๋ค" ์ด๊ฒ์ 18, 19์ธ๊ธฐ์ ๋ฏธ๊ตญ์์ ์ฌ์ฉ๋๋ ๋ฌธ๊ตฌ์ด๋ค. ๋น์์๋ ํฐ๋ฌด๋ ์๊ฑฐ๋ ๋ถ๊ฐ๋ฅํ ์์ ์ ์๋ํ๊ฑฐ๋ ์ฃผ์ฅํจ์ ์์ํ๋๋ฐ ์ฌ์ฉ๋์๋๋ฐ, 20์ธ๊ธฐ์ด๋ถํฐ ์ธ๋ถ์ ๋์์์ด ๋ฌด์ธ๊ฐ๋ฅผ ์์ํ๊ฑฐ๋ ์ข์ ์์ ๋ณต๊ตฌํ๋ค, ์์ ์ ๋ ธ๋ ฅ์ด๋ ๋ฅ๋ ฅ๋ง์ผ๋ก ์ฑ๊ณตํ๋ค๋ ๋ป์ผ๋ก ์ฌ์ฉ๋์๋ค. ์ฆ ๋ฌด์์ ์ ๋ฅผ ์ฐฝ์กฐํ๋ ๋์ ์ผ๋ก ๋ฐ์๋ค์ด๋ฉด ๋๋ค. ๋ถํธ์คํธ๋ํ๊ณผ ์ปดํจํฐ ๊ณผํ ๋ณธ๋ฌธ์ ๋ค์ด๊ฐ๊ธฐ ์์, ์ปดํ์ผ๋ฌ์ ๋ํ ์ฌ์ ์ง์์ด ํ์ํ๋ค. ๋ค์ ๋งํฌ๋ ์ปดํ์ผ๋ฌ์ ์ํค ์ฃผ์์ด๋ฏ๋ก ์๋ชจ๋ฅธ๋ค๋ฉด ํ๋ฒ ์ฝ์ด๋ณด์. ์ปดํ์ผ๋ฌ - ๋๋ฌด์ํค ์ด ์ ์๋ฌผ์ CC BY-NC-SA 2.0 KR์ ๋ฐ๋ผ ์ด์ฉํ ์ ์์ต๋๋ค. (๋จ, ๋ผ์ด์ ์ค๊ฐ ..

๋์์ธํจํด์ด๋? ๋์์ธ ํจํด์ ๊ฐ ๋ชจ๋์ ์ธ๋ถํ๋ ์ญํ ์ด๋ ๋ชจ๋๋ค๊ฐ์ ์ธํฐํ์ด์ค์ ๊ฐ์ ์ฝ๋๋ฅผ ์์ฑํ๋ ์์ค์ ์ธ๋ถ์ ์ธ ๊ตฌํ ๋ฐฉ์์ ์ค๊ณํ ๋ ์ฐธ์กฐํ ์์๋ ์ ํ์ ์ธ ํด๊ฒฐ๋ฐฉ์ / ์์ ๋ฅผ ์๋ฏธํ๋ค. ๋์์ธํจํด์ ๋ฌธ์ ๋ฐ ๋ฐฐ๊ฒฝ, ์ค์ ์ ์ฉ๋ ์ฌ๋ก, ์ฌ์ฌ์ฉ์ด ๊ฐ๋ฅํ ์ํ ์ฝ๋ ๋ฑ์ผ๋ก ๊ตฌ์ฑ๋๋ค. Don't reinvent the wheel ! (๋ฐํด๋ฅผ ๋ค์ ๋ฐ๋ช ํ์ง๋ง๋ผ) ๋ผ๋ ๋ง๊ณผ ๊ฐ์ด, ๊ฐ๋ฐ ๊ณผ์ ์ค์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ฉด ์๋ก ํด๊ฒฐ์ฑ ์ ๊ตฌ์ํ๋ ๊ฒ๋ณด๋ค ๋ฌธ์ ์ ํด๋นํ๋ ๋์์ธ ํจํด์ ์ฐธ๊ณ ํ์ฌ ์ ์ฉํ๋ ๊ฒ์ด ๋ ํจ์จ์ ์ด๋ค. GoF๋์์ธํจํด? ๋ฐฐ๊ฒฝ ๋ ผ๋ฌธ "Using Pattern Languages for Object-Oriented Programs" (1987)์ ํตํด ์ ์๋์๋ค. ์ดํ์ 23๊ฐ์ ํจํด์ ์๋กํ 'GoF'(..
ํ์ดํธ๋ฐ์ค ํ ์คํธ(Whitebox Test) ํ์ดํธ ๋ฐ์ค ํ ์คํธ๋ ๋ชจ๋์ ์์ ์ฝ๋๋ฅผ ์คํ์ํจ ์ํ์์ ์์์ฝ์ฆ์ ๋ ผ๋ฆฌ์ ์ธ ๋ชจ๋ ๊ฒฝ๋ก๋ฅผ ํ ์คํธํ์ฌ ํ ์คํธ์ผ์ด์ค๋ฅผ ์ค๊ณํ๋ ๋ฐฉ๋ฒ์ด๋ค. - ๋ชจ๋์ ์๋์ ์ง์ ๊ด์ฐฐ - ์์ ์ฝ๋(๋ชจ๋)์ ๋ชจ๋ ๋ฌธ์ฅ์ ํ๋ฒ์ด์ ์คํ - ํ๋ก๊ทธ๋จ์ ์ ์ด๊ตฌ์กฐ์ ๋ฐ๋ผ ์ ํ, ๋ฐ๋ณต ๋ฑ์ ๋ถ๊ธฐ์ ์ ์ํํ์ฌ ๋ ผ๋ฆฌ์ ์ธ ๊ฒฝ๋ก๋ฅผ ์ ์ด 1. ํ์ดํธ๋ฐ์ค ํ ์คํธ์ ์ข ๋ฅ ๊ธฐ์ด๊ฒฝ๋ก๊ฒ์ฌ Base Path Testing 1. ๋ํ์ ์ธ ํ์ดํธ๋ฐ์ค ํ ์คํธ ๊ธฐ๋ฒ 2. ํ ์คํธ ์ผ์ด์ค ์ค๊ณ์๊ฐ ์ ์ฐจ์ ์ค๊ณ์ ๋ ผ๋ฆฌ์ ์ธ ๋ณต์ก์ฑ์ ์ธก์ ํ ์์๊ฒ ํด์ฃผ๋ ํ ์คํธ ๊ธฐ๋ฒ 3. ํ ์คํธ์ ์ธก์ ๊ฒฐ๊ณผ๋ ์คํ๊ฒฝ๋ก์ ๊ธฐ์ด๋ฅผ ์ ์ํ๋๋ฐ ์ง์นจ์ผ๋ก ์ฌ์ฉ๋จ ์กฐ๊ฑด๊ฒ์ฌ Condition Testing ํ๋ก๊ทธ๋จ ๋ชจ๋ ๋ด์ ์๋ ๋ ผ๋ฆฌ์ ์ธ ์กฐ๊ฑด์ ํ ์คํธํ..
์ฝ๋์ค๋ฅ์ ๋ถ๋ฅ๋ฅผ ํ๋ฉด ๋ค์๊ณผ ๊ฐ๋ค. โ ์๋ต ์ค๋ฅ(Omission error) ์ ๋ ฅ์ ํ์๋ฆฌ๋ฅผ ๋นผ๋๊ณ ๊ธฐ๋กํ ๊ฒฝ์ฐ (1234 -> 123) โ ํ์ฌ ์ค๋ฅ , ์ฌ๋ณธ ์ค๋ฅ(Transcription error) ์ ๋ ฅ์ ์์์ ํ์๋ฆฌ๋ฅผ ์๋ชป ๊ธฐ๋กํ ๊ฒฝ์ฐ ( 1234 -> 1235) โ ์ ์ ์ค๋ฅ(Transposition error) ์ ๋ ฅ์ ์ข์ฐ์๋ฆฌ๋ฅผ ๋ฐ๊พธ์ด ๊ธฐ๋กํ ๊ฒฝ์ฐ (1234 -> 1243) โ ์ด์ค ์ค๋ฅ(Double Transposition error) ์ ์์ค๋ฅ๊ฐ ๋๊ฐ์ง ์ด์ ๋ฐ์ํ ๊ฒฝ์ฐ (1234 -> 2143) โ ์ถ๊ฐ ์ค๋ฅ(Addition error) ์ ๋ ฅ์ ํ์๋ฆฌ ์ถ๊ฐ๋ก ๊ธฐ๋กํ ๊ฒฝ์ฐ (1234 -> 12345) โ ์์ ์ค๋ฅ(Random error) ์์ ์ค๋ฅ๊ฐ ๋๊ฐ์ง ์ด์ ๊ฒฐํฉํ์ฌ ๋ฐ์ํ ๊ฒฝ์ฐ ..

์๋ฏธ์ฃผ์์ง์ ๋ฐฉ์ ์ฆ์น์ฃผ์์ง์ ๋ฐฉ์ ์ง์ ์ฃผ์์ง์ ๋ฐฉ์ ๊ฐ์ ์ฃผ์์ง์ ๋ฐฉ์ ๋ ์ง์คํฐ์ฃผ์์ง์ ๋ฐฉ์ ๋ ์ง์คํฐ๊ฐ์ ์ฃผ์์ง์ ๋ฐฉ์ ์๋ ์ฃผ์ ์ง์ ๋ฐฉ์ (Relative Address Mode) Program Counter (PC) ๊ฐ์ ๋ช ๋ น์ด์ ์ฃผ์ ํ๋์ ๊ฐ์ ๋ํด์ ์ ํจ์ฃผ์๋ฅผ ๊ตฌํ๋ฉฐ, ๋ถ๊ธฐ ๋ช ๋ น์ด ๊ทผ์ฒ์ ๋ถ๊ธฐ๋ ์์น๊ฐ ์๋ ๊ฒฝ์ฐ ํํ ์ฌ์ฉ๋๋ค. - ์ง์ ๋ฐ์ดํฐ์ ์ ๊ทผํ ์ ์๋ค. - ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ ์ ์๋ค. - ์ฃผ์์ ๋ณ์๋ฅผ ๋ํด์ผ๋ง ํ๋ค. - ์๋์ฃผ์์ง์ ๋ฐฅ๋ฒ์ ๊ณ์ฐ์ ์ํ ์ฃผ์์ง์ ๋ฐฉ๋ฒ์ด๋ค. ๋ฐ๋ผ์ ์ง์ ์ฃผ์์ง์ ๋ฐฉ๋ฒ์ ๋นํ๋ฉด ์ดํดํ๊ธฐ๊ฐ ์ด๋ ต๋ค. ์ ์ฒด ๊ธฐ์ต์ฅ์น ์ฃผ์๊ฐ ๋ช ๋ น์ด์ ํฌํจ๋์ด์ผ ํ๋ ์ผ๋ฐ์ ์ธ ๋ถ๊ธฐ ๋ช ๋ น์ด๋ณด๋ค ์ ์ ์์ ๋นํธ๋ง ์์ผ๋ฉด ๋๋ ๊ฒ์ด ์ฅ์ ์ด๋ค. ์ธ๋ฑ์ค ์ฃผ์ ์ง์ ๋ฐฉ์ (Indexed Addre..
[root@localhost ~]# cd /etc/sysconfig/network-scripts/ [root@localhost ~]# vi ifcfg-eth0 ์ค์น ๊ณผ์ ์์ ๋ณ๋ค๋ฅธ ๋คํธ์ํฌ๋ฅผ ๊ตฌ์ฑํ์ง ์์๋ค๋ฉด DEVICE=eth0 HWADDR=??:??:??:??:??:?? TYPE=Ethernet UUID=?????-…. ONBOOT=no NM_CONTROLLED=yes BOOTPROTO=dhcp ์์ ๋น์ทํ ๊ตฌ์ฑ์ผ ๊ฒ์ด๋ค. ์ฅ๋น๋ง๋ค, OS๋ฒ์ ๋ง๋ค ์กฐ๊ธ์ฉ ๋ค๋ฅผ ์ ์๋ค. ์์ ONBOOT=yes OS๊ฐ ๋ถํ ๋ ๋ ์๋์ผ๋ก ๋คํธ์ํฌ๋ฅผ ํ์ฑํ ์ํฌ ๊ฒ์ธ์ง์ ๋ํ ์ฌ๋ถ BOOTPROTO=static IP๋ฅผ dhcp๋ก ํ ๊ฒ์ธ์ง, ์๋์ผ๋ก ํ ๊ฒ์ธ์ง์ ๋ํ ์ฌ๋ถ ์ด๋ ํ๊ฒฝ์ ๋ฐ๋ผ์ dhcp๋ก ์ฌ์ฉํ ์๋ ์์ง๋ง ..
์ฐ๋ถํฌ์์ Web ์๋ฒ ์ค์นํ๋ ๋ฐฉ๋ฒ์ ๋ง์ ํฌ์คํ ์ด ์์ด, ๊ฐ๊ฐ์ ๊ฐ๋ ๋ณด๋ค๋ package ์ค์น์ ํ์ํ ๋ฉ๋ชจ ์ ๋๋ก ํ์ฉํ๊ณ ์ ํ๋ค. ์ค์น ๋๊ธฐ๋ REST API๋ฅผ ์ฌ์ฉํ๋ค๋ณด๋ฉด ๊ตฌ๊ธ ์๋ฒ์์ redirect URL์ ์ค์ ํด์ผ ํ๊ณ ์ด ๊ฒฝ์ฐ http://localhost๊ฐ ๋์์ ํ ์ ์๋๋ก Web server (apache2์ tomcat9)๋ฅผ ์ค์นํด์ผ ํ๋ค. 1. java ์ค์น ํ์ธ $ java --version openjdk 14.0.1 2020-04-14 OpenJDK Runtime Environment (build 14.0.1+7-Ubuntu-1ubuntu1) OpenJDK 64-Bit Server VM (build 14.0.1+7-Ubuntu-1ubuntu1, mixed mode, sha..
์ด ๊ธ์ nodejs ์ค์น์์ ๋ฐ์๋ ์๋ฌ์ ๋๋ค. E: Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporarily unavailable) E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it? ์ ์๋ฌ๋ฅผ ์๋์ ๊ฐ์ด ํด๊ฒฐํ์ต๋๋ค. ์ฐ์ ํฐ๋ฏธ๋ ์ฌ์๊ณ ๋ชจ๋ ํ๋ก์ธ์ค๋ฅผ ์ฃฝ์ฌ์ค๋๋ค~! 1) sudo killall apt apt-get ๋ง์ผ ์งํ์ค์ธ ํ๋ก์ธ์ค๊ฐ ์๋ค๋ผ๊ณ ๋จ๋ฉด, ์๋์ ๊ฐ์ด ํ๋ํ๋์ฉ ๋๋ ํ ๋ฆฌ๋ฅผ ์ญ์ ํด์ฃผ์ธ์. - sudo rm /var/lib/apt/lists/lock - sudo rm..