SpringBoot

스프링을 사용하기 위한 라이브러리 모음

 

IntelliJ Ultimate를 사용한다면 New Project로 바로 스프링부트 프로젝트를 만들 수 있다.

하지만 Ultimate는 1년에 149$의 사용료가 필요하다.

대학생의 경우 학교 이메일을 통해 무료로 제공하고 있다.

 

IntelliJ Community에서도 스프링부트를 사용할 수 있다.

다만 gradle설정이 필요하다.

생각보다 간단하니 무리해서 Ultimate를 살필요가 없다.

 

 

 

 

본 포스팅의 목표는 간단하다.

InteilliJ Community에서 위 사진의 스프링을 보는 것이다.

 

 


 

EmptyProject를 만들자

 

 

New Project에서 Empty Project를 선택한다.

 

 

 

 

 

프로젝트 이름을 설정하고 완료한다.

 

 

 

스프링부트 프로젝트를 위한 설정파일을 만들자

 

스프링 사이트에서 스프링부트 설정파일들을 만들 수 있다.

https://start.spring.io/

 

 

1. Maven을 사용할지 Gradle을 사용할지 고른다.

2. 언어를 선택한다.

3. 버전을 선택하자. (버전에 대해서는 잘 몰른다. default가 stable한 버전일 것이라 생각해 그래로 두었다.)

4. Group에 패키지를 입력하고 Artifact에 프로젝트 이름을 쓴다.

5. 자바 버전을 선택한다.

6. 사용할 라이브러리들을 선택한다.

 

Lombok의 경우 플러그인을 설치해야한다.

JUnit은 JUnit5로 설정되니 JUnit4을 사용하고 싶다면 depency를 따로 추가해야 한다.

 

EXPLORE를 선택한다.

 

 

 

 

그러면 위의 사진같이 패키지 구조를 어떻게 설정할지 나온다.

DOWNLOAD해서 패키지를 다운받고 압축을 푼다.

 

사실 여기서 중요한 것은 gradle 파일이다.

위에서 Empty Project 대신 gradle 프로젝트를 만들고 gradle을 설정해도 된다.

다만 gitignore나 SpringApplication을 따로 만들어야 하고 gradle 버전이 맞지 않으면 설정해야하는 등 다운받는게 더 간단한 것 같다.

 

 

 

스프링부트 구조를 프로젝트에 적용하자

 

 

New - Module from existing sources...

다운받은 패키지를 선택한다.

 

 

 

 

 

해당하는 것을 선택하고 완료한다.

 

 

 

 

 

위에서 본 패키지 구조대로 설정된다.

 

 

 

 

 

 

프로젝트이름이 들어간 Application 파일에 main function을 실행시켜보자.

그럼 우리의 목표인 스프링을 볼 수 있다.

 

 


 

목표는 완료했지만 브라우저에서도 볼 수 있는 것을 만들어 보자

 

 

 

아직 정확히 어떤 것이지 모르지만

GetMapping을 통해 RestAPI 같다는 느낌이 든다.

Annotation으로 GetMapping 외에서 PostMapping, PutMapping, DeleteMapping이 있다.

 

 

 

 

 

 

브라우저에서 localhost:8080/hello로 접근하면 위와같은 결과화면을 볼 수 있다.

 

 

 

 

'Server' 카테고리의 다른 글

서버알못의 AWS 설정2 - RDS  (0) 2020.06.18
서버알못의 AWS 설정1 - EC2 생성  (0) 2020.06.17

 

 

 

서버가 실행될 공간, 공간에 접근할 수 있는 방법. 서버에 접근할 수 있는 고정 IP가 준비되었다.

남은 것은 서버에서 없어서는 안될 데이터베이스이다.

 

 

 

RDS(Relational Database Service)

콘솔에서 RDS를 검색하고 RDS 페이지로 간다.

 

 

데이터베이스 생성 선택

 

 

 

 

 

사용할 데이터베이스를 선택한다.

프리티어로 가능한 엔진은 MySQL, MariaDB, PostgreSQL, Microsoft SQL Server이다.

 

가능 엔진 중 원하는 엔진을 선택하면 될 것 같다.

 

 

 

 

 

프리티어가 가능한 엔진에 한해 프리티어를 선택할 수 있다.

 

DB 인스턴스 식별자에는 말그대로 식별할 수 있는 이름을 넣어준다.

DB에 접근할 아이디와 비밀번호를 설정한다.

 

 

 

 

 

프리티어로 가능한 20기가로 설정한다.

 

 

 

 

 

퍼블릭 엑세스를 가능하도록 설정하고 보안그룹을 설정한다.

차후에 변경할 것이니 EC2 인스턴스를 만들 때 만든 보안그룹으로 설정해두자.

 

모두 설정했으니 데이터베이스 생성을 누르자.

 

 

 

 

 

기다리면 일정 시간 후 데이터베이스가 위와 같이 사용가능으로 표시된다.

 

데이터베이스를 선택하면 상세정보에 보안그룹이 표시된다.

보안그룹을 선택하던가 EC2페이지에서 보안그룹 페이지로 이동한다.

 

그리고 새 보안그룹을 만든다.

 

 

 

 

RDS의 보안그룹임을 나타낼수 있도록 이름을 만들고

인바운드 규칙을 위와 같이 만들자.

 

유형은 RDS가 속한 엔진을 선택한다.

EC2 인스턴스가 데이터베이스에 접근할 수 있도록 EC2 인스턴스의 보안그룹을 대상으로 인바운드 규칙을 만든다.

또 유틸 프로그램을 통해 데이터베이스에 접근하도록 내가 작업할 PC에서의 IP를 추가한다.

 

보안그룹을 만들었으니 데이터베이스에 해당 보안그룹을 설정하자.

 

여기까지 데이터베이스를 사용하기 위한 서비스 설정이 끝났다.

해당 데이터베이스에 수정을 눌러 기존에 임시로 설정했던 보안그룹을 제거하고

위에서 만든 RDS용 보안그룹으로 설정하자.

 

 

 

 

DBeaver

데이터베이스 정보를 유틸 프로그램을 통해 확인해보자.

DBeaver 외에도 다른 유틸도 상관없다.

 

https://dbeaver.io/

 

DBeaver Community | Free Universal Database Tool

DBeaver Universal Database Tool Free multi-platform database tool for developers, database administrators, analysts and all people who need to work with databases. Supports all popular databases: MySQL, PostgreSQL, SQLite, Oracle, DB2, SQL Server, Sybase,

dbeaver.io

 

 

 

설치 후 실행하면 아래와 같은 프로그램이 보인다.

 

 

파일 아래 아이콘을 선택한다.

데이터베이스 종류가 뜨면 해당하는 데이터베이스를 선택한다.

 

 

 

 

 

Authentication에는 RDS를 만들때 입력했던 아이디와 패스워드를 입력한다.

 

Server Host에는 해당 데이터베이스를 선택하면 표시되는 엔드포인트 값을 입력한다.

 

 

 

 

 

완료하면 왼쪽 리스트에 데이터베이스가 추가된다.

 

 

설정이 끝났다.

해당 프로그램을 통해 데이터베이스 작업이 가능하다.

 

 

 

 

파라미터 그룹

설정해야할 일이 하나 더 있다.

위에 데이터베이스의 Default Charset은 utf8로 설정되어 있지만

기본 설정은 latin으로 되어 있다.

 

기본 설정값들은 RDS의 파라미터 그룹에서 관리한다.

 

 

기본 파라미터 그룹은 변경이 불가능하다고 한다.

 

새로운 파라미터 그룹은 만들자.

그룹 이름을 적당히 만들고 생성하자.

 

새로 만든 파라미터 그룹을 선택하고 파라미터 그룹 작업에서 편집을 선택하자.

 

 

 

 

2페이지, 3페이지에 charset과 관련된 파라미터들이 있다.

 

character_set_client, character_set_connection, character_set_database, character_set_filesystem, character_set_results, character_set_server은 utf8로

collation_connection, collation_server은 utf8_general_ci로 설정하자.

 

해당 데이터베이스에 파라미터 그룹을 설정하자.

수정을 누르면 데이터베이스 옵션에서 파라미터 그룹을 변경할 수 있다.

 

변경 후 데이터베이스를 재부팅해야 적용된다.

작업 / 재부팅을 선택한다.

 

 

 

 

 

EC2 서버에서도 데이터베이스를 확인할 수 있다.

 

mysql 설치
sudo yum install mysql

mysql 접속
mysql -u 계정 -p -h Host주소

 

 

 

 

 

 

 

 

 

'Server' 카테고리의 다른 글

서버알못의 스프링부트 프로젝트 만들기  (0) 2020.06.22
서버알못의 AWS 설정1 - EC2 생성  (0) 2020.06.17

 

 

윈도우에서 AWS 클라우드 서버를 사용하려 한다.

윈도우 기반으로 작성하니 맥북 사용자는 아래 포스팅 링크를 참조하자.

 

AWS에 가입하면 12개월 동안 서비스의 일정부분은 무료로 사용할 수 있는 프리티어를 제공한다.

일정 부분 무료라고 써놨지만 사실상 무료이다.

 

다만 보안설정없이 사용하는 경우 내 계정이 코인 체굴에 쓰이고 요금 폭탄을 맞는 경우도 있다고는 한다.

물론 고객센터에 영어로 잘 문의하면 선처해주는 분위기인듯 하다.

 

보안설정을 통해 나만 접근하게 설정한다면 위와 같은 문제는 없을 것이다.

 

 

 

AWS 프리 티어

https://aws.amazon.com/ko/free/?all-free-tier.sort-by=item.additionalFields.SortRank&all-free-tier.sort-order=asc

 

AWS 프리 티어

프리 티어를 이용해 60가지가 넘는 제품을 체험하고 AWS에 구축할 수 있습니다. 사용하는 제품에 따라 세 가지 유형의 프리 티어 오퍼가 제공됩니다. 각 제품에 대한 자세한 내용은 아래를 참조하

aws.amazon.com

 

해당 포스팅 내용을 보고 다시 작성하는 것이다.

https://jojoldu.tistory.com/259?category=635883

 

4) 스프링부트로 웹 서비스 출시하기 - 4. AWS EC2 & RDS 구축하기

이번 시간엔 SpringBoot를 운영할 AWS 환경을 구축하겠습니다. (모든 코드는 Github에 있습니다.) Tip) 운영 서버는 크게 클라우드 서비스(AWS, Azure 등) 과 호스팅 서비스(Cafe24, 코리아호스팅 등)을 이용��

jojoldu.tistory.com

 

 


 

1. AWS 가입

2. EC2 인스턴스 생성

3. EIP 설정

4. putty 사용

5. RDS 생성

6. DBeaver 사용

7. FileZilla 사용

 

EC2 서버를 위한 공간

EIP 만들 웹 서비스에 접근하기 위한 고정 IP

putty 서버를 위한 공간에 접근하기 위한 프로그램

RDS 데이터베이스 서비스

DBeaver DB에 접근하기 위한 프로그램

 

해당 포스팅에서는 4번까지 진행하면서

서버를 위한 기본이 되는 공간을 만들고 접속해보려 한다.

 

 


 

AWS 가입

가입한 시점부터 프리티어 12개월이 진행됨으로 별다른 신청이 필요없다.

가입하고 아래 콘솔화면을 볼 수 있다.

 

 

오른쪽 위에 리전을 선택하는 곳이 있는데 서울이 아니라면 서울을 선택한다.

 

 

 


 

EC2

 

EC2 페이지로 가면 위와 같은 화면을 볼 수 있다.

인스턴스 시작 선택

 

 

운영체제를 Amazon Linux AMI를 선택한다.

 

 

 

프리티어에서 가능한 t2.micro를 선택

 

 

 

 

인스턴스 세부 정보 구성은 기본 설정을 따른다.

 

 

 

프리티어에서 사용 가능한 최대 크기 30기가로 설정

 

 

 

 

서버에 접근할 수 있는 보안 그룹을 설정한다.

SSH 접근은 사용자만 접근할 수 있도록 "내 IP"만 선택하고

외부에서 웹서비스에 접근할 수 있도록 HTTP, HTTPS는 열어둔다.

 

다른 장소에서 SSH에 접근하고 싶거나 FTP, DB에 필요한 포트가 필요하다면

후에 추가로 접근하고 싶은 서비스 혹은 IP를 설정하면 된다.

 

 

인스턴스에 대한 설정이 모두 끝났음으로

검토 및 시작에서 시작하기를 선택

 

 

 

새 키 페어 생성을 선택하고

키 페어 이름을 입력한 뒤 키 페어를 다운로드하여 저장해둔다.

 

 

 

 

 

생성을 완료하고 나면 인스턴스가 돌아가는 것을 확인할 수 있다.

 

 

 

 

탄력적 IP(EIP) 설정

서버를 만들기 위한 자원은 갖췄지만 고정된 IP가 없다면 아무 의미가 없다.

내 서버의 IP를 얻어보자.

 

EC2 메뉴에서 네트워크 및 보안 / 탄력적 IP를 선택

우상단의 탄력적 IP 주소 할당 선택

 

 

할당하면 주소가 생성된다.

주소와 인스턴스가 각각 만들어졌을뿐 연결되어 있지 않다.

 

우상단의 Actions의 주소연결을 선택한다.

 

 

 

위에서 만든 EC2 인스턴스를 선택하고

프라이빗 IP 주소 EC2 인스턴스의 프라이빗 IP를 입력한다.

(누르면 자동으로 항목이 나온다.)

 

 

연결 후 EC2 인스턴스를 확인한다.

 

 

탄력적 IP가 할당된 것이 보이면 된다.

 

 

 

 

Putty 사용

서버를 위한 공간을 할당받았으니 접속해보자.

Putty를 사용해 SSH로 서버 공간에 접근하겠다.

 

SSH(Secure Shell)

네트워크 상의 다른 컴퓨터에 로그인하거나 원격 시스템에서 명령을 실행하고 다른 시스템으로 파일을 복사할 수 있도록 해주는 응용프로그램 또는 프로토콜

 

우선 다운받아 설치해보자

https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html

 

Download PuTTY: latest release (0.73)

This page contains download links for the latest released version of PuTTY. Currently this is 0.73, released on 2019-09-29. When new releases come out, this page will update to contain the latest, so this is a good page to bookmark or link to. Alternativel

www.chiark.greenend.org.uk

 

 

 

위 두개의 프로그램을 사용할 것이다.

 

우선 PuTTYgen을 이용해 private key를 만들 것이다.

 

 

 

통해 EC2 인스턴스를 생성하면서 받은 pem을 Load한다.

Save Private Key를 선택하여 저장한다.

passphrase가 없다고 경고가 뜨는데 무시한다.

 

pem과 같은 이름으로 만들라고 블로그에서 봤는데 이유는 잘 모르겠다.

 

 

그럼 이제 PuTTY를 이용해 서버에 접근해보자.

 

 

HostName : [user]@[IP]

 - user : EC2의 경우 ec2-user를 입력한다.

 - IP : EC2 인스턴스 정보에 퍼블릭 DNS 또는 EIP를 입력한다.

 - ex : ec2-user@12.345.670.891

Port : 22

 - EC2를 만들 때 보안그룹에서 SSH, 22 포트를 내 IP 설정한 이유이다.

Private Key 설정

 - Connection / SSH / Auth

 - Private key file for authentication에 위에서 생성한 .ppk 파일은 선택한다.

Saved Sessions에 설정을 저장해두고 사용하면 된다.

 

Open을 누르면

 

 

정상적으로 접속된 것을 볼 수 있다.

 

처음 접속하면 업데이트가 필요하다는 메세지가 뜬다.

sudo yum update 명령어를 통해 업데이트하자.

 

또 자바 버전은 1.7이 기본 설정인듯 하다.

1.8이 필요한 경우 업데이트를 하자

 

설치 가능 버전 확인
yum list java*jdk-devel

설치
sudo yum java-1.8.0-openjdk-devel.x86_64

자바 버전 변경
sudo alternatives --config java

 

 

 

 

'Server' 카테고리의 다른 글

서버알못의 스프링부트 프로젝트 만들기  (0) 2020.06.22
서버알못의 AWS 설정2 - RDS  (0) 2020.06.18

+ Recent posts