본문 바로가기

프로그래밍

Java를 위한 준비

처음으로 Java 얘기를 진행해 볼께요

우선 Java는 Sun사라는 대단한 회사에서 만든건데 Oracle에서 인수했답니다

그래서 예전에 SCJP가 OCJP가 된 이유도 그거죠


음 나름 흥미로운 얘기들이 있지만 접어두고 코딩을 위한 준비를 해볼께요

Java의 여러 버전 중에서 Standard Edition(SE)을 받도록 하겠습니다

이 버전을 받는 이유는 가장 기본적으로 활용되는 API만을 담고 있기때문에 Enterprise Edition 등도 존재하는데 전문 기업이 아닌 개인이 사용함에 있어서는 불필요하고 또 추가적인 지원 등에 대한 부분이 필요치 않다고 판단되어서 선택하게 되었습니다


1. 우선 Java를 개발하기 위한 툴을 받기 위해 홈페이지 방문합니다


아래 주소에 방문합니다.

http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html


2. 다운로드를 위해서 오라클의 코드 라이센스에 동의를 해주세요


3. 다운로드 받을 버전을 확인하고 클릭해주세요

JDK, ADK, SDK 등등의 말의 Development Kit의 준말입니다.

보시면 버전이 x86과 x64가 있는데 이는 OS버전에 따라서 받아주시면 되겠습니다. 자신의 OS가 64bit면 x64, 32bit이면 x86을 받으시면 됩니다. 

이 구분은 메모리 주소체계에 의해 나중에 메모리 할당등에 영향이 있는 것이라고 하는데 나중에 소프트웨어를 생산할때에 고려사항이 될 수 있는 부분입니다. x86으로 받아서 개발했다고 해서 64bit에서 안되지는 않을 것이나 프로그램 규모에 따라서 차이가 발생할 수 있겠죠. 지금 당장 중요한 문제는 아니겠지만 언제가는 이것으로 피곤해 질 시기가 올 수도 있지만 지금은 상관없다고 생각합니다 OS가 32bit이신 분은 32bit를 반드시 받으셔야되지만 64bit이신 분은 크게 문제가 없을 것 같네요. 틀렸다면 고치겠습니다




4. 100MB가 조금 넘는 사이즈의 설치프로그램을 실행합니다.

기본 설정된 그대로 진행하시면 되겠습니다.


설치 과정 중에 나타나는 화면에서 각 아이콘을 클릭해서 오른쪽 설명을 보시면 아시겠지만 각각 실제 개발툴, 기본 API, 코딩한 프로그램을 실행해볼 때 동작에 필요한 JRE(Java 실행에 필요한 환경구성)이 설치됩니다.


5. Java가 설치된 위치를 먼저 파악해보겠습니다.


기본적으로 Java는 윈도우 환경에서 

윈도우XP에서는

"C:\Program Files\Java\"에 설치될 것입니다. 

윈도우7에서는 

"C:\Program Files(x86)\Java\"이거나

"C:\Program Files\Java\"에 구성요소들이 설치됩니다.


여기에는 jdk와 jre가 따로 따로 폴더에 설치되어 있습니다.

이 내용은 폴더에 들어가 보시면 알 수 있습니다.

더 살펴보기 위해 개발을 위한 jdk폴더로 가보겠습니다.


5개의 폴더와 7개의 파일이 있군요.

이 중에서 컴파일이나 실행 등의 명령을 수행하는 것은 bin폴더에 있을것 같군요. 

내부가 궁금하신 분들은 직접보시면 대강 어떤 내용인지 아실수 있을 것입니다


그럼 bin폴더에 가보죠


이외에도 많은 파일이 있지만 생략하고 javac.exe java.exe에 대해서 얘기해볼께요.


기본적으로 이 두 개 파일을 이용해서 코딩한 것을 컴파일하고 실행할 것 입니다.


다른 파일들이나 이 파일에 대한 자세한 설명을 피하는 이유는 나중에 쓰면서 익히는 것이 오히려 낫다고 판단한 것 때문이니 오해하지 말아주세요.


일단 여기 폴더까지 들락날락했으니 여기서 폴더 탐방은 끝내기로 하고 진짜 코딩으로 가겠습니다.


6. 이제 코딩을 해보겠습니다.


이대로 어떻게 해야될까요? 우선 도스창을 열어보도록 하죠.

차후에는 다른 툴을 사용해서 개발할 것입니다 '이클립스'로요

이클립스에 대해서 차후 세팅하겠습니다.

기본문법이나 함수는 지금처럼 진행하겠습니다.

DOS창 없이도 실행할 수 있지만 다소 번거로움으로 DOS에서 해보겠습니다.


윈도우7이라면 [시작]버튼을 누르고 cmd라고 치시면되고

윈도우XP라면 [시작]+R버튼으로 실행창을 열고 cmd라고 치면 됩니다


DOS창은 

C:\Documents and Settings\Administrator.SYSTEM-2240A3E0>_

이런식으로 나오네요. 잠시 XP에서 하는 중이라 이렇게 나오는데 윈도우7이라면 다를 수 있습니다.

저 경로가 어떻게 나오는지가 중요한게 아닙니다. 분명히 여러분과 다를 수 있으니 

그대로 진행하시면 됩니다.


자 이제 코드를 입력해 볼껀데요 기본적으로 이건 메모장에서 해보기로 하겠습니다.


메모장도 XP나 7둘다 바로 진입하는 명령이 있습니다.

notepad 인데요. DOS창 진입처럼 입력해 주시면 진입할 수 있습니다.


이제 첫 코드를 입력해 볼께요.


자 이렇게 한번 입력해 봤습니다.

지금 도통 무슨내용인지 알 수가 없을 수 있습니다. 

첫 행부터 설명해보겠습니다.

1: class Test //**Test라는 class의 시작입니다.

2: { //**중괄호로 class Test의 시작영역을 표현합니다.

3: public static void main(String[] args) 

//**public은 이 class의 권한에 대한 설정이고, 

//**static은 메모리에 대해서 어떤식으로 처리할지 이고, 

//**void는 해당 함수가 종료시에 어떤 결과를 나타내고 종료되는지를 나타내고

//**main은 함수의 이름입니다

//**괄호 안의 내용은 이 함수가 실행시에 가지고 들어갈 값들을 담을 문자열형 //**배열을 담겠다는 선언입니다

4: { //**main이라는 함수의 영역을 표기합니다

5: System.out.println("Hello World.");

//**System이라는 클래스에 속하는 out이라는 클래스의 println이라는 함수에 //**문자열 Hello World.를 넣고 실행하라는 명령입니다

6: }//**main이라는 함수의 영역의 끝을 표기합니다

7: }//**Test라는 클래스의 영역의 끝을 표기합니다.


고작 7줄인데 정말 많은 의미가 담겨 있습니다. 

우선 이것을 c:\에 Test.java라고 저장합니다. 메모장에서 .java확장자로 저장하려면 저장할 때 이름 입력하는 곳 아래에 있는 "파일형식"을 "모든 파일"로 잡아주고, 파일 이름에 "Test.java"라고 입력하시고 저장을 누르시면 됩니다. 경로는 c:\로 꼭해주세요!


이것들을 이해하고 능수능란하게 사용해야 숙달이 되었다고 하는 것이 겠지요.

제가 Java를 하면서 느낀건데

플러그인 제작이나 웹프로그래밍에서 많이 쓰이지 실제 프로그램에서는 C를 더 선호하는 경향이 많다고 느낍니다. 

여기서 이 얘기를 갑자기 꺼낸건 코딩을 하다보니 "역시 java가 C보다 편하다"라는 느낌이 들어 서입니다. 이건 개인적인 의견이니 꼭 그런 것은 아니고 저한테 익숙한 한국어가 영어보다 편하다 이런정도 뉘앙스입니다.


갑자기 Java에 장점에 대해서 얘기해볼까요?

1. 범용적이다. 

 Java는 VM(Virtual Machine)이라는 것 한번의 코딩으로 어디서든 사용할 수 있는 것이 장점인데, 이 말은 OS에 상관없이 코딩한번으로 어느 OS에서도 사용할 수 있다는 뜻입니다. Linux고 Windows고 Mac이고 말이죠. 요즘을 이걸 뛰어넘는 Qt라는게 나왔다네요. 모바일까지도 포괄한다더군요.. 자세히는 저도 따로 공부를 해볼까해요.


2. 코딩내에 메모리에 대해서 C보다 덜 신경써도 된다. 

 신경은 써줘야됩니다. 코딩을 하고 나면 최적화 작업을 하는데 쓸데없는 메모리할당등을 제거하고, 필요할 때 쓰고 치우는 정도의 동작인데요. C가 이런면에서 메모리공간을 할당하고 지우는 것에 대해 Java보다는 인색하다고 생각합니다. Java에는 Garbage Collector라는게 있어서 스스로 해제되지 않는 메모리들을 해제하고 초기화 하는데 반해 C는 개발하는 사람이 거의 대부분을 종료하고 초기화 해야됩니다. 이것도 스킬이 생기면 크게 신경쓸 부분도 아니고 오히려 장점으로 비춰집니다. 


3. 재사용성이 뛰어나다. 

 Java에서는 한번 코딩한 클래스는 여러군데서 상속이라거나, Overriding이나, Interface등을 활용해 코딩된 함수를 사용하거나, 형태를 가져와서 끌어쓸 수 있는 장점이 있습니다. C++이 이 같은 기능을 지원해서 크게 Java만 잘났다고 하기에는 무리가 있지 않나싶네요.. 

객체지향성이라고 하는 성질을 사실 모든 언어가 할 수 있지만 Java가 단순화 시킨 것 때문에 더 부각되 보이는 것 같기도 하구요.


제 생각에는 이정도 장점이라고 생각합니다. 

단점은 느린거?이것도 jit라는 컴파일러로 극복이 되었다고하는데 차후에 적용해봐야죠.. 제가 현업에서 Java를 안했었기때문에 깊게 못가고 수박겉핥기식이라 그런 것 같습니다.

저는 기본에 대해서만 주로 얘기하니까 이해해주세요!


이외에도 기타 다른 사항들은 책을 추천해 드립니다. 책만 봐도 사실 제가하려는 얘기들은 거의다 담겨 있습니다. 

저도 처음에 이 책으로 공부했고 지금도 가끔보게 됩니다.

카페도 가입했는데.. 눈팅을 많이했네요;;


Java의 정석 - 자바의 정석
국내도서
저자 : 남궁성
출판 : 도우출판 2010.01.29
상세보기

시간나시면 한번 읽어보시길 추천합니다. 2nd Edition 최종본으로 알고 있어요.


자 이제 짜놓은 코드를 실행하고 다음부터는 Eclipse를 설치하고 거기서 하겠습니다. 결코 노트패드가 귀찮거나 후져서가 아닙니다.. Eclipse와는 성향 자체가 다르니 비교대상이 아닙니다..


위에 작성한 문서를 c:\에 저장해주세요!

이유는 알게 되실 껍니다. 무시무시한 귀차니즘이 함께할 것 입니다.


c:\에 저장을 하였다는 조건하에 진행하겠습니다. 

아까 열어놨던 콘솔창(cmd로 실행했어요)을 열어봅시다. 

여기서 한 번 이렇게 쳐보세요. 

java (그리고 엔터)


엄청나게 뭐라고 뭐라고 써있어요..



내용은 대강 이렇습니다.

 java라고 쓸때 뒤에다 뭐를 붙이면 어떤 동작을 하는데 자세히 알고 싶으면 내가 만들어놓은 어디가면 자세히 써있으니까 거기가서 봐바

이정도 입니다. 진짜로 장난 아니에요;


이것이 Java가 시스템에도 정상적으로 설치되어 있고 실핼할 수 있게 시스템에 등록되었다는 뜻입니다. 이게 안나온다고 너무 당황하지 마시고 계속 읽어주세요


여기서 끝이 아닙니다. 나중을 위해 추가로 설정할 내용이 있습니다.


간단히 설명하겠습니다. 일반 프로그램이 설치된 뒤에 이런식으로 콘솔에서 그대로 실행할 수 있는 경우는 [윈도우 키]+[Pause_Break]를 동시에 누르면 나오는 "시스템 등록 정보"화면에서 "고급"탭에 가서

"환경 변수"라는 버튼을 누르면 XP에선 아래와 같이 나타납니다.




여기서 몇가지를 [새로 만들기][편집]을 이용해 작업하겠습니다.

만약 사용하는 컴퓨터가 여럿이 사용하는 것이면 혹시 모를 일에 대비하기위해 상단 "사용자 변수"에서만 작업하세요. 


우선 명령어들을 어느 위치에서든 사용하려면 PATH라는 변수에 값이 담겨 있어야합니다. 새로 만들기 버튼을 통해서 팝업창이 열리면, 

위에서 봤던 Java의 기본프로그램이 깔려있는 c:\program files\java\jdk(버전명)\bin의 내용을 추가하고 마지막에 ;(세미콜론)으로 마무리를 해주시고 확인을 눌러주세요


그 다음 

JAVA_HOME이라는 변수도 위와 마찬가지 방법으로 팝업창을 띄워서 입력하시는데 거기에는 c:\program files\java까지만 입력하고 ;(세미콜론)으로 마무리 해주세요.


마지막 

ClassPath라는 변수도 위처럼 새로만들기로 추가하시는데 여기는 .(포인트, 점)만 표시해  주시고 확인을 눌러 주시고 전부다 확인을 눌러서 시스템 정보창을 닫으세요.


이제 실행을 하기위한 모든 준비가 완료되었습니다!드디어!!! 

번거롭네..


위에서도 강조했지만 Java가 설치된 경로는 사용자 환경에 따라 다를 수 있습니다. 반드시 확인하시고 작업을 진행해주세요.


위 작업들을 통틀어 환경변수를 설정했다고 생각하시면 됩니다. 환경 변수라는 것은 시스템에서 사용하는 명령어처럼 위치들을 사전에 잡아주면 명령 실행시 아까 입력했던 PATH변수에 있는 값을 참조하여 해당 경로 하위에 있는 명령어들을 먼저 탐색하여 실행하고, 그곳에 없다면 사용자가 현재 위치한 경로 하위를 조사하여 프로그램을 실행하게 되는 것입니다.


이제 실행을 해볼께요!


위에 환경설정을 적용하려면 콘솔창(cmd로 실행한 것)을 재실행 해야됩니다.


아까 작성한 코드는 c:\에 있습니다. 보통은 "C드라이브의 루트 디렉토리"라고 합니다.


명령어를 넣습니다!

코딩을 한 것을 그대로 실행할 수는 없기때문에 컴파일을 해야합니다. 기본 제공되는 java컴파일러 javac명령으로 작성한 파일을 컴파일 합니다.

그러면 이렇게 쳐야됩니다.


javac c:\Test.java


이렇게요! 대문자를 구분해주세요!



무소식이 희소식입니다. 아무것도 안뜨고 다시 깜빡거리는 밑줄이 나오면 해당 코드내에 에러가 없다는 거에요! 에러가 있으면 어떻게 뜨냐! 그건 코드에서 ;(세미콜론)하나만 빼보시면 압니다!


자 이제 컴파일도 다되었습니다.


실행해봐야죠?

컴파일이 완료되면 java파일 내의 코드를 바탕으로 .java파일과 동일한 이름으로 .class파일이 생성됩니다. .java파일이 있는 동일한 위치에 생상되요.

그러면 Test.class라는 파일이 생긴다는 얘기죠.

실행할 때 이 파일로 실행을 하는 것입니다.

실행합니다!


java c:\Test.class


어라 안되네요? 왜냐면 아까전에 환경변수 중에 ClassPath라는 녀석을 ".(포인트, 점)"이라고 했기 때문입니다.


그럼 어떡하죠?

콘솔창에서 c:라고 입력합니다.


그럼 콘솔창에 c:\>_이런식으로 변경됩니다. 

이제 여기서 다시 입력해봅니다!


java c:\Test.class


이래도 안됩니다! 

왜 안되냐면 c:\Test.class는 java명령어가 인식하기에는 이렇습니다.


c:\Test라는 이름의 클래스 하위에 있는 class에 있는 main함수를 호출해봐!


이게 java명령어가 인식하는 방식입니다! 

java명령어는 위에서 제가 코딩에 대한 해석에 적어 놓은 것 처럼 main함수를 가진 class를 실행하는 동작을 하기 때문입니다. 그리고 뿐만아니라 지금 class라는 클래스는 만든적도 없기 때문이고 그저 파일의 확장자일 뿐인거죠. 

그럼 정상적으로 실행하기 위해서는 

java 명령어야! 내가 아까 만든 Test라는 클래스에 main함수가 있으니까 그녀석을 좀 실행해줄래?


저렇게 이해하도록 하려면 아래처럼 입력합니다.


java Test


간결하죠? 이제 실행이 될껍니다.




됐습니다! 여기까지!

겁나 불편하네..

느끼십니까? 전 느껴지네요.. 

개발 툴이 없다는 것은 이만큼 불편한 것이랍니다... ㅠㅠ

그래서 제가 원래는 이런식으로 프로그래밍을 진행해 볼까하다가 도저히 안되겠어서 앞으로는 이클립스(Eclipse)를 쓰겠다고 한겁니다..


위에 했던 경로로 이동해서 컴파일 하고 클래스 호출하고.. 이런 동작을 일괄적으로 해결해 주는 것이 Eclipse입니다.


C언어는 Visual Studio의 Visual C등이 되겠죠?

C도 Eclipse에서 할 수 있다고 하는데 다음에 써보기로 하겠습니다.


여기까지만 작성할께요... 진이 다빠지네요.


Java설치 방법과 환경 구성, 첫 코딩, 컴파일, 실행까지 해봤습니다.

다른 강좌 올리는 분들이 존경스러워지는 순간입니다...

부지런 함으로 승부해봐야죠! 

앞으로도 많은 관심 부탁드리며 다음 글에는 Eclipse를 Equip하고 오겠습니다! 구럼 2000