Spring Boot 서버 구축 기본적인 방향성

버드뉴·2024년 2월 27일
0

프로젝트 협업

목록 보기
6/7

작업 환경
IDE: IntelliJ
Spring Boot: 3.2.3
Java: 20

프론트엔드와 협업 프로젝트를 진행하며, 백엔드 서버를 구축하고 배포하는 역할을 맡게 되었습니다.

의외로 프론트엔드와 협업 과정에서 Spring Boot를 활용한 서버 구축 과정에 대한 글이 많이 않더군요. (물론 제가 못 찾았을 가능성도 큽니다...ㅎㅎ)

그래서 이번 프로젝트를 진행하며 기록으로 남길 겸 포스팅을 시작하게 되었습니다.

물론 모든 프로젝트가 저와 같은건 아닐테니 참고용으로 봐주시면 감사하겠습니다.

또한 저는 백엔드를 공부하여 프론트에 관한 내용은 거의 없을 것이란 점도 양해 부탁드립니다.


서버 구축 방법과 배포

데이터베이스 구축에는 MySQL을, 클라이언트와의 통신을 위해 Spring Boot로 REST API 설계, 배포에는 AWS EC2를 활용합니다.

간단한 흐름은 다음과 같습니다.

프론트엔드에서는 서버에게 어떠한 요청을 전달합니다.

예를 들어 게시판의 글을 작성하는 동작이 있다고 가정합시다.

그 글이 작성 될 때 클라이언트에서 서버에게 다음과 같은 요청을 보낼 것입니다.

클라이언트:
POST https://example.com/board/posting 으로 글 작성을 보내드릴게요.
JSON Body:

{
	"Post_Name":"협업파티",
	"userId": "12345",
	"category":"자유게시판",
	"content":"안녕하세요?"
}

그러면 Spring Boot를 이용하여 /board/posting 엔드포인트로 DB에 데이터를 저장해주면 됩니다.

@RequestMapping("/posting")
public class PostController {

    @PostMapping
    public ResponseEntity<PostResponse> createPost(@Valid @RequestBody PostRequest postRequest) {

	...
    
    PostResponse postResponse = new PostResponse(200, "ok", data);

        return ResponseEntity.ok(postResponse);
	}
}

이런식으로 클라이언트와 통신하는 방식으로 서버를 구축하게 됩니다.

또한 구축한 서버를 배포 하여야 하는데, 사실 서버 배포를 위해 24시간 컴퓨터를 켜기 쉽지 않죠.

때문에 AWS EC2를 활용해 서버를 배포하고 관리하게 됩니다.

AWS EC2클라우드 컴퓨팅 서비스로 말 그대로 서버 배포를 위해 가상의 컴퓨터를 빌리는 것입니다.

프리티어를 사용하면 EC2를 1년간 무료로 사용 가능하며 ( 모든 서비스가 무료는 아닙니다❗❗ 반드시 사용 전 충분히 확인하고 사용하셔야 과금이 발생하지 않습니다. )

로컬 환경에서 충분히 테스트 하고 기능이 정상 작동 한다면 Git을 통해 Repository에 커밋하고 AWS EC2에서 Spring Boot 프로젝트를 pull하여 사용하시면 서버 배포 완료입니다.

물론 위 과정은 간단한 요약으로 실제 서버 구동을 위해 많은 과정이 필요로 합니다.

그 과정을 앞으로의 포스팅으로 기록하겠습니다.

profile
야생형 Backend 개발일지

0개의 댓글