본문 바로가기
Project

파이널 프로젝트 5주차

by newny 2023. 7. 6.
반응형

✔️day 30 ~ 35

[test]

로직이 잘못되어서 크게 수정하거나 한 부분은 없었고, url 설정이 잘못돼있거나, 나중에 설정해줘야지 해놓고 잊어버려서 url 설정이 안되어있거나 등의 작은 부분들이었다.
하지만 이 작은 부분들로 인해 제대로 실행되지 않음을 느꼈고, 상세히 test 하며 코드를 수정해 나갔다.
배포 후 확인해 보니 상대경로로 설정되어있는 url들이 말썽을 부렸다.
절대경로로 바꿔주어 문제를 해결했다.
 

[배포]

AWS EC2 서비스를 이용하여 배포하였다.
MVC1 패턴의 미니 프로젝트를 aws에 배포해 보았던 경험으로인해 빠르게 배포에 성공했다.
 

[배포 과정]

프리티어로 인스턴스 생성 후 배포를 시작하였다.
예전에 aws 배포로 글을 올린게 있었는데 반은 맞고 반은 달라서 다시 글을 올린다.
 

jdk 설치

  1. sudo apt update 명령어를 입력하여 가상 컴퓨터의 패키지들을 update 한다.
  2. sudo apt-get install openjdk-17-jdk 명령어를 입력하여 jdk17 버전을 설치한다.
  3. 설치가 끝난 후 java --version 명령어로 jdk 버전을 확인한다.

 

tomcat 설치

  1. sudo mkdir /home/tomcat 명령어를 입력하여 해당 경로에 폴더를 만든다. (톰캣 설치 공간)
  2. cd /home/tomcat 명령어를 입력하여 해당 경로로 이동한 후, sudo wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.76/bin/apache-tomcat-9.0.76.tar.gz 명령어 입력하여 톰캣 설치 파일을 다운로드 한다.
  3. 경로 그대로에서 sudo tar xvfz apache-tomcat-9.0.76.tar.gz 명령어를 이용하여 다운받은 톰캣 설치 파일을 이용해 톰캣을 다운로드 한다.
  4. sudo chmod -R 777 /etc/profile 명령어를 이용해 환경설정 파일에 대한 모든 권한을 부여한다.
  5. sudo vi /etc/profile 명령어를 이용하여 환경설정 파일로 접근한다.
  6. i를 입력하여 insert 모드로 변경한다.
  7. export CATALINA_HOME=/home/tomcat 을 환변설정 파일 가장 아랫 부분에 입력한다.
  8. ESC 키를 누른 후 :wq를 입력하여 저장하고 종료한다.
  9. sudo chmod -R 777 /home/tomcat/apache-tomcat-9.0.76/bin 명령어를 입력하여 톰캣의 bin 파일에 대한 접근 권한을 바꿔준다.
  10. cd /home/tomcat/apache-tomcat-9.0.76/bin 명령어를 입력하여 bin 파일로 이동한다.
  11. sudo ./startup.sh 명령어를 입력하여 톰캣을 실행한다.
  12. 인스턴스의 퍼블릭 IPv4 주소:8080 으로 접속하여 톰캣 메인화면이 뜨는지 확인한다.

 

DB설치 & 연결 (Maria DB 기준으로 설명)

  1. MariaDB를 설치하기 전 기본적으로 시스템 내에 설정된 timezone을 한국에 맞게 설정해준다.
  2. sudo ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime 명령어 또는
  3. sudo timedatectl set-timezone 'Asia/Seoul’ 명령어를 이용한다
  4. date 명령어를 입력했을 때 뒤쪽에 UTC로 뜨던 내용이 KST로 바뀐걸로 확인
  5. sudo apt-get install -y mariadb-server 명령어를 이용하여 마리아 DB를 설치한다.
  6. 설치 완료 후 sudo mysql 명령어를 이용하여 mysql monitor에 접속한다.
  7. use mysql 명령어를 입력하여 mysql database를 사용한다.
  8. set password for 'root'@'localhost' = password('원하는 패스워드'); 명령어를 이용하여 원하는 패스워드로 변경한다.
  9. flush privileges; 명령어를 입력하여 grant 테이블을 reload 함으로 변경사항을 바로 적용해준다.
  10. 외부에서 접근이 가능한 계정을 만들어 주기위해 create user '계정명'@'%' identified by '비밀번호'; 명령어를 입력하여 새로운 계정을 생성한다.
  11. grant all on habit.* to 'habit'@'%' with grant option; 명령어를 사용하여 해당 계정에게 모든 권한을 부여한다.
  12. flush privileges; 명령어를 입력하여 grant 테이블을 reload 함으로 변경사항을 바로 적용해준다.
  13. sudo vi /etc/mysql/mariadb.conf.d/50-server.cnf 명령어를 이용하여 Maria DB의 config 파일에 접근하여 모든 사용자가 접근할 수 있게 설정해준다.
  14. 테이블명과 컬럼명 등의 대소문자 구분을 하지 않도록 하는 설정
  15. sudo systemctl restart mysqld 명령어를 이용하여 Maria DB 서버를 재시작 한다.\
  16. 데이터베이스 생성, 테이블 생성, 초기값 insert를 실행한다.

 

배포할 war 파일 만들기 (spring boot, jsp, intellij 사용 기준)

  1. application.properties 설정
  2. 프로젝트 파일 내의 코드들 중 상대경로로 설정되어있는 url을 절대경로로 바꿔준다.
  3. 인텔리제이 상단의 Build 의 Build Artifacts 에 artifact를 war로 빌드한다.
  4. 프로젝트 파일 내의 target 폴더 안에 war 파일이 생성된것을 확인할 수 있다.

 

FileZilla 이용하여 배포파일 가상컴퓨터로 이동

[참고 사이트] https://ldgeao99-developer.tistory.com/m/577
파일 업로드가 끝나면 퍼플릭IPv4:8080/생겨난폴더명/내가 원하는 url 로 접근하기
 
 

배포 사이트 주소

http://43.201.149.68:8080

프로젝트 주제에 대한 후기
여가 중계 플랫폼이라는 경계가 모호한 주제를 다뤘다는 점이 장점이자 단점이었다는 생각이 들었습니다. 경계가 모호하기에 예약과 판매라는 두 가지를 모두 구현해 보았다는 것이 장점이었고, 그로 인해 한가지에 집중하여 구현하지 못한 점이 단점이었다고 생각했습니다.

파이널 프로젝트 후기
학원에서 배웠던것, 배우지 않은 부분까지도 마음껏 펼칠 수 있는 시간이었고, 그로 인해 한달 정도 되는 프로젝트 기간을 지치지 않고 굉장히 즐겁게 보냈습니다. 프로젝트를 진행하면서 진로에 대한 확신을 더 얻게 되었고, 공부하는 만큼 더 성장할 수 있다는 나에대한 자신감과 확신 또한 생겼습니다.
학원에 들어와 가장 바랐던 것이 사람들과 소통하며 프로젝트를 해보는 것이었는데, 그 바람을 좋은 사람들과 함께 이룰 수 있어서 정말 뜻깊은 시간이었습니다.
반응형

'Project' 카테고리의 다른 글

취업 준비 시작, 계획 세우기  (0) 2023.07.28
파이널 프로젝트 3주 ~ 4주차 (4)  (0) 2023.07.06
파이널 프로젝트 3주 ~ 4주차 (3)  (0) 2023.07.06

댓글