TIL (Today I Learned)
TIL_230201
남 희
2023. 2. 2. 02:14
오늘 한 일 [DONE]
- 네트워크 기초, 파트를 복습. 질문에 답하면서 복습하니, 내가 직접 답한 부분은 확실히 기억에 잘 남는다.
- 프록시 패턴과 프록시 서버 공부
- 순열 개념 공부 및 실제 문제 풀이
📝오늘 배운 내용 간단 요약
1️⃣ 네트워크 기초 복습
- 네트워크(Network) : 노드(Node), 링크(Link)가 통신 기술로 연결되어 리소스를 공유하는 집합.
- 처리량 (Throughput) : 실제 데이터 중 전송에 성공한 양, 단위는 bps(bits per seconds)
- 트래픽 (Traffic) : 특정 시점에 링크 내에 흐르는 데이터의 양
- 대역폭 (Banthwidth) : 주어진 시간동안 흐를 수 있는 최대 Bit
- 지연시간 (Latency) : 데이터를 주고 받기 위해 왕복하는 데에 걸리는 시간
- 토폴로지 (Topology) : 노드와 링크가 연결되어 있는 모양, 형태
2️⃣ 프록시 패턴과 프록시 서버
- 프록시 패턴 : 특정 객체로의 접근을 제어하는 대리인을 제공하는 디자인 패턴.
- 원격 프록시(Remote Proxy) : 원격 객체와의 접근을 제어하는 대리인 객체
- 가상 프록시(Virtual Proxy) : 메모리가 큰 이유 등으로 생성하기 힘든 객체 접근을 제어하는 대리인 객체
- 보호 프록시(Protection Proxy) : 보안이 중요한 객체 접근을 제어하는 대리인 객체
- 프록시 서버 : nginx를 예로 들 수 있으며, 주로 Node.js의 프록시 서버로 사용된다. 보안 강화에 도움이 된다는 장점이 있다.
3️⃣ 순열 (Permutation)
순열은 주어진 숫자를 순서를 고려해서 나열했을 때 경우의 수를 말하며, n개 중 r개를 뽑아 순서를 세울 때 경우의 수를 다음과 같이 나타낼 수 있다.
nPr = n * (n-1) * … * (n-r+1)
특히, 그 중에서 nPn = n!을 Factorial이라고 말한다.
n! = n * (n-1) * … * 2 * 1
순열 구현 방법 중 가장 많이 쓰는 방법은 함수 재귀를 활용하는 것.
nPr에 대해 다음과 같이 의사 코드를 작성할 수 있다.
visited[n] a[n] // 고를 숫자를 저장한 배열 p[r] // 순열 결과를 저장하는 배열 perm(k) { if (k == r) 순열 하나완성! 끝! else for i in 0 ~ n-1 if (visited[i]) continue p[k] = a[i] visited[i] = true perm (k + 1) visited[i] = false } |
출처
더보기
주홍철, <면접을 위한 cs 전공지식 노트>, 길벗, 2022
에릭 프리먼 외 3인, <헤드퍼스트 디자인 패턴>, 한빛미디어, 2022