6. Spring boot + React Native 연결하기

2024. 5. 29. 21:44·개발일기/Project
728x90
반응형

우선 프론트부터

나는 axios로 통신할 거라서 이거부터 설치.

npm install axios

 

우선 간단하게 백엔드에서 데이터 가져오는 테스트부터 해봐야겠다.

화면이 로딩되면서 데이터 가져오고 싶어서

import axios from "axios";

function Login({navigation}) {

    const [data, setData] = useState('');

    useEffect(() => { // 컴포넌트가 마운트 될 때 실행
        axios.get("http://localhost:8080/login/test")
            .then((res) => {
                console.log("data : ", res.data)
                setData(res.data)
            })
            .catch((err) => console.log(err))
    }, []);
    
    return (
    	<View style={styles.container}>
        	<ul>
            	{data}
            </ul>
        </View>
    );
};

 

 

백엔드 

controller, dto, model, repository, service 폴더와 파일을 만들어준다

이때, repository는 인터페이스, 나머지는 클래스

 

우선은 백엔드와 프론트엔드 연결 확인만 해줄 거라 controller만 사용

MemberController

@RestController
public class MemberController {

    @GetMapping("/login/test")
    public List<String> loginTest(){
        return Arrays.asList("Hello", "world!");
    }
}

 

 

이렇게 작성해 주고 백엔드와 프론트엔드를 실행하면!

.......... 오류가 뜬다......!

흠... 잘 작성한 것 같은데... CORS error... 가 계속 난다... 

CORS 에러는 프론트엔드와 백엔드로 나누어 개발할 경우 흔히 발생하며, 최신 브라우저의 대부분은 헤더와 CORS 정책을 사용하고 있기 때문에 발생한다고 한다. 해결은 프론트엔드, 백엔드에서 모두 할 수 있지만 보통은 서버 쪽에서 설정하는 편인 것 같다.

CORS(Cross-Origin Resource Sharing = 교차 출처 리소스 공유)는 다른 출처(Origin) 간의 자원을 공유하는 정책.
CORS는 추가 HTTP 헤더를 사용하여, 한 출처에서 실행 중인 웹 애플리케이션이 다른 출처의 선택한 자원에 접근할 수 있는 권한을 부여하도록 브라우저에 알려주는 체제

Spring boot에서 해결 방법
- CorsFilter를 만드는 방법
- @CrossOrigin 어노테이션을 이용하는 방법
- WebMvcConfigurer를 통해서 설정하는 방법

프론트엔드에서 해결 방법
- Proxy 서버 이용

보다 자세한 설명은 출처에서...

 

나는 WebMvcConfigurer를 이용하여 오류를 해결하였다.

config 폴더와 WebMvcConfig 클래스 파일을 만들어준다. 

@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
    @Override
    public void addCorsMappings(CorsRegistry registry){
        registry.addMapping("/**")
        	.allowedHeaders("*")
                .allowedOrigins("http://localhost:8081")
                .allowedMethods("*");
    }
}

 

이 부분을 추가했더니 오류 없이 데이터가 잘 출력된다!!

728x90
반응형

'개발일기 > Project' 카테고리의 다른 글

8. Spring boot + React Native + MongoDB - 회원 가입 구현  (0) 2024.05.31
7. React Native expo 달력 띄우기  (0) 2024.05.29
5. Spring boot + MongoDB 연결하기  (0) 2024.04.29
4. Mongo DB 생성  (0) 2024.04.22
3. React Native expo 페이지 이동(react-navigation)  (0) 2024.04.04
'개발일기/Project' 카테고리의 다른 글
  • 8. Spring boot + React Native + MongoDB - 회원 가입 구현
  • 7. React Native expo 달력 띄우기
  • 5. Spring boot + MongoDB 연결하기
  • 4. Mongo DB 생성
길동이이이잉
길동이이이잉
길동이이이잉
코딩 일기
길동이이이잉
코딩 일기일까......?
삽질...... 일기일까?
반응형
250x250
  • 모든 글 (97)
    • 개발일기 (9)
      • Project (9)
      • React (1)
      • DB, SQL (7)
      • Spring (5)
      • AWS (1)
    • 코딩 테스트 (63)
      • 1. String(문자열) (12)
      • 2. Array(1, 2차원 배열) (12)
      • 3. Tow pointers, Sliding wi.. (6)
      • 4. HashMap, HashSet, TreeSe.. (5)
      • 5. Stack, Queue (8)
      • 6. Sorting and Searching (8)
      • 7. Recursive, Tree, Graph (11)
      • 8. DFS, BFS 활용 (0)
      • 9. ... (1)
    • 갔다왔다 워홀! (2)

인기 글

태그

유럽
AWS
aws업로드
spring
아일랜드워홀
전술적 설계
워홀
Strategic Design
reactnative
Tactical Design
아일랜드
s3대용량파일업로드
워킹홀리데이
SpringBoot
s3대용량업로드
유럽워홀
달력프로젝트
전략적 설계
React
Oracle

최근 글

hELLO· Designed By정상우.v4.5.3
길동이이이잉
6. Spring boot + React Native 연결하기

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.