컴퓨터가 익숙치 않으면 어렵게 느껴질 수 도 있다

처음부터 완벽히 이해하려고 하지말고 즐기기 바란다

 

 

 

*자바 프로그램의 실행구조와 자바 가상머신

 

일반적인 프로그램의 실행구조는

하드웨어위에 운영체제가 동작을 하고, 운영체제 위에서 프로그램이 동작한다.

그래서 일반적인 프로그램은 운영체제에 굉장히 의존적이다

예를들면, 윈도우에서 동작하는 테트리스 라는 게임을 만들었다

그것을 리눅스로 가져가서 실행시키면 동작하지 않는다.

왜냐하면 실행파일의 구조가 완전히 다르기 때문이다

 

그런데 만약에 JAVA로 테트리스를 만들면 운영체제에 상관없이 실행이 된다

(운영체제에 의존적이지 않다)

 

왜냐하면 자바는 운영체제 위에 JAVA 가상 머신을 놓고 그 위에 JAVA 프로그램

를 놓기 때문에 JAVA 가상머신이 운영체제에 맞게 변환을 하고 운영체제에 전달하기 때문이다.

 

하지만 자바 가상머신은 운영체제에 의존적이기 때문에 운영체제마다 다르게 설치해야 한다.

 

*자바 컴파일러와 자바 바이트 코드

컴파일러, 런처 등을 통합해서 설명을 해보겠다

 

예전에 FirstJavaProgram.java를 만들었다

이것은 javac.exe에 의해 컴파일 되고

FirstJavaProgram.class 라는 파일이 만들어지고

이것을 JAVA 가상 머신에 올린다.

(자바 컴파일러는 자바 가상머신이 인식할 수 있는 자바 바이트 코드를 생성해 낸다.)

그래서 java가상머신이 FirstJavaProgram.class 를 실행시킨다.

 

*자바 가상머신 때문에 속도의 저하가 있을까?

 

- 대부분의 소프트웨어는 속도보다 안전성이 우선시된다

- 물론 속도는 중요하지만 여기서 말하는 속도는 소프트웨어의 개발속도 이다

- 개발중인 소프트웨어의 90% 이상은 인터넷, 네트워크 기반 소프트웨어이다.

- 인터넷, 네트워크상에서 소프트웨어의 속도보다 데이터의 전송속도가 더 중요하다

- 속도가 문제가 되면 대부분의 개발자들은 데이터베이스를 먼저 의심한다. 그리고 그곳에서 대부분 문제를 발견하고 해결한다.

 

-> 자바의 속도를 문제 삼지 말자.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Posted by 알콜
,

시작하고 해야할것은 설치하고 실행하는것이다 벌써부터 이해하려고 노력하지말자

 

* 최소한의 준비1 : JDK(JAVA Developement Kit) 다운로드

 

- 자바 프로그램의 개발을 위한 소프트웨어와 라이브러리의 모음

- java.sum.com 에서 무료로 다운로드

 

* java의 분류

 

- JAVA SE(Standard Edition) : 일반 데스크탑에서 제작하거나 데스크탑에서 사용할 수 있게 만드는 java (우리가 공부해야할 내용)

- JAVA EE(Enterprise Edition) : JAVA SE 보다 더 큰개념의 JAVA. 기업 환경 등에서 만드는 어플리케이션을 위한 JAVA.

- JAVA ME(Micro Edition) : 소형 divice에서 사용할 수 있게 만드는 java

java SE 를 소형화 시켜놓은것

 

JDK를 설치하고 나면

bin 이라는 폴더가 있는데

들어가면 javac.exe(자바 컴파일러)와 java.exe(자바 런처) 라는 실행파일이 있다

 

* 설치 이후 추가 과정 : bin 디렉터리 path 설정

 

시스템등록정보 ->고급->환경변수->PATH->자신의 jdk경로 추가

ex)c:\Program Files\Java\jdk1.60_11\bin; 추가

디렉터리의 정보는 ;로 구분이 된다 

 

* path설정의 확인

 

실행->cmd->java (자바 런처의 실행)

실행->cmd->javac (자바 컴파일러의 실행)

 

* 첫 번째 프로그램의 작성과 실행

 

class FirstJavaProgram

{

public static void main(String[] args)

{

System.out.println("Welcome to java");

System.out.println("First Java Program");

}

}

 

IDE라는 통합 개발 환경 (eclipse 등) 라는것을 다운받아서 쓰거나 그냥 메모장에 편집 할 수

있다 그러나 실행은 cmd창에서 해보기 바란다. 확장자는 .java 라는 확장자로 써넣어야한다

 

 

 

 

 

 

 

 

 

Posted by 알콜
,

이제 설명드릴 내용은 좀 어려울 수도 있다

어려워서가 아니고 좀 익숙하지 않아서 그렇다

마음의 준비를 하자

 

처음엔 이해하려고 해도 반정도 밖에 안될텐데 익숙해진다면 이해가 완벽히 될것이다

그래서 이해하려고 노력은 하되 많은 시간은 투자하지말고 익숙해지는데 시간을 투자하자.

 

C언어는 함수(function)로 이루어져 있다

함수에서 중요한것은 입력과 그에따른 출력이다.

함수는 1. 입력 2. 출력 3. 기능 을 갖추고 있어야 한다

 

이제 함수를 이해해보자

main이라는 함수를 호출(call) 하고

main( ) : () 에다가 입력에 대한 정보를 입력한다

main(입력정보)

{시작

~~기능

}끝

 

#include<stdio.h> //지금 이해할 수 있는 부분이 아니다 그냥 넣어주자

 

int main(void) // 프로그램의 기본 틀이다 프로그램의 시작이다

{

printf("Hello world"); //출력하는 기능 printf

return 0;

}

 

{} 는 기능들!!

 

아 설명하기 어렵네요 분명히 저 위에것들은 이해가 잘 안가셨을것 같습니다

*C언어의 기본단위인 함수 의 이해

 

- c언어의 기본단위는 함수이다.

함수를 만들고, 만들어진 함수의 실행순서를 결정하는 것이 c언어로 프로그램을 작성하는 것이다.

 

- 함수의 기본 특성

수학적으로 함수에는 입력과 출력이 존재한다(+기능)

 

-c언어의 함수

c언어의 함수에도 입력과 출력이 존재한다 (+기능)

 

-c언어의 함수와 관련된 용어의 정리

함수의 정의 : 만들어진 함수, 실행이 가능한 함수를 일컫는다

함수의 호출

 

: 함수의 실행을 명령하는 행위

인자의 전달 : 함수의 실행을 명령할 때 전달하는 입력 값

 

Hello.c에서의 함수는 어디에 있었을까?

int main(void)

{

printf("Hello world! \n");

return 0;

}

이거 전체가 함수이다

프로그램의 시작 점이 되는곳이 바로 main이라는 함수이다

(명령하지 않아도 자동으로 실행이 된다)

main : 프로그램을 시작 하겠다! 라는 시작점이다

main이 없으면 프로그램이 시작되지 않는다

 

 

※정리

 

- 프로그램의 시작

첫번째 함수가 호출이 되면서 프로그램은 시작이 된다

 

- 제일 먼저 호출되는 함수는?

main 이라는 이름의 함수이다. 따라서 C언어로 구현된 모든 프로그램은 시작점에 해당하는 main이라는 이름의 함수를 반드시 정의해야한다.

즉 main이라는 이름의 함수가 자동으로 호출이 되면서 프로그램은 실행한다.

 

-함수의 기능

함수의 기능은 중괄호 안에 표현이 되며, 중괄호 안에 표현된 함수의 기능을 가리켜 함수의 몸체라 한다.

 

- C언어의 함수에 표시가 되는 세가지

함수의 이름 : 함수를 호출할 때 사용하게 되는 이름

출력 형태 : 실행의 결과를 일반적으로 반환형(return type)이라고 한다.

입력 형태 : 함수를 호출할 때 전달하는 입력 값의 형태

 

세미콜론

 

- 함수 내 존재하는 문장의 끝에는 세미콜론 ; 을 붙여준다

세미콜론은 문장의 끝을 표현하기 위한 문자이다.

 

-열 줄에 표현된 코드는 열 개의 문장인가?

하나의 문장이 둘 이상의 줄에 표시될 수도 있고, 한줄에 둘 이상의 문장이 표시될 수도 있다. 즉, 줄바뀜은 문장의 바뀜을 뜻하는것이 아니다

 

- 한줄에 하나의 문장을 표시하는것이 가장 일반적이고 또 보기도 좋다.

다음 세 main 함수는 모두 동일한 프로그램이다. 줄바뀜의 차이가 프로그램의 차이로 이어지지 않는다.

 

 

 

※처음 익숙치 않을때 세미콜론을 빼먹는경우가 많으니 주의바란다

 

*소스코드의 세세한 분석

 

 

#include<stdio.h>

int main(void) //함수의 시작

{

printf("Hello world! \n);  //나는 printf 라는 함수를 호출하고 hello world 라는 문자열을 입력하겠다

return 0; //함수를 끝내겠다(프로그램은 끝내겠다)

}

 

위에 소스코드를 그대로 쳐보지말고 printf를 하나 더 넣어본다던가, \n을 하나 더 넣어보던가 등 레고블럭을 갖고 노는것 처럼 이리저리 망가뜨리면서 놀아봐야 실력이 는다

그대로 따라해선 이해할수있는데 한계가 있다

 

-표준함수

이미 만들어져서 기본적으로 제공이 되는 함수!

printf함수는 표준함수 이다. (직접 만들지 않아도 호출할 수 있는 함수)

C언어에는 표준함수가 매우 많다

 

-표준 라이브러리

표준함수들의 모임을 뜻하는 말이다.

즉 printf함수는 표준 라이브러리의 일부이다

 

 

~~

설명하기 어렵네요

일단 계속 이런말 하는것좀 그렇치만 다 못알아 들으셔도...

코드를 계속 써보시고 습관들여놓으시고 장난도 쳐보시고 해보시면 실력이 느실겁니다

같이 열심히 합시다~

 

 

 

사진 출처 : orentec.co.kr

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'IT관련 > C' 카테고리의 다른 글

프로그램 완성과정(실습)  (0) 2013.03.21
프로그램의 완성과정  (0) 2013.03.20
이것이 C언어다  (1) 2013.03.18
반복실행을 명령하는 반복문(while문)  (0) 2013.03.18
Posted by 알콜
,