본문 바로가기
WEB/Back-end

Spring Framework 및 API 개발 개요

by 최새벽 2024. 10. 15.

신한DS 금융SW 수업 들으며 메모한 내용 간략히 정리 


JSP와 API 개발

  • JSP 호출: JSP를 통해 API를 호출하여 데이터를 출력함.
  • 단일 서버에서 진행: 모든 처리가 하나의 서버에서 이루어지므로 보안 문제에 대한 신경 쓸 필요가 적음.

AJAX 사용

  • AJAX의 필요성: 댓글 저장 및 출력 시 페이지를 새로 고침하지 않고 특정 부분만 업데이트하기 위해 AJAX를 사용함. 이를 통해 사용자 경험을 개선하고 페이지 전환 없이도 데이터를 처리할 수 있음.

API 서버 구축

  • REST Controller: API 서버를 별도로 구축하고, 리액트 애플리케이션에서 이 API 서버를 호출함. 이는 다른 서버에서 이루어짐.

인증 및 보안

  • JWT (JSON Web Token): 로그인에 사용되며, API 호출 시 인증 수단으로도 사용됨. 이를 통해 사용자가 해당 API에 접근할 수 있는 권한이 있는지 확인함.
  • DDoS 공격: 요청이 과도하게 발생할 경우 DDoS 공격의 위험이 있음. 인증되지 않은 사용자가 데이터 요청 시, 데이터를 제공할 필요가 없음.

CORS (Cross-Origin Resource Sharing)

  • CORS 정의: API를 다른 출처에서 호출할 때 허용하는 설정임. 이는 크로스사이트 공격(XSS)과는 다른 개념임.
  • AOS와 iOS: AOS에서 자바로 실행 시 CORS 에러가 발생하지 않지만, iOS에서는 Objective-C 또는 Swift로 실행할 경우 비동기 통신이 이루어지지 않으므로 CORS 문제가 발생하지 않음.

서버 구성과 API 통신

  • 프론트엔드와 API 서버: AOS와 iOS 프론트엔드가 API 서버와 통신하여 작동하며, DB는 API 서버와 연동됨. IP 등록에는 한계가 있음.
  • 리액트의 비동기 통신: 리액트에서는 비동기 통신을 통해 API를 호출할 수 있지만, 외부 API(예: 네이버 API)를 직접 호출할 수는 없음. 대신, 프록시 서버를 통해 호출할 수 있음. 리액트 개발 환경에서는 패키지를 설치하면 프록시가 동작하지만, 운영 서버에서는 설정이 필요함

JPA와 데이터 조회

  • findById와 getByNum의 차이: 데이터 조회 시 lazy와 load의 차이로 인해 발생하는 차이점이 있음. lazy 로딩은 필요할 때만 데이터를 로드하는 방식이며, load는 즉시 데이터를 로드함.

 

 

 

 

 

'WEB > Back-end' 카테고리의 다른 글

@EnableWebSecurity(SpringBoot)  (0) 2024.10.15
JWT(Json Web Token)  (0) 2024.10.15
Spring Security(SpringBoot)  (0) 2024.10.15
EntityGraph (SpringBoot)  (0) 2024.10.15
@ManyToOne와 @OneToMany(SpringBoot)  (0) 2024.10.15