๋ถ๋ฅ:ํ๋ก๊ทธ๋๋ฐ
์ด ๋ฌธ์์ ์๋ณธ์ ์ธ๋ถ ์ํค์์ ๊ฐ์ ธ์์ต๋๋ค.
1. ๊ฐ์[ํธ์ง]
์ํผํ ๋์ฑ๋
์์ ๋์ ํ๋ก๊ทธ๋๋จธ๋ค์๊ฒ ํ์ ์ ๋น์์๊ฑฐ๋ฆฌ๊ฐ ๋ ๋ช
์ฅ๋ฉด(?)์ด๋ค.
์ํ์ฝ๋ฉ์์๋ ์ธ๊ธฐ(?)๋ฅผ ๋์๋ค.
์ํ์ฝ๋ฉ์์๋ ์ธ๊ธฐ(?)๋ฅผ ๋์๋ค.
์ฐจ์ ์ฐ(๋ฐฐ์ฐ ์ฃผ์์ฑ)๊ฐ ํ์๋ฅผ ์น๊ณ ์๋ค.
์ฐจ์ ์ฐ: ํ ์ค๋ก ์งค ์ฝ๋๋ฅผ ๋๊ฐ ์ด ์ค๋ก ๋ง๋ค์ด๋จ์ด์? ์๋ฌ ์ฐพ๊ธฐ ํ๋ค๊ฒ. (์ ์ ๋ค) ์ฝ๋๊ฐ ๊ธธ์ด์ ํ๋ก๊ทธ๋จ๋ง ๋ฌด๊ฑฐ์์ก์์ต๋๊น? ์ด๋ฌ๋๊น ์๋น์ค๊ฐ ๋ฒ๋ฒ ๋์ง.
๋๋ผ๋ง ์ํผํ ๋์ฑ๋ ์์ ์ฐจ์ ์ฐ ์ญ์ ๋งก์ ์ฃผ์์ฑ์ด ์ฒ์ฌ ํ๋ก๊ทธ๋๋จธ์ ์ค๋ ฅ์ ๋ณด์ฌ์ฃผ๋ ์์ฒญ๋ ํ์ ์๋๋ก ์๋น์ค๋ฅผ ๋ณต๊ตฌํ๋ ์ฅ๋ฉด์ด๋ค...
๋ฌผ๋ก ํผ์ดํฌ๋ค.
์ฌ๊ธฐ์์ ์์ํฌ์ธํธ๋ ๋ ๊ฐ์ง์ธ๋ฐ, ์ฒ์์๋ ์ด์ฌํ ๋ค๋ค๋ฅ ์ฝ๋๋ฅผ ์น๋ฉด์ ๋งํ ์ฃผ์์ฑ์ ๋์ฌ์ด๋ค. ์ด๊ฒ ์ ๋ง๋ ์๋๋ ์๋ฆฌ๋๋ฉด, ๋จ์ํ ์ฝ๋๊ฐ ๊ธธ์ด์ง๋ค๊ณ ํ๋ก๊ทธ๋จ์ด ๋ฒ๋ฒ ๋๋ ๊ฑด ์ ๋ง ํ๋ก๊ทธ๋๋ฐ์ ๊ธฐ์ด๋ ๋ชจ๋ฅธ๋ค๋ ์๋ฆฌ์ธ๋ฐ,[1] ์ ๋ฐ ์๋ฆด ์ง๊ธ ์์นญ ์ฒ์ฌ ํ๋ก๊ทธ๋๋จธ์ด์ ๋ ์ค๋ฅด๋ ์ํํธ์จ์ด ํ์ฌ์ ์ฌ์ฅ์ด๋ผ๋ ์ฌ๋์ด ํ๋ค๋(...) ๋ง์น ํ์ฌ๊ฐ ๋๊ฒ ๋ค๋ ์ฌ๋์ด ๋ฒ์ด ๋ญ์ง ๋ชจ๋ฅด๋๊ฒ๊ณผ ๋๊ฐ์ ์๋ฆฌ์ด๋ค.
๊ฒ๋ค๊ฐ, ๋์์์ ์ผ์์ ์งํ๊ณ ๋ชจ๋ํฐ ํ๋ฉด์ ๋์์ง ์ฝ๋๋ฅผ ๋ณด๋ฉด ๊ณ ์ Java๋ฅผ ์ด์ฉํ ๊ตฌ๊ตฌ๋จ ์ถ๋ ฅ ์์ ๋ค.
์ฐธ๊ณ ๋ก ์ ์ฝ๋ฉ ํ๋ฉด์ Notepad++์ ๋์์ง ์์ค ์ฝ๋๋ฅผ ๋ฐฑ์คํ์ด์ค ๊พน ๋๋ฌ ์ง์ฐ๋ ์ฅ๋ฉด์ ์ดฌ์ํ๊ณ ๊ทธ๊ฑธ ๊ฑฐ๊พธ๋ก ๋๋ฆฐ ๊ฒ์ด๋ค. ๊ทธ๋๋ ํ๊ธ ์๋ํ๋ก์ธ์๊ฐ ์๋ ํ๋ก๊ทธ๋๋จธ๋ค์ด ์ ์ฉ(?)ํ๋ ์๋ํฐ๋ฅผ ๋์๋์ ๊ฑด ์นญ์ฐฌํ ๋ง ํ๋ค. ๋น์ ๊ณต์๋ ์ ๋ฐ ์๋ํฐ๊ฐ ์๋จ ์ฌ์ค์ ์ ๋ชจ๋ฅธ๋ค. ์๊ฐ๊ฐ ๊ทธ๋๋ ํ๋ก๊ทธ๋๋จธ๊ฐ ์ด๋ป๊ฒ ์ผํ๋์ง ์กฐ๊ธ์ ๊ณต๋ถํ๋ค๋ ๋ฐ์ฆ. ์์ ๋ชฐ๋์ผ๋ฉด cmd์ฐฝ ๋์๋๊ณ dir /s ๋ ๋๋ฅด๊ณ ์์๊ฑฐ๋ ๋ ์ฌํ๊ฒ๋ "๋ช ๋ น์ ์ฐพ์ ์ ์์ต๋๋ค" ์๋ฌ๋ฉ์์ง๊ฐ ์ฃฝ ๋ด๋ ค๊ฐ๋ ๋ง์ฅ ํ๋ฉด์ ๋ณด์ฌ์คฌ์ ์๋ ์๋ค.
์์ฒญ๋ ํ์์ ์ ์ฒด(...) |
์์ ์ฃผ์์ '๊ฒ์ ๋ก๋ฉ ๋ถ๋ถ
์๋ฐ ํ์ผ์๋ public class ์ ์ธ๋ถ๊ฐ ๋ฑ ํ๋๋ง ๋ค์ด๊ฐ ์ ์์ผ๋ฏ๋ก(ํ ํ์ผ์ public class์ ์ธ๋ถ๊ฐ ๋ ๊ฐ ์ด์๋๋ฉด ์ปดํ์ผ ์๋ฌ๊ฐ ๋๋ค) 174๋ฒ์งธ์ค ์์ชฝ์ ๊ฐ์ ๋ด์ฉ์ ๋ฐ๋ณตํด์ ๋ณต๋ถํ ๊ฒ์ผ ๊ฐ๋ฅ์ฑ์ด ์๋ค. ๊ฒจ์ฐ ๊ตฌ๊ตฌ๋จ ํ๋ ์ถ๋ ฅํ์๊ณ private ํด๋์ค๋ฅผ ๋ฐฑ ์ค ๋๊ฒ ์์ฑํ์ ๊ฐ๋ฅ์ฑ์ ๊ฑฐ์ ์๋ค๋ ๊ฑธ ์๊ฐํด๋ณด๋ฉด ๊ทธ๋ ๋ค. ์ฝ๋ ๋ด๋ถ์์ ๋ค๋ฅธ ์ฌ์ฉ์ ์ ์ ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ ์ค์ด ํ๋๋ ์ ๋ณด์ด๋ ๊ฑธ๋ก ๋ด์ ๋๋์ฑ.
์ฐจ์ ์ฐ์ ์ฝ๋๋ฅผ ๋ถ์ํ๊ณ ํ ์ค๋ก ๋ง๋ [์์นด์ด๋ธ] ์ฌ๋์ด ์๋ค.
์์ ๋งํฌ๊ฐ ๊นจ์ก๋๋ฐ ์ด ์ฝ๋๋ค.
for(int i = 0; i < 36; i++) System.out.format(โ%d X %d = %2d%cโ, i%4+2, i/4+1, (i%4+2) * (i/4+1), i%4/3*4+9);
2. ์ ๊ฐ ์ง์ ํ ๋ฒ ํด๋ณด๊ฒ ์ต๋๋ค[ํธ์ง]
์ ์ฝ๋์ 174๋ฒ์งธ์ค ์์ชฝ์ด ๋ญ์ง ์ ์ ์์ง๋ง ์ผ๋จ ํ๋ฉด์ ๋์จ ์ฝ๋๋ง ๋ณต์(?)ํด๋ณด๋ฉด ์ด๋ ๊ฒ ๋๋ค.
์ ํ์ผ์ GuguClass.java ํ์ผ๋ก ์ ์ฅํ๊ณ (๋์๋ฌธ์ ์ฃผ์) javac GuguClass.java ํด์ ์ปดํ์ผํ ๋ค์(JDK๋ฅผ ์ค์นํด์ผ ํจ. ์ด๊ฑฐ ์ค์นํ๋๊ฑฐ๋ ํ ์คํธ๋ ์ค ํ๋๊น ์ ๋ง ๊ด์ฌ์๋ ์ฌ๋๋ง ํด๋ด ์๋ค) java GuguClass ํ๋ฉด ๊ฒฐ๊ณผ๋ฅผ ๋ณผ ์ ์๋ค.
๊ฒฐ๊ณผ:
๊ทผ๋ฐ ์ด ์ฝ๋์๋ ์ค๋ณต์ด ์์ผ๋ฏ๋ก ๋ ์ค์ผ ์ ์๋ค.
์ฐจ์ ์ฐ์จ, ์ค๋ณต ์ฝ๋๊ฐ ์์ด์ ํ๋ก๊ทธ๋จ๋ง ๋ฌด๊ฑฐ์์ก์์ต๋๊น? ์ด๋ฌ๋๊น ์๋น์ค๊ฐ ๋ฒ๋ฒ
๋์ง.
๊ทผ๋ฐ 3ํ ์ดํ์ ์ค๋ณต ์ฝ๋๋ ์ค๋ณตํด์ ์จ๋๋๊ฒ ํ๋ก๊ทธ๋จ ์ํ ์๋๊ฐ ๋ ๋น ๋ฅด๋ค๋ ๊ฑด ํจ์ .
๊ทธ๋ฅ ์ปดํ์ผ๋ฌํํ
๋น ๋ฅธ ์คํ์ ์ต์ ํํ๋ผ๊ณ ์ํค๋ฉด ์์์ ์ฝ๋๋ฅผ ์๋ด์ฃผ์ ๋ค. ๊ณ ๊ฑด ๋ชฐ๋์ง?
๊ฒฐ๊ณผ๋ ๊ฐ์.
๋ ์ค์ผ ์๋ ์๋ค. ํ ์ค์ ํ ๋ฒ์ ์ฐ๋ ๋ฐฉ๋ฒ์ด๋ค.์ค ์๋ ์ค์์ง๋ง ๊ธ์์๋ ๋์๋ค.
๋ ์ค์ผ์๋ ์๋ค ํ์ค์ด๊ธด ํ์ค์ด๋ค.
์๋ฐ๋ก๋ ์ด ์ด์ ์ค์ด๊ธด ์ด๋ ค์ ๋ณด์ธ๋ค. ๋ฌธ๋จ 1์ ํ ์ค๋ก ๋ง๋ค์๋ค๋ ์ฌ๋์ Haskell์ ์ฌ์ฉํ ๋ฏ ํ๋ฐ ์ธ์ด๋ฅผ ๋ฐ๊ฟ์น๊ธฐํ๋ ๊ฑด ๋ฐ์น.[4]
์ ๋ฐ์น์ด๋๋ฉด, ์์ค์ฝ๋๋ ์ค์ด๋ค๊ฒ ์ง๋ง ๋ ์ธ์ด๋ฅผ ๋ชจ๋ ์์ค์์ ํตํฉํ๊ธฐ ์ํ ๋ง์ปค ์คํฌ๋ฆฝํธ๊ฐ ๋ฌด์ง๋ง์งํ๊ฒ ๋ค์ด๊ฐ๊ธฐ ๋๋ฌธ์ด๋ค. scala, clojure ๋ฑ์ ์ธ์ด๋ ํด๋์ค ์์ค ํธํ์ฑ์ ๋ณด์ฅํด์ ๋ง์ปค ์คํฌ๋ฆฝํธ๊ฐ ๋ฐ๋ก ํ์์์ง๋ง ์ด๊ฒ๋ ๋น๋ ์คํฌ๋ฆฝํธ๊ฐ ๊ธธ์ด์ง๋ ๊ฑด ๋ง์ ์ ์๋ค.
public class GuguClass {
public static void main(String[] args) {
System.out.format("%n < gugu>%n");
for(int j=1; j<=9; j++) {
System.out.println();
for(int i=2; i<=5; i++) { // 2~ 5
System.out.format("%d X %d = %2d ", i, j, i * j);
}
}
System.out.println(); // ์ค๋ฐ๊ฟ
for(int j=1; j<=9; j++) {
System.out.println();
for(int i=6; i<=9; i++) { // 6~ 9
System.out.format("%d X %d = %2d ", i, j, i * j);
}
}
System.out.println(); // ์ค๋ฐ๊ฟ
}
}์ ํ์ผ์ GuguClass.java ํ์ผ๋ก ์ ์ฅํ๊ณ (๋์๋ฌธ์ ์ฃผ์) javac GuguClass.java ํด์ ์ปดํ์ผํ ๋ค์(JDK๋ฅผ ์ค์นํด์ผ ํจ. ์ด๊ฑฐ ์ค์นํ๋๊ฑฐ๋ ํ ์คํธ๋ ์ค ํ๋๊น ์ ๋ง ๊ด์ฌ์๋ ์ฌ๋๋ง ํด๋ด ์๋ค) java GuguClass ํ๋ฉด ๊ฒฐ๊ณผ๋ฅผ ๋ณผ ์ ์๋ค.
๊ฒฐ๊ณผ:
< gugu>
2 X 1 = 2 3 X 1 = 3 4 X 1 = 4 5 X 1 = 5
2 X 2 = 4 3 X 2 = 6 4 X 2 = 8 5 X 2 = 10
2 X 3 = 6 3 X 3 = 9 4 X 3 = 12 5 X 3 = 15
2 X 4 = 8 3 X 4 = 12 4 X 4 = 16 5 X 4 = 20
2 X 5 = 10 3 X 5 = 15 4 X 5 = 20 5 X 5 = 25
2 X 6 = 12 3 X 6 = 18 4 X 6 = 24 5 X 6 = 30
2 X 7 = 14 3 X 7 = 21 4 X 7 = 28 5 X 7 = 35
2 X 8 = 16 3 X 8 = 24 4 X 8 = 32 5 X 8 = 40
2 X 9 = 18 3 X 9 = 27 4 X 9 = 36 5 X 9 = 45
6 X 1 = 6 7 X 1 = 7 8 X 1 = 8 9 X 1 = 9
6 X 2 = 12 7 X 2 = 14 8 X 2 = 16 9 X 2 = 18
6 X 3 = 18 7 X 3 = 21 8 X 3 = 24 9 X 3 = 27
6 X 4 = 24 7 X 4 = 28 8 X 4 = 32 9 X 4 = 36
6 X 5 = 30 7 X 5 = 35 8 X 5 = 40 9 X 5 = 45
6 X 6 = 36 7 X 6 = 42 8 X 6 = 48 9 X 6 = 54
6 X 7 = 42 7 X 7 = 49 8 X 7 = 56 9 X 7 = 63
6 X 8 = 48 7 X 8 = 56 8 X 8 = 64 9 X 8 = 72
6 X 9 = 54 7 X 9 = 63 8 X 9 = 72 9 X 9 = 81
๊ทผ๋ฐ ์ด ์ฝ๋์๋ ์ค๋ณต์ด ์์ผ๋ฏ๋ก ๋ ์ค์ผ ์ ์๋ค.
public class GuguClass {
public static void gugu(int c) {
for(int j=1; j<=9; j++) {
System.out.println();
for(int i=c; i<=c+3; i++) {
System.out.format("%d X %d = %2d ", i, j, i * j);
}
}
System.out.println(); // LF
}
public static void main(String[] args) {
System.out.format("%n < gugu>%n");
gugu(2); gugu(6);
}
}๊ฒฐ๊ณผ๋ ๊ฐ์.
๋ ์ค์ผ ์๋ ์๋ค. ํ ์ค์ ํ ๋ฒ์ ์ฐ๋ ๋ฐฉ๋ฒ์ด๋ค.
public class GuguClass {
public static void gugu(int c) {
for(int j=1; j<=9; j++) {
System.out.format("%d X %d = %2d %d X %d = %2d %d X %d = %2d %d X %d = %2d\n", c, j, c++ * j, c, j, c++ * j, c, j, c++ * j, c, j, c * j);
c-=3;
}
System.out.println();
}
public static void main(String[] args) {
System.out.format("%n < gugu>%n");
gugu(2); gugu(6);
}
}public class GuguClass {public static void main(String[] args) {System.out.format("%n < gugu>%n");for(int j=1; j<=9; j++) {System.out.println();for(int i=2; i<=5; i++) { /* 2~ 5*/System.out.format("%d X %d = %2d ", i, j, i * j);}} System.out.println(); /* ์ค๋ฐ๊ฟ*/ for(int j=1; j<=9; j++) {System.out.println(); for(int i=6; i<=9; i++) { /* 6~ 9*/System.out.format("%d X %d = %2d ", i, j, i * j);}}System.out.println(); /* ์ค๋ฐ๊ฟ*/}}์๋ฐ๋ก๋ ์ด ์ด์ ์ค์ด๊ธด ์ด๋ ค์ ๋ณด์ธ๋ค. ๋ฌธ๋จ 1์ ํ ์ค๋ก ๋ง๋ค์๋ค๋ ์ฌ๋์ Haskell์ ์ฌ์ฉํ ๋ฏ ํ๋ฐ ์ธ์ด๋ฅผ ๋ฐ๊ฟ์น๊ธฐํ๋ ๊ฑด ๋ฐ์น.[4]
์ ๋ฐ์น์ด๋๋ฉด, ์์ค์ฝ๋๋ ์ค์ด๋ค๊ฒ ์ง๋ง ๋ ์ธ์ด๋ฅผ ๋ชจ๋ ์์ค์์ ํตํฉํ๊ธฐ ์ํ ๋ง์ปค ์คํฌ๋ฆฝํธ๊ฐ ๋ฌด์ง๋ง์งํ๊ฒ ๋ค์ด๊ฐ๊ธฐ ๋๋ฌธ์ด๋ค. scala, clojure ๋ฑ์ ์ธ์ด๋ ํด๋์ค ์์ค ํธํ์ฑ์ ๋ณด์ฅํด์ ๋ง์ปค ์คํฌ๋ฆฝํธ๊ฐ ๋ฐ๋ก ํ์์์ง๋ง ์ด๊ฒ๋ ๋น๋ ์คํฌ๋ฆฝํธ๊ฐ ๊ธธ์ด์ง๋ ๊ฑด ๋ง์ ์ ์๋ค.
3. ๊ด๋ จ ๋ฌธ์[ํธ์ง]
[1] ๋ผ์ธ์ด ๊ธธ๋ค๊ณ ์ข๋ค๋ ๋ป์ ์๋๋, ํ๋ก๊ทธ๋จ์ ์ํฉ์์ ๋ง์ถฐ ์ผ๋ง๋ ์ ์งฐ๋ ๊ฐ๊ฐ ์ค์ํ๋ค. ์ผ๋ฐ์ ์ธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํจ์ ํธ์ถ ํ์ค ๋ณด๋ค, ํ๋ก๊ทธ๋จ์ ์ํฉ์ ๋ง์ถฐ ์์ญ์ค ๋์ฌ ์ด ์ฝ๋๊ฐ ๋ ํจ์จ์ ์ผ ์ ์๋ค.
[2] ๋๋ค์์ ํ๋ก๊ทธ๋๋จธ๋ค์ ๋คํฌ ํ
๋ง๋ฅผ ์ป์ IDE๋ฅผ ์ฌ์ฉํ๋ค. IntelliJ IDEA๋ผ๋๊ฐ, Visual Studio Code๋ผ๋๊ฐ.
[4] ghci์์ ๋ฐ๋ก ์
๋ ฅํ ๋๋ main = ...์ผ๋ก ํ์ง ๋ง๊ณ let main = ...์ผ๋ก ์์ ์ ์ธํ ํ ๋ค์์ค์์ ๋ค์ main์ ์คํํ๋ฉด ์ ๋๋ก ์ถ๋ ฅ ๋ ๊ฒ์ด๋ค.