비동기 프로그래밍?
이해하기 제일 쉬운 방법은 바로…..
“동기 프로그래밍”이 뭔지 먼저 알아보는겁니다 ^^
ex) 자바에서 코드를 작성시
public class 동기식(){
public void 동기1(){
System.out.println("안녕하세요")
}
public void 동기2(){
System.out.println("안녕못해요")
}
public void 동기3(){
System.out.println("안녕해요 ㅡㅡ")
}
}
위와 같이 코드를 작성했다고 하면 (물론 메인메소드가 없지만)
실행 순서는 동기 1 ⇒ 동기 2 ⇒ 동기 3 순서대로 될겁니다!
이말은 즉 ⇒ 위에서 아래로 순차적으로 하나하나 실행이 끝나면 그 다음 메소드로 이동해서 실행하고,,,,
이런 방식으로 순차적으로 앞에 메소드가 실행이 끝나야지 다음 메소드가 실행되는 방식을
바로바로 “동기” 프로그래밍 입니다!!!
그래서 비동기 프로그래밍이 뭔데요?
간단합니다 ! 동기 프로그래밍의 반대인것을 비동기 프로그래밍 이라고 하는거죠!
뭔말이냐고요?
자 좀더 이해를 쉽게 돕기 위해서 예를 하나 더 들어봅시다.
지하철을 예로 한번 들어보게요!!!
2호선 지하철에는 현재 선로가 딱 하나만 있고 모든 열차가 순서대로 운행을 하고 있습니다.
근데 만약에 맨 앞에 달리던 열차가 갑자기 매우 느리게 달려요! 그러면 뒤에 있던 모든 열차도 속도를 줄이고
시간이 지연되겠죠??? 이런 문제를 해결하는게 바로 비동기 프로그래밍입니다!
자 하나 더 예를 들어볼게요!
집안일을 한다고 가정했을떄,
- 빨래돌리기
- 빨래 널기
- 청소기 돌리기
- 설거지하기
라고 하였을때 동기 프로그래밍 방식은 1. 빨래돌리기를 실행하고 다음 동작인 2. 빨래 널기를 실행하기 위해서는
일단 빨래가 다 돌아가야죠?? 즉 빨래가 끝날때 까지는 아무것도 못하고 가만히 있다는겁니다…….
반면 비동기 방식은? 빨래를 일단 돌려놓고 다음으로 실행가능한 3. 청소기 돌리기도 하고, 4.설거지도 하는겁니다!
그러다가 1. 빨래가 다 돌아갔다면, 그때 2.빨래널기를 실행하는거죠!!!!
어디서 많이 들어본 개념인데요?…
맞습니다. 자바에서 프로세스, 쓰레드 개념에서 한번 저희는 접해봤습니다!
여러개의 프로세스와 쓰레드가 돌아가고 있는게 바로 “비동기 프로그래밍” 방식인거에요!!!
즉 멀티태스킹이 가능한 방식이라는 거죠 🙂
대표적인 예로는 Spring ajax라이브러리 를 활용하여 비동식 방식을 구현하는겁니다!
고로 비동기 방식을 구현하는 방법은 제가 작성한 https://www.notion.so/Spring-ajax-f17eb1fc52dd44b78958669a69247f83
Spring에서 ajax사용하기 글을 통해 확인할 수 있습니다!
'Programming' 카테고리의 다른 글
Parameter 와 Argument의 정의 및 차이 (0) | 2023.02.01 |
---|---|
DP 프로그래밍 (Dynamic Programming) (0) | 2023.01.17 |