SlideShare a Scribd company logo
1 of 48
How to build a web
server on Linux.




                         김은석
                           http://kimeunseok.com
                            2011-11-24
                        Dev, JANT




http://kimeunseok.com
목차                      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
JDK 설치:
                        Package를 이용한 설치방법




http://kimeunseok.com
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
1-2



Chapter 1 :
Repository 등록




                        관리자모드를 통해 저장소 등록
                        • sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner“
                         -위명령어를관리자권홖을획득한터미널에입력하면정상적으로저장소가등록됩니다.
                        • 관리자모드는su–명령을통해획득할수있습니다.



http://kimeunseok.com
1-3



Chapter 1 :
Repository 갱신




                        저장소를 갱신해야만, JDK를 다운로드 할 수 있습니다.
                        • sudo apt-get update
                         - 위 명령을 통하여 저장소 등록 현황을 업데이트 합니다. 그 후 아래 명령을 입력하면
                           JDK가 정상적으로 다운로드 및 설치 됩니다.
                        • sudo apt-get install sun-java6-jdk

http://kimeunseok.com
1-4



Chapter 1 :
JDK 홖경 설정




                        JDK를 정상적으로 설치했다면 위 화면과 같은 설정창이 나타납니다.
                        • 위 이미지에서 확인(스페이스로 이동)을 입력한 후 다시 <예>를 클릭하면 정상적으로 설정이
                         완료 됩니다.
                         - 위 설정을 통해 JDK를 설치하면 기본 PATH는 아래와 같습니다.
                        • /usr/lib/jvm/sun-java-1.6.0_01/

http://kimeunseok.com
1-5



Chapter 1 :
JDK 설치완료




                        위와 같이 모듞 트리거에 대해 정상적으로 설치가 완료된다면…
                        • 터미널에서 java, javac가 반응을 할 것 입니다.
                         - JDK설치는 갂단하게 설치가 가능하며, 이제 톰캣 설치에 대한 방법을 알아보겠습니다.




http://kimeunseok.com
TOMCAT 설치:
                        Binary를 이용한 설치방법




http://kimeunseok.com
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
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
2-3



Chapter 2 :
톰캣 설치




                        다운받은 톰캣 압축을 풀고, 관리자 권한의 Nautilus를 실행합니다.
                        • 관리자 권홖을 획득하였다면, 아래 위치로 이동하여, TOMCAT폴더를 만들고 파일을 복사합니다.
                         - mkdir /usr/local/tomcat
                        • cp명령을통해서 파일을카피하셔도관계없습니다.



http://kimeunseok.com
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
2-5



Chapter 2 :
톰캣 실행(O)




                        JRE_HOME이 정상적으로 지정하고 있음을 확인할 수 있습니다.
                        • 위와 같은 모습이 나온다면, http://127.0.0.1:8080으로 접속을 시도해 봅니다.




http://kimeunseok.com
2-6



Chapter 2 :
톰캣 접속화면




                        우리가 늘 봐오던, 고양이의 모습이 보입니다.
                        • Webapps의 경로는 아래와 같습니다.
                         -/usr/local/tomcat/webapps/ROOT/




http://kimeunseok.com
2-7



Chapter 2 :
외부접속 허용방법




                        윈도우 홖경과 마찬가지로 8080포트는 직접 열어야 합니다.
                        • 갂단하게 아래 명령을 통해서 포트를 열 수 있습니다.
                         - sudo ufw allow 8080


                        • 반대로 포트를 닫을 때는 아래 명령을 사용합니다.
                         - sudo ufw deny 8080
http://kimeunseok.com
2-8



Chapter 2 :
외부접속 확인




                        정상적으로 접속이 되는 것을 확인 할 수 있습니다.
                        • 이 화면이 나오지 않는 경우는 TOMCAT 설정에 문제일 가능성이 큽니다.
                         - 고양이가 나오면 됩니다. 위 페이지는 PPT제작을 위해 임의로 제작한 페이지 입니다.




http://kimeunseok.com
My SQL 설치:
                        Package를 이용한 설치방법




http://kimeunseok.com
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
3-2



Chapter 3 :
MySQL 설치준비




                        Ubuntu Package DB를 검색하여 설치할 MySQL 패키지 찾기
                        • 우분투는 패키지 DB를 통해서 필요한 패키지가 있는지 확인 할 수 있습니다.
                          - 위 사진을 보면 Mysql –server-5.1이 패키지에 포함되어 있는 것을 확인 할 수 있습니다.




http://kimeunseok.com
3-3



Chapter 3 :
MySQL 홖경설정




                        Ubuntu Package DB를 검색하여 설치할 MySQL 패키지 찾기
                        • 우분투는 패키지 DB를 통해서 필요한 패키지가 있는지 확인 할 수 있습니다.
                          - 위 사진을 보면 Mysql –server-5.1이 패키지에 포함되어 있는 것을 확인 할 수 있습니다.




http://kimeunseok.com
3-4



Chapter 3 :
MySQL 설치




                        MySQL설치 도중 나오는 설정페이지에서 비밀번호를 지정합니다.
                        • 당연히 비밀번호는 젃대 잃어버려서는 안됩니다
                        • 이 과정에서 서버가 부팅할때 자동으로 MySQL데몬이 실행될 수 있도록 initd에 등록이 됩니다.




http://kimeunseok.com
3-5



Chapter 3 :
MySQL 설치확인




                        터미널에 mysql –u root –p 를 입력 후 접속합니다.
                        • -u 는 유저를 지정한다는 의미이고, -p는 패스워드를 지정한다는 의미입니다.
                          - 위 사진에서는 패스워드를 따로 지정하지는 않았습니다…보안상!!
                        • 그러면 위와 같이 Mysql이 정상적으로 등록되는 것을 확인 할 수 있습니다.



http://kimeunseok.com
JDBC 연동:
                        데이터베이스 연동하기




http://kimeunseok.com
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
4-1



Chapter 4 :
JDBC 다운로드




                        MySQL 사이트로 이동하여, JDBC를 다운로드 받습니다.
                        • http://www.mysql.com/downloads/mirror.php?id=404190#mirrors
                          - zip으로 된 파일을 다운받으시면 됩니다.




http://kimeunseok.com
4-2



Chapter 4 :
JDBC 경로설정




                        다운로드 받은 JDBC압축 파일을 열어, jar파일을 src로 이동합니다.
                        • nautilus나, cp 명령을 통해서 이동하면 됩니다.




http://kimeunseok.com
4-3



Chapter 4 :
JDBC 경로설정




                        Export 명령을 통해 jar파일을 클래스 패스에 등록합니다.
                        • 클래스패스에 등록해야지만, Java컴파일이 가능해집니다.




http://kimeunseok.com
4-4



Chapter 4 :
JDBC 등록확인




                        Javap를 통해서 해당 클래스가 정상적으로 등록되었는지 확인 할 수 있습니다.
                        • Javap는 클래스 파일을 역 어셈블하는 실행파일이라고 생각하시면 됩니다.
                        • 이를 통해서 symbol not found와 같은 에러를 해결할 수 있습니다.




http://kimeunseok.com
4-5



Chapter 4 :
JDBC 연결확인




                        간단한 자바코드를 이용하여, JDBC에 정상적으로 연결되는지 확인합니다.
                        • 해당 코드는 아래 주소에서 확인할 수 있습니다.
                         - http://kimeunseok.com/jdbc.java




http://kimeunseok.com
4-6



Chapter 4 :
JSP에 연결하기




                        JSP 연동을 위해, TOMCAT 폴더, WEB-INF에 lib폴더를 생성 후 JAR파일을 복사합니다.
                        • 역시나 nautilus를 이용하여 생성 / 이동하시면 쉽게 할 수 있습니다.




http://kimeunseok.com
4-7



Chapter 4 :
톰캣 서버 재실행




                        톰캣 서버에 적용을 위해서 서버를 재실행 합니다.
                        • 서버 종료 명령
                         - catalina.sh stop
                        • 서버 시작 명령
                         - catalina.sh start

http://kimeunseok.com
4-8



Chapter 4 :
JSP 확인 코드




                        JSP에 정상적으로 JBDC가 연동되는지 확인하기 위해 위 코드를 사용합니다.
                        • 위 코드를 ROOT에 올릮 후 웹에서 접속을 시도합니다.
                         - http://IP:8080/jdbc.jsp




http://kimeunseok.com
4-9



Chapter 4 :
JSP 연동확인




                        위와 같은 페이지가 나오면 정상적으로 연동 된 것 입니다.
                        • 만약, 에러 발생 시 어떤 문제인지 메시지로 출력되도록 해두었으므로, 해당 메시지에 따라
                         오류를 처리하시면 됩니다.




http://kimeunseok.com
SAMPLE CODE :
                        간단한 회원가입 프로그램




http://kimeunseok.com
5-1



Chapter 5 :             1 기획할 것은 없지만…해보죠!

기획이라도…                  이번에 해볼 예제 코드는 정말 정말 갂단합니다.
                        이때까지 공부해왔던 사람이라면 누구나 쉽게 할 수 있도록 해봤습니다.
                        (사실…하루만에 만들어야 하는 피티라…Bean을 사용할 시갂이 부족했습니다.)


                        아무튼 하나의 입력 폼을 가지고 있고, 이것은 아이디, 패스워드, 닉네임을 입력받을 것 입니다.
                        그리고 이것을 POST방식으로 데이터베이스와 연동된 페이지로 데이터를 보내고
                        해당 페이지에서 데이터를 데이터베이스에 저장하는 방식으로 코드를 작성해봤습니다.


                        BEAN의 경우 윈도우와 동일하게, JAVA파일을 컴파일 후 설치한 톰캣 폴더, WEB-INF에
                        Classes라는 폴더를 만들고 Package와 함께 넣어주면 됩니다^^


                        이 코드는 이 PPT를 그대로 따라서 홖경을 설정한 분이라면 모두다 정상적으로
                        처리되도록 코드를 작성하였으니, 앞서 모듞 홖경을 제대로 구축하였는지 다시 한번
                        확인 후 챕터5를 따라 해주시기 바랍니다.




http://kimeunseok.com
5-2



Chapter 5 :
관리자 권홖획득




                        우선 터미널을 열고, 관리자 권홖을 획득합니다.
                        • su – 를 통해서 획득할 수 있습니다.




http://kimeunseok.com
5-3



Chapter 5 :
테이블 생성하기1




                        Mysql –u root –p 로 접속하여, mysql 데이터베이스를 사용하도록 설정합니다.
                        • 새로운 데이터베이스를 만들어도 관계없습니다.




http://kimeunseok.com
5-4



Chapter 5 :
테이블 생성하기2




                        간단하게 id, uid, passwd, nick 총 4개의 컬럼만을 가지도록 합니다.
                        • id의 경우 auto_increment를 적용하여, 자동으로 증가하도록 합니다.




http://kimeunseok.com
5-5



Chapter 5 :
JAR파일 복사하기




                        /usr/local/tomcat/webapps/ROOT/WEB-INF에 lib폴더를 만들고, JAR파일을
                        복사하여, JDBC를 사용할 수 있도록 설정합니다.




http://kimeunseok.com
5-6



Chapter 5 :
FORM 페이지 제작




                        3개의 데이터를 form을 통해서 write.jsp로 젂달합니다.
                        • 기본적인 이야기입니다.




http://kimeunseok.com
5-7



Chapter 5 :
등록 페이지 제작




                        3개의 데이터를 Parameter로 가져온 뒤 데이터베이스에 등록합니다.
                        • id의 경우 auto_increment로 인해 자동으로 증가하니 데이터를 가져올 필요가 없습니다.




http://kimeunseok.com
5-8



Chapter 5 :
테스트 하기
(폼)




                        위와 같이 총 3개의 필드와 하나의 버튼으로 구성된 간단한 폼을 확인할 수 있습니다.
                        • 등록이 안되는 경우 devjant@gmail.com으로 문의주세요!




http://kimeunseok.com
5-9



Chapter 5 :
테스트 하기
(등록)




                        웹상에서도 정상적으로 등록된 것을 확인 할 수 있습니다.
                        • 등록이 안되는 경우 devjant@gmail.com으로 문의주세요!




http://kimeunseok.com
5-10



Chapter 5 :
MYSQL에서 확인




                        정상적으로 데이터가 등록된 것을 확인 할 수 있습니다.
                        • 등록이 안되는 경우 devjant@gmail.com으로 문의주세요!




http://kimeunseok.com
5-11



Chapter 5 :
JSP로 확인하기
(코드)




                        Statement와 ResultSet을 통해 DB에 있는 데이터를 가져올 수 있습니다.
                        • 등록이 안되는 경우 devjant@gmail.com으로 문의주세요!




http://kimeunseok.com
5-12



Chapter 5 :
JSP로 확인하기
(테스트)




                        정상적으로 데이터가 등록된 것을 확인 할 수 있습니다.
                        • 등록이 안되는 경우 devjant@gmail.com으로 문의주세요!




http://kimeunseok.com
감사합니다.




                         김은석
                           http://kimeunseok.com
                            2011-11-24
                        Dev, JANT




http://kimeunseok.com

More Related Content

What's hot

[오픈소스컨설팅]Day #1 MySQL 엔진소개, 튜닝, 백업 및 복구, 업그레이드방법
[오픈소스컨설팅]Day #1 MySQL 엔진소개, 튜닝, 백업 및 복구, 업그레이드방법[오픈소스컨설팅]Day #1 MySQL 엔진소개, 튜닝, 백업 및 복구, 업그레이드방법
[오픈소스컨설팅]Day #1 MySQL 엔진소개, 튜닝, 백업 및 복구, 업그레이드방법Ji-Woong Choi
 
텔레그램을 이용한 양방향 모니터링 시스템 구축
텔레그램을 이용한 양방향 모니터링 시스템 구축텔레그램을 이용한 양방향 모니터링 시스템 구축
텔레그램을 이용한 양방향 모니터링 시스템 구축I Goo Lee
 
[오픈소스컨설팅]클라우드자동화 및 운영효율화방안
[오픈소스컨설팅]클라우드자동화 및 운영효율화방안[오픈소스컨설팅]클라우드자동화 및 운영효율화방안
[오픈소스컨설팅]클라우드자동화 및 운영효율화방안Ji-Woong Choi
 
[오픈소스컨설팅]Zabbix Installation and Configuration Guide
[오픈소스컨설팅]Zabbix Installation and Configuration Guide[오픈소스컨설팅]Zabbix Installation and Configuration Guide
[오픈소스컨설팅]Zabbix Installation and Configuration GuideJi-Woong Choi
 
Apache Tomcat ( 아파치 톰캣 ) 설치 가이드
Apache Tomcat ( 아파치 톰캣 ) 설치 가이드Apache Tomcat ( 아파치 톰캣 ) 설치 가이드
Apache Tomcat ( 아파치 톰캣 ) 설치 가이드Opennaru, inc.
 
CentOS 에 MySQL 5.6 설치
CentOS 에 MySQL 5.6 설치CentOS 에 MySQL 5.6 설치
CentOS 에 MySQL 5.6 설치Young D
 
Spring boot 를 적용한 전사모니터링 시스템 backend 개발 사례
Spring boot 를 적용한 전사모니터링 시스템 backend 개발 사례Spring boot 를 적용한 전사모니터링 시스템 backend 개발 사례
Spring boot 를 적용한 전사모니터링 시스템 backend 개발 사례Jemin Huh
 
[오픈소스컨설팅] 스카우터 사용자 가이드 2020
[오픈소스컨설팅] 스카우터 사용자 가이드 2020[오픈소스컨설팅] 스카우터 사용자 가이드 2020
[오픈소스컨설팅] 스카우터 사용자 가이드 2020Ji-Woong Choi
 
Spring 웹 프로젝트 시작하기
Spring 웹 프로젝트 시작하기Spring 웹 프로젝트 시작하기
Spring 웹 프로젝트 시작하기jiseob kim
 
톰캣 #11-팁
톰캣 #11-팁톰캣 #11-팁
톰캣 #11-팁GyuSeok Lee
 
[오픈소스컨설팅]J boss6 7_교육자료
[오픈소스컨설팅]J boss6 7_교육자료[오픈소스컨설팅]J boss6 7_교육자료
[오픈소스컨설팅]J boss6 7_교육자료Ji-Woong Choi
 
[오픈소스컨설팅]애플리케이션 빌드 및_배포가이드_v1.0_20140211
[오픈소스컨설팅]애플리케이션 빌드 및_배포가이드_v1.0_20140211[오픈소스컨설팅]애플리케이션 빌드 및_배포가이드_v1.0_20140211
[오픈소스컨설팅]애플리케이션 빌드 및_배포가이드_v1.0_20140211Ji-Woong Choi
 
[오픈소스컨설팅]JBoss AS7/EAP6 - JMS and JMX
[오픈소스컨설팅]JBoss AS7/EAP6 - JMS and JMX[오픈소스컨설팅]JBoss AS7/EAP6 - JMS and JMX
[오픈소스컨설팅]JBoss AS7/EAP6 - JMS and JMXJi-Woong Choi
 
톰캣 #01-소개
톰캣 #01-소개톰캣 #01-소개
톰캣 #01-소개GyuSeok Lee
 
[오픈소스컨설팅] RPM 만들기
[오픈소스컨설팅] RPM 만들기[오픈소스컨설팅] RPM 만들기
[오픈소스컨설팅] RPM 만들기Ji-Woong Choi
 
JSP 빠르게 시작하기
JSP 빠르게 시작하기JSP 빠르게 시작하기
JSP 빠르게 시작하기Park JoongSoo
 
Cactiez 설치, 백업, 복구
Cactiez 설치, 백업, 복구Cactiez 설치, 백업, 복구
Cactiez 설치, 백업, 복구ajj007
 
[오픈소스컨설팅]Nginx jboss 연동가이드__v1
[오픈소스컨설팅]Nginx jboss 연동가이드__v1[오픈소스컨설팅]Nginx jboss 연동가이드__v1
[오픈소스컨설팅]Nginx jboss 연동가이드__v1Ji-Woong Choi
 
[2018] MySQL 이중화 진화기
[2018] MySQL 이중화 진화기[2018] MySQL 이중화 진화기
[2018] MySQL 이중화 진화기NHN FORWARD
 
JVM과 톰캣 튜닝
JVM과 톰캣 튜닝JVM과 톰캣 튜닝
JVM과 톰캣 튜닝Mungyu Choi
 

What's hot (20)

[오픈소스컨설팅]Day #1 MySQL 엔진소개, 튜닝, 백업 및 복구, 업그레이드방법
[오픈소스컨설팅]Day #1 MySQL 엔진소개, 튜닝, 백업 및 복구, 업그레이드방법[오픈소스컨설팅]Day #1 MySQL 엔진소개, 튜닝, 백업 및 복구, 업그레이드방법
[오픈소스컨설팅]Day #1 MySQL 엔진소개, 튜닝, 백업 및 복구, 업그레이드방법
 
텔레그램을 이용한 양방향 모니터링 시스템 구축
텔레그램을 이용한 양방향 모니터링 시스템 구축텔레그램을 이용한 양방향 모니터링 시스템 구축
텔레그램을 이용한 양방향 모니터링 시스템 구축
 
[오픈소스컨설팅]클라우드자동화 및 운영효율화방안
[오픈소스컨설팅]클라우드자동화 및 운영효율화방안[오픈소스컨설팅]클라우드자동화 및 운영효율화방안
[오픈소스컨설팅]클라우드자동화 및 운영효율화방안
 
[오픈소스컨설팅]Zabbix Installation and Configuration Guide
[오픈소스컨설팅]Zabbix Installation and Configuration Guide[오픈소스컨설팅]Zabbix Installation and Configuration Guide
[오픈소스컨설팅]Zabbix Installation and Configuration Guide
 
Apache Tomcat ( 아파치 톰캣 ) 설치 가이드
Apache Tomcat ( 아파치 톰캣 ) 설치 가이드Apache Tomcat ( 아파치 톰캣 ) 설치 가이드
Apache Tomcat ( 아파치 톰캣 ) 설치 가이드
 
CentOS 에 MySQL 5.6 설치
CentOS 에 MySQL 5.6 설치CentOS 에 MySQL 5.6 설치
CentOS 에 MySQL 5.6 설치
 
Spring boot 를 적용한 전사모니터링 시스템 backend 개발 사례
Spring boot 를 적용한 전사모니터링 시스템 backend 개발 사례Spring boot 를 적용한 전사모니터링 시스템 backend 개발 사례
Spring boot 를 적용한 전사모니터링 시스템 backend 개발 사례
 
[오픈소스컨설팅] 스카우터 사용자 가이드 2020
[오픈소스컨설팅] 스카우터 사용자 가이드 2020[오픈소스컨설팅] 스카우터 사용자 가이드 2020
[오픈소스컨설팅] 스카우터 사용자 가이드 2020
 
Spring 웹 프로젝트 시작하기
Spring 웹 프로젝트 시작하기Spring 웹 프로젝트 시작하기
Spring 웹 프로젝트 시작하기
 
톰캣 #11-팁
톰캣 #11-팁톰캣 #11-팁
톰캣 #11-팁
 
[오픈소스컨설팅]J boss6 7_교육자료
[오픈소스컨설팅]J boss6 7_교육자료[오픈소스컨설팅]J boss6 7_교육자료
[오픈소스컨설팅]J boss6 7_교육자료
 
[오픈소스컨설팅]애플리케이션 빌드 및_배포가이드_v1.0_20140211
[오픈소스컨설팅]애플리케이션 빌드 및_배포가이드_v1.0_20140211[오픈소스컨설팅]애플리케이션 빌드 및_배포가이드_v1.0_20140211
[오픈소스컨설팅]애플리케이션 빌드 및_배포가이드_v1.0_20140211
 
[오픈소스컨설팅]JBoss AS7/EAP6 - JMS and JMX
[오픈소스컨설팅]JBoss AS7/EAP6 - JMS and JMX[오픈소스컨설팅]JBoss AS7/EAP6 - JMS and JMX
[오픈소스컨설팅]JBoss AS7/EAP6 - JMS and JMX
 
톰캣 #01-소개
톰캣 #01-소개톰캣 #01-소개
톰캣 #01-소개
 
[오픈소스컨설팅] RPM 만들기
[오픈소스컨설팅] RPM 만들기[오픈소스컨설팅] RPM 만들기
[오픈소스컨설팅] RPM 만들기
 
JSP 빠르게 시작하기
JSP 빠르게 시작하기JSP 빠르게 시작하기
JSP 빠르게 시작하기
 
Cactiez 설치, 백업, 복구
Cactiez 설치, 백업, 복구Cactiez 설치, 백업, 복구
Cactiez 설치, 백업, 복구
 
[오픈소스컨설팅]Nginx jboss 연동가이드__v1
[오픈소스컨설팅]Nginx jboss 연동가이드__v1[오픈소스컨설팅]Nginx jboss 연동가이드__v1
[오픈소스컨설팅]Nginx jboss 연동가이드__v1
 
[2018] MySQL 이중화 진화기
[2018] MySQL 이중화 진화기[2018] MySQL 이중화 진화기
[2018] MySQL 이중화 진화기
 
JVM과 톰캣 튜닝
JVM과 톰캣 튜닝JVM과 톰캣 튜닝
JVM과 톰캣 튜닝
 

Similar to How to build a web server on Linux.

Tomcat monitoring using_javamelody
Tomcat monitoring using_javamelodyTomcat monitoring using_javamelody
Tomcat monitoring using_javamelody중선 곽
 
Internship backend
Internship backendInternship backend
Internship backendYein Sim
 
Jenkins와 Gitlab으로 쉽고 빠르게 구축하는 협업시스템
Jenkins와 Gitlab으로 쉽고 빠르게 구축하는 협업시스템Jenkins와 Gitlab으로 쉽고 빠르게 구축하는 협업시스템
Jenkins와 Gitlab으로 쉽고 빠르게 구축하는 협업시스템Park JoongSoo
 
Docker 사용가이드 public v0.1
Docker 사용가이드 public v0.1Docker 사용가이드 public v0.1
Docker 사용가이드 public v0.1Steve Shim
 
[231]나는서버를썰터이니너는개발만하여라 양지욱
[231]나는서버를썰터이니너는개발만하여라 양지욱[231]나는서버를썰터이니너는개발만하여라 양지욱
[231]나는서버를썰터이니너는개발만하여라 양지욱NAVER D2
 
[17.01.19] docker introduction (Korean Version)
[17.01.19] docker introduction (Korean Version)[17.01.19] docker introduction (Korean Version)
[17.01.19] docker introduction (Korean Version)Ildoo Kim
 
Spring@mvc웹호스팅
Spring@mvc웹호스팅Spring@mvc웹호스팅
Spring@mvc웹호스팅J.H Ahn
 
Db프로그래밍 환경 설정(131062 장택순)
Db프로그래밍 환경 설정(131062 장택순)Db프로그래밍 환경 설정(131062 장택순)
Db프로그래밍 환경 설정(131062 장택순)TaekSoon Jang
 
[오픈소스컨설팅]Nginx 1.2.7 설치가이드__v1
[오픈소스컨설팅]Nginx 1.2.7 설치가이드__v1[오픈소스컨설팅]Nginx 1.2.7 설치가이드__v1
[오픈소스컨설팅]Nginx 1.2.7 설치가이드__v1Ji-Woong Choi
 
docker on GCE ( JIRA & Confluence ) - GDG Korea Cloud
docker on GCE ( JIRA & Confluence ) - GDG Korea Clouddocker on GCE ( JIRA & Confluence ) - GDG Korea Cloud
docker on GCE ( JIRA & Confluence ) - GDG Korea CloudJude Kim
 
Osc4.x installation v1-upload
Osc4.x installation v1-uploadOsc4.x installation v1-upload
Osc4.x installation v1-uploadDong-Hwa jung
 
Kubernetes on GCP
Kubernetes on GCPKubernetes on GCP
Kubernetes on GCPDaegeun Kim
 
초보자를 위한 AWS EC2, RDS 설정
초보자를 위한 AWS EC2, RDS 설정초보자를 위한 AWS EC2, RDS 설정
초보자를 위한 AWS EC2, RDS 설정Seonghun Kang
 
도구를 활용한 더 나은 웹 개발: Yeoman
도구를 활용한 더 나은 웹 개발: Yeoman도구를 활용한 더 나은 웹 개발: Yeoman
도구를 활용한 더 나은 웹 개발: YeomanJae Sung Park
 

Similar to How to build a web server on Linux. (20)

Tomcat monitoring using_javamelody
Tomcat monitoring using_javamelodyTomcat monitoring using_javamelody
Tomcat monitoring using_javamelody
 
Internship backend
Internship backendInternship backend
Internship backend
 
Oracle History #8
Oracle History #8Oracle History #8
Oracle History #8
 
Jenkins와 Gitlab으로 쉽고 빠르게 구축하는 협업시스템
Jenkins와 Gitlab으로 쉽고 빠르게 구축하는 협업시스템Jenkins와 Gitlab으로 쉽고 빠르게 구축하는 협업시스템
Jenkins와 Gitlab으로 쉽고 빠르게 구축하는 협업시스템
 
Docker 사용가이드 public v0.1
Docker 사용가이드 public v0.1Docker 사용가이드 public v0.1
Docker 사용가이드 public v0.1
 
Kafka slideshare
Kafka   slideshareKafka   slideshare
Kafka slideshare
 
[231]나는서버를썰터이니너는개발만하여라 양지욱
[231]나는서버를썰터이니너는개발만하여라 양지욱[231]나는서버를썰터이니너는개발만하여라 양지욱
[231]나는서버를썰터이니너는개발만하여라 양지욱
 
[17.01.19] docker introduction (Korean Version)
[17.01.19] docker introduction (Korean Version)[17.01.19] docker introduction (Korean Version)
[17.01.19] docker introduction (Korean Version)
 
Spring@mvc웹호스팅
Spring@mvc웹호스팅Spring@mvc웹호스팅
Spring@mvc웹호스팅
 
KAFKA 3.1.0.pdf
KAFKA 3.1.0.pdfKAFKA 3.1.0.pdf
KAFKA 3.1.0.pdf
 
(Spring Data JPA)게시판 리스트보기_오라클, 스프링부트,페이지나누기
(Spring Data JPA)게시판 리스트보기_오라클, 스프링부트,페이지나누기(Spring Data JPA)게시판 리스트보기_오라클, 스프링부트,페이지나누기
(Spring Data JPA)게시판 리스트보기_오라클, 스프링부트,페이지나누기
 
Db프로그래밍 환경 설정(131062 장택순)
Db프로그래밍 환경 설정(131062 장택순)Db프로그래밍 환경 설정(131062 장택순)
Db프로그래밍 환경 설정(131062 장택순)
 
[오픈소스컨설팅]Nginx 1.2.7 설치가이드__v1
[오픈소스컨설팅]Nginx 1.2.7 설치가이드__v1[오픈소스컨설팅]Nginx 1.2.7 설치가이드__v1
[오픈소스컨설팅]Nginx 1.2.7 설치가이드__v1
 
Electron forge
Electron forgeElectron forge
Electron forge
 
docker on GCE ( JIRA & Confluence ) - GDG Korea Cloud
docker on GCE ( JIRA & Confluence ) - GDG Korea Clouddocker on GCE ( JIRA & Confluence ) - GDG Korea Cloud
docker on GCE ( JIRA & Confluence ) - GDG Korea Cloud
 
Osc4.x installation v1-upload
Osc4.x installation v1-uploadOsc4.x installation v1-upload
Osc4.x installation v1-upload
 
Kubernetes on GCP
Kubernetes on GCPKubernetes on GCP
Kubernetes on GCP
 
초보자를 위한 AWS EC2, RDS 설정
초보자를 위한 AWS EC2, RDS 설정초보자를 위한 AWS EC2, RDS 설정
초보자를 위한 AWS EC2, RDS 설정
 
도구를 활용한 더 나은 웹 개발: Yeoman
도구를 활용한 더 나은 웹 개발: Yeoman도구를 활용한 더 나은 웹 개발: Yeoman
도구를 활용한 더 나은 웹 개발: Yeoman
 
Oracle History #9
Oracle History #9Oracle History #9
Oracle History #9
 

More from 은석 김은석 (6)

Hanoi2
Hanoi2Hanoi2
Hanoi2
 
Subversion
SubversionSubversion
Subversion
 
Node week1
Node week1Node week1
Node week1
 
Kinect Lab Pt.
Kinect Lab Pt.Kinect Lab Pt.
Kinect Lab Pt.
 
Kinect
KinectKinect
Kinect
 
Kinect
KinectKinect
Kinect
 

How to build a web server on Linux.

  • 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
  • 24. JDBC 연동: 데이터베이스 연동하기 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
  • 35. SAMPLE CODE : 간단한 회원가입 프로그램 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
  • 48. 감사합니다. 김은석 http://kimeunseok.com 2011-11-24 Dev, JANT http://kimeunseok.com