[UMC 7주차] Spring boot 프레임 워크 사용하기 - 환경 구축

유보라·2022년 5월 8일
1

UMC 2기

목록 보기
9/14

안녕하세요 보라입니다💜

쓰다보니 글의 길이가 길어져서, 하나 더 포스팅 하도록 하겠습니다!

  1. 실습 과정
  2. 트러블 슈팅
  3. 강의 후기 및 반성

실습 과정

1. 환경 구축하기

java 설치

먼저, 서버에 java가 설치되어있지 않기 때문에, 환경을 구축해볼 것이다.

WinSCP로 접속하여 Putty를 실행해주었다.

# sudo su
# apt install default-jdk

깃허브 클론

그 다음은 (컴공 선배에서 제공받은) 깃허브 주소를 이용하여 Spring boot를 설치해보겠다. 클론 하는 방법을 이용할 것이다!

# cd /var/www
# git clone [깃허브 주소]

환경 설정 파일 default 수정

다음으로 vim을 이용해 서버 환경 설정 파일인 default 파일을 수정해보자!

vim /etc/nginx/sites-available/default

위 명령어를 입력하여 편집기를 켜주고,

아래처럼 방금 설치한 파일 경로로 변경해준다.

9000번 포트 열어주기

ec2와 rds 모두 인바운드 규칙 편집을 통해 9000번 포트를 열어주었다.

build 해주기

이제 이 파일로 이동해서 build를 해줄 예정이다.

# cd udemy_server_practice_springboot
# ./gradlew clean build 

아래처럼 뜬다면 빌드가 완료된 것이다!

java 실행

# java -jar build/libs/demo-0.0.1-SNAPSHOT.jar

이제 실행해보면 아래처럼 뜨면서 실행이 시작된다. 시간이 조금 걸릴 수 있따...

그런데 중간에 갑자기 멈췄고, 움직이지 않았다..

인스턴스 중지/시작을 한 번 해준 후에 아래 링크를 참고하여 서버 메모리 문제를 해결해주었다.

참고 : https://seungwoolog.tistory.com/m/68

아래와 같이 swap 공간이 잘 생겼나 확인해준다.

그리고 실행해보았더니 잘 된다! 아래 같이 뜨면 성공이다 짝짝

https 보안 적용

그리고 SSL 설정을 위해 letsencrypt를 설치해주겠다.

apt-get install letsencrypt

2. POSTMAN에서 테스트 하기

postman 회원가입

POSTMAN : https://www.postman.com/

API 테스트를 위해 먼저 postman 사이트에 접속하여 회원가입을 해주었다.

GET 테스트!

GET 테스트를 할 것이므로, http://www.worldofbora.shop:9000/users/1를 입력해보았다!

아래에 요청에 성공하였습니다가 뜨는 모습!

proxy 설정

다시 default 파일을 수정해주어야한다.

# vim /etc/nginx/sites-available/default

아래와 같이 수정해준다!

무중단 서비스 배포

# service nginx restart //서비스 재실행
# nohup java -jar build/libs/demo-0.0.1-SNAPSHOT.jar

위 코드처럼, 실행 코드 앞에 nohup을 붙여주면 자바가 무중단 서비스로 배포된다!

POSTMAN에서 테스트를 해보고 잘 작동이 되낟면 성공한 것이다.

환경 설정 끝!

트러블 슈팅

문제 원인

build 중 다음과 같은 에러가 발생했다

이 에러의 원인은 스프링에서 database를 사용한다고 설정해두고, 정작 datasource는 설정이 되어 있지 않아서 발생하는 것이라고 한다.

해결 방법

먼저, application.yml에서 DB 리소스 정보를 수정해야한다! 경로는 아래와 같다.

# cd /var/www/udemy_server_practice_springboot/src/main/resources
# vim application.yml

vim 편집기를 켜보니 이렇게 datasource 부분이 비어 있었다.

내가 접근하려고 하는 db의 정보들을 알맞게 입력해주었다.

그 후 다시 build 해주면 된다!

잠시 멍청한 보라 썰

여기서 잠깐... 제가 멍청했습니다!!!! 알맞게 입력했는데도(알맞게 입력했다고 생각했는데도 ㅋㅋ) 계속 오류가 떠서, ERROR 부분 밑으로 코드를 싹 다 읽어보았습니다. 그런데.. 이런 문장 발견...!

그렇습니다... 저는 datagrip에 boraDB를 만든 적이 없었습니다. boraServer를 만들었었죠... 정말 허무했지만 해결하게 되어 너무 기쁩니다😂

참고 자료

저와 함께 스터디를 진행하고 있는 팀원 '크롱'의 게시글을 참고하였습니다💜

강의 후기 및 반성

여기까지 강의를 들었을 때, 강의에서 생략된 부분이 있었는데 그 부분에서 오류가 많이 났던 것 같다. 그런 부분들을 하나씩 트러블 슈팅을 해가면서 해결해야 했는데, 이 실습을 할 때의 내가 너무 많이 지쳐있었다... 결국 에러를 해결하지 못 한 채로 스터디를 하게 되었고, 팀원들에게 양해를 구하게 되었다.

다시 에러를 해결하는 과정에서 우리 스터디 팀의 팀장이신, '크롱'의 블로그를 보게 되었다. 그리고 스스로 많이 반성하게 되었다. 나도 에러를 해결하기 위해 디스코드 채널 내에 있는 '지식in' 서버를 탐색했었는데, 크롱의 닉네임이 많이 보였던 것이 기억이 났다. 크롱에게도 정말 많은 에러가 발생했지만, 어떻게든 노력하여 해결하는 과정이 크롱의 블로그에 담겨있었다. 나는 그보다 못 한 노력으로 에러를 해결하지 못 했다고 징징댔던 것 같다. 이 강의를 듣는 사람들의 백그라운드 지식은 다 다르겠지만, 우선 다 같은 강의를 듣는 상황에서 나에게 어려운 것은 다른 사람에게도 어려웠을 것인데... 다른 사람은 나보다 훨씬 많은 노력을 해서 해결했다는게 충격이었다. 그러니까 내가 해결하지 못 한 것은 그만큼 노력하지 않아서이다.

정말 부끄러운 건 포기하고 싶다는 말을 워크북에 적었던 것이다. 개인적인 일정으로 50시간 동안 잠을 잘 수 없었고 당시의 내가 너무 지쳐서 그랬던 것이겠지만... 다들 시간이 넘쳐나서 스터디를 하는 게 아니라, 배우고 성장하기 위해 이 스터디를 하는 것인데.. 특히 서버 팀원들의 워크북을 일일이 확인하며 어떻게든 도움을 주려고 하는 에디에게 이런 모습을 보였다는게 너무 부끄럽다. 스터디를 시작할 때 마음가짐을 잃어버린 것 같아서 다시 나를 돌아보게 되는 계기가 되었다. 이 일을 계기삼아 지난 나의 모습을 반성하고, 얼마 남지 않은 스터디를 잘 마무리 하기 위해 더 열심히 할 것이다.

profile
인하대학교 컴퓨터공학과 학생입니다😀

0개의 댓글