BCrypt 심층 분석: 비밀번호 보안의 강력한 수호자안녕하세요, 보안 개발에 관심 있는 여러분! 오늘은 비밀번호 해싱의 강자, BCrypt에 대해 깊이 있게 알아보겠습니다. BCrypt가 어떻게 작동하는지, 왜 다른 해싱 알고리즘보다 뛰어난지, 그리고 실제로 어떻게 구현하는지 상세히 살펴봅시다.BCrypt의 탄생과 진화BCrypt의 역사1999년 Niels Provos와 David Mazières에 의해 개발OpenBSD 운영 체제를 위해 처음 설계됨시간이 지남에 따라 다양한 프로그래밍 언어와 프레임워크에서 채택왜 BCrypt인가?적응형 해시 함수: BCrypt는 시간이 지나도 보안 강도를 유지할 수 있는 '적응형' 알고리즘입니다.작동 방식:BCrypt는 '작업 계수(work factor)'라는 매개변..
Iteration Protocol ES6에 도입되어 데이터 컬렉션을 순회하기 위한 규칙 Iteration Protocol을 준수하면 for.. of, Spread 문법을 사용할 수 있음. Iteration Protocol = Iterable Protocol + Iterator Protocol const array = [1, 2, 3]; for (const value of array) { console.log(value); } console.log(...array); Iterable Protocol Symbol.iterator 메소드를 구현한 객체를 의미한다. (나 순회 할수 있어! 라고 알려주는 척도) const array = [1, 2, 3]; // iterator가 배열에 존재하는지 여부 consol..
WebRTC (Real-Time Communication) WebRTC 란 웹 브라우저만으로 실시간 화상 통신을 구현할 수 있는 API이다. 기존에는 플래시와 같은 서드 파티 소프트웨어를 사용하여 화상 통신을 구현 했으나 WebRTC를 사용하여 서드 파티를 사용하지 않고 웹브라우저로만 와상 통신 서비스가 가능해졌다. 모든 브라우저가 아닌 WebRTC기능을 포함한 브라우저(Chrome)을 사용해야 가능하다. (https://caniuse.com/#search=webrtc) WebRTC API getUserMedia: 사용자 단말기의 미디어 장치를 액세스할 수 있는 방법을 제공한다. 미디어 장치라 함은 마이크와 웹캠을 의미한다. getUserMedia 를 통해 미디어 장치를 액세스 하게 되면 미디어 스트림 ..
웹소켓 이전 요청 방식 웹소켓이 나오기전에 전형적인 웹 요청 방식은 client -> server로의 단방향 요청이다. 이전에는 이러한 방식이 문제가 되지 않았으나 점차 웹서비스와 기술이 다양해지면서 server -> client측으로 데이터를 전송할 수 있는 방법이 필요해졌다. 허나, http 통신 특성상 한번 통신을 하면 연결이 끊기기때문에 서버에서 데이터를 먼저 보낼수 있는 방법은 존재하지 않아 Polling, Long Polling, Streaming 와 같은 방식들 사용하여 비슷한 효과를 낼 수 있었다. WebSocket 사용자와 서버 사이의 양방향 연결 채널을 구성하는 HTML5 프로토콜이다. WebSocket API를 통해 서버로 메시지를 보내고 요청 없이 응답을 받아오는 것이 가능하다. 그..
동기(synchronous) 및 비동기(asynchronous) 동기 방식 - 하나의 요청이 처리되는 동안 다른 요청이 처리되지 못하며 요청이 완료되어야만 다음 처리가 가능한 방식. (ex. java) 비동기 방식 - 하나의 요청 처리가 완료되기 전에 제어권을 다음 요청으로 넘겨 Blocking 되지 않으며 다음 요청을 처리 하는 방식. (ex. nodejs) NodeJS 비동기 IO를 지원하며 Single-Thread 기반으로 동작하는 서버. 클라이언트의 요청을 비동기로 처리하기 위하여 이벤트가 발생하며 Event Loop가 처리. Event Loop가 처리하는 동안 제어권은 다음 요청으로 넘어가고 처리가 완료되면 Callback을 호출하여 처리완료를 호출측에 알려준다. 올바른 사용 환경 각 단위 작업..