Java: 개요 및 개발환경 구축
1. Java
Java의 특징
- 범용 개발언어: standalone app부터 web app, mobile에 이르기까지 다양한 곳에서 활용
- 객체지향 언어(OOP)
- 풍부한 API: 오픈소스이기 때문
- 플랫폼 독립적(platform independency)
    - o/s(운영체제): 윈도우, 리눅스, 맥, 솔라리스 등
- DBMS: mysql, oracle, db2 등
- WAS(Web Application Server)
 
- 동적 바인딩
- 멀티쓰레드(JBM이 프로그램 단위에서 제공)
- 보안 우수
- complied 방식(수행속도 fast) +interpreted 방식(o/s 독립, 요즘은 이 장점이 더욱 부각)
    - 수행속도는 하드웨어로 해결할 수 있는데, o/s 독립성은 그렇지 못하다.
- 기존 C, C++ 컴파일 방식에 비해선 느릴 수 있으나 운영체제 독립적(우리나라에서 많이 씀)
 
Java version history
- 1.0, 1.1: Java
- 1.2~1.4: Java2
- 1.5(5.0), 1.6(6)~1.8(8): Java, 오픈소스
    - 실무에선 1.8 무료버전을 제일 많이 사용. 이거로 수업 진행할 예정
 
- 1.8.202 이후: 유료화
- 
    16버전: 현재 
- OpenJDK: 무료
Java Edition
- JavaSE(Standard ed.): 앱 개발
- JavaEE(Enterprise ed.): 웹 개발(Servelt7JSP, EJB, JavaMail, JMS 등)
- JavaME(Micro ed.): 모바일 및 임베디드 개발
cf. 용어설명
객체(object)
- i.e. 자동차, 책, 냉장고, 홍길동
API(Application Programming Interface)
- 미리 만들어서 제공되는 라이브러리
- 미리 만들어져 있는 class들의 묶음
    - *.jar
- JavaSE API 모음: t.jar
 
OS(플랫폼) 독립적(platform independency)
- 자바 실행환경(JRE: Java Runtime Env.)
    - java.exe(실행명령어)
- JRE = JVM(자바가상머신) + API
 
- 자바 개발환경(JDK: Java Development Kit)
    - javac.exe(컴파일러)
- java.exe(실행명령어)
- javadoc.exe(api 문서 자동생성기)
- 
        jar.exe(클래스 묶음, *.jar, *.war, *.ear)
- JDK = JRE + TOOLS(javac.exe(컴파일러) 등)
 
개발언어의 작동방식 종류
- complied 방식
    - c, c++, vb 등
        - (1) 소스코드작성: Hello.cpp
- (2) 컴파일: Hello.exe(o/s lib 포함)
- (3) 실행: hello.exe,HELLO.exe
 
- (1) 소스코드작성: 
- 장점: 수행속도 fast
- 단점: o/s 종속적
 
- c, c++, vb 등
        
- interpreted 방식
    - python, lisp, html 등
- 전제조건: 번역기(interpreter) 설치, 브라우저
        - (1) 소스코드작성: hello.html, hello.py
- (2)
- (3) 번역 실행: 한줄 읽고 번역 실행
 
- 장점: o/s 독립적(단, 전제조건: 운영체제에 맞는 번역기가 필요)
- 단점: 수행속도 비교적 느림(다만, 하드웨어 발달로 현재는 크게 문제되지 않음)
 
Java 프로그래밍 개발 순서
- 
    (1) 소스코드작성: HelloWorld.java 
- 
    (2) 컴파일: - 
        명령프롬프트 > javac HelloWorld.java => HelloWorld.class (byte code: 바이트코드, o/s lib 포함하지 않음. 중간 단계의 기계어) 
 
- 
        
- 
    (3) 자바 번역실행: JVM(Java Virtual Machine, 자바 가상머신) - 명령프롬프트> java HelloWorld - 실행시 주의사항
            - 대소문자를 구분한다.
- 확장자를 포함시키면 안됨
- 반드시 실행메서드가 존재해야됨
- ‘자바 실행 메서드’: public static void main(String[] args){}
 
 
- 실행시 주의사항
            
 
- 명령프롬프트> java 
Java 프로그래밍 주의사항
주의사항
- 대소문자를 구분하므로 정확하게 표기해야 함
- 명령문 끝에는 반드시 ;(세미콜론)를 작성
- {}는 반드시 짝을 이뤄야 함
- 줄 맞추기(for 가독성)
- 이름 명명규칙 준수
식별자(identifier) 명명 주의사항
- 이름(클래스, 변수, 메서드, 패키지, 상수 등의 이름)
- 영문자나 밑줄, $ 등으로 시작할 수 있음
- 숫자도 사용가능, 그러나 시작문자로는 사용 못한다.
- 길이 제한 x
- 의미있는 이름으로 지정해야 함
- 약어는 가능한 한 전체적으로 지정(for 가독성, 분명한 의미전달)
    - 용어집(설계: Data Dictionary)
 
- 예약어(keyword)는 식별자로 사용불가
- 공백도 불가능
이름 명명규칙(Naming Convention)
- 클래스이름: Upper camel case(대문자시작+대문자시작)
    - i.e. HelloWorld, System, StringBuffer
 
- 변수이름: Lower camel case(소문자+이후대문자시작)
    - i.e. length, companyName
 
- 메서드이름(): Lower camel case
    - i.e. length(), toString()
 
- 패키지이름: (소문자.소문자)
    - 물리적: 폴더(디렉토리) 개념
- 같은 종류의 클래스, 권한 제한을 목적으로 분리를 위한 개념 - i.e. java.lang, java.util, java.sql
 
- 상수이름: (모두대문자_모두대문자)
    - i.e. PI, E, MAX_VALUE
- 커스텀 상수: public static final 타입 상수명 = 상수값
 
예약어(keyword)
- Java에서 사용목적이 미리 정의되어 있는 식별자: 모두 소문자로 작성
    - i.e. public, class, static, void, if, for, do, while
 
- 몇가지 예외사항
    - 예약어이지만 지원x: const
- 예약어는 아니지만 식별자로 사용 자제: sizeof
- 예약어처럼 사용되는 상수: true/false, null
 
2. Java 개발환경 구축
설치 프로그램 목록
- JDK(자바 개발 도구)
- 자바 개발환경
- 오라클홈페이지 > 상단 products > software > java
- JDK 다운로드 링크
- API Documentation(API 도움말)
    - Online
- Offline(권장, JDK 다운로드시에 동일버전으로 받을 것)
 
- 
    8u202(무료버전) + 8u301(documentation) 같이 다운로드 
- 환경변수 설정
    - JAVA_HOME = C:\Program Files\Java\jdk1.8.0_202
- PATH = %JAVA_HOME%/BIN;기존path
 
- Eclipse(IDE)
- 통합 개발환경 tool
    - 장점: 오픈소스
- 공공기관, 엔터프라이즈(대기업) 등에서 이클립스 기반으로 개발
 
- eclipse 홈페이지
- 다운로드목록
    - Eclipse IDE for Enterprise Java and Web Developers 최신버전으로 다운로드
 
- 
    압축해제(설치폴더): C:\00.practice\eclipse
- 실행 후 환경설정(우상단에서 Java EE로 되어있는걸 open perspective 이용하여 Java로 변경)
cf. 로컬폴더 구조
- 기본폴더
    - C:\00.practice
 
- 프로그램 다운로드 폴더위치
    - down_apps
- down_apps\jdk>-
- down_apps\eclipse>
 
설치여부 및 버전확인
목적(실무)
- 
    실무에서 코드가 잘 돌아가지 않을 때 설치여부 및 버전확인을 하는 것이 중요하다. 
- 
    다중 프로젝트 투입(운영) 시 다양한 jdk 버전을 활용하여야 하는 경우가 자주 발생 
- 
    JDK(javac) 
- 
    JRE(java) 
방법
명령프롬프트
javac -version
 직접 설치한 javac의 버전 확인
java -version
 개발자는 아니지만, 다른 java관련 앱을 설치받아 사용할 때 버전값이 나온다.
path
기타 준비사항
한글 인코딩
– euc-kr, ksc5601: 한글, 영문
– utf-8(권장): 한글, 영문 + 다국어, html5, ajax(비동기통신)
이클립스 환경설정
- 
    단위: workspace단위, project단위, file단위 
- 
    workspace 환경설정 - Window > preferences
- spelling: Encoding UTF-8
- encoding:
- Workspace Text file encoding UTF-8
- Web > html, css, jsp 모두: UTF-8
 
- 
    Java 설정 - Build path output folder name: bin -> classes
- complier: version 1.8로 변경
- installed JREs: C:\Program Files\Java\jdk1.8.0_202 (name: jdk1.8.0_202)(이렇게 버전이름으로 name을 설정해야 버전별로 나눠서 사용 손쉽게 가능)
 
 
      
    
Leave a comment