반응형
✔️day 30 ~ 35
[test]
로직이 잘못되어서 크게 수정하거나 한 부분은 없었고, url 설정이 잘못돼있거나, 나중에 설정해줘야지 해놓고 잊어버려서 url 설정이 안되어있거나 등의 작은 부분들이었다.
하지만 이 작은 부분들로 인해 제대로 실행되지 않음을 느꼈고, 상세히 test 하며 코드를 수정해 나갔다.
배포 후 확인해 보니 상대경로로 설정되어있는 url들이 말썽을 부렸다.
절대경로로 바꿔주어 문제를 해결했다.
[배포]
AWS EC2 서비스를 이용하여 배포하였다.
MVC1 패턴의 미니 프로젝트를 aws에 배포해 보았던 경험으로인해 빠르게 배포에 성공했다.
[배포 과정]
프리티어로 인스턴스 생성 후 배포를 시작하였다.
예전에 aws 배포로 글을 올린게 있었는데 반은 맞고 반은 달라서 다시 글을 올린다.
jdk 설치
- sudo apt update 명령어를 입력하여 가상 컴퓨터의 패키지들을 update 한다.
- sudo apt-get install openjdk-17-jdk 명령어를 입력하여 jdk17 버전을 설치한다.
- 설치가 끝난 후 java --version 명령어로 jdk 버전을 확인한다.
tomcat 설치
- sudo mkdir /home/tomcat 명령어를 입력하여 해당 경로에 폴더를 만든다. (톰캣 설치 공간)
- cd /home/tomcat 명령어를 입력하여 해당 경로로 이동한 후, sudo wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.76/bin/apache-tomcat-9.0.76.tar.gz 명령어 입력하여 톰캣 설치 파일을 다운로드 한다.
- 경로 그대로에서 sudo tar xvfz apache-tomcat-9.0.76.tar.gz 명령어를 이용하여 다운받은 톰캣 설치 파일을 이용해 톰캣을 다운로드 한다.
- sudo chmod -R 777 /etc/profile 명령어를 이용해 환경설정 파일에 대한 모든 권한을 부여한다.
- sudo vi /etc/profile 명령어를 이용하여 환경설정 파일로 접근한다.
- i를 입력하여 insert 모드로 변경한다.
- export CATALINA_HOME=/home/tomcat 을 환변설정 파일 가장 아랫 부분에 입력한다.
- ESC 키를 누른 후 :wq를 입력하여 저장하고 종료한다.
- sudo chmod -R 777 /home/tomcat/apache-tomcat-9.0.76/bin 명령어를 입력하여 톰캣의 bin 파일에 대한 접근 권한을 바꿔준다.
- cd /home/tomcat/apache-tomcat-9.0.76/bin 명령어를 입력하여 bin 파일로 이동한다.
- sudo ./startup.sh 명령어를 입력하여 톰캣을 실행한다.
- 인스턴스의 퍼블릭 IPv4 주소:8080 으로 접속하여 톰캣 메인화면이 뜨는지 확인한다.
DB설치 & 연결 (Maria DB 기준으로 설명)
- MariaDB를 설치하기 전 기본적으로 시스템 내에 설정된 timezone을 한국에 맞게 설정해준다.
- sudo ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime 명령어 또는
- sudo timedatectl set-timezone 'Asia/Seoul’ 명령어를 이용한다
- date 명령어를 입력했을 때 뒤쪽에 UTC로 뜨던 내용이 KST로 바뀐걸로 확인
- sudo apt-get install -y mariadb-server 명령어를 이용하여 마리아 DB를 설치한다.
- 설치 완료 후 sudo mysql 명령어를 이용하여 mysql monitor에 접속한다.
- use mysql 명령어를 입력하여 mysql database를 사용한다.
- set password for 'root'@'localhost' = password('원하는 패스워드'); 명령어를 이용하여 원하는 패스워드로 변경한다.
- flush privileges; 명령어를 입력하여 grant 테이블을 reload 함으로 변경사항을 바로 적용해준다.
- 외부에서 접근이 가능한 계정을 만들어 주기위해 create user '계정명'@'%' identified by '비밀번호'; 명령어를 입력하여 새로운 계정을 생성한다.
- grant all on habit.* to 'habit'@'%' with grant option; 명령어를 사용하여 해당 계정에게 모든 권한을 부여한다.
- flush privileges; 명령어를 입력하여 grant 테이블을 reload 함으로 변경사항을 바로 적용해준다.
- sudo vi /etc/mysql/mariadb.conf.d/50-server.cnf 명령어를 이용하여 Maria DB의 config 파일에 접근하여 모든 사용자가 접근할 수 있게 설정해준다.
- 테이블명과 컬럼명 등의 대소문자 구분을 하지 않도록 하는 설정
- sudo systemctl restart mysqld 명령어를 이용하여 Maria DB 서버를 재시작 한다.\
- 데이터베이스 생성, 테이블 생성, 초기값 insert를 실행한다.
배포할 war 파일 만들기 (spring boot, jsp, intellij 사용 기준)
- application.properties 설정
- 프로젝트 파일 내의 코드들 중 상대경로로 설정되어있는 url을 절대경로로 바꿔준다.
- 인텔리제이 상단의 Build 의 Build Artifacts 에 artifact를 war로 빌드한다.
- 프로젝트 파일 내의 target 폴더 안에 war 파일이 생성된것을 확인할 수 있다.
FileZilla 이용하여 배포파일 가상컴퓨터로 이동
[참고 사이트] https://ldgeao99-developer.tistory.com/m/577
파일 업로드가 끝나면 퍼플릭IPv4:8080/생겨난폴더명/내가 원하는 url 로 접근하기
배포 사이트 주소
프로젝트 주제에 대한 후기
여가 중계 플랫폼이라는 경계가 모호한 주제를 다뤘다는 점이 장점이자 단점이었다는 생각이 들었습니다. 경계가 모호하기에 예약과 판매라는 두 가지를 모두 구현해 보았다는 것이 장점이었고, 그로 인해 한가지에 집중하여 구현하지 못한 점이 단점이었다고 생각했습니다.
파이널 프로젝트 후기
학원에서 배웠던것, 배우지 않은 부분까지도 마음껏 펼칠 수 있는 시간이었고, 그로 인해 한달 정도 되는 프로젝트 기간을 지치지 않고 굉장히 즐겁게 보냈습니다. 프로젝트를 진행하면서 진로에 대한 확신을 더 얻게 되었고, 공부하는 만큼 더 성장할 수 있다는 나에대한 자신감과 확신 또한 생겼습니다.
학원에 들어와 가장 바랐던 것이 사람들과 소통하며 프로젝트를 해보는 것이었는데, 그 바람을 좋은 사람들과 함께 이룰 수 있어서 정말 뜻깊은 시간이었습니다.
반응형
'Project' 카테고리의 다른 글
취업 준비 시작, 계획 세우기 (0) | 2023.07.28 |
---|---|
파이널 프로젝트 3주 ~ 4주차 (4) (0) | 2023.07.06 |
파이널 프로젝트 3주 ~ 4주차 (3) (0) | 2023.07.06 |
댓글