JAVA

Hagi 2009. 8. 20. 16:28

프로그램이란 간단하게 말하면 데이터와 처리로 되어있다.

프로그램의 70%는 숫자와 문자 30%는 조건문...

궁극적으로 모두 숫자로 구성되어있다.

 

이것을 만들어가는 절차는 ...


1. 데이터 추출
2. 유효성 검사
3. 처리
4. 결과 출력

 

이 네가지에 집중하면 된다.

 

이것이 지금 선생님의 이론이다...

 

예) 게시판 만들기

1234 네 단계 후 공란 지점을 기준으로 분리할 수 있다.

------------------------------------------------------

while(true){
   if(userChoice.equals("R")){
    //4. 입력 항목 출력
    //4.1. 제목
    //4.2. 내용
    
    //1. 입력 항목 추출
    //1.1. 제목
    //1.2. 내용
    //2. 입력 항목의 유효성 검사
    //2.1. 제목(필수 입력, 2글자 이상 10글자 이하)
    //2.2. 내용(필수입력, 2글자 이상 50글자 이하)
    //3. 등록
    //3.1. 시스템 데이터 생성
    //3.1.1. 등록일
    //3.1.2. 조회수
    //3.2. 등록 실행
    //4. 결과 출력
   }else if(userChoice.equals("L")){
    //3. 게시물 목록 조회
    //4. 게시물 목록 출력
   }else if(userChoice.equals("V")){
    int seq = 0;
    //1. 게시물 번호 입력
    //2. 게시물 번호 유효성 검사
    //3. 해당 게시물 조회
    //4. 해당 게시물 출력
   }else if(userChoice.equals("E")){
    int seq = 0; 
    //1. 게시물 번호 입력
    //2. 게시물 번호 유효성 검사
    //3. 해당 게시물 조회(처리)
    //4. 입력 항목 출력
    //4.1. 제목(기존 입력 내용도 같이 출력)
    //4.2. 내용(기존 입력 내용도 같이 출력)
    
    //1. 입력 항목 추출
    //1.1. 제목
    //1.2. 내용
    //2. 입력 항목의 유효성 검사
    //2.1. 제목(필수 입력, 2글자 이상 10글자 이하)
    //2.2. 내용(필수입력, 2글자 이상 50글자 이하)
    //3. 수정
    //4. 결과 출력     
   }else if(userChoice.equals("D")){
    int seq = 0; 
    //1. 게시물 번호 입력
    //2. 게시물 번호 유효성 검사
    //3. 해당 게시물 삭제
    //4. 해당 게시물 출력
   }else{
    //4. 안녕히 가세요 출력
    break;
   }
  }

 

 

 
 
 

JAVA

Hagi 2009. 8. 18. 19:46

1. A simple
2. object-oriented
3. distributed
4. interpreted
5. robust
6. secure
7. architecture neutral
8. portable
9. high-performance
10. multithreaded and dynamic languag


1. 단순(simple)
자바는 C++ 언어를 기반으로 탄생하였지만, C나 C++에서 프로그래머에게 많은 혼란을 주는 요소들을 제거하여 단순하다.

2. 객체지향(Object-Oriented)
자바는 객체지향 언어이다. 자바 프로그램의 모든 요소들은 객체로 표현된다. 객체지향은 소프트웨어의 재사용과 정보의 캡슐화 같은 많은 장점을 제공한다.   객체지향은 우리의 실세계와 유사한 프로그램 방식이다. -> 그러므로, 사용자와의 깊은 대화가 필요하다.

ex) getter와 setter의 사용으로 데이터를 보호

3. 분산(Distributed) 환경에 적합
자바는 인터넷 또는 네트웍을 통하여 효율적으로 수행될 수 있도록 설계되었다. http, ftp, tcp/ip 프로토콜 등과 연관된 라이브러리를 제공한다.  또한 자바는 다른 컴퓨터에 있는 원격 객체들을 호출할 수 있는 RMI 기능을 제공한다.

4. 인터프리터(Interpreted)에 의해 실행
자바는 독특한 실행 방식을 취하고 있다. 자바 소스는 자바 가상 기계에서 실행될 수 있는 바이트 코드로 번역되며, 번역된 바이트 코드는 바이트 코드 해석기가 있는 어떠한 기종의 컴퓨터 환경에서도 실행될 수 있다.

5. 견고(Robust)하다
자바는 한번 작성되어 다양한 컴퓨터에서 실행되어야 하므로 높은 신뢰성이 요구된다. 자바는 높은 신뢰성을 유지하기 위해 다음과 특징을 가진다.
No Pointer(포인터가 없다)
Automatic Garbage Collection(Garbage collection이 쓰레기 메모리를 자동적으로 정리한다)
Strict Type Checking(엄격한 형 검사)
Runtime Error Processing(실행시간 에러를 체크)


6. 안전(Secure)하다
자바는 분산 환경에서 실행될 수 있도록
개발환경과 실행환경이 분리되어 있다.
JVM은 무결성에 대한 필수적인 검사를 수행한다.

8. 구조에 중립(Architecture neutral)적이고 이식성(Portable)이 높다
자바는 자바 가상기계에서 실행되는 바이트 코드를 사용함으로써 특정 컴퓨터에 종속되지 않는다. 자바는 한번 작성되면 JVM이 설치된 모든 종류의 컴퓨터에서 실행할 수 있다.
자바는 언어의 문법 뿐만 아니라 시스템 종속적인 부분까지도(int는 항상 32비트 등) 시스템 구조 중립적으로 설계되었다.
구조 중립적으로 설계된 자바는 높은 이식성을 제공한다.

 

9. 높은 성능(High-performance)
바이트 코드는 인터프리터에 의해 효율적으로 수행될 수 있도록 설계되었다.
실행의 효율성을 제공하기 위해 JIT 컴파일러 제공
자바 번역기는 바이트 코드 생성시 자동 레지스터 할당과 최적화를 수행하여 효율적인 바이트 코드를 생성한다

10. 멀티스레드(Multithread)
동시에 수행하여야 하는 작업들을 스레드 기술할 수 있다
자바는 스레드의 편리한 사용을 위한 라이브러리를 제공

11. 동적(Dynamic)
자바는 변화하는 환경에 적응되도록 설계된 언어로서, 기존의 프로그램에 영향을 주지 않고 라이브러리에 새로운 메소드나 속성들을 추가할 수 있다.
자바는 라이브러리와의 연결을 실행시간에 수행한다.

-----------------------------------------------------------------------------------------------------------------------------

*platform-independent

 

1. naver지식iN의 hanswar님의 답변

 

java는 컴파일시 기계어가 아닌, object 코드로 존재 합니다. 기계어란 OS마다 서로 틀린 코드를 사용하므로, Windows에서 컴파일된 기계어는 다른 OS, Unix나 Mac과 같은 환경에선 실행할 수 없지요. JAVA는 Virtual Machine이라는 것이 있습니다. 이것은 물론 각 OS마다 다른 기계어 코드로 컴파일 되어 있습니다.

우리가 작성하는 JAVA 파일들은 컴파일 후 아무 OS나 실행되는 것이 아니라, 이러한 JAVA Virtual Machine이 각각 설치된 OS에 따라 최종 컴파일을 하고 실행을 하게 됩니다. 따라서, 속도가 당연히 기계어 코드로 되어있는 프로그램보단 느리겠죠. 컴파일을 한번 더 해서 실행이 될테니까요.이것을 극복하고자 여러가지 기술이 반영되어 있구요.

 

아무튼 우리가 작성하는 JAVA 코드를 JAVA Compiler를 통해 컴파일을 하면, JAVA Virtual Machine에서 인식 할 수 있는 코드(이것을 Object코드라 부름)로 만들어 줍니다. 최종적으로 각각 플랫폼에 맞는 기계어 코드로의 변환은 JAVA Virtual Machine에서 하고 실행해 줍니다. 따라서 플랫폼마다 각각의 JAVA Virtual Machine이 존재하는 것 입니다.

 

2. 수업시간에 들은 것

 

Sun Microsystems는 원래 하드웨어를 만드는 회사였는데, 자신들이 만든 하드웨어를 구매한 회사가 단지 간단한 소프트웨어를 얹어서 비싼 값에 판 것을 본 후, 소프트웨어 개발에 뛰어들었다고 하는군요. 처음에는 단지 소프트웨어만 얹어서 팔면 될 것이라 생각했으나, 각 회사마다 시스템이 달라서 팔 때마다 소프트웨어를 만들어주는 것이 돈이 안되어서, 모든 시스템에서 돌아갈 수 있는 소프트웨어를 만드려고 했고, 그것이 JAVA라고 합니다.

 

 

 

 

----------------------------------------------------------------------------------------------------------------------------

[플랫폼이란?]

 

1. naver지식iN의 bymgood님의 답변

 

원래 플랫폼이란 일반적으로 기차의 타고 내리는 곳(승강장)을 이를때가 많습니다. 연상적으로 생각하자면 기차에서 지상으로 이어주는곳 그런 말이 되겠지요. 직접적으로 플랫폼이라고 말해도 사람들이 이해할수 있다고 생각합니다.  한국에서도 많이 쓰이고요 (특히 컴퓨터 용어로)제가 모르고 말하는것일수도 있지만 영어에서도 은유적 표현으로 쓰인것 같습니다(원래뜻은 승강장,강단등의 뜻) 질문자님께서 말하는 '수단'도 괜찮고요 '방법' 뭐 상황에 따라 '이어주는 어떤것' 이라는 의미로 해석하시면 좋을것입니다