정보 보안의 3개 요소
기밀성
무결성
가용성
정보에 대해 위의 세가지 요소를 적절히 유지하고자 하지만 이걸 방해하는 다양한 리스크가 존재한다.
암호화와 전자증명서
공통키 암호화 : 데이터 암호화와 복호화에 동일한 키를 사용하는 것
부정 침입 방지
방화벽과 DMZ
패킷 필터형 : 패킷의 IP 주소와 포트번호를 조건으로 통신을 허가/거부한다.
block, non-block
block : 점유하는 시간만큼 블록을 일으키는 함수
non-block : 서브 루틴이 즉시 플로우 제어권을 내놓는 것.
const f = v -> {
let i = 0;
while(i++ < v);
return i;
}
f(10);
f(10000000);
consta=123;
looper(12, console.log);
backRun(v=>v[0] + v[1], console.log, 3, 5);
console.log(a); //어쨌든콘솔은123부터출력
sync, async
sync : 서브루틴이 즉시 값을 반환함.
async : 서브루틴이 콜백을 통해 값을 반환함.
const double = v=>v*2;
console.log(double(2)); //4
const double = (v, f)=>f(v*2);
double(2, console.log); //4
sync block
const sum = n=>{
let sum = 0;
for(let i = 1; i <= n; i++) sum += i;
return sum;
};
sum(100);
sync non-block
const sum = n=>{
const result = {isComplete:false};
requestAnimationFrame(_=>{
let sum = 0;
for(let i = 1; i <= n; i++) sum += i;
result.isComplete = true;
result.value = sum;
});
};
const result = sum(100);
while(!result.isComplete);
console.log(result.value);
async block
예
const sum = (n, f)=>{
let sum = 0;
for(let i = 1; i <= n; i++) sum += i;
return f(sum);
};
sum(10, console.log);
console.log(123);
//55 → 123
async non-block
const sum = (n, f)=>{
requestAnimationFrame(_=>{
let sum = 0;
for(let i = 1; i <= n; i++) sum += i;
f(sum);
});
};
sum(10, console.log);
console.log(123);
//123 → 55
blocking non-blocking 과 sync 와 async는 논의하는 관점이 좀 다르다 실제로 나의 생각이지 정확한 것은 아니다 고민해 보고 수정할 생각이다.