회원가입/로그인 API까지 만들고 나서 프엔이랑 연동을 해보기로 했다!
물론 아직 완성 된건 아니지만 (닉네임, 번호, 이름 등등 확장시켜할 엔티티들이 남아있음) 기본적인 아이디, 패스워드까지는 구현을 했기 때문에 MVP 방식을 이용해서 최소한의 기능을 같이 연동해보기로 했다
우선 postman으로 테스트 하는거는 완성을 해놓은 상태여서 내가 추가적으로 설정해야하는 것이 있는지 확인했다.
다른 건 다 괜찮았지만 CORS 허용을 안해놓은 상태였기에 config 파일에 그 부분을 추가했다!
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins("http://localhost:3000") // react일 때의 포트
.allowedMethods("*")
.allowedHeaders("*")
.allowCredentials(true);
}
}
그리고 나는 당연히 내가 사용하는 URL인 http://localhost:8080/api/auth/register 을 넣어야하는 줄 알았는데, 이렇게 넣는다면 이건 내 PC local IP 주소로 가기 때문에 안된다! (나는 바보다)
| 상황 | URL 설정 |
|---|---|
| 프론트랑 백엔드 같은 컴퓨터 | http://localhost:8080/... |
| 프론트랑 백엔드 다른 컴퓨터 | http://<백엔드 컴퓨터의 IP>:8080/... |
application.yml 파일에 아래 코드 추가
server.address=0.0.0.0
server: 이 부분에 넣으면 됨!Q ) 방화벽은 백엔만 열면 되나요?
A ) 방화벽은 백엔만 열면 됨!
프론트엔드 → 백엔드로 요청을 보낼 때:
방화벽은 서버에서 외부 요청을 받을 수 있도록 허용하는 기능이기 때문에:
이거를 postman에서 테스트를 해보았는데, 계속 프엔 쪽에서 오류가 난다
Cloud Agent Error: Can not send requests to reserved address. Make sure address is publicly accessible or select a different agent.
→ 해결방법은 postman desktop 앱을 실행시켜서 하는 방법이 있음
→ 근데 timed out이라는 오류가 남
→ 이거는 프엔이 백엔의 서버에 전혀 접근을 하고 있지 못한다는 뜻
→ 오류 경우의 수를 다 하나하나 짚어보
timed out 오류 원인 분석백엔드 서버가 실행된 컴퓨터에서:
ipconfig
IPv4 주소 예: 192.168.0.23
http://192.168.0.23:8080/api/auth/registerserver.address=0.0.0.0 추가했는가?server:
port: 8080
address: 0.0.0.0
없으면 외부에서 접근 불가!
Spring Boot 8080 허용Spring Boot 로그 떠 있어야 해http://localhost:8080/ 접속해봐서 뜨는지 확인Proxy 탭 → Use System Proxy, Global Proxy 전부 Off