#14 : 추가 기능 (추후 구현 꼭! 해보기★★)
01. 답변 페이징, 정렬
- 최신순, 추천순 등으로 정렬
- 질문 목록과 같이 페이징하기
02. 댓글
- Question, Answer 엔티티과 Comment 엔티티 생성 후 연결
03. 카테고리
- Question 엔티티에 Category 엔티티 추가하려 게시판을 분류
04. 비밀번호 찾기와 변경
- 임시 비밀번호를 가입 시 등록한 이메일로 발송
- 기존 비밀번호와 새 비밀번호를 입력받아 비밀번호 변경
05. 프로필
- 로그인하나 사용자의 프로필 화면 생성, 기본정보과 작성한 질문, 답변, 댓글 등을 확인
06. 최근 답변과 최근 댓글
- 질문 위주가 아닌 최근 답변이나 댓글을 확인할 수 있는 기능
07. 조회수
08. 소셜 로그인
09. 마크다운 에디터
- 마크다운 문법을 더 쉽게 입력할 수 있는 마크다운 에디터 적용, simpleMDE 추천
4장 - 세상에 선보이는 SBB 서비스!
#1 : 서버
제작한 서비스를 누구나 사용할 수 있도록 하려면 다른 사람이 인터넷으로 SBB 서비스에 접속할 수 있도록 만들어야 한다. 이를 위해서는 매일 쉬지않고 켜져있는 서버가 필요하다.
- 서버를 운영하려면 하드웨어를 구매 후 네트워크 장비를 구축한 IDC센터에 서버를 보내 관리해야 한다. 또한 해당 서버에 운영체제를 설치해야 한다.(보통 리눅스 계열 사용) 또한 데이터베이스 설치나 네임 서버 설치, 도메인 등록, 백업 등 해야 할 일리 많다.
- 이를 도와주는 것이 바로 클라우드 시스템, 인터넷 서비스 형태로 서버를 관리한다.
#2 : AWS 라이트세일
01. AWS 라이트 세일이란?
- 아마존에서 운영하는 웹서비스에 특화된 클라우드 서비스
- 웹 서비스 운영에 꼭 필요한 기능만 준비
- 처음 3달 무료, 그 이후엔 5달러
AWS 라이트세일의 사양 (월 5$)
- 메모리: 1GB
- CPU: 1vCPU
- SSD: 40GB
- 트래픽: 2TB
02. 가입하기
- AWS 계정 생성
* 결제 정보 입력
* 자격 증명 확인
* 지원 플랜 선택 : 무료 플랜 선택
03. 라이트세일 인스턴스 생성하기
- 라이트세일 접속
https://lightsail.aws.amazon.com
- 라이트세일 로그인
- 필요 시 하단에서 언어 변경 가능
- 인스턴스 생성
* 인스턴스 생성 클릭=>인스턴스 이미지 선택(리눅스, OS전용, Ubuntu)
* 인스턴스 플랜 선택=>월별요금 5$ 요금 선택 (3.5$는 스프링부트에 적합하지 않음)
* 인트턴스 생성 클릭(인스턴스명은 선택한 OS명-숫자로 표기된다. 바꾸어도 무방)
* 인스턴스 생성 대기=>1~2분 후 실행 중 확인
#3 : 서버 접속 설정
01. 고정 IP 생성
- AWS 서버에 접속하기 위해서는 고정IP가 필요하다.
* 라이트세일 메인화면에서 네트워킹 탭=> 고정 IP생성 확인
* 인스턴스 연결에서 만들어둔 인스턴스 선택=>고정IP명 설정(바꿔도 무방)=>생성 클릭
* 생성된 고정IP 확인
02. 방화벽 설정
- 우리가 제작한 서비스의 기본 포트는 8080, 해당 포트로 접속하기 위해서는 방화벽 해체가 필요하다
* 메인에서 인스턴스 탭을 선택=>인스턴스명 클릭
* 네트워킹 탭=>+규칙추가 클릭
* 사용자 지정, TCP, 8080 입력 후 생성
* 이제 외부에서 고정 IP의 8080 포트로 접속이 가능하다.
- 사용 취소는 아래 참고
[부록] AWS 라이트세일 사용 취소 - https://wikidocs.net/163575
#4 : 서버 접속 프로그램
제작한 서비스를 서버에 적용하기 위해서는 프로그램을 설치하고 환경설정을 진행해야 한다.
- SSH : 네트워크 상의 다른 컴퓨터에 로그인하거나 원격 시스템(서버)의 명령을 수행하기 위한 프로토콜(기본포트 22)
- SFTP : SSH의 파일 전송을 담당, 서버에 파일을 업로드나 다운로드하는 프로토콜(기본포트 22번)
01. 프라이빗 키
- SSH, 혹은 SFTP 프로그램으로 서버에 접속하기 위해서는 AWS 계정의 프라이빗 키가 필요하다.
* 메인에서 계정 선택
* SSH 키 탭=>기본 키의 다운로드 아이콘 클릭
* 다운로드된 프라이빗 키를 루트(c:/) 디렉토리에 붙여넣고 명령어로 파일명을 mysite.pem으로 변경
(cmd 관리자 권한 실행)
c:\>rename LightsailDefaultKey-ap-northeast-2.pem mysite.pem
02. SSH 클라이언트
- 윈도우용 SSH 터미널 프로그램
* mobaXterm 무료버전 설치 : mobaxterm.mobatek.net/download.html
* 실행 후 Session 클릭=>SSH선택=>Remote host에 고정IP 주소 입력=>Specify username에 ubuntu 입력
=> Use private key 체크 후 로컬의에 있는 키 지정=>OK
* 이제 서버작업이 가능하다.
03. SFTP 클라이언트
- 우리가 제작한 서비스는 jar 형태로 배포된다. 이 때 만든 배포 파일을 서버에 전송해주어야 한다.
- SFTP 프로그램
* 파일질라 설치(클라이언트 버전) : https://filezilla-project.org/
* 좌상단 아이콘을 눌러 사이트 관리자 열기
* New site 클릭=>sbb라는 이름으로 변경=>프로토콜 SFTP 선택=>호스트에 고정IP 입력
=>로그온 유형에 키 파일 선택=>사용자에 ubuntu 입력=>키파일 찾아보기로 지정=>연결=>서버접속 완료
- 좌측의 로컬 사이트는 내 컴퓨터를 의미하고 우측의 리모트 사이트는 서버를 의미한다.
#5 : SBB 오픈
01. 서버 환경설정하기
- hostname 변경하기
프롬프트에 ip부터 그다음에 오는 숫자들 까지가 서버의 호스트명이다. 이를 변경해보자.
ubuntu@ip-~:~$ sudo hostnamectl set-hostname jumpto
호스명을 바꾼 후에는 서버를 다시 시작해야 적용된다.
- 서버 시간 설정하기
* date 명령 실행 시 한국 시간이 아닌 UTC 시간이 출력
* 한국 시간으로 변경
ubuntu@jumpto:~$ sudo ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime
- 자바 설치
* 서버에 자바가 설치되어 있는지 확인하기 위해 java입력
* 아래 명령어를 이용해 우분투 패키지를 최신으로 업그레이드
ubuntu@jumpto:~$ sudo apt update
* 자바 설치
ubuntu@jumpto:~$ sudo apt install openjdk-17-jdk
그리고 java -version을 입력하여 설치 확인한다.
- 프로젝트 디렉토리 생성
* 홈 디렉터리(/home/ubuntu) 하위에 sbb 디렉토리 생성 (~가 홈디렉토리를 의미)
ubuntu@jumpto:~$ mkdir sbb
ubuntu@jumpto:~$ ls
sbb
02. SBB 배포파일 생성
- 인텔리제이 기준
* 그래들 메뉴에서 build => bootjar 선택 => 정상 실행 시 build의 libs 폴더에 jar 파일이 생성된다.
(이 때 생성되는 파일의 명은 build.gradle 파일의 버전 항목이 결정한다.)
03. SFTP로 SBB 배포파일 전송하기
- 파일질라에서 로컬 사이트 경로의 jar 파일을 리모트 사이트의 sbb 디렉토리로 드래그 앤 드롭
03. SBB 배포파일 실행하기
- 터미널을 이용해 접속 후 배포파일 실행
ubuntu@jumpto:~$ cd sbb
ubuntu@jumpto:~/sbb$ java -jar sbb-0.0.1-SNAPSHOT.jar
- 브라우저 주소창에 고정IP+포트번호를 입력하면 실행되는 걸 확인할 수 있다.
- local.mv.dv : 로컬에서 생성한 데이터는 더이상 보이지 않는다. 왜냐하면 서버에서도 새로 파일이 만들어지기 때문이다.
ubuntu@jumpto:~$ ls
local.mv.db sbb'T-I-L > [책] 요약&정리' 카테고리의 다른 글
| [점프 투 스프링부트] 3장 SBB 서비스 개발(개발과 서버 환경 분리) - 2023. 09. 15. (0) | 2023.09.15 |
|---|---|
| [점프 투 스프링부트] 3장 SBB 서비스 개발(서버 스크립트) - 2023. 09. 14. (0) | 2023.09.14 |
| [점프 투 스프링부트] 3장 SBB 서비스 개발(검색) - 2023. 09. 12. (0) | 2023.09.12 |
| [점프 투 스프링부트] 3장 SBB 서비스 개발(마크다운) - 2023. 09. 11. (0) | 2023.09.11 |
| [점프 투 스프링부트] 3장 SBB 서비스 개발(추천, 앵커) - 2023. 09. 07. (0) | 2023.09.07 |
