Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions 7장-캐시/yeonjin.md
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
## 7장 - 캐시

### 캐시는 어디에 존재? (캐시의 종류?)

클라이언트 측 캐시: 브라우저 캐시, 서비스 워커 캐시

네트워크 경로 상의 캐시: 프록시 서버 캐시, CDN 캐시

서버 측 캐시: 리버스 프록시 캐시, 애플리케이션 캐시

데이터베이스 캐시: 데이터베이스 서버의 메모리 내

### Must-Revalidate 응답 헤더를 사용하면 동작 시간만 늘어나는 것 아닌가? 사용하는 것의 이점이 무엇이지?

대부분의 경우 서버는 304 Not Modified 응답을 통해 빠르게 리소스가 변경되지 않았음을 알림. 전체 리소스를 다시 다운로드하는 것보다 효율적이며 네트워크 대역폭을 절약할 수 있음.
19 changes: 19 additions & 0 deletions 8장-통합점: 게이트웨이, 터널, 릴레이/yeonjin.md
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
## 통합점: 게이트웨이, 터널, 릴레이

### 일반적인 게이트웨이 개념? (차이점)

네트워크 게이트웨이 - 네트워크 게이트웨이는 주로 네트워크 통신에서 사용되는 용어로, 로컬 네트워크(예: LAN)와 외부 네트워크(예: 인터넷) 사이에서 트래픽을 중계하는 장치나 노드를 의미

애플리케이션 게이트웨이 - 애플리케이션 게이트웨이는 주로 애플리케이션 레벨에서 사용되는 용어로, 클라이언트와 백엔드 서버 사이에서 트래픽을 중계하고 다양한 기능을 제공하는 소프트웨어나 하드웨어를 의미

### HTTP/HTTPS 게이트웨이? 리다이렉트와 유사한 것인가?

기능과 목적에 차이있음.

HTTP/HTTPS 리다이렉트 → HTTP를 HTTPS로 강제하여 보안 및 SEO 향상

HTTP/HTTPS 게이트웨이 → 트래픽 관리, 보안 강화, 로드 밸런싱, 캐싱 등.

### SSL 터널 → HTTP 커넥션으로 전송한다면 그 안의 프로토콜도 TCP위에서 동작해야 하나?

SSL 터널링을 사용하여 HTTP를 통해 다른 프로토콜을 전송할 때, 그 위의 프로토콜은 일반적으로 TCP 위에서 동작하는 프로토콜이어야 함. SSL/TLS 터널링은 TCP 연결을 설정하고 이후 SSL/TLS 핸드셰이크를 통해 보안 연결을 수립하는 방식으로 동작
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all \u003cpre\u003e\u003ccode\u003e blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks"); } } catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); } })(); (function(){ try { var __m = "github.com"; var __re = new RegExp('^' + "github\\.com" + '
Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions 7장-캐시/yeonjin.md
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
## 7장 - 캐시

### 캐시는 어디에 존재? (캐시의 종류?)

클라이언트 측 캐시: 브라우저 캐시, 서비스 워커 캐시

네트워크 경로 상의 캐시: 프록시 서버 캐시, CDN 캐시

서버 측 캐시: 리버스 프록시 캐시, 애플리케이션 캐시

데이터베이스 캐시: 데이터베이스 서버의 메모리 내

### Must-Revalidate 응답 헤더를 사용하면 동작 시간만 늘어나는 것 아닌가? 사용하는 것의 이점이 무엇이지?

대부분의 경우 서버는 304 Not Modified 응답을 통해 빠르게 리소스가 변경되지 않았음을 알림. 전체 리소스를 다시 다운로드하는 것보다 효율적이며 네트워크 대역폭을 절약할 수 있음.
19 changes: 19 additions & 0 deletions 8장-통합점: 게이트웨이, 터널, 릴레이/yeonjin.md
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
## 통합점: 게이트웨이, 터널, 릴레이

### 일반적인 게이트웨이 개념? (차이점)

네트워크 게이트웨이 - 네트워크 게이트웨이는 주로 네트워크 통신에서 사용되는 용어로, 로컬 네트워크(예: LAN)와 외부 네트워크(예: 인터넷) 사이에서 트래픽을 중계하는 장치나 노드를 의미

애플리케이션 게이트웨이 - 애플리케이션 게이트웨이는 주로 애플리케이션 레벨에서 사용되는 용어로, 클라이언트와 백엔드 서버 사이에서 트래픽을 중계하고 다양한 기능을 제공하는 소프트웨어나 하드웨어를 의미

### HTTP/HTTPS 게이트웨이? 리다이렉트와 유사한 것인가?

기능과 목적에 차이있음.

HTTP/HTTPS 리다이렉트 → HTTP를 HTTPS로 강제하여 보안 및 SEO 향상

HTTP/HTTPS 게이트웨이 → 트래픽 관리, 보안 강화, 로드 밸런싱, 캐싱 등.

### SSL 터널 → HTTP 커넥션으로 전송한다면 그 안의 프로토콜도 TCP위에서 동작해야 하나?

SSL 터널링을 사용하여 HTTP를 통해 다른 프로토콜을 전송할 때, 그 위의 프로토콜은 일반적으로 TCP 위에서 동작하는 프로토콜이어야 함. SSL/TLS 터널링은 TCP 연결을 설정하고 이후 SSL/TLS 핸드셰이크를 통해 보안 연결을 수립하는 방식으로 동작
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions 7장-캐시/yeonjin.md
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
## 7장 - 캐시

### 캐시는 어디에 존재? (캐시의 종류?)

클라이언트 측 캐시: 브라우저 캐시, 서비스 워커 캐시

네트워크 경로 상의 캐시: 프록시 서버 캐시, CDN 캐시

서버 측 캐시: 리버스 프록시 캐시, 애플리케이션 캐시

데이터베이스 캐시: 데이터베이스 서버의 메모리 내

### Must-Revalidate 응답 헤더를 사용하면 동작 시간만 늘어나는 것 아닌가? 사용하는 것의 이점이 무엇이지?

대부분의 경우 서버는 304 Not Modified 응답을 통해 빠르게 리소스가 변경되지 않았음을 알림. 전체 리소스를 다시 다운로드하는 것보다 효율적이며 네트워크 대역폭을 절약할 수 있음.
19 changes: 19 additions & 0 deletions 8장-통합점: 게이트웨이, 터널, 릴레이/yeonjin.md
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
## 통합점: 게이트웨이, 터널, 릴레이

### 일반적인 게이트웨이 개념? (차이점)

네트워크 게이트웨이 - 네트워크 게이트웨이는 주로 네트워크 통신에서 사용되는 용어로, 로컬 네트워크(예: LAN)와 외부 네트워크(예: 인터넷) 사이에서 트래픽을 중계하는 장치나 노드를 의미

애플리케이션 게이트웨이 - 애플리케이션 게이트웨이는 주로 애플리케이션 레벨에서 사용되는 용어로, 클라이언트와 백엔드 서버 사이에서 트래픽을 중계하고 다양한 기능을 제공하는 소프트웨어나 하드웨어를 의미

### HTTP/HTTPS 게이트웨이? 리다이렉트와 유사한 것인가?

기능과 목적에 차이있음.

HTTP/HTTPS 리다이렉트 → HTTP를 HTTPS로 강제하여 보안 및 SEO 향상

HTTP/HTTPS 게이트웨이 → 트래픽 관리, 보안 강화, 로드 밸런싱, 캐싱 등.

### SSL 터널 → HTTP 커넥션으로 전송한다면 그 안의 프로토콜도 TCP위에서 동작해야 하나?

SSL 터널링을 사용하여 HTTP를 통해 다른 프로토콜을 전송할 때, 그 위의 프로토콜은 일반적으로 TCP 위에서 동작하는 프로토콜이어야 함. SSL/TLS 터널링은 TCP 연결을 설정하고 이후 SSL/TLS 핸드셰이크를 통해 보안 연결을 수립하는 방식으로 동작
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length \u003e 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions 7장-캐시/yeonjin.md
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
## 7장 - 캐시

### 캐시는 어디에 존재? (캐시의 종류?)

클라이언트 측 캐시: 브라우저 캐시, 서비스 워커 캐시

네트워크 경로 상의 캐시: 프록시 서버 캐시, CDN 캐시

서버 측 캐시: 리버스 프록시 캐시, 애플리케이션 캐시

데이터베이스 캐시: 데이터베이스 서버의 메모리 내

### Must-Revalidate 응답 헤더를 사용하면 동작 시간만 늘어나는 것 아닌가? 사용하는 것의 이점이 무엇이지?

대부분의 경우 서버는 304 Not Modified 응답을 통해 빠르게 리소스가 변경되지 않았음을 알림. 전체 리소스를 다시 다운로드하는 것보다 효율적이며 네트워크 대역폭을 절약할 수 있음.
19 changes: 19 additions & 0 deletions 8장-통합점: 게이트웨이, 터널, 릴레이/yeonjin.md
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
## 통합점: 게이트웨이, 터널, 릴레이

### 일반적인 게이트웨이 개념? (차이점)

네트워크 게이트웨이 - 네트워크 게이트웨이는 주로 네트워크 통신에서 사용되는 용어로, 로컬 네트워크(예: LAN)와 외부 네트워크(예: 인터넷) 사이에서 트래픽을 중계하는 장치나 노드를 의미

애플리케이션 게이트웨이 - 애플리케이션 게이트웨이는 주로 애플리케이션 레벨에서 사용되는 용어로, 클라이언트와 백엔드 서버 사이에서 트래픽을 중계하고 다양한 기능을 제공하는 소프트웨어나 하드웨어를 의미

### HTTP/HTTPS 게이트웨이? 리다이렉트와 유사한 것인가?

기능과 목적에 차이있음.

HTTP/HTTPS 리다이렉트 → HTTP를 HTTPS로 강제하여 보안 및 SEO 향상

HTTP/HTTPS 게이트웨이 → 트래픽 관리, 보안 강화, 로드 밸런싱, 캐싱 등.

### SSL 터널 → HTTP 커넥션으로 전송한다면 그 안의 프로토콜도 TCP위에서 동작해야 하나?

SSL 터널링을 사용하여 HTTP를 통해 다른 프로토콜을 전송할 때, 그 위의 프로토콜은 일반적으로 TCP 위에서 동작하는 프로토콜이어야 함. SSL/TLS 터널링은 TCP 연결을 설정하고 이후 SSL/TLS 핸드셰이크를 통해 보안 연결을 수립하는 방식으로 동작
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions 7장-캐시/yeonjin.md
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
## 7장 - 캐시

### 캐시는 어디에 존재? (캐시의 종류?)

클라이언트 측 캐시: 브라우저 캐시, 서비스 워커 캐시

네트워크 경로 상의 캐시: 프록시 서버 캐시, CDN 캐시

서버 측 캐시: 리버스 프록시 캐시, 애플리케이션 캐시

데이터베이스 캐시: 데이터베이스 서버의 메모리 내

### Must-Revalidate 응답 헤더를 사용하면 동작 시간만 늘어나는 것 아닌가? 사용하는 것의 이점이 무엇이지?

대부분의 경우 서버는 304 Not Modified 응답을 통해 빠르게 리소스가 변경되지 않았음을 알림. 전체 리소스를 다시 다운로드하는 것보다 효율적이며 네트워크 대역폭을 절약할 수 있음.
19 changes: 19 additions & 0 deletions 8장-통합점: 게이트웨이, 터널, 릴레이/yeonjin.md
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
## 통합점: 게이트웨이, 터널, 릴레이

### 일반적인 게이트웨이 개념? (차이점)

네트워크 게이트웨이 - 네트워크 게이트웨이는 주로 네트워크 통신에서 사용되는 용어로, 로컬 네트워크(예: LAN)와 외부 네트워크(예: 인터넷) 사이에서 트래픽을 중계하는 장치나 노드를 의미

애플리케이션 게이트웨이 - 애플리케이션 게이트웨이는 주로 애플리케이션 레벨에서 사용되는 용어로, 클라이언트와 백엔드 서버 사이에서 트래픽을 중계하고 다양한 기능을 제공하는 소프트웨어나 하드웨어를 의미

### HTTP/HTTPS 게이트웨이? 리다이렉트와 유사한 것인가?

기능과 목적에 차이있음.

HTTP/HTTPS 리다이렉트 → HTTP를 HTTPS로 강제하여 보안 및 SEO 향상

HTTP/HTTPS 게이트웨이 → 트래픽 관리, 보안 강화, 로드 밸런싱, 캐싱 등.

### SSL 터널 → HTTP 커넥션으로 전송한다면 그 안의 프로토콜도 TCP위에서 동작해야 하나?

SSL 터널링을 사용하여 HTTP를 통해 다른 프로토콜을 전송할 때, 그 위의 프로토콜은 일반적으로 TCP 위에서 동작하는 프로토콜이어야 함. SSL/TLS 터널링은 TCP 연결을 설정하고 이후 SSL/TLS 핸드셰이크를 통해 보안 연결을 수립하는 방식으로 동작
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions 7장-캐시/yeonjin.md
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
## 7장 - 캐시

### 캐시는 어디에 존재? (캐시의 종류?)

클라이언트 측 캐시: 브라우저 캐시, 서비스 워커 캐시

네트워크 경로 상의 캐시: 프록시 서버 캐시, CDN 캐시

서버 측 캐시: 리버스 프록시 캐시, 애플리케이션 캐시

데이터베이스 캐시: 데이터베이스 서버의 메모리 내

### Must-Revalidate 응답 헤더를 사용하면 동작 시간만 늘어나는 것 아닌가? 사용하는 것의 이점이 무엇이지?

대부분의 경우 서버는 304 Not Modified 응답을 통해 빠르게 리소스가 변경되지 않았음을 알림. 전체 리소스를 다시 다운로드하는 것보다 효율적이며 네트워크 대역폭을 절약할 수 있음.
19 changes: 19 additions & 0 deletions 8장-통합점: 게이트웨이, 터널, 릴레이/yeonjin.md
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
## 통합점: 게이트웨이, 터널, 릴레이

### 일반적인 게이트웨이 개념? (차이점)

네트워크 게이트웨이 - 네트워크 게이트웨이는 주로 네트워크 통신에서 사용되는 용어로, 로컬 네트워크(예: LAN)와 외부 네트워크(예: 인터넷) 사이에서 트래픽을 중계하는 장치나 노드를 의미

애플리케이션 게이트웨이 - 애플리케이션 게이트웨이는 주로 애플리케이션 레벨에서 사용되는 용어로, 클라이언트와 백엔드 서버 사이에서 트래픽을 중계하고 다양한 기능을 제공하는 소프트웨어나 하드웨어를 의미

### HTTP/HTTPS 게이트웨이? 리다이렉트와 유사한 것인가?

기능과 목적에 차이있음.

HTTP/HTTPS 리다이렉트 → HTTP를 HTTPS로 강제하여 보안 및 SEO 향상

HTTP/HTTPS 게이트웨이 → 트래픽 관리, 보안 강화, 로드 밸런싱, 캐싱 등.

### SSL 터널 → HTTP 커넥션으로 전송한다면 그 안의 프로토콜도 TCP위에서 동작해야 하나?

SSL 터널링을 사용하여 HTTP를 통해 다른 프로토콜을 전송할 때, 그 위의 프로토콜은 일반적으로 TCP 위에서 동작하는 프로토콜이어야 함. SSL/TLS 터널링은 TCP 연결을 설정하고 이후 SSL/TLS 핸드셰이크를 통해 보안 연결을 수립하는 방식으로 동작
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions 7장-캐시/yeonjin.md
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
## 7장 - 캐시

### 캐시는 어디에 존재? (캐시의 종류?)

클라이언트 측 캐시: 브라우저 캐시, 서비스 워커 캐시

네트워크 경로 상의 캐시: 프록시 서버 캐시, CDN 캐시

서버 측 캐시: 리버스 프록시 캐시, 애플리케이션 캐시

데이터베이스 캐시: 데이터베이스 서버의 메모리 내

### Must-Revalidate 응답 헤더를 사용하면 동작 시간만 늘어나는 것 아닌가? 사용하는 것의 이점이 무엇이지?

대부분의 경우 서버는 304 Not Modified 응답을 통해 빠르게 리소스가 변경되지 않았음을 알림. 전체 리소스를 다시 다운로드하는 것보다 효율적이며 네트워크 대역폭을 절약할 수 있음.
19 changes: 19 additions & 0 deletions 8장-통합점: 게이트웨이, 터널, 릴레이/yeonjin.md
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
## 통합점: 게이트웨이, 터널, 릴레이

### 일반적인 게이트웨이 개념? (차이점)

네트워크 게이트웨이 - 네트워크 게이트웨이는 주로 네트워크 통신에서 사용되는 용어로, 로컬 네트워크(예: LAN)와 외부 네트워크(예: 인터넷) 사이에서 트래픽을 중계하는 장치나 노드를 의미

애플리케이션 게이트웨이 - 애플리케이션 게이트웨이는 주로 애플리케이션 레벨에서 사용되는 용어로, 클라이언트와 백엔드 서버 사이에서 트래픽을 중계하고 다양한 기능을 제공하는 소프트웨어나 하드웨어를 의미

### HTTP/HTTPS 게이트웨이? 리다이렉트와 유사한 것인가?

기능과 목적에 차이있음.

HTTP/HTTPS 리다이렉트 → HTTP를 HTTPS로 강제하여 보안 및 SEO 향상

HTTP/HTTPS 게이트웨이 → 트래픽 관리, 보안 강화, 로드 밸런싱, 캐싱 등.

### SSL 터널 → HTTP 커넥션으로 전송한다면 그 안의 프로토콜도 TCP위에서 동작해야 하나?

SSL 터널링을 사용하여 HTTP를 통해 다른 프로토콜을 전송할 때, 그 위의 프로토콜은 일반적으로 TCP 위에서 동작하는 프로토콜이어야 함. SSL/TLS 터널링은 TCP 연결을 설정하고 이후 SSL/TLS 핸드셰이크를 통해 보안 연결을 수립하는 방식으로 동작
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions 7장-캐시/yeonjin.md
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
## 7장 - 캐시

### 캐시는 어디에 존재? (캐시의 종류?)

클라이언트 측 캐시: 브라우저 캐시, 서비스 워커 캐시

네트워크 경로 상의 캐시: 프록시 서버 캐시, CDN 캐시

서버 측 캐시: 리버스 프록시 캐시, 애플리케이션 캐시

데이터베이스 캐시: 데이터베이스 서버의 메모리 내

### Must-Revalidate 응답 헤더를 사용하면 동작 시간만 늘어나는 것 아닌가? 사용하는 것의 이점이 무엇이지?

대부분의 경우 서버는 304 Not Modified 응답을 통해 빠르게 리소스가 변경되지 않았음을 알림. 전체 리소스를 다시 다운로드하는 것보다 효율적이며 네트워크 대역폭을 절약할 수 있음.
19 changes: 19 additions & 0 deletions 8장-통합점: 게이트웨이, 터널, 릴레이/yeonjin.md
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
## 통합점: 게이트웨이, 터널, 릴레이

### 일반적인 게이트웨이 개념? (차이점)

네트워크 게이트웨이 - 네트워크 게이트웨이는 주로 네트워크 통신에서 사용되는 용어로, 로컬 네트워크(예: LAN)와 외부 네트워크(예: 인터넷) 사이에서 트래픽을 중계하는 장치나 노드를 의미

애플리케이션 게이트웨이 - 애플리케이션 게이트웨이는 주로 애플리케이션 레벨에서 사용되는 용어로, 클라이언트와 백엔드 서버 사이에서 트래픽을 중계하고 다양한 기능을 제공하는 소프트웨어나 하드웨어를 의미

### HTTP/HTTPS 게이트웨이? 리다이렉트와 유사한 것인가?

기능과 목적에 차이있음.

HTTP/HTTPS 리다이렉트 → HTTP를 HTTPS로 강제하여 보안 및 SEO 향상

HTTP/HTTPS 게이트웨이 → 트래픽 관리, 보안 강화, 로드 밸런싱, 캐싱 등.

### SSL 터널 → HTTP 커넥션으로 전송한다면 그 안의 프로토콜도 TCP위에서 동작해야 하나?

SSL 터널링을 사용하여 HTTP를 통해 다른 프로토콜을 전송할 때, 그 위의 프로토콜은 일반적으로 TCP 위에서 동작하는 프로토콜이어야 함. SSL/TLS 터널링은 TCP 연결을 설정하고 이후 SSL/TLS 핸드셰이크를 통해 보안 연결을 수립하는 방식으로 동작