본문 바로가기

⭐ SpringBoot/🚥 SpringBoot Example

SpringBoot TCP, HTTP 테스트

# spring boot 간단하게 hello word 띄우기

1. start.spring.io/ 접속

2. 디펜던시 에서 Spring Web 추가

3. Generate 클릭 후 프로젝트 생성 후 압축해제

4. 인텔리j로 프로젝트 오픈

5. 아레 코드 입력 후 실행

package com.example.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@SpringBootApplication
public class DemoApplication {

	@RequestMapping("/")
	String home() {
		return "Hello World!";
	}
	public static void main(String[] args) {
		SpringApplication.run(DemoApplication.class, args);
	}

}

 

6. 포트 변경 (기본 포트는 8080 이므로 8899로 변경하여 실행)

- main → resource → application.properties 에서 아래의 코드를 입력

server.port = 8899

 

7. 실행 후 확인

- localhost:8899

8. AWS 서버에서 실행을 해야하니 아래와 같이 수행

테스트할 코드를 MobaXterm을 활용해 서버로 업로드 한다. (이방법 말고 다른 방법도 존재하나, 이게 가장 편함)

요렇게 된다.

9. jar를 만들기 위해 빌드를 수행한다.

일단 gradlew의 실행 권한이 아마 없을 것이므로 chmod 

700 권한을 주자.

chmod 700 gradlew

자바 없으면 아래와 같이 설치

sudo apt install openjdk-17-jre-headless

아래의 명령어를 활용하여 빌드를 수행한다.

그냥 빌드 명령어를 통해 실행한다.

# 그냥 빌드
sudo ./gradlew build
# 빌드 시 빌드 수행 결과를 확인 (에러도 확인가능)
sudo ./gradlew build --stacktrace
# test 없이 빌드
sudo gradle build --exclude-task test
# 빌드 수행 결과를 확인 및 테스트 없이 빌드 수행
sudo ./gradlew build --stacktrace --exclude-task test

정상적으로 빌드가 실행 후 결과는 아래와 같고 libs 폴더 아래에 jar 파일이 생성되어 있다.

10. 실행하기

생성된 jar 파일을 실행한다.

- 위에도 설명 했지만, 만약 해당 EC2에 java가 설치되어 있지 않다면, java를 설치해 줘야한다. (여기서는 17 버전을 설치 하였다.)

sudo apt-get update

sudo apt install openjdk-17-jre-headless

- 실행 명령어

java -jar app-0.0.1-SNAPSHOT.jar &

- 만약 실행한 실행한 프로세스를 확인하고 싶으면 아래의 명령어를 통해 조회가 가능하다.

ps aux | grep java

- 그리고 해당 프로세스를 중지하고 싶으면 kill -9 명령어를 사용하여 중지가 가능하다.

kill -9 {process id}

11. 실행 결과 확인

나는 여기서 tcp/ip 연결 확인 샘플 코드와 rest api 를 호출할수 있는 2개의 코드를 올렸다.

각가의 포트를 다르게 하여 테스트를 진행 하였다.

TCP : 5200

Heahthcheck : 8899

확인을 해보면 아래와 같다.

- TCP

정상적으로 테스트가 되는것을 확인 할 수 있다.

12. 채팅 프로그램 실행하기

EC2 인스턴스에 올려서 실행을 하면 아래와 같다.

서버는 EC2 인스턴스가 되고, Client는 나의 로컬 영역이 된다.

2024.02.02 - [⭐ SpringBoot/🚥 SpringBoot Example] - TCP Socket Programming (JAVA) Threeway HandShake

 

TCP Socket Programming (JAVA) Threeway HandShake

# TCP 소켓 프로그래밍 Threeway HandShake 1. Client - Server 구조 란? client : 사용자 server : 파일서버, DB서버, EC2 인스턴스, 등등 보통 서버는 리소스를 전달해주는 역할만을 담당 한다. 클라이언트는 보통

may9noy.tistory.com

클라이언트에서 바라보는 호스트 정보는 EC2 인스턴스의 Public IP 및 NLB의 주소정도 테스트를 했는데 정상적으로 커넥션이 가능했다. (당연히 Public Subnet으로 세팅, Private 영역은 직접 동일한 VPC 대역대로 서비스를 올려서 커넥션을 맺어야 한다.)

테스트 결과는 아래와 같다.

 

- 끝 -