yoni

[01] Software 개론, 자바 언어의 이해, JDK1.8.0 설정 본문

java of educational by contents

[01] Software 개론, 자바 언어의 이해, JDK1.8.0 설정

yoni-1117 2018. 12. 1. 12:24

[01] Software와 자바 개발

 
1. 자바를 이용한 WEB(JSP, PHP, ASP.NET, HTML, JavaScript, CSS) 프로그램 개발 분야
   - 사용자는 웹브러우저만 설치되면 별다른 설정 없이 사용이 가능함.
 
   - 개발자 및 운영자는 유지보수(관리)가 매우 편리함.
     . CS(Client Server): 카카오톡 메신저 모든 사용자 다운로드 재설치
 
   - 자바는 JSP 서버 스크립트의 기반 기술로 자바 문법이 그대로 JSP에
     사용됩니다.
 
   - 자바 관련 기술이 사용된 사이트
     . 정부 관련 웹사이트는 전부 자바(Java, JSP, Spring, MyBATIS등)로
       제작되도록 의무화됨.
     . 전자 정부, 대법원 등기소, 기상청, 병무청, 국민연금, 고용보험,
       의료보험등 정부 관련 기관, 공기업 관련 기관, 고속버스 예매,
       철도청(코레일), 대형 쇼핑몰, 고용노동부 한국 고용 정보원, 금융,
       보험, 증권...


       http://www.kma.go.kr, http://www.weather.go.kr
 
     . 일반 중, 소규모 이상의 기업 전산화(SI: 시스템 통합)의 표준 기술
     . 많은 데이터를 처리하기위한 DBMS(Oracle, MySQL, MariaDB등)가
       필요한 자료처리 분야  
 
   - 기업 전산화의 표준 기술로 자바 관련 기술이 Daum, Naver를 포함하여 대부분 채택됨. 

   - 닷넷은 MS운영체제만 지원하나 JAVA는 대부분의 OS를 지원함.

   - MS는 초창기 웹개발 환경에서 Backdoor가 존재하여 기업으로부터
     신뢰를 많이 훼손당함.
 

 
 
2. Mobile Web, 안드로이드 기반 개발(2010년 이후)
   - 제임스 고슬링은 하드웨어 통제 목적으로 자바를 개발했으나
     C 언어에비해 느리고, 메모리를 많이 사용하여 기업에서 일부만
     사용되었으나 Google의 안드로이드 개발로 임베디드 시장에
     진출하게됨.

 
   - Android 스마트폰은 자바 코드를 고속으로 처리할 수 있는
     ARM(영국 PC 조립회사였으나 Process 회사로 변경)사의
     자바 가속 칩이 내장되어있어
     네트워크(3G, WIFI, Bluttooth, NFC(RFID), LTE),
     임베디드(폰, 타블렛, PMP, 디지털 전자 제품, YOYO),
     그래픽(3D, OPEN_GL ES), 게임 분야등 모든 분야에 탁월한 성능을
     발휘함. 

   - Android는 Web 관련 기술인 CSS3, Javascript, jQuery, jQuery Mobile,
     JSP, Spring, DBMS와 데이터 통신을 수행함.

   - 현재는 순수 native Android API 보다는 Cordova(Phonegap) 기반의
     Hybrid App 기반 개발을 주로 사용함(스마트폰 뱅킹등 대부분의 기업 app이 해당).

   - http://m.kma.go.kr
       
 
 
3. Big Data(2011 ~ 2023 년이후)
   - 데이터 수집 및 통계 결과를 웹으로 제공하는 기능 제공
   - 1GB, 1TB, 1PT등 이상의 데이터 분석 통계 기술
   - 관계형 데이터베이스(정형 데이터, Oracle, MySQL)가 해결하지 못하는
     비정형 데이터(각종 장비의 센서에서 수집된 데이터, 자율 주행 분석용 BMW 자동차 센서,
     댓글, SNS등)의 분석 기술 

   - Hadoop 분산 데이터 처리 서버
     . JAVA로 제작된 Open Source Software
     . 분산 병렬로 데이터를 처리하는 엔진
     . Google에서 만든 MapReduce framework을 이용하여 제작된 서버
     . HDFS 분산 파일 시스템
   - 저장소를 MongoDB로 사용하는 사례도 늘고 있음. 
   - 통계 언어로 R(S 프로그래밍 언어, 벨 연구소 개발)을 사용
     . 빅데이터 분석을 쉽게 할 수 있는 데이터(자료, Dataframe) 구조를 지원 
   - 대용량 데이터처리의 경우 Spark가 메모리 기반으로 Hadoop에비해 100배 이상
      빠른 성능을 갖는 경우도 있음. 
   - R: 빅데이터 분석, 최소의 코드로 많은 기능을 수행 가능, 비전공자도 적응이 상대적으로 수월함.
   - 통계학에 대한 지식이 필요함.
   - 사회적 이슈에 대한 관심과 인문학적 감각이 필요함.
   
           
4. 사물 인터넷(IOT, Embeded, GPS, RFID, NFC)(2014년 ~ 2023)   
   - Web을 이용한 모니터링 분야에서 주로 사용됨.
   - 하드웨어에 인터넷과 같은 통신 기술을 연동
   - 수집된 sensor 데이터 전송에 스마트폰 기술(Android, IPhone...)을 이용함.
   - LG U+ 가전 제품 모니터링
   - 보일러 스마트폰으로 온도 조절
   - 각종 센서를 이용한 분야(자동차)
   - Google Android ware OS 배포, Oracle의 IoT 관련 솔루션 공급
   - SK BTV 셋톱 박스 Google android TV
   - 오픈 하드웨어: Arduino(8 bit), 라즈베리파이(32 bit)등
 
 
5. 머신 러닝
   - 데이터를 분석하여 규칙을 찾아내는 프로그래밍
   - 구글이 2015년에 공개한 Open Source Framework Tensorflow가 많이 사용됨.
   - Tensorflow를 사용하기 편하게 지원하는 Keras등이 많이 사용됨.
   - Tensorflow는 C++로 제작되었으나 Python을 이용하여 기능 호출이 가능함.
   - Apache는 Spark를 오픈 소스로 공개함.

   - 인공 지능에 기반한 Machine running(기계 학습)(~ 2025 이후)을 이용한 데이터 분석
     학습 기법으로 발전하고 있습니다. 
   - Python 활성화
     
 
 
[02] JDK(Java Development Kit)1.8.0 설정 실습
   - 단순한 문자열(Code)을 컴퓨터 관련 기능이 들어간 코드로 변환(컴파일)하는
     작업을 지원합니다.  
 
   - JAVA의 Version
     J2SE = J2SDK = JDK
 
     JAVA               JSP        
     J2SE 1.4.2         J2EE 1.4 
     J2SE 1.5.0(5.0)    J2EE 1.5 <- Autoboxing, Generic등 지원 시작
     J2SE 1.6.0(6.0)    J2EE 1.6 <- Web 개발
     J2SE 1.7.0(7.0)    J2EE 1.6 
     J2SE 1.8.0(8.0)    <- Android 기반 개발 권장 버전,
                               자바가 출시되고 나서 큰 변화 전망,
                               IT 개발 환경의 변화에 따른 새로운 문법의 도입
     J2SE 1.9.0(9.0)     Web 서버와의 호환성이 부족함으로 향후 사용될것으로 예상
     J2SE 10.0.0(10.0)  Web 서버와의 호환성이 부족함으로 향후 사용될것으로 예상
                            J2SE 10.0부터 상용화로 전환 예정
     (Sun이 Oracle에 인수될때 JAVA를 Open Source로 공개하여 OpenJDK로 배포되는 자바
      대안으로 등장하고있음)
  
   - 수업 관련 폴더 생성
     (리눅스는 대소문자 구별, 한글 사용 금지, 공백 금지)

 
     C:/201812_java          <- 루트 디렉토리, 작업 기준 폴더, 홈 폴더
     C:/201812_java/setup  <- 설치 파일 저장, 다운로드 파일 저장
 
 
 
1. 다운 로드(Oracle license)
   - http://www.oracle.com

 
- 'Downloads -> Java -> All Java Downloads'를 클릭합니다.


- 'Java SE'를 클릭합니다.


 

* JDK 8 Update 101 버전은 불규칙적으로 보안 오류가 발생하니 설치하지마세요.
- JDK 8u60: JDK 8.0, 60회에 걸쳐서 보안 업그레드 및 버그 수정

  


- 라이 센스 동의 체크
  


- Windows 7 64bit: jdk-8u192-windows-x64.exe 
  Windows 7 32bit: jdk-8u192-windows-i586.exe(32 bit, 비권장)


- 다운 완료 확인(파일 크기): jdk-8u131-windows-x64.exe 202,784 KB
- 다운 완료 확인(파일 크기): jdk-8u152-windows-x64.exe 211,371 KB
- 다운 완료 확인(파일 크기): jdk-8u161-windows-x64.exe 211,470 KB
- 다운 완료 확인(파일 크기): jdk-8u181-windows-x64.exe 207,601 KB
- 다운 완료 확인(파일 크기): jdk-8u192-windows-x64.exe 212,397 KB
- 다운로드가 전부 안되고 중간에 종료되는 경우가 있음으로 용량을 확인합니다.  
  
 
   - JAVA를 만든 Sun Microsystems는 JAVA를 open source인 Open JDK로
     공개했습니다.
     OpenJDK는 기본적으로 Oracle JAVA와 기능이 같으며 최신기술이
     더빨리 적용되며 Open Source로 진행되는 JAVA 프로젝트임.
     Google은 Android 5.1부터 Oracle JAVA가 아니라 OpenJDK로 JAVA를
     변경했습니다.
  
  
2. 자바의 삭제
   - 자바 삭제시 관련 프로그램(인터넷 익스플로러등, 크롬은 상관 없음)을
     전부 종료후 삭제합니다.
   - 'C:/jdk1.8.0' 자바 설치 폴더를 탐색기에서 직접 삭제하면 윈도우 registery가
     손상되어 재설치해도 인식이 안될 수 있습니다.
   - [제어판 -> 프로그램 및 기능]에서 'JAVA'로 시작하는 모든 프로그램 삭제합니다.
 
    
 

 
3. 설치
   - 설치 폴더: C:\jdk1.8.0 <-- 대소문자 주의, 공백 주의
    

- 경로에 공백이나 한글이 있으면 패키지의 경우 인식을 제대로 못함으로
  공백이 들어간 경로는 사용을 하지 말 것.
   

 
- JRE 설치(자동 지정): C:\Program Files\Java\jre8\bin(OS 자동 인식 JRE)
- 윈도우 OS가 사용하기때문에 자동인식됨으로 기본값을 사용함.
   

   
* 개발 관련 컴퓨터는 영어로 컴퓨터 이름 지정을 권장합니다.


 
- 설치 확인 :
   . 시작 메뉴에서 cmd 입력하고 실행
   . 기존에 열린 콘솔(도스창)은 닫고, cmd로 다시 콘솔을 열어 명령어 실행.
   . java -version: 자바를 실행하는 프로그램인 JRE 호출 명령어
 
- 실행 예
C:\Users\soldesk>java -version
java version "1.8.0_192"
Java(TM) SE Runtime Environment (build 1.8.0_192-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.192-b12, mixed mode)

  
* 다른 버전의 자바 다운로드
http://www.oracle.com/technetwork/java/javase/archive-139210.html
  
* Open JDK 설치
- http://openjdk.java.net/ 
- Sun이 JDK를 오픈소스화 하기 위해 2007년 OpenJDK를 제작
- Oracle은 OpenJDK 프로젝트를 주도하는 주체이며, 오픈소스모델은 기술적인 발전을 위한 가장 좋은 방법이기 때문에
  OpenJDK를 향상시키기 위한 노력을 계속 할 것이다.
- OpenJDK Community는 지속적으로 Oracle에 의해 운영되며, 뿐만 아니라 이외의 기업,
   연구원 또는 개인에 의해 GPL-based 라이센스를 가지며, 변경될 계획은 없다.
- Ubuntu / Fedora / Red Hat Enterprise 와 같은 메이저 리눅스 제공자는 배포시에 OpenJDK를
  기본 Java SE 구현체로 제공.
  추가적으로 Eclipse Community의 2010 설문에서는 개발자의 21%가 OpenJDK를 사용하고 있다고 응답.
 
- 참고: https://www.holaxprogramming.com/2014/09/24/java-open-jdk/



Comments