'개발용어'에 해당되는 글 2건

개발용어

동기와 비동기에 대한 해석 #동기 #비동기 (19.08.06)

동기와 비동기


- 현실에서 의미?

동기(synchronous)

: 같은 시기, 또는 같은 기간

= 동기생

ex) 대학 동기


비동기(asynchronous)

: 동시에 발생하지 않는

- 프로그래밍에서 의미?
동기식 구조에서 A코드와 B코드가 있을 때, A코드의 실행이 완료될 때 까지 B코드는 대기.
비동기식 구조에서는 A코드에게 작동을 지시한 뒤 B코드를 실행, 이후 A코드는 실행이 완료되는대로 결과를 출력
현실과 프로그래밍에서의 의미가 너무 달라 혼란이 야기됨.

- 동기식 구조

아래 synchronous.js 파일을 실행하면

1
2
3
console.log("첫번째");
console.log("두번째");
console.log("세번째");
cs
당연히? 이런 결과가 나온다.

이처럼 위와 같이 해당 코드가 실행되고 난 후 그 다음 코드가 실행되는 방식을 동기식 처리라고 한다.


- 비동기식 구조
아래 Asynchronous.js 파일을 실행하면


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
setTimeout의 시간을 0으로 설정했음에도 불구하고,

위와 같은 실행결과가 나온다.

이를 컴퓨터 관점에서 생각해보면,

1. 첫 번째 라인에서 console.log("첫번째");를 접근하여 콘솔창에 첫번째 라는 결과를 출력한다.

2. 세 번째 라인에서 setTimeout() 메소드를 접근한다. 해당 메소드가 비동기적 메소드임을 인지하고, 이를 비동기를 처리하는 다른 프로그램에게 맡긴다.

3. setTimeout() 메소드를 다른 프로그램에 맡긴 후 곧바로 다음라인(일곱번 째)을 실행하여 세번째 라는 결과를 출력한다.

4. setTimeout() 메소드를 맡아 처리한 프로그램은 비동기적 API를 제외한 모든 코드가 실행된 후에 결과를 출력한다.


두 방식의 효용


- 동기식 구조

어떤일을 처리하는 동안 다른 프로그램은 정지상태가 되므로 실제 CPU가 느려지는 것은 아니지만 시스템 전체적으로 효율이 떨어지게 된다.

설계가 간단하고 직관적이지만 결과가 반환될 때 까지 대기해야 한다.


- 비동기식 구조

동기 방식에 비해 설계가 복잡하지만 결과가 주어지는 시간이 더 소요되어도 그 시간동안 다른 작업을 할 수 있)으므로 좀 더 효율적으로 자원을 사용할 수 있다.


- Ajax(Asynchronous Javascript And XML)

웹 어플리케이션 개발에 사용되는 기술 그룹

  • 자바스크립트를 이용한 비동기 통신으로 데이터를 불러올 수 있다.
  • 페이지의 갱신없이 서버와 비동기 통신이 가능하다.
  • 새로고침없이 부분 로딩이 되므로 성능이 개선되어 속도가 빠르다.
  • 별다른 플러그인없이 이용할 수 있다.
  • HTTP 전송 중에도 사용자가 웹 어플리케이션과 상호작용을 할 수 있다.




개발용어

비즈니스 로직(Business Logic)이란? #비즈니스로직 (19.07.26)

비즈니스 로직(Business Logic)이란?


- 업무에 필요한 데이터 처리를 수행하는 응용 프로그램의 일부를 말한다.

- 데이터 처리를 수행하기 위해 데이터를 활용하여 계산, 판단, 가공 등을 하는 '로직'을 의미한다.

- 대부분의 클라이언트 프로그램은 사용자 인터페이스와 비즈니스 로직으로 구성되며, 서버 프로그램은 대부분 비즈니스 로직으로 구성된다.

- 프로그래밍에서 비즈니스 로직은 요구사항을 직접 해결하는 영역이기 때문에 유지보수에 신경쓰지 않는다면 생산성과 품질이 저하된다.



푸터바

태그

알림

이 블로그는 구글에서 제공한 크롬에 최적화 되어있고, 네이버에서 제공한 나눔글꼴이 적용되어 있습니다.

카운터

  • Today :
  • Yesterday :
  • Total :