신한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 |