본문 바로가기

CS | 기술면접대비

#11 HTTP의 비연결성 | Promise

반응형

HTTP의 비연결성

 HTTP의 특징 중 하나인 비연결성은 클라이언트가 보낸 요청에 대해 서버가 응답을 한 후 바로 연결이 끊어지는 특성을 의미합니다. 이러한 비연결적인 특성을 바탕으로 HTTP무상태성(stateless)특징을 띄기도 합니다. 연결이 해제됨과 동시에 서버와 클라이언트는 이전에 요청한 결과에 대해서 잊어버려 '상태'를 유지하지 않는다는 의미입니다.

  따라서, 만일 클라이언트가 이전 요청과 같은 데이터를 원한다면, 다시 서버와 연결해서 동일한 요청을 시도해야합니다.

 장점은 서버의 부담을 줄일 수 있다는 점이고, 단점은, 사용자의 상태를 유지시켜줄 수 없다는 점입니다. 따라서 개인화된 사용자경험을 제공하기 위해서는 쿠키 또는 세션등이 필요합니다.

 

HTTP의 비연결성과 무상태성 특징은 웹 상의 통신을 효율적으로 처리할 수 있게 합니다.

 

 

1. 확장성

: HTTP의 비연결성으로 인해 서버에 동시 접속자 수가 제한되지 않고, 많은 클라이언트가 서버와 통신할 수 있어 확장성이 높아집니다.

 

2. 서버 성능 향상

: 연결이 끊어짐으로써 서버 자원이 적절하게 사용되어 관리가 용이하며, 성능 및 안정성이 향상될 수 있다.

 

3. 무상태성 대응 기술

: 무상태성의 단점을 보완하기 위해 쿠키, 세션, 토큰 기반 인증, 지속적인 HTTP 연결 등 다양한 기술을 사용하여 사용자에게 웹 서비스에서 지속적인 경험이 제공된다.

반응형

 

 결론적으로, HTTP의 비연결성과 무상태성은 웹 환경에서 적절한 자원 사용과 확장성을 유지하는 데 기여하며, 이를 보완하는 기술들을 사용하여 사용자 경험을 향상시킬 수 있다. 이를 통해 개발자와 서비스 제공자는 웹 애플리케이션의 성능과 안정성을 높이고, 사용자의 개인화된 사용자 경험을 제공할 수 있다. 

 

 

 

 


 

 

 

 

Promise

 콜백헬을 개선시키기위해 등장한 패턴으로 Promise는 향후 언젠가 사용하게될 값을 생산해내는 객체입니다.

 

 

 Promise는 JavaScript의 비동기 처리를 효율적으로 수행하기 위한 객체로, callback hell 문제를 해결하고자 설계되었습니다.

 

1. 체이닝

: Promise는 then과 catch 메소드를 사용하여 여러 개의 비동기 작업을 순차적으로 연결할 수 있습니다. 이를 통해 코드의 가독성을 향상시키고, 비동기 처리를 쉽게 조합할 수 있습니다.

 

2. 에러 처리

: Promise는 각 단계별로 에러 처리를 별도로 구현할 수 있어서, 각 작업에 대한 중앙화된 에러 처리가 가능하다.

 

3. 상태 관리

: Promise 객체는 pending(대기), fulfilled(이행), rejected(거부) 등의 상태를 가지며, 작업의 성공과 실패에 따라 상태가 관리됩니다.

 

 

 Promise를 사용하면 비동기 작업을 일관된 방식으로 처리할 수 있으며, 코드의 가독성과 유지 보수성을 높여줍니다. 더 나아가, Promise는 async/await와 함께 사용되어 코드를 더 간결하고 명확하게 만들 수 있는 기반을 제공합니다. 이러한 이점 덕분에 개발자들은 Promise를 활용하여 효율적인 비동기 처리를 구현할 수 있습니다.

 

 

 

 

 

반응형