글 작성자: beaniejoy

 jsp와 tomcat-nginx 서버를 가지고 개발을 하기에 앞서 여러 요소들을 설치하고 개발 환경을 구축해야 합니다. 컴퓨터를 옮기면서 이것저것 생각하면서 설치하려다보니 예전에는 순차적으로 설치를 진행했는데 지금은 완전 뒤죽박죽이었습니다. 이에 대해서 한 번 정리해두는 것이 좋다고 생각해서 이번 게시물을 작성하게 되었습니다. 부디 다른 분들에게도 이 게시물이 도움이 되었으면 좋겠네요... :)

 저는 웹프로젝트도 jsp기반으로 했기 때문에 이에 맞춰 nginx-Tomcat 서버와 함께 web개발 환경을 설치하려 합니다. 이번 게시물은 단순히 환경 구축 과정을 정리한 내용이므로 각 요소에 대한 의미와 개념에 대해서는 생략하도록 하겠습니다. 이거 적으려면 또 공부하고 정리해야되서 ㅎㅎ 차차 하도록 하겠습니다. (사실 귀찮아서....... )

 

 

📌 1. 서버, DB, 여러 툴 설치하기

 

 

🔖 1-1. java IDE 설치하기

 java를 가지고 web개발을 할 것이기에 이에 대한 IDE가 필요합니다. java IDE는 여러가지가 존재합니다. 이와 관련한 게시물 링크를 걸어두었으니 궁금하신분들은 들어가셔서 참고하시면 됩니다!~ (java IDE의 종류에 대한 게시글) 그리고 jre, jdk 설치가 되어있어야합니다. 

저는 그중 eclipse를 사용할 겁니다.

eclipse download
 : https://www.eclipse.org/downloads/

 

Eclipse Downloads | The Eclipse Foundation

The Eclipse Foundation - home to a global community, the Eclipse IDE, Jakarta EE and over 350 open source projects, including runtimes, tools and frameworks.

www.eclipse.org

 링크타고 들어가셔서 다운받으시면 됩니다. eclipse는 java IDE중에서 아주 유명한 개발도구 중 하나입니다. 무료로 사용할 수 있으면서도 개발자들이 개발하기에 좋은 환경을 제공해줍니다. 물론 web project를 만들어서 개발하다보면 web에 적용되기까지 좀 시간이 걸린다든가 갑자기 설치했던 외부 라이브러리가 통째로 사라진다든가 하는 자잘자잘한 에러사항들이 존재하지만 사용하기 간편한 interface를 제공해서 저같은 왕초보자들이 사용하기에 좋다고 할 수 있습니다.

 

 

🔖 1-2. Tomcat 설치하기

 jsp를 사용할 것이기에 jsp/Servlet Container가 돌아가는 tomcat 서버를 설치해야 합니다. 해당 링크로 들어가셔서 설치하시면 됩니다.
Tomcat download : https://tomcat.apache.org/download-80.cgi

 

Apache Tomcat® - Apache Tomcat 8 Software Downloads

Welcome to the Apache Tomcat® 8.x software download page. This page provides download links for obtaining the latest versions of Tomcat 8.x software, as well as links to the archives of older releases. Unsure which version you need? Specification versions

tomcat.apache.org

 저는 "64-bit Windows zip" 파일을 다운받았습니다.

 

 

🔖 1-3. nginx 설치하기

 Tomcat만 돌리면 클라이언트로부터의 모든 HTTP 요청과 응답을 Tomcat 하나로 감당해야합니다. Tomcat은 DB를 비롯해 처리해야할 다른 것들도 많아 과부하가 발생할 수 있습니다. 이를 줄이기 위해 nginx를 HTTP Server로 두어 HTTP관련 요청과 응답을 nginx가 하고 그 이후에 Tomcat에게 권한을 넘겨줍니다. 즉 역할 분담을 한 것이라고 생각하시면 됩니다. 이와 관련된 것은 따로 정리해보도록 하겠습니다.

우선 Tomcat 연동을 위해 nginx를 설치하겠습니다. (stable 버전으로 다운받으시면 됩니다.)

nginx download : http://nginx.org/en/download.html

 

nginx: download

 

nginx.org

 

🔖 1-4. mariaDB 설치

 web 개발에 빠질 수 없는 DB 구축이 있어야겠죠? DB종류도 많긴하지만 저는 mariaDB를 설치하도록 하겠습니다. DB관련 Query문에 대한 정리를 계속하려고 하는데 시간이 없어서 정리를 못하고 있네요. 열심히 해보도록 하겠습니다.

mariaDB download : https://downloads.mariadb.org/ (stable 버전으로)

 

Downloads - MariaDB

 

downloads.mariadb.org

 

 

📌 2. java, jsp 개발을 위한 jar 파일, 라이브러리 등록

 1) mariadb-java-client-2.4.4: mariaDB에 JDBC를 통해 쿼리를 보낼 수 있게 해주는 라이브러리입니다. 이에 대한 내용은 Java 개념 카테고리에서 JDBC 관련 정리 게시물에 자세히 확인해보실 수 있습니다.
[Java] JDBC를 통한 database 접근(MariaDB) 

2) cos.jar : java에서 따로 파일 업로드 관련 기능을 직접 제공하고 있지는 않지만 오픈소스 라이브러리를 이용해서 쉽게 구현할 수 있습니다. 그 중 대표적인 파일 업로드 라이브러리인 cos.jar를 사용하겠습니다. 

 3)  json-simple-1.1.1 : java에서 json파일을 다룰 수 있게 해주는 라이브러리입니다. 저는 ajax 통신할 때 json형태로 주고받을 것이기 때문에 해당 라이브러리도 다운받겠습니다.

 4) jsoup-1.12.1 : java에서 Crawling할 수 있게 해주는 라이브러리입니다. 지금 당장은 크롤링해서 가공할 것이 아니기 때문에 바로 해당 라이브러리를 사용할 것은 아니지만 그래도 나중을 위해 필요할 수도 있으니 다ㅣ운받아 놓겠습니다.

 5) 그 외의 라이브러리 : 그 외의 필요한 라이브러리가 있으면 언제든 다운받아서 연동하면 됩니다.

 

 

🔖 2-1. project 연동 (eclipse)

eclipse에서 그냥 java project는 build path의 Libraries 옵션에서 Add External JARs를 통해 외부 라이브러리를 연동하면 된니다. web project는 위의 그림과 같이 WEB-INF의 lib폴더에다가 직접 저장합니다. (저장할 땐 그냥 다운받은 파일을 복사해서 붙여넣기 하시면 됩니다.)

 

 

📌 3. nginx와 Tomcat 연결하기

 위에서 언급했듯이 nginx와 Tomcat 서버를 연동해야 합니다. 연결하는건 의외로 간단합니다. 우선 설치했던 nginx 디렉토리에서 conf 폴더에 들어갑니다. 들어가면 nginx.conf라는 파일이 있는데 기본적인 설정을 지정해주는 파일이라고 생각하시면 됩니다. 들어가서 중간에 server의 location 부분을 바꿔주어야 합니다. 

원래의 nginx 설정
바뀐 nginx 설정

1) root
nginx에 접속했을 때 자신이 원하는 root directory를 지정하는 곳입니다. 클라이언트가 페이지를 요청하면 웹서버에서는 해당하는 파일을 보내줘야하는데 찾는 위치의 가장 상단에 있는 디렉토리라고 생각하시면 됩니다. 

2) proxy_pass
proxy(여기서는 nginx)서버에 들어온 요청을 지정된 서버로 pass해주겠다는 의미입니다. localhost:8080을 해줌으로써 Tomcat서버로 보낸다는 것을 알립니다.

 3) index
localhost(홈)를 브라우저에서 요청했을 때 불러오는 파일입니다. 미리 만들어둔 홈페이지 파일이 있어서 이것을 지정해두면 멋진 홈을 장식할 수 있겠네요! 

 

변경된 설정을 저장하고 nginx를 다시 시작해봅시다. 혹시 이미 켜져있었으면 nginx를 껐다가 다시 시작하는 것이 좋습니다.

 원래 Tomcat만으로 서버를 돌리면 localhost:8080/cafe/main.jsp 처럼 포트번호 8080을 url주소에 포함시켜야 합니다. 하지만 nginx 연동을 하게 되면 nginx가 사용하는 localhost로도 해당 페이지에 접근이 가능해집니다. 연동을 한 순간 HTTP 요청과 응답을 nginx가 담당하기 때문에 가능한 것입니다. 

 지금까지 eclipse를 통한 jsp web 개발을 위해 해야할 기본적인 환경 구축을 정리해보았습니다. AWS에다가 프로젝트를 올리고 싶은 마음도 있는데 나중에 AWS를 이용하게 되면 한번 연동해서 제가 등록한 도메인 이름으로도 접근할 수 있게 해보고 싶네요. ㅎㅎ 허접한 글 읽어주셔서 감사합니다. :)