자바공부하기




자바의 기본문법(Structure) - 출처: http://alecture.blogspot.co.nz

 
예고편(?)을 본 이들은 이미 알겠지만 그래도 시작하려니 머리가 지끈지끈 아플 것인데 특히 위의 프로그램이 엄청나게 어려운 자바 소스(?)니까 말이다하지만 필자를 믿고 따라오면 과반수 이상아니 절반아니 반의반 정도는 이해하고 고개를 끄덕거리는 뛰어난 천재(?)가 있기를 기대하면서 본격적인 강의를 시작해볼까 한다.

여러분은 이미 자바의 모든 것을 갖추었다자바소스만 빼고 말이다그렇다면 설치된 자바 에디터를 열고 새로 시작하기 버튼 눌러 파일이름을 맨 첫째줄과 같이 Test1.java 라고 만든다그리고 위와 똑같이 자바 코드를 프로그램에 입력하라묻지도 따지지도 말고 똑같이 말이다.(잘 안보이면 마우스로 그림을 클릭~) 여기서는 코드를 그냥 쓰면 잘 안보이는 관계로 울며 겨자먹기로 그냥 타이핑해야 되지만 행여 다른 곳에서라도 코드를 마우스로 복사해서 붙여넣기하는 잔머리 뛰어난 인간들이 있을지 모르겠으나 프로그래밍 할때 타이핑 하는 시간을 아끼지 말아라프로그래머는 자고로 시간을 아끼지 말고 철저히 시간을 낭비(?)해야 발전할수 있는 이상한 곳이니까 말이다희한하게 자기가 시간을 들이고 직접 쳐봐야 자기 것이 된다이것이 프로그래머들이 공공연하게 가르쳐주지 않는 최고의 비밀(?)이 아닐까 생각한다.

자 다 입력했다면 프로그램을 실행시켜보자명령 프롬프트창을 열고 자바파일이 있는 디렉토리안에서 아래와 같이 순서대로 입력한다.

javac Test1.java
java Test1

첫째줄은 컴파일하라는 뜻이고 한마디로 자바소스를 읽어서 실행할수 있는 형태의 파일(.class)을 만들라는 것이고 둘째줄은 그 파일을 실행하라는 뜻이다실행할때는 확장자를 빼고 써야됨을 절대 잊지 말자참고로자바 에디터를 써서 입력했다면 파일이름(만드는 원리를 저번시간에 설명했는데 기억을 하고 있는지 원..-)을 만들어서 저장하고 Run 이나 Compile이라는 명령어를 찾아 마우스를 클릭한다플레이 버튼의 아이콘이 자바 에디터에선 보통 이런 명령어다프로그램을 실행해보면 글자가 화면에 출력될 것이다자바소스와 출력된 화면에 글자들이 어떻게 찍히는지 살펴보도록 하고 디렉토리안에 어떤 파일들이 생기는지 또한 찾아보기 바란다.


아까 여러분이 코드를 치면서 한가지를 느꼈을 것이다자바 파일이름과 public class 옆에 있는 이름이 파일확장자만 빼면 같다는 것을 말이다자 굉장히 중요한 개념을 설명하려한다묻지도 따지지도 말고 무조건 외워라복창한다. public class 옆의 이름은 자바의 파일이름과 토시 하나 틀리지 않게 똑같이 만든다그래야 작동한다는 전설(?)이 자바 왕국에 있다이게 바로 그 유명한 자바 파일이름 만들기의 핵심원리다자기 마음대로 아무 이름이나 자바파일에 갖다붙여서 쓰는 황당한 이(?)들이 앞으론 없길 바라면서 계속 진행한다.

쳐보니 또 한가지 느끼는게 있을 것이다생각보다 길다고앞으로 더 긴 코드가 무궁무진하니 이걸로 겁먹지 말자일단 자바를 잘하기 위해서는 영어(?) 공부를 무쟈게 열심히 해야한다자바 코드를 한글로 쓰나당근 영어로 쓰지그래서 영어를 무지 잘해야 한다. ^^ 오늘 필자는 자바보다는 영어에 초점을 맞출 것이다일단 영어를 알면 자바는 저절로 풀린다믿거나 말거나~

class
public
static
void
main
String
System
out
print
println

일단 위의 소스에서 핵심키워드를 간추려 보았다뜻은 모두 사전을 찾아보기 바란다필자가 뜻을 다 쓸까 하다가 공부는 스스로 하는거니까 안쓰기로 특별히 결단(?)을 내렸다빨리 찾아보자일단 자바 프로그램은 어떻게 구성되어 있는지 큰 그림을 알아야 눈에 들어오기 시작한다뭐든지 공부할때 개요를 파악하고 전체의 흐름을 알면 공부하기 쉬워진다부분적으로 알고 파고 들다보면 자신이 뭐 공부하고 있는지 놓칠때가 많다그런 우를 범하지 않기 위해 먼저 자바의 큰 그림을 대충 이해해 보도록 하자.
 
자바는 크게 "패키지(package)" "클래스(class)" "메소드(method)"로 구성되어 있다다른 말로 열라 어렵게 설명하자면 메소드가 모여서 클래스를 이루고 클래스가 모여서 패키지를 이루고 패키지가 모여서 거대한 자바 프로그램이 완성된다좀 멋드러지게 표현할려 했더니 어색하지만 이제 서서히 자바 프로그램의 윤곽이 잡히지 않는가안잡혀그럼 다시 한번 읽어보고 본인이 쳐넣은 자바 소스를 다시 한번 읽어본다읽어봐도 잘 모르겠다면 이런 질문을 하고 있을지 모르겠다. class만 보이고 다른건 안보이는데... 호오대단하다사실 처음이라 복잡한 프로그램을 만들 일이 없으니 패키지는 웬만해서는 초반에 보기 힘들다그럼 메소드는물론 있다그것도 딱 하나말 나온김에 커다란 비밀(?)을 얘기하자면 모든 자바 프로그램은 최소 한개 이상의 클래스가 있어야 하고 또한 최소 한개 이상의 메소드가 있어야 한다그런데도 메소드는 희한하게 보이지 않을 것이다아직 안배웠으니까...ㅎㅎ 힌트를 주자면 메소드는 언제나 클래스 안에 위치한다이제 서서히 메소드가 이거 아닌가하는 감이 잡히나 아직도 모를 것이다메소드는 클래스처럼 명령어 이름이 method가 아니고 형식 자체를 메소드라 부르는 것이기 때문이다그럼 어떤 형식으로 클래스랑 메소드가 만들어지는지 살펴보자.

public 클래스의 형식:   public class 파일이름
(public이 붙을 경우는 파일이름과 꼭 같아야함을 잊지말자!)

클래스의 형식:   class 이름
메소드의 형식:   결과값 메소드이름(입력값)

예제를 곁들여 설명하자면 Test1 자바 소스에서는

public 클래스의 형식:   public class Test1
클래스의 형식:   public만 빼면 위에꺼랑 같다당연한가?
메소드의 형식:   void main(String[ ] args)

자바 파일에 최소한 하나의 (public) class는 존재해야 된다그래야 파일이름을 만들수 있으니까 말이다이게 클래스의 존재이유라고나 할까나그리고 public이 붙을 경우엔 그 클래스의 이름이 파일이름과 똑같아야 한다다시 말하면여러개의 클래스는 만들수 있으나 public class는 개별 클래스 중에선 단 하나의 클래스에서 밖에 사용할수 없다개별 클래스는 무슨 말인가클래스를 말그대로 따로따로 만든걸 의미한다클래스안에 메소드만 만들수 있는건 아니다성격이 다르다고 판단될 경우 프로그래머의 역량(?)에 따라 클래스안에 또 클래스를 만들수 있다자바를 많이 한 이들조차 상당히 헤깔려하는 부분이나 여러분은 확실히 잡길 바란다.

대부분의 경우 메인명령을 실행하는 메인 메소드가 있는 클래스에 public이란 이름을 붙이는게 관례인데 프로그래밍 하다보면 저절로 그렇게 될 것이다그럼 public은 무엇인가아까 찾아본 단어의 뜻을 생각해본다기억 안난다고후딱 다시 찾아보자. "public 공공의공개되는뭐 이런 뜻이 나온다그렇다바로 그런 뜻으로 쓰인 것이다. public을 지정한 클래스 내용물은 공개되어 있어 안에서든 바깥에서든 누구나 쓸수 있다.

여러분이 프로그램을 짜야한다면 그것은 어떤 목적을 가지고 있을 것이다. Test1이란 자바 파일은 글씨를 화면에 출력하는게 목적이다따라서 그 목적을 이루기 위한 제목을 생각해서 적절하게 이름을 짠다면 Test1 이란 이름보다는 Print 라는 이름이 적합했을 것이나 필자를 비난하지 말고 마음에 들지 않으면 바꾸도록 하자클래스 이름을 바꿨다면 뭘 또 해야되나설마 벌써 까먹은건 아니겠지글치파일이름도 Print.java 로 바꾸어야 할것이다보통 클래스 이름의 첫글자는 메소드와 구별을 쉽게 하기 위하여 대문자로 쓴다.

그 다음은 글씨를 직접적으로 화면에 쓰라는 명령과 방법(method)을 제시해 주어야한다그 명령들이 있는 곳이 바로 메소드(method)라고 불리는 공간이다위의 프로그램은 바로 메소드의 이름이 main 이다이것이 자바에서 처음 프로그램을 실행하도록 만들어주는 그 이름도 유명한 메인 메소드란 것이다메인 메소드도 public class 처럼 개별 클래스 중에서 단 한군데만 존재한다프로그램의 처음이자 마지막이라고나 할까더불어 쓰는 방법도 메인 메소드는 독특한데 시작과 끝이라 public static void main(String[ ] args) 의 형태로 항상 똑같이 쓰인다그냥 외워도 무방하나 모든 명령을 총괄하는 프로그램의 핵이라고 할수 있는 메인 메소드는 글이 생각보다 길어지는 관계로 다음에 살펴보기로 하자쉽게 설명하려고 하다보니 자바 강좌가 아니라 소설 같다제목을 장편 대서사시 "소설 JAVA"라고 고치는거 신중(?)하게 생각해봐야겠다소설 잡아ㅎㅎ

No comments:

Post a Comment