'개발용어'에 해당되는 글 2건
동기와 비동기에 대한 해석 #동기 #비동기 (19.08.06)
동기와 비동기
- 현실에서 의미?
동기(synchronous)
: 같은 시기, 또는 같은 기간
= 동기생
ex) 대학 동기
비동기(asynchronous)
: 동시에 발생하지 않는
- 동기식 구조
아래 synchronous.js 파일을 실행하면
1 2 3 | console.log("첫번째"); console.log("두번째"); console.log("세번째"); | cs |
이처럼 위와 같이 해당 코드가 실행되고 난 후 그 다음 코드가 실행되는 방식을 동기식 처리라고 한다.
1 2 3 4 5 6 7 8 9 10 11 12 | console.log("첫번째"); setTimeout(()=>{ console.log("두번째"); }, 0) console.log("세번째"); console.log("네번째"); console.log("다섯번째"); console.log("여섯번째"); console.log("일곱번째"); console.log("여덟번째"); | cs |
위와 같은 실행결과가 나온다.
이를 컴퓨터 관점에서 생각해보면,
1. 첫 번째 라인에서 console.log("첫번째");를 접근하여 콘솔창에 첫번째 라는 결과를 출력한다.
2. 세 번째 라인에서 setTimeout() 메소드를 접근한다. 해당 메소드가 비동기적 메소드임을 인지하고, 이를 비동기를 처리하는 다른 프로그램에게 맡긴다.
3. setTimeout() 메소드를 다른 프로그램에 맡긴 후 곧바로 다음라인(일곱번 째)을 실행하여 세번째 라는 결과를 출력한다.
4. setTimeout() 메소드를 맡아 처리한 프로그램은 비동기적 API를 제외한 모든 코드가 실행된 후에 결과를 출력한다.
두 방식의 효용
- 동기식 구조
어떤일을 처리하는 동안 다른 프로그램은 정지상태가 되므로 실제 CPU가 느려지는 것은 아니지만 시스템 전체적으로 효율이 떨어지게 된다.
설계가 간단하고 직관적이지만 결과가 반환될 때 까지 대기해야 한다.
- 비동기식 구조
동기 방식에 비해 설계가 복잡하지만 결과가 주어지는 시간이 더 소요되어도 그 시간동안 다른 작업을 할 수 있)으므로 좀 더 효율적으로 자원을 사용할 수 있다.
- Ajax(Asynchronous Javascript And XML)
: 웹 어플리케이션 개발에 사용되는 기술 그룹
- 자바스크립트를 이용한 비동기 통신으로 데이터를 불러올 수 있다.
- 페이지의 갱신없이 서버와 비동기 통신이 가능하다.
- 새로고침없이 부분 로딩이 되므로 성능이 개선되어 속도가 빠르다.
- 별다른 플러그인없이 이용할 수 있다.
- HTTP 전송 중에도 사용자가 웹 어플리케이션과 상호작용을 할 수 있다.
'개발용어' 카테고리의 다른 글
비즈니스 로직(Business Logic)이란? #비즈니스로직 (19.07.26) (0) | 2019.07.26 |
---|
비즈니스 로직(Business Logic)이란? #비즈니스로직 (19.07.26)
비즈니스 로직(Business Logic)이란?
- 업무에 필요한 데이터 처리를 수행하는 응용 프로그램의 일부를 말한다.
- 데이터 처리를 수행하기 위해 데이터를 활용하여 계산, 판단, 가공 등을 하는 '로직'을 의미한다.
- 대부분의 클라이언트 프로그램은 사용자 인터페이스와 비즈니스 로직으로 구성되며, 서버 프로그램은 대부분 비즈니스 로직으로 구성된다.
- 프로그래밍에서 비즈니스 로직은 요구사항을 직접 해결하는 영역이기 때문에 유지보수에 신경쓰지 않는다면 생산성과 품질이 저하된다.
'개발용어' 카테고리의 다른 글
동기와 비동기에 대한 해석 #동기 #비동기 (19.08.06) (0) | 2019.08.06 |
---|