Front

비동기 처리_개념

onivv 2024. 1. 15. 21:35

▶ 데이터 처리 모델

  • 데이터 처리 모델이란? 데이터를 받는 방식
  • 데이터를 받는 방식은 동기식 처리와 비동기식 처리 모델이 있음

1) 동기 (synchronous: 동시에 일어나는)

  • 한 개의 데이터 요청에 대한 서버의 응답이 이루어질 때까지 계속 대기

2) 비동기 (Asynchronous: 동시에 일어나지 않는)

  • 요청한 결과는 동기와 다르게 동시에 일어나지 않음
  • 서버에게 데이터를 요청한 후 요청에 따른 응답을 기다리지 않아도 됨
  • 다른 프로그램들을 동작시켜도되고, 다른 요청사항을 보내도됨

프레임워크

  • 정해진 메뉴얼 제공, 개발 시 필수적인 코드와 알고리즘 같은 기능을 제공함
  • 클래스와 라이브러리가 합쳐진 구조
  • ex) Node, Vue, React, ...

라이브러리

  • 특정 기능을 구현하기위해 미리 만들어진 함수들의 집합
  • ex) jQuery, React, ...

비동기 처리

  • 데이터를 다룰 수 있는 기능
  • 데이터를 다루다보니 표준(프레임워크)이 필요함
  • 데이터는 DB에 존재  →  M 파트  →  C 파트에 접근할 수 있는 기능
  • C 파트  →  서버 요청이 가능한 기능

 

[ jQuery ] - 비동기 처리 사용할 준비_서버 경로 import

  • jQuery 라이브러리를 import해야만 JS에서 비동기 처리 가능
  • "jQuery CDN" 검색 > minified > script경로 copy (uncompressed 압축안돼서 무거움)

jQuery 라이브러리

 

script 경로 복사

 

[ ajax ] - Asynchronous Javascript and XML

  • 자바스크립트를 이용해 비동기식으로 서버와 통신 (프로그램 언어 xx)
  • $.ajax({}) 메서드
    • 모든 jQuery Ajax 메서드의 핵심이 되는 통합 메서드
    • HTTP 요청을 만드는 직관적인 방법 제공
    • $.ajax() : jquery의 ajax() 함수 사용
    • 인자로 중괄호{ } 안에 key-value 형식으로 속성을 보내줌
$.ajax({
	type	: 서버 요청 전송 방식 ("GET" / "POST")
	url	: 요청할 서버/데이터 (어디서 데이터 가져올지, controller경로)
	data	: 서버로 보낼 데이터
	dataType: 전송 받아올 데이터 타입
	success	: 해당 메서드 기능을 성공했을 때 할 행동
	error	: 해당 메서드 기능을 실패했을 때 할 행동
});

 


[ 연습 1 ]

NewFile.jsp

 

  • $.each(data, function(index, data){...});
  • $.each : jquery에서 지원하는 foreach문(반복문)
  • 인자: 반복할 배열, 반복시킬 함수
  • function(배열의 index, 배열의 1개 row)

data1.json

json파일1개에 data 2개 있음

  • json 파일은 [ ]꺽쇠로 이뤄짐
  • 중괄호{ } 1개당 데이터 1개
  • key - value
  • key는 index 역할
key value
name "피자"
content 36000

 

실행결과

 

 

[ 연습 2 ]

NewFile2.jsp

 

TestServlet.java

비동기 처리 서블릿 파일

  • 비동기 처리는 화면 이동이 없어야함
  • FrontController에서 수행하면 리다이렉트/포워드로 끝나서 화면 이동이 있음
  • 따라서 비동기 처리만을 위한 Servlet 클래스 파일을 별도로 생성

실행결과

 

[ 연습 3 ]

화면에 이미지 링크를 ajax(비동기)로 띄우기

 

NewFile3.jsp

 

  • href 어디로갈지
  • alt 이이미지가 무엇인지
  • src 해당파일이 어디에 위치해있는지

data2.json

 

실행결과