3년전 Java를 처음 배우며 Spring도 함께 교육은 받았었는데,

안타깝게도 코로나가 터지며 갑자기 비대면 수업으로 전환되고

제대로 진도를 빼지 못한채 학원을 수료했었다.

 

개발 1년차 취업한 회사에서 C#으로 전향하고 응용프로그램만 만지다,

가끔 Web이 필요할땐 Asp.net으로 개발을 해왔는데

최근 Spring과 React에 관심이 생겨 이렇게 곻부 기록을 남겨본다.

깨부 시작전 현 상황 체크를 해보자면 이렇다.

 

 현재 은다민의 상황
 - 지금까지 대부분의 개발은 C#으로 함 (응용프로그램 / Web)
 - Spring 거의 기억 안남
 - React 아예 모름
 - 기본적인 html / css / js 사용 가능


1. 개발 환경 선택

1. os : Window 10 , Mac OS Monterey (M1)
2. ide : IntelliJ (spring) , vscode (react)
3. database : MySQL
4. api : Swagger

 

  • os는 window와 mac을 둘 다 사용하는지라 언제 어디서든 개발할 수 있도록 선택
  • 사실 ide에서 고민을 많이했다. IntelliJ에서 React를 지원해주기 때문에 사실 한곳에서 모두 개발할 수 있지만,
    이 경우 Spring Boot와 React 애플리케이션을 각각 실행해야 하기 때문에 개발 환경 설정이 복잡해진다는 단점과
    Front-End의 관점에서 개발을 해보고 싶기 때문에 (추후 협업을 위한 경험) 굳이 개발 환경을 나누어 주었다.
  • 아직 대량의 데이터 처리를 동시에 할 프로젝트를 생성할것이 아니라서 MongoDB와 MySQL중 MySQL 선택
  • Swagger와 PostMan중 어떤것을 사용해도 상관없지만, ASP 개발을 할때 사용했던 익숙한 Swaager를 선택

2. 개발 환경 통합

나는 Spring과 React 애플리케이션을 각각 개발하기 때문에 이 둘을 연동하는 통합 작업이 필요하다.

React에서 Rest API를 호출하여 Spring Boot에서 구현한 API를 통해 데이터를 주고 받을수 있도록 작업하려고 한다.

WebSocket을 활용하여 서버와 통신하는 방법도 있지만, 이는 양방향 실시간 통신을 지원하는 프로토콜

즉, 채팅이나 게임같이 연결을 유지하며 실시간으로 데이터를 주고 받는 방식이기 때문에

프로젝트 방향과 맞지 않을거라고 판단하여 API 호출 방식을 선택하였다.

 

REST API 방식 : HTTP 프로토콜 기반으로 클라이언트 - 서버 모델을 따르는 웹 서비스 아키텍쳐.
클라이언트와 서버 간에 비동기적 데이터 통신이 가능. HTTP Method (GET, POST, PUT, DELETE)를 사용하여
데이터를 조작가능. 간단하고 직관적이며 다양한 클라이언트와 서버에서 사용 가능.
단순한 데이터 전송이나 CRUD 작업을 수행하기 위해 선택하였음

WebSocket 방식 : 양방향 실시간 통신을 지원하는 프로토콜.
클라이언트와 서버가 한 번 연결하면 연결을 유지하며 실시간 데이터 통신이 가능.
채팅,게임,주식 시세 같은 어플리케이션을 만들때 사용.
이처럼 실시간으로 데이터를 주고받거나 푸시 알림등의 기능이 필요할때 사용하면 좋다.

 

다음편에는 개발 환경 셋팅을 해보자

728x90

+ Recent posts