2017년 2월 27일 월요일

웹 프로그래밍 개발환경 구축 ( JDK, 아파치 톰캣, 이클립스, MySQL ) for Windows


1. 파일 다운로드

 설치할 컴퓨터의 사양에 따라 다운로드합니다.

 JDK : http://www.oracle.com/technetwork/java/index.html
     JAVA SE (Standard edition) 최신버전 설치
 Eclipse ( 개발 도구 IDE ) : http://www.eclipse.org
      Eclipse IDE for java EE Developers 다운로드

 Apache Tomcat 9.0 : http://tomcat.apache.org/
      
 MySQL : https://dev.mysql.com/downloads/
     MySQL connector/J (zip 파일),
     MySQL Server (msi 파일) 다운로드


2. JDK 설치 및 환경변수 등록

 JDK 설치 후 C:\programfiles\JAVA 폴더에서 jdk 와 jre 가 설치됨을 확인하고 jdk 폴더안의 bin 폴더까지의 경로를 환경변수로 등록
 ( 제어판 - 시스템 - 고급 시스템 설정 - 환경변수 - 시스템변수 - Path 에  ...\jdk\bin 경로 추가, 세미콜론(;) 으로 구분 )


3. Tomcat 설치
   설치 경로를 C:\ 로 하면 추후에 eclipse 와 연동하기 편함


4. eclipse 와 Tomcat 연동
   작업표시줄 오른쪽에서 Tomcat 서비스 실행 중이면 stop 버튼으로 중지
   eclipse 실행 후 server 패널이 있는지 확인
   (없으면 상단의 탭 Window - Show View - server  ( 없으면 other 에서 찾기))
   server 패널에 Tomcat 이 없으면 상단 탭 Window - Preferences
   Preference 에서 Server - Runtime Environment 에서 Add 로 Tomcat 9.0 추가
   Tomcat 설치 경로 및 jdk 설치하면서 생성된 jre 버전 선택 -> 없으면 추가하여 jre 경로 지정
   eclipse server 패널에 tomcat 생성된 것 확인


5. tomcat 연동 결과 확인
    File - New - Dynamic Web Project 생성 ( 없으면 other 선택, web 폴더에 있음 )
    생성된 프로젝트에 우클릭 - new - JSP file
    생성된 JSP 파일의 <body> 태그 사이에 12345 작성 후 저장
    jsp 파일에 우클릭 - run as - run on server 해서 웹페이지에 12345 확인


6. MySQL 설치
     port number(3306) , root password(자유)

     user(자유) , host(localhost),role(DB admin), password(자유)
       - user 와 password 는 기억해두어야 후에 연동 테스트에 db 연결이 가능함

     설치 과정 중에 user 와 password 로 연결 테스트가 있음

     환경변수에 MySQL Server 의 bin폴더 경로 추가
     (C:\Program Files\MySQL\MySQL Server 5.7\bin)


7. MySQL Server 테스트  ( 생략 가능 )
    시작 - MySQL - MySQL5.7 Command Line Client 실행 (설치 때 사용한 비밀번호 필요)
    명령어 입력 ( // 뒤의 내용은 명령어가 아님 ) 
    show databases;   // db 조회

    create database test_db;  //test_db라는 데이터베이스 생성
    grant all on test_db.* to 'user' @'localhost' identified by 'password';
    //localhost로 접속한 'user'라는 사용자에게 test_db에 대한 모든 권한을 줌.  '' 안의 내용은 모두 설치 시 입력한 내용
    connect test_db;     //DB에 연결
    show tables;    // 현재 db의 table 조회
    create table test_table (
          id varchar(8) not null,
          pw varcahr(16) not null,
          primary key (id)
     );
     //test_table이라는 테이블을 생성
     show tables;
     quit;   // 종료


8. MySQL 연동 및 테스트
     MySQL connector/J 압축파일을 풀어서 mysql-connector-java-5.1.40-bin.jar 파일을 Tomcat 폴더의 lib 폴더와 C:\Program Files\Java\jre1.8.0_121\lib\ext 로 각각 복사한다.

     이클립스에서 jsp 문서를 생성 후 *** 사이의 코드를 복사함 ( 코드 수정 필요 )
***********************************************
<%@ page contentType="text/html; charset=euc-kr" language="java" %>
<%@ page import="java.sql.*" %>

<%
 Connection con = null;
 PreparedStatement pstmt = null;
 ResultSet rs = null;

 try {
  String DB_SERVER = "localhost:3306";  // MySQL 설치시 등록한 포트로 수정필요
  String DB_USERNAME = "user";          // MySQL 설치시 등록한 user 로 수정필요
  String DB_PASSWORD = "password";   // MySQL 설치시 등록한 user 로 수정필요
  String DB_DATABASE = "test_db";       // db 테스트 때 생성한 db 로 수정 필요
  String DB_TABLE = "test_table";          // db 테스트 때 생성한 table 로 수정필요

  String jdbcUrl = "jdbc:mysql://" + DB_SERVER + "/" + DB_DATABASE;

  Class.forName("com.mysql.jdbc.Driver");
  con = DriverManager.getConnection(jdbcUrl, DB_USERNAME, DB_PASSWORD);
  %>

 <h1>Database 연결 테스트</h1>
  Database 연결 성공<br>
  <%
  
  String query = "select * from "+DB_TABLE;
  pstmt=con.prepareStatement(query);
  rs=pstmt.executeQuery();

  int count=0;
  while(rs.next()) {
   
   String number=rs.getString("id");
   String name = rs.getString("pw");
   %>
   <p>[<%=count%>] number : <%=number%>, name : <%=name%></p>
   <%
   count++;
  }
  
 } catch(Exception e) {
  e.printStackTrace();
  out.println("Fail");
 }
%>
**************************************************************************

jsp 실행
Database 연결 성공 이라는 문구가 보이면 JDK, Tomcat, Eclipse, MySQL 연동 성공

텐서플로우 설치 (TensorFlow for windows)

1. 파일 다운로드

  - Anaconda 4.3.0 for windows : https://www.continuum.io/downloads

  - CUDA 8.0.44 : https://developer.nvidia.com/cuda-downloads
      local 버전 권장 ( network 버전은 비교적 오래걸림 )

  - NVIDIA cuDNN : https://developer.nvidia.com/cudnn
      deep learning 용 추가 라이브러리 ( CUDA8.0 은 cuDNN 5.1 설치 )
      회원가입 필요

  - Python 3.5 : https://www.python.org/downloads/release/python-350/
      윈도우에서 tensorFlow 를 시작하려면 3.5 버전이상 필요


2. Anaconda 4.3.0 , CUDA 8.0, Python3.5 설치
    python 설치 시 path 등록에 체크하면 환경변수 등록하는 작업을 생략할 수 있다.


3. cuDNN 압축 해제 후 CUDA 8.0 의 경로에 붙여넣기
    CUDA 경로 : C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0


4. TensorFlow-GPU 설치
 
  1) cmd 관리자 실행하여 다음 명령어를 입력한다.
   pip install tensorflow-gpu

  2) 이전의 명령어에서 pip 버전이 낮아서 불가하다는 문구가 나오면 다음명령어로 pip를 업그레이드 한 후에 다시 1) 을 수행한다.
   python -m pip install --upgrade pip

  3) tensorflow 가 성공적으로 설치가 완료되면 다음의 명령어를 수행한다.
   pip install --upgrade https://storage.googleapis.com/tensorflow/windows/gpu/tensorflow_gpu-0.12.0rc0-cp35-cp35m-win_amd64.whl


5. 설치 확인

   Anaconda prompt를 관리자 권한으로 실행하고 Python 에서 다음의 code 를 입력한다.

   import tensorflow as tf
   hello = tf.constant('Hello, TensorFlow')
   sess = tf.Session()
   print(sess.run(hello))

   결과 : Hello, TensorFlow


텐서플로우 설치에 참고할만한 사이트
1. 텐서플로우 문서 한글 번역본
https://tensorflowkorea.gitbooks.io/tensorflow-kr/content/g3doc/get_started/os_setup.html
2. 블로그
http://comajava.blogspot.kr/2017/01/windows-tensorflow-python-35-anaconda.html