실습 내용
개발 환경 구축하기
WinSCP에서 Putty실행하여 개발 환경 구축 진행
java 설치
sudo su
apt install default-jdk
깃 클론
cd /var/www
git clone [깃허브 주소]
default 파일 수정
vim /etc/nginx/sites-available/default
#이 부분을 변경
root /var/www/udemy_server_practive_springboot;
#재시작
service nginx restart
default 파일에서 root를 깃 클론한 폴더를 가리키도록 변경
application.yml 수정
vim /var/www/udemy_server_practice_springboot/src/main/resources/application.yml
사용할 DB 정보에 따라 url, username, password를 수정
build
cd /var/www/udemy_server_practice_springboot
./gradlew clean build
java 실행
java -jar build/libs/demo-0.0.1-SNAPSHOT.jar
이때 빌드가 안되고 오류가 나기에 찾아보니 메모리가 부족해서 생기는 일이라고 함
메모리 부족 현상은 1) 실제 메모리 2) swap 메모리를 모두 사용한 상태에서 발생된다고 하는데, 일시적으로 메모리가 부족하면 swap 파일의 크기를 늘려서 해결이 가능
#swap 비활성
sudo swapoff -v /swapfile
#swap을 8GB로 저장
sudo fallocate -l 8G /swapfile
#권한 설정
sudo chmod 600 /swapfile
#swap file 생성
sudo mkswap /swapfile
#swap file 활성화
sudo swapong /swapfile
#swap file 마운트하기 위해 이동
sudo vi /etc/fstab
#파일 끝에 해당 코드 새로 추가
/swapfile swap swap defaults 0 0
#사용현황 확인
free -m
POSTMAN에서 테스트하기
proxy 설정
vim /etc/nginx/sites-available/default
#이 부분을 주석 처리 후 새로 코드 추가
location {
~~~
#try_files ....
proxy_pass http://127.0.0.1:9000; #9000번 포트를 명시하지 않아도 사용 가능
}
#재시작
service nginx restart
proxy_pass : 요청이 오면 http://127.0.0.1:9000로 전달
무중단 서비스 배포
nohub java -jar build/libs/demo-0.0.1-SANPSHOT.jar
무중단 배포란?
서비스를 정지시키지 않고 배포를 계속하는 것
프레임워크 사용하기 실습
model
GetUserRes
userIdx : 유저 idx
name : 유저 이름
nickname : 유저 닉네임
email : 유저 이메일
UserController
getUserByIdx
GET 메소드 사용
1. userIdx를 받아와 userProvider의 getUsersByIdx를 userIdx와 함께 호출
2. getUserByIdx의 반환값을 getUsersRes에 저장하여 반환
UserProvider
getUsersByIdx
1. 매개변수로 받아온 userIdx를 userDao의 getUsersByIdx와 함께 호출
2. getUsersByIdx에서 받아온 값을 getUsersRes에 넣어 반환
UserDao
getUsersByIdx
매개변수 userIdx에 해당하는 유저 정보 조회 쿼리문
챌린지 과제
Spring-Boot 템플릿으로 유저 삭제 api 구현하기
UserController
UserProvider
UserDao
Postman
=> 유저의 정보를 삭제하는 것 대신 유저 DB의 active값을 'INACTIVE'로 변경하여 유저의 삭제를 구현함
따라서, DELETE 메소드가 아닌 PATCH 메소드를 사용
후기
우선 개발 환경 구축하는 부분은 오류가 있어서 시간이 정말 많이 걸렸다.
오타도 많았고, 특히 java를 실행하는 부분에 있어서 2시간동안 실행 준비만 되는 오류가 있었다.
해결하는 데 시간이 많이 걸렸지만, 결국 문제점과 해결책을 발견하였고 이후 스터디원들께 해결 방안을 공유할 수 있어서 뿌듯하였다.
이론 수업을 끝내고 본격적인 api 작성 실습에 들어갔는데, 그 당시에는 해당 수업에서 배운 지식만을 가지고 챌린지 과제인 유저 삭제 api를 생성하였기에 지금 보면 불필요한 부분들이 많이 보인다.
postman 사용을 통해 개발한 api 코드가 올바르게 동작하는 지를 확인할 수 있었고, 올바르게 동작한 결과값을 api 명세서에 작성해보며 어떻게 클라이언트 개발자와 백엔드 개발자가 정보를 주고 받는지 알 수 있던 시간이었다.
'동아리 > UMC 2기' 카테고리의 다른 글
[UMC 8주차] API 개발 실전 1 (0) | 2022.09.29 |
---|---|
[UMC 6주차] Restful API와 프레임워크 (0) | 2022.08.27 |
[UMC 5주차] 데이터베이스 실전 (0) | 2022.08.27 |
[UMC 4주차] 데이터베이스 이론 및 설계 (0) | 2022.06.30 |
[UMC 3주차] 리눅스 환경 구축 (0) | 2022.06.29 |