안녕하세요?


해초를 가지고서 다이어트에 관한 포스팅은 임상의학 논문자료를 분석한다고 시간이 좀 걸릴 듯 합니다.

아무튼 이번 시간에는 마냥 미룰 수는 없기 때문에 일단 스프링을 이용해서 자바 웹 개발 공부를 어떻게 다시 재개하기 시작했습니다.


이번에 실습할 내용은 다음과 같습니다.

우선 java-mvc라는 프로젝트를 package explorer에서 우클릭을 한 다음 dynamic web project를 선택해서 새로이 생성합니다. 

그 다음에는 먼저 java-mvc 프로젝트를 우클릭한 다음 New라는 항목에 들어가서 file을 눌러 새로운 파일을 생성합니다. 이때 파일의 이름은 pom.xml이라고 지정해서 메이븐 프로젝트의 특징인 pom.xml파일을 생성합니다.

그리고 나서는 이전에 생성이 되어있는 legacy-sample 이란 프로젝트 안에 있는 pom.xml 파일의 xml코딩을 복사해서 아까 생성한 java-mvc안에 들어가 있는 pom.xml파일에다가 붙여넣습니다.


일단 실제로 해 보니까, 여기까지는 문제없이 프로젝트가 생성이 되었고, 그 다음으로 pom.xml파일까지 생성하는 데는 문제가 없었습니다.


이제 다음단계로 복사해서 붙여넣기 한 pom.xml파일은 어디까지나 legacy-sample 프로젝트 안에 있었기 때문에 제가 생성한 java-mvc에는 적절하지 않은 설정이 많이 있을 것이리라 생각이 됩니다.


그래서 이번에는 코딩을 바꾸는 과정에 들어가기로 하였습니다. 우선 제일 먼저 legacy-sample이라는 이름으로 되어 있는 항목부터 java-mvc로 바꾸어 놓을 필요가 있다는 생각이 듭니다.


그렇게 하고서 먼저 java-mvc안에 있는 pom.xml파일을 더블클릭해서 연 다음, 옆에 있는 메인 윈도우 안에서 pom.xml 탭을 클릭해서 코딩되어 있는 문구를 불러 왔습니다.


먼저 프로젝트 정보를 다음과 같이 수정해야 했습니다.


<modelversion>4.0.4</modelVersioni>

<groupId>me.whiteship</groupId>

<artifactId>java-mvc</artifactId>

<packaging>war</packaging>


여기서는 붉은색으로 표시가 된 곳이 바로 프로젝트의 이름이라는 것인데 여기를 이번에 만든 프로젝트의 이름인 java-mvc로 바꾸어야 했습니다.

다음으로는 의존성 정보를 수정하는 단계입니다.


<dependencies>

  <dependency>

     <groupId>org.springframework</groupId>

     <artifactId>spring-webmvc</artifactId>

     <version>${spring.versioiin}</version>

  </dependency>

</dependencies>


우선은 붉은색으로 강조가 된 부분이 기존 legacy-sample에서 가져온 pom.xml에서 수정한 부분입니다. 처음에는 맨 마지막에 </dependencies>라는 부분을 빼먹은 탓에 여러번 에러가 발생하였습니다. 




결국 위 스크린샷은 </dependencise>를 집어넣지 않아서 에러가 생겨 있는 장면입니다. 우선 다음과 같이 빨간 원에 하얀색 X표가 생겨서 에러가 떴다는 것을 알려주고 있습니다. 

에러를 수정하고 다음 단계로 가기 위해서 java-mvc를 package explorer에서 우클릭하고서, configure항목을 눌러서 convert to Maven project를 눌러서 메이븐 프로젝트로 변환하는 과정에 들어가려고 하였습니다.



다만 실제로 해보니 에러가 크게 2개 생기면서 메이븐 프로젝트로 변환이 되지 않는 것으로 보입니다. 이 문제를 어떻게 해결해야 하는데, 이게 단기간에 해결이 안 될 것으로 보입니다.

아무래도 이 에러를 해결하는 데 시간이 제법 걸릴 것이라는 생각이 듭니다.


아무래도 스프링이라는 STS 툴을 이용한 웹 개발은 무언가 좌우충돌, 전도다난합니다. 이대로는 무언가가 어렵다는 생각이 드는데, 어떻게 해야 할지 고민 중입니다.




신고

이번에도 자바를 독학하는 시간이 왔습니다만, 이게 슬슬 독학이 혼자서 공부한다는 의미의 독학인지 독약을 의미하는 독자를 써서 독약을 공부하는 것인지 슬슬 헷갈리기 시작합니다.

책의 제목만 보고서 [쉽게 따라하는]에 제가 속은 것인가는 모르겠습니다만, 아무튼 닥치고 따라오는 중이기는 중입니다.


일단 책에서는 [이클립스 프로젝트로 변신]이라고 합니다.

우선 예제로 받았는 프로젝트인 legacy-sample을 우클릭해서 Run As항목에 커서를 가져다 놓고, 단축키가 없는 maven build를 클릭했습니다.



그리고 나서는 위 그림에서 뜨는 것처럼 Goals란에다가 eclipse:eclipse라고 적어놓고 나서 아래에 있는 Run을 클릭했더니 아래의 스크린샷과 같이 에러 메세지만 잔뜩 뜨기 시작했습니다.



이게 추가로 무엇이 문제인지 모르겠습니다만, Refresh까지 비활성화가 되어 있어서 도저히 뭘 어떻게 해볼 수도 없었습니다. 다시 말하지만, 저는 자바란 것을 처음 접해보기에 어떻게 할 방법도 없고, 이걸 수정할 방법은 더 더욱이나 없어서 하는 수 없이 다름 페이지로 넘어가는 수 밖에는 없었습니다.



위 그림은 legacy-sample에다가 우클릭을 하고서, Run As항목에 커서를 가져다가 나온 항목중에 Maven Clean이라는 항목에 가서 실행시킨 결과입니다. 이 역시 무슨 문제가 생겼는지 모르겠지만 아까와 같이 error메세지만 잔뜩 뜨고서 별로 소득이 있는 것 같지는 않아 보입니다.

이게 책이 조금 예전것이 되어서 생기는 문제인지, 아니면 다른 문제가 있는지는 모르겠습니다만 일단 여기까지만 이 부분을 하고서 다음으로 넘어 가기로 하였습니다.


다음으로 저자가 설명하는 것이 Maven Package라는 것인데, 책에 있는 설명으로는 legacy-sample을 우클릭하고서 나오는 Run As항목에서 Maven Package가 있다고는 설명을 합니다만........



위 스크린샷에서 보는 것과 같이 아무리 눈 씻고 찾아봐도 Maven Package라는 항목이 없는 것을 알수가 있었습니다. 결국 뭐할 도리가 없기에 점점 실습을 해보려고 해도 뭘 어떻게 해야 할지 모르기에, 그냥 다음으로 넘어가야 했습니다만, 그래도 다음 번의 항목은 그런데로 되기는 되었습니다.


책에서는 프로젝트 안에 풀어서 배포하기라고 해 놓은 것이 있습니다.

일단 legacy-sample을 작동시키는 것은 위와 같으나, Maven build를 클릭하자 계속 에러가 뜨기만 하고, 결국 Maven build....... 이라는 항목을 눌러서 실행을 시켰습니다.


여기서는 뜨는 Edit Configuration창에서 있는 Goals란에데가 war:inplace라고 입력하고 난 다음에 Run을 클릭해서 실행을 시켰습니다. 그 다음으로는 책의 설명대로 자동으로 갱신이 되지 않아서 파일란에 있는 Refresh를 눌러서 갱신을 한 다음, legacy-sample의 하위 디렉토리 중에서 web/WEB-INF디렉토리 안을 열어 보았습니다.



lib디렉토리 안에는 의존성 파일 jar이 가득 들어 있었으며, classes 디렉터리에는 소스코드와 리소스 파일로 보이는 폴더와 파일들이 책의 설명대로 있었습니다.

마지막 최종 단계로 프로젝트를 Run on Server시키자, 여전히 Tomcat Server v9.0을 선택해야 했으며, 여기서 나온 결과입니다.



이미 이전에 디렉토리 경로를 줄여놓은 덕인지 웹 브라우저의 주소는 http://localhost:8080/로 나오고, 위 문구가 나오는 것으로 봐서, 무언가 찝찝하기는 하지만, 일단 예제의 프로젝트를 가지고서 실행을 시키는 것 까지는 문제가 없다는 생각이 들었습니다.







신고

지난번 포스팅에서 첫 걸음을 땐지 얼마 되지 않아서 두번째 걸음을 떼고 있습니다. 


일단 [쉽게 따라하는 자바 웹 개발]이라는 책과 제가 현재 쓰고 있는 STS의 버젼차이로 몇몇 사소한 부분이 맞지 않거나 무언가 찝찝한 면이 있기는 하지만 그래도 그런데로 따라는 가고 있다고 생각을 하고 있는 중입니다.


일단 책에서는 최하단 좌측에 뷰를 추가하는 아이콘이 있다고는 하지만, 이 글이 씌여진 2016년 12월 12일 현재는 좌측 상단에 있으며 뷰를 추가 하는 아이콘이기 보다는 새로운 프로젝트 등을 시작하는 아이콘이라고 보면 될듯 합니다.


그 외에 오른쪽에 제일 상단에 퍼스펙티브를 위한 아이콘은 그대로 바뀐 것 없이 그대로 남아 있는 것을 확인할 수가 있었습니다. 이 퍼스펙티브란 책에서 설명하고 있기를 '목적'에 따라서 화면을 구성하는 뷰의 구성이 달라지는데, 그걸 이미 정해진 메뉴대로 빠르게 바꾸어 주는 것이라고 합니다. 일단 화면에 대한 것은 여기까지로 하고, 본격적인 실습을 위해서 전 인터넷에서 먼저 legacy-sample.zip이라는 예제 실습 파일을 다운로드 받았습니다.


그 다음 STS상에서 먼저 package explorer뷰에서 우클릭해서 import메뉴를 눌러서 실습할 예제인 프로젝트 legacy-sample.zip을 불러온느데, 여기서 중요한 것은 select archive file이라고 해서 하나의 폴더를 가져오는 것이 아닌, 파일을 가져오는 형식으로 해야 하는데, 이걸 몰라서 잠시 헤메다가 겨우 불러오는데 성공하였습니다.


우선 한글이 깨지는 현상이 나올 수 있다고는 하지만, 그건 없었고 톰켓 9.0이 설치되어 있지만, 여전히 예제로 가져온 프로젝트는 톰켓 7.0을 요구하면서 에러 메세지를 내 보내고 있었습니다.


결국 STS화면상 최하단에 위치한 problems 란에서 우클릭을 해서 quick fix를 선택한 다음, 하는 수 없이 tomcat v7.0을 선택해서 인터넷에서 다운로드 받는 수 밖에 없었습니다. 그렇게 마지막 까지 해서 빨간색 에러를 다 없앤 다음, package explorer뷰에 있는 legacy-sample을 선택한 후 우클릭해서 Run as항목안에 들어가 Run on server를 선택하였습니다.



다음과 같은 문구가 나오는 것으로 보아서 일차적으로 예제 프로젝트의 실행에는 성공한 것으로 보입니다. 이제 다음은 책에 있는 대로 Console뷰의 Modules항목을 찾아야 하는데, 한참동안 이를 찾지 못해서 또 애를 먹기는 먹었습니다.


저 위 스크린샷에 Whiteship's book 항목 옆에 있는 Tomcat v9.0 server at localhost 항목을 먼저 클릭해야 했습니다. 그 안에서 뷰 하단에 보면, overview라는 항목 옆에 modules라는 항목이 있었습니다.



위 스크린샷은 제가 한참을 찾아 헤메던 Modules라는 항목이 어디에 있었는지를 보여주고 있는 장면입니다. 여기서 legacy-sample을 선택한 후 옆에 있는 Edit항목을 눌려서 우선


path항목에 있는 /legacy-sample을 그냥 /으로 바꾸었으며, 책에서는 Auto reloading enable이란 항목을 체크 하라고 되어 있지만, 제가 가지고 있는 버젼에서는 이미 되어 있었습니다. 


이러한 변화가 어떤 변화를 주는지 처음에는 몰랐지만, 위 스크린샷에 먼저 상단에 나와 있는 디스켓 모양의 아이콘을 눌러서 저장을 한 다음에 하단의 뷰에서 빨간 사각형인 termination이란 버튼을 눌러서 종료를 시키고, 그 다음에 다시 package explorer 뷰에서 legacy-sample을 우클릭해서 Run as -> Run on server를 눌러서 다시 실행을 시켰더니 차이점을 알 수가 있었습니다.



제일 처음의 스크린샷에서 http://localhost:8080/legacy-sample/ 이라고 되어 있던 주소가 줄어들어서 http://localhost:8080/으로 줄었습니다. 


이걸로서 2번째 시도에서 프로젝트를 가져오고 변경해서 저장하는 법을 일단은 알게 되었지만, 아직도 가야 할 길이 멀기는 멀다는 생각이 듭니다.


지난번에도 말했다 시피 무언가 이상하거나 틀렸다 싶은 것을 댓글로 달아주시면 감사하고요. 사정이 있어서 댓글로 남기기 어려우시면 netpilgrim@naver.com으로 메일로 주셔도 됩니다.

단 스팸메일 같은건 언제나 사양입니다.

신고

12월에 개강예정이던 자바 기초반도 갑자기 인원수 부족으로 취소되니, 혼자서 공부를 하는 수 밖에는 없습니다. 아무튼 독학을 하려고 어디서 자바 개발 툴이라고 이클립스 네온을 설치해서 해보려고 하는데, 어디서 어떻게 코딩을 하는지 도저히 알 길이 없어서 포기하다가 겨우겨우 도서관에서 [쉽게 따라하는 자바 웹 개발]이란 책을 빌려와서 어떻게 독학을 하는 중입니다.


우선 개발환경을 만들기 위해서 STS라고 Spring Tool Suite라는 것이 필요하다고 합니다.

우선 전 자바가 첫 걸음을 떼는 것이라서 이게 무엇인지 모릅니다. 하지만, 이것저것 다 따지기에는 시작도 못하는 사태가 벌어질 수 있기에 그냥 시작을 합니다.


구글에서 그냥 'sts'라고 치니 spring tool suite라고 뜨는 페이지가 있습니다. 여기서 다운로드라고 적혀 있는 곳을 누르니 왠 zip파일하나가 다운로드 되는데 이름이 [spring-tool-suite-3.8.2.RELEASE-e4.6.1-win32-x86_64] 라고 되어 있습니다. C 디스크 드라이브 아무 곳에나 이 압축파일의 압축을 풀어보니 안에 폴더가 3개 있습니다.


제일 상위에는 sts-bundle이라고 적혀 있으며, 이 안에 'legal', 'pivotal-tc-server-developer-3.2.0.RELEASE', 'sts-3.8.2.RELEASE' 라고 적혀 있습니다. 

다시 거듭 말하지만, 저는 중학교때 비주얼 베이직을 조금 배운 것 외에는 전혀 프로그래밍 공부를 한적이 없어서 이중에 어느것이 제대로 된 것인지 알지 못합니다. 일단 [sts-3.8.2.RELEASE]라는 폴더에 들어가서, STS라는 응용프로그램 이라는 파일을 실행시켰습니다.



일단은 이클립스와 비슷해 보이는 프로그램이 실행이 되었습니다. 그리고 나서 빌려온 책에는 [톰켓]이라는 것도 설치하는 단계가 필요하다고 합니다. 저는 이게 정확하게 무엇인지는 모릅니다. 일단 여기서도 역시 구글에서 'tomcat'이라고 치니, 무슨 

[apache tomcat]이라는 웹 사이트가 뜹니다.


저는 여기 들어가서 가장 최신 버전으로 보이는 9.0.0.M15라는 tomcat 9.0을 zip파일 형태로 다운로드 받았습니다. 책에 의하면 이걸 어플리케이션이 아니라 이클립스에 설정해서 사용하기 위해서라고 하는데, 아직은 제가 이게 무슨의미 인지는 모릅니다. 하지만 그래도 필요하니 download를 눌러서 zip파일 형태로 다운로드 받습니다.


여기서 좀 헷갈렸습니다만, 일단 저는 STS가 압축이 풀린 곳과 같은 C드라이브의 폴더에 압축을 풀어서 그냥 아무것도 하지 않고 그대로 두었습니다.


그리고 다시 STS를 가동시키고는 위 사진에서 나와 있다 시피, 왼쪽 제일 하단에 있는 Servers 란 항목에서 우클릭을 합니다. 그러면 여러개의 메뉴가 뜨는데, 여기서 New라는 항목에 커서를 가져가면, server라는 항목이 뜨는데 이걸 클릭했습니다. 그러자 서버타입을 선택하라는 여러개의 메뉴가 뜨는데, 마우스 가운데 휠을 올려서 제일 윗쪽에 Apache 라는 폴더가 있습니다.


책에서는 이 폴더 안에서 Tomcat v7.0 server라고 나와 있지만, 저는 Tomcat v9.0 server를 클릭하자, 다음 화면이 나오는데, 저는 여기서 Browse를 선택해서 좀전에 apache-tomcat-9.0.0.M15가 압축이 풀린 폴더 위치를 선택하고 Finish를 선택하였습니다.



그리고 나서 다시 STS를 실행시켰을때 좌측 하단에 있는 콘솔의 상태입니다. 이전에는 Pivotal tc Server Developer Edition v3.1 하나만 있었지만, 지금은 Tomcat v9.0 Server at localhost라는 것이 하나 더 추가 되었습니다.


일단 이것으로 자바를 가지고서 웹 개발을 하는 첫 단계를 떼었다는 생각이 듭니다만, 저야 어디까지나 프로그래밍 공부를 전혀 하지 않았는 사람이기에 앞으로 어떻게 될지는 모릅니다.


혹시 틀렸거나 이상한 것이 있으면 댓글을 달아 주시면 정말 감사하고요, 무슨 이유에서인지 댓글을 달 수 없도록 에러가 발생하였다면, 

netpilgrim@naver.com

으로 메일을 주셔도 환영합니다.


ps : 광고나 스팸 메일은 사양합니다.





신고

+ Recent posts

티스토리 툴바