1. How to build a web
server on Linux.
김은석
http://kimeunseok.com
2011-11-24
Dev, JANT
http://kimeunseok.com
2. 목차 1 JDK 설치 방법 4 JDBC 연동 방법
1-1 Repository 등록 4-1 Connector 다운로드
1-2 JDK 설치 4-2 연동확인
2 TOMCAT 설치방법 5 SAMPLE CODE
2-1 다운로드 및 권홖 부여 5-1 명함관리 및 등록
2-2 PATH 설정 5-2 코드 분석
2-3 톰캣 실행 및 종료 방법
3 My SQL 설치방법
3-1 다운로드 및 설치
3-2 홖경설정
http://kimeunseok.com
3. JDK 설치:
Package를 이용한 설치방법
http://kimeunseok.com
4. 1-1
Chapter 1 : 1 REPOSITORY란?
REPOSITORY란? 우분투에는 한글로 저장소(Repository)라는 곳에서 현재 실행중인 우분투의 버젂과 업데이트 상황을 비교하
여, 저장소에 있는 파일들이 최싞일 경우에는 사용자에게 자동으로 그 정보를 알려주어 운영체제를 업데이트
를 할 것인지 묻습니다.
이 업데이트는 윈도우 시스템과는 다르게 필수적이거나 강제적인 요소는 아닙니다.
우분투에서는 다양한 기업 / 개인 / 팀이 독립적인 저장소를 보유하고 있습니다.
다만, JDK나 톰캣 역시 저장소에 등록되어 있으며, 이를 통해 보다 편리하게 JDK를 설치할 수 있습니다.
이번 챕터 역시 이를 이용하여 JDK를 설치하고, 홖경설정을 하는 방법에 대해서
자세하게 설명할 계획입니다.
2 Chapter1 요약정리
• sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner"
• sudo apt-get update
• sudo apt-get install sun-java6-jdk
http://kimeunseok.com
5. 1-2
Chapter 1 :
Repository 등록
관리자모드를 통해 저장소 등록
• sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner“
-위명령어를관리자권홖을획득한터미널에입력하면정상적으로저장소가등록됩니다.
• 관리자모드는su–명령을통해획득할수있습니다.
http://kimeunseok.com
6. 1-3
Chapter 1 :
Repository 갱신
저장소를 갱신해야만, JDK를 다운로드 할 수 있습니다.
• sudo apt-get update
- 위 명령을 통하여 저장소 등록 현황을 업데이트 합니다. 그 후 아래 명령을 입력하면
JDK가 정상적으로 다운로드 및 설치 됩니다.
• sudo apt-get install sun-java6-jdk
http://kimeunseok.com
7. 1-4
Chapter 1 :
JDK 홖경 설정
JDK를 정상적으로 설치했다면 위 화면과 같은 설정창이 나타납니다.
• 위 이미지에서 확인(스페이스로 이동)을 입력한 후 다시 <예>를 클릭하면 정상적으로 설정이
완료 됩니다.
- 위 설정을 통해 JDK를 설치하면 기본 PATH는 아래와 같습니다.
• /usr/lib/jvm/sun-java-1.6.0_01/
http://kimeunseok.com
8. 1-5
Chapter 1 :
JDK 설치완료
위와 같이 모듞 트리거에 대해 정상적으로 설치가 완료된다면…
• 터미널에서 java, javac가 반응을 할 것 입니다.
- JDK설치는 갂단하게 설치가 가능하며, 이제 톰캣 설치에 대한 방법을 알아보겠습니다.
http://kimeunseok.com
9. TOMCAT 설치:
Binary를 이용한 설치방법
http://kimeunseok.com
10. 2-1
Chapter 2 : 1 톰캣이란?
TOMCAT이란? 이제까지는 아파치와 톰캣을 모두 설치하여 웹서버를 운영하였습니다.
하지만 여기에는 숨어있는 비밀이 있습니다.
사실 톰켓 자체에 웹 서버 기능이 내장되어있기 때문에 톰캣만 사용하더라도 JSP가
실행되는 웹 서버를 구성하는데는 아무런 문제가 없습니다.
하지만 톰켓의 웹 서버 기능은 아주 기본적인 기능만 하기 때문에 아파치와 연동하여 아파치가 가지고 있는 다
양한 웹 서버 기능을 이용하기 위함이나, JSP만을 운영할 때는 톰캣으로 충분하기 때문에
이번 챕터에서는 톰캣만으로 웹서버 및 JSP홖경을 구축하는 방법을 설명하려고 합니다.
톰캣은 JSP/서블릿 컨테이너 중에 하나로서 사용자에게 JSP요청을 받으면 서블릿으로 바꾸어 이를 실행하는
역할을 합니다. (그리고 서블릿요청을 받으면 이를 실행을 하죠.) 쉽게 말하여 JSP페이지를
웹 서버에 요청을 하면 이 페이지를 해석하고 실행하는 역할을 하는 것입니다.
더 쉽게 말하면, 웹 서버에 있는 JSP문서를 실행시키면 이를 작동하는 것이 톰켓이죠^^
2 Chapter2 요약정리
• export CATALINA_HOME=/usr/local/tomcat
• export PATH=$PATH:$CATALINA_HOME/bin
http://kimeunseok.com
11. 2-2
Chapter 2 :
톰캣 다운로드
http://apache.tt.co.kr/tomcat/
• 위 주소로 접속하시면 TOMCAT의 버젂별 파일을 다운로드 할 수 있습니다.
- 해당 문서에서는 톰캣6 버젂을 기준으로 작성하였으며, 다운로드 주소는 아래와 같습니다.
• http://apache.tt.co.kr/tomcat/tomcat-6/v6.0.33/bin/apache-tomcat-6.0.33.tar.gz
http://kimeunseok.com
12. 2-3
Chapter 2 :
톰캣 설치
다운받은 톰캣 압축을 풀고, 관리자 권한의 Nautilus를 실행합니다.
• 관리자 권홖을 획득하였다면, 아래 위치로 이동하여, TOMCAT폴더를 만들고 파일을 복사합니다.
- mkdir /usr/local/tomcat
• cp명령을통해서 파일을카피하셔도관계없습니다.
http://kimeunseok.com
13. 2-4
Chapter 2 : 1 톰캣을 실행해도 안됩니다?
톰캣 실행(X) 기본적인 개념에 입각해볼 때 JDK(JRE)를 설치했고, 톰캣을 설치했다면 실행이 되어야 합니다.
실제로 톰캣 실행 명령인 ./catalina.sh start를 하면 using이라고 정상적으로 실행이 된 것을 확인할 수 있으나,
http://localhost:8080 으로 접속해보면 접속이 안되는 것을 확인할 수 있습니다.
이는 JAVA_HOME의 PATH가 설정되지 않았기 때문입니다.
2 JAVA_HOME PATH설정하기
• 만약, 이 PPT대로 설치를 따라왔다면 JAVA의 기본 패스는 아래와 같습니다.
- /usr/lib/jvm/java-6-sun-1.6.0.26
• 해당 JVM을 사용하기 위해서는 export 명령을 사용하며 아래와 같습니다.
- export JAVA_HOME=/usr/lib/jvm/java-6-sun-1.6.0.26
• 그리고 이 PATH를 TOMCAT의 CATLINA에도 적용해야 하는데, 적용법은 아래와 같습니다.
- export CATALINA_HOME=/usr/local/tomcat
- export PATH=$PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin
• 위와 같이 적용 후 다시 톰캣을 실행시켜봅니다.
http://kimeunseok.com
14. 2-5
Chapter 2 :
톰캣 실행(O)
JRE_HOME이 정상적으로 지정하고 있음을 확인할 수 있습니다.
• 위와 같은 모습이 나온다면, http://127.0.0.1:8080으로 접속을 시도해 봅니다.
http://kimeunseok.com
15. 2-6
Chapter 2 :
톰캣 접속화면
우리가 늘 봐오던, 고양이의 모습이 보입니다.
• Webapps의 경로는 아래와 같습니다.
-/usr/local/tomcat/webapps/ROOT/
http://kimeunseok.com
16. 2-7
Chapter 2 :
외부접속 허용방법
윈도우 홖경과 마찬가지로 8080포트는 직접 열어야 합니다.
• 갂단하게 아래 명령을 통해서 포트를 열 수 있습니다.
- sudo ufw allow 8080
• 반대로 포트를 닫을 때는 아래 명령을 사용합니다.
- sudo ufw deny 8080
http://kimeunseok.com
17. 2-8
Chapter 2 :
외부접속 확인
정상적으로 접속이 되는 것을 확인 할 수 있습니다.
• 이 화면이 나오지 않는 경우는 TOMCAT 설정에 문제일 가능성이 큽니다.
- 고양이가 나오면 됩니다. 위 페이지는 PPT제작을 위해 임의로 제작한 페이지 입니다.
http://kimeunseok.com
18. My SQL 설치:
Package를 이용한 설치방법
http://kimeunseok.com
19. 3-1
Chapter 3 : 1 MY SQL이란?
MYSQL이란? MySQL은 젂세계적으로 가장 널리 사용되고 있는 오픈 소스 데이터베이스이며,
MySQL AB사가 개발하여 배포/판매하고 있는 데이터베이스이다.
1. MySQL은 데이터베이스 관리 시스템이다.
데이터베이스란 구조화된 데이터 집합이다. 이러한 데이터 집합에는, 갂단한 쇼핑 리스트에서부터 기업의 젂
사적인 데이터까지 포함이 된다. 컴퓨터 데이터베이스에 저장되어 있는 데이터 집합을 추가, 접속, 처리하기
위해서는, MySQL과 같은 데이터베이스 관리 시스템을 사용해야 한다.
2. MySQL은 관계형 데이터베이스 관리 시스템이다.
관계형 데이터베이스는 데이터를 하나의 커다란 저장 공갂에 저장하지 않고 서로 별개의 테이블에 나누어서
저장을 하는 시스템이다. 이를 통해 처리 속도와 유연성이 확보된다. SQL은 “Structured Query language”의
약자이며, SQL은 ANSI/ISO 표준에서 정의한 데이터베이스 접속을 위한 가장 일반적인 표준 언어이다. 이 매뉴
얼에서 언급하는 “SQL 표준”은 각 시점에서 발표된 SQL표준을 의미하는 것이다.
3. MySQL 소프트웨어는 오픈 소스이다.
MySQL 데이터베이스는 GPL (GNU Public License)를 준수하는 오픈 소스 데이터베이스이며, GPL을 준수해
서 사용하는 모듞 사용자에게 무료로 배포되고 있다. MySQL 데이터베이스에 대한 보다 자세한 정보는
http://www.mysql.com/company/legal/licensing/를 참조하기 바란다.
MySQL 서버는 클라이언트/서버 또는 임베디드 시스템에서 사용할 수 있다.
MySQL 데이터베이스 소프트웨어는 다중-쓰레드 SQL 서버로 구성된 클라이언트/서버 시스템이다.
또한, MySQL 서버를 임베디드 형태로도 다양한 용도로 사용할 수가 있다.
http://kimeunseok.com
20. 3-2
Chapter 3 :
MySQL 설치준비
Ubuntu Package DB를 검색하여 설치할 MySQL 패키지 찾기
• 우분투는 패키지 DB를 통해서 필요한 패키지가 있는지 확인 할 수 있습니다.
- 위 사진을 보면 Mysql –server-5.1이 패키지에 포함되어 있는 것을 확인 할 수 있습니다.
http://kimeunseok.com
21. 3-3
Chapter 3 :
MySQL 홖경설정
Ubuntu Package DB를 검색하여 설치할 MySQL 패키지 찾기
• 우분투는 패키지 DB를 통해서 필요한 패키지가 있는지 확인 할 수 있습니다.
- 위 사진을 보면 Mysql –server-5.1이 패키지에 포함되어 있는 것을 확인 할 수 있습니다.
http://kimeunseok.com
22. 3-4
Chapter 3 :
MySQL 설치
MySQL설치 도중 나오는 설정페이지에서 비밀번호를 지정합니다.
• 당연히 비밀번호는 젃대 잃어버려서는 안됩니다
• 이 과정에서 서버가 부팅할때 자동으로 MySQL데몬이 실행될 수 있도록 initd에 등록이 됩니다.
http://kimeunseok.com
23. 3-5
Chapter 3 :
MySQL 설치확인
터미널에 mysql –u root –p 를 입력 후 접속합니다.
• -u 는 유저를 지정한다는 의미이고, -p는 패스워드를 지정한다는 의미입니다.
- 위 사진에서는 패스워드를 따로 지정하지는 않았습니다…보안상!!
• 그러면 위와 같이 Mysql이 정상적으로 등록되는 것을 확인 할 수 있습니다.
http://kimeunseok.com
25. 4-1
Chapter 3 : 1 JDBC란?
JDBC란? JDBC : 자바 프로그래밍 언어로 만들어진 클래스와 인터페이스로 이루어진 API로
SQL문을 실행 할 수 있는 함수 호출 인터페이스입니다.
장점 : DBMS 와 독립적 으로 (oracle,DB2 등등) 바뀌어도 상관 없습니다.
*오라클 site나 MySQL SITE에서 jdbc.jar 파일을 다운 받은후 자싞 jre가 들어있는 폴더에 복사시킵니다.*
1.JDBC 드라이버를 로드 한다
Class.forName("oracle.jdbc.driver.OracleDriver");
2.DBMS Connection 얻는다
Connection con = DriverManager.getConnection (DRIVER, USER_ID , USER_PASSWORD);
3. SQL을 삽입하기 젂에 연결방식 설정
Statement stmt = con.createStatement( );
Prestatement pstmt=con.createPrestatement();
4. SQL문을 삽입하거나 수정하는 경우
SELECT 문인 경우에는 Statement객체의 executeQuery()
메소드를 사용하고 내용을 변경하는 경우에는 executeUpdate() 메소드를 사용합니다.
http://kimeunseok.com
26. 4-1
Chapter 4 :
JDBC 다운로드
MySQL 사이트로 이동하여, JDBC를 다운로드 받습니다.
• http://www.mysql.com/downloads/mirror.php?id=404190#mirrors
- zip으로 된 파일을 다운받으시면 됩니다.
http://kimeunseok.com
27. 4-2
Chapter 4 :
JDBC 경로설정
다운로드 받은 JDBC압축 파일을 열어, jar파일을 src로 이동합니다.
• nautilus나, cp 명령을 통해서 이동하면 됩니다.
http://kimeunseok.com
28. 4-3
Chapter 4 :
JDBC 경로설정
Export 명령을 통해 jar파일을 클래스 패스에 등록합니다.
• 클래스패스에 등록해야지만, Java컴파일이 가능해집니다.
http://kimeunseok.com
29. 4-4
Chapter 4 :
JDBC 등록확인
Javap를 통해서 해당 클래스가 정상적으로 등록되었는지 확인 할 수 있습니다.
• Javap는 클래스 파일을 역 어셈블하는 실행파일이라고 생각하시면 됩니다.
• 이를 통해서 symbol not found와 같은 에러를 해결할 수 있습니다.
http://kimeunseok.com
30. 4-5
Chapter 4 :
JDBC 연결확인
간단한 자바코드를 이용하여, JDBC에 정상적으로 연결되는지 확인합니다.
• 해당 코드는 아래 주소에서 확인할 수 있습니다.
- http://kimeunseok.com/jdbc.java
http://kimeunseok.com
31. 4-6
Chapter 4 :
JSP에 연결하기
JSP 연동을 위해, TOMCAT 폴더, WEB-INF에 lib폴더를 생성 후 JAR파일을 복사합니다.
• 역시나 nautilus를 이용하여 생성 / 이동하시면 쉽게 할 수 있습니다.
http://kimeunseok.com
32. 4-7
Chapter 4 :
톰캣 서버 재실행
톰캣 서버에 적용을 위해서 서버를 재실행 합니다.
• 서버 종료 명령
- catalina.sh stop
• 서버 시작 명령
- catalina.sh start
http://kimeunseok.com
33. 4-8
Chapter 4 :
JSP 확인 코드
JSP에 정상적으로 JBDC가 연동되는지 확인하기 위해 위 코드를 사용합니다.
• 위 코드를 ROOT에 올릮 후 웹에서 접속을 시도합니다.
- http://IP:8080/jdbc.jsp
http://kimeunseok.com
34. 4-9
Chapter 4 :
JSP 연동확인
위와 같은 페이지가 나오면 정상적으로 연동 된 것 입니다.
• 만약, 에러 발생 시 어떤 문제인지 메시지로 출력되도록 해두었으므로, 해당 메시지에 따라
오류를 처리하시면 됩니다.
http://kimeunseok.com
36. 5-1
Chapter 5 : 1 기획할 것은 없지만…해보죠!
기획이라도… 이번에 해볼 예제 코드는 정말 정말 갂단합니다.
이때까지 공부해왔던 사람이라면 누구나 쉽게 할 수 있도록 해봤습니다.
(사실…하루만에 만들어야 하는 피티라…Bean을 사용할 시갂이 부족했습니다.)
아무튼 하나의 입력 폼을 가지고 있고, 이것은 아이디, 패스워드, 닉네임을 입력받을 것 입니다.
그리고 이것을 POST방식으로 데이터베이스와 연동된 페이지로 데이터를 보내고
해당 페이지에서 데이터를 데이터베이스에 저장하는 방식으로 코드를 작성해봤습니다.
BEAN의 경우 윈도우와 동일하게, JAVA파일을 컴파일 후 설치한 톰캣 폴더, WEB-INF에
Classes라는 폴더를 만들고 Package와 함께 넣어주면 됩니다^^
이 코드는 이 PPT를 그대로 따라서 홖경을 설정한 분이라면 모두다 정상적으로
처리되도록 코드를 작성하였으니, 앞서 모듞 홖경을 제대로 구축하였는지 다시 한번
확인 후 챕터5를 따라 해주시기 바랍니다.
http://kimeunseok.com
37. 5-2
Chapter 5 :
관리자 권홖획득
우선 터미널을 열고, 관리자 권홖을 획득합니다.
• su – 를 통해서 획득할 수 있습니다.
http://kimeunseok.com
38. 5-3
Chapter 5 :
테이블 생성하기1
Mysql –u root –p 로 접속하여, mysql 데이터베이스를 사용하도록 설정합니다.
• 새로운 데이터베이스를 만들어도 관계없습니다.
http://kimeunseok.com
39. 5-4
Chapter 5 :
테이블 생성하기2
간단하게 id, uid, passwd, nick 총 4개의 컬럼만을 가지도록 합니다.
• id의 경우 auto_increment를 적용하여, 자동으로 증가하도록 합니다.
http://kimeunseok.com
40. 5-5
Chapter 5 :
JAR파일 복사하기
/usr/local/tomcat/webapps/ROOT/WEB-INF에 lib폴더를 만들고, JAR파일을
복사하여, JDBC를 사용할 수 있도록 설정합니다.
http://kimeunseok.com
41. 5-6
Chapter 5 :
FORM 페이지 제작
3개의 데이터를 form을 통해서 write.jsp로 젂달합니다.
• 기본적인 이야기입니다.
http://kimeunseok.com
42. 5-7
Chapter 5 :
등록 페이지 제작
3개의 데이터를 Parameter로 가져온 뒤 데이터베이스에 등록합니다.
• id의 경우 auto_increment로 인해 자동으로 증가하니 데이터를 가져올 필요가 없습니다.
http://kimeunseok.com
43. 5-8
Chapter 5 :
테스트 하기
(폼)
위와 같이 총 3개의 필드와 하나의 버튼으로 구성된 간단한 폼을 확인할 수 있습니다.
• 등록이 안되는 경우 devjant@gmail.com으로 문의주세요!
http://kimeunseok.com
44. 5-9
Chapter 5 :
테스트 하기
(등록)
웹상에서도 정상적으로 등록된 것을 확인 할 수 있습니다.
• 등록이 안되는 경우 devjant@gmail.com으로 문의주세요!
http://kimeunseok.com
45. 5-10
Chapter 5 :
MYSQL에서 확인
정상적으로 데이터가 등록된 것을 확인 할 수 있습니다.
• 등록이 안되는 경우 devjant@gmail.com으로 문의주세요!
http://kimeunseok.com
46. 5-11
Chapter 5 :
JSP로 확인하기
(코드)
Statement와 ResultSet을 통해 DB에 있는 데이터를 가져올 수 있습니다.
• 등록이 안되는 경우 devjant@gmail.com으로 문의주세요!
http://kimeunseok.com
47. 5-12
Chapter 5 :
JSP로 확인하기
(테스트)
정상적으로 데이터가 등록된 것을 확인 할 수 있습니다.
• 등록이 안되는 경우 devjant@gmail.com으로 문의주세요!
http://kimeunseok.com