고성능 브라우저 네트워킹: 무선 네트워크 개요

유비쿼터스 환경이 급성장하며, 언제 어디서나 온라인 서비스를 이용할 수 있는 시대가 되었다. 이에 따라 무선 네트워크의 중요성도 커졌으며, 현재 사용되는 무선 기술만 해도 WiFi, Bluetooth, ZigBee, NFC, WiMAX, LTE, HSPA, 위성 서비스 등 다양하다.

 

무선 네트워크의 기본 원리와 성능 결정 요소

 

무선 네트워크는 유선 네트워크와는 다르게 공유 매체(전파)* 사용하며, 다음과 같은 요소들에 의해 성능이 결정된다. 

  1. 대역폭(Bandwidth): 주파수 범위가 넓을수록 전송 속도가 증가한다. 예를 들어, WiFi 802.11n은 40MHz 대역폭을 사용하여 더 빠른 속도를 구현했다.
  2. 신호 대 잡음비(SNR): 신호의 세기와 잡음의 비율로, 방해 전파가 많을수록 성능이 저하된다.
  3. 변조(Modulation): 디지털 데이터를 아날로그 신호로 변환하는 방법으로, SNR과 기기의 처리 능력에 영향을 받는다.

특히, 샤논의 법칙은 정보 전송량이 대역폭과 신호 대 잡음 비로 결정된다는 것을 보여 준다. 특히, 변조에 따른 정보 효율이 달라 질 수 있다.

 

무선 네트워크의 종류와 사용처

  • PAN (Personal Area Network): Bluetooth, ZigBee, NFC를 사용하여 개인 기기간 연결.
  • LAN (Local Area Network): WiFi를 사용해 건물 내 네트워크 확장.
  • MAN (Metropolitan Area Network): WiMAX 등으로 도시 네트워크 연결.
  • WAN (Wide Area Network): LTE, 위성 서비스 등을 통해 전 세계 연결.

 

무선 통신 성능 최적화의 중요성

무선 네트워크는 공유 매체 특성상 방해 전파의 영향을 많이 받고, 전송 전력, 변조 방식, 송수신 거리 등 여러 요소에 의해 성능이 좌우된다.

  • 셀 호흡(Cell-breathing): 주변 방해 신호가 많을수록 통신 가능 거리가 줄어든다.
  • 근거리/원거리 문제(Near-far Problem): 강한 신호가 약한 신호를 밀어내는 현상.

 

실제 무선 네트워크 성능 측정과 고려사항

 

무선 네트워크의 성능은 위치, 방해 전파, 송수신 거리 등에 따라 변화무쌍하다.

  • 이상적인 환경: 최대 대역폭, 낮은 잡음, 효율적인 변조 방식 사용 시 최적의 성능.
  • 실제 환경: 사용자의 위치와 주변 환경에 따라 성능이 크게 달라집니다.

 

결론 및 전망

무선 네트워크는 편리성이동성을 제공하지만, 잡음, 방해 신호, 대역폭 한계 등 여러 제약이 존재합니다. 앞으로 더 빠르고 안정적인 무선 통신을 위해 5G, WiFi 6 등 차세대 기술이 도입될 것이다.

 

참고 자료

[1] 일리아 그리고릭, "구글 엔지니어에게 듣는 네트워킹과 웹 성능 최적화 기법", 정해권, 오현주 공역, 인사이트(insight)

들어가며

논어에는 "배우고 때때로 익히면 또한 기쁘지 아니한가?" (學而時習之, 不亦說乎?)라는 말이 있다. 옛날 사람의 이야기이지만 우리가 현재 학교에서 교과서를 통해서 배우는 것과 같은 명시지(Explicit Knowledge)도 실천을 바탕으로 해야 한다는 것으로 알 수 있다. 우리는 우리가 학습 한 것 혹은 전문성을 바탕으로 하는 직업에서도 학습이 일어나고 수행(peform)하기도 한다. 그렇다면, 우리가 이해하는 지식의 모습은 어떨까? 이러한 지식을 얻기 위한 학습을 어떻게 얻을 수 있을까? 이런 이해를 바탕으로 한다면 어떻게 학습하는 것이 좋을까? 그리고 이러학 학습을 통해 생겨난 나의 지식은 어떻게 관리하는 것이 좋을까? 단편적일 수 있지만, AC2에서 학습한 근거 있는 방법들과 개인적으로 알게된 도구들을 포함하여 살펴 보자.

우리가 이해하는 지식의 모습.

지식을 이야기 하면 우리가 배운 것을 기억하고 있는 것이라고 간단히 이야기 할 수 있을 것이다. 기억은 보통 단기 기억(Short-term Memory)/작업 기억(Working Memory)와 장기 기억(Long-term Memory)로 이야기를 많이 한다. 암기 한다는 것이 결국은 우리 뇌에 그 기억을 심고 시간이 오래 지나도 그것을 잘 꺼내는 것이 필요하다. 우리는 경험 상으로 이렇게 더는 것이 쉽지 앓다는 것을 안다. 그리고, 이렇게 되기 위해 반복과 시간이 걸리는 경우가 많다는 것도 경험 상이나 이론으로도 알려져 있다. 어릴 때 부터 자주 꺼내어 쓰는 구구단이나 조선왕 순서가 이렇게 단기 메모리를 장기 메모리로 잘 옮겨 둔 사례가 될 수 있겠다.

그렇다면, 운동이나 작업과 같은 것들은 어떨까? 연구자들은 이러한 부분도 연구를 했다. 많은 전문성 연구에서 이를 다루고 있는데, 이와 관련된 한 가지 모델이 절차적 지식 혹은 기억(Procedural Memory)이라고 한다. 앞에서도 이야기했듯이, 단기 기억 혹은 작업 기억 에서 중요한 것은 기억을 인출하는 것이다. 앤더스 에릭슨과 월터 킨치[1]는 "장기 작업 기억(Long-Term Working Memory)"이라는 개념을 도입하여 일상적인 작업과 관련된 정보에 원활하게 접근할 수 있는 장기 기억의 "인출 구조(retrieval structure)"집합으로 정의하여 설명하고 있다. 이런 방식으로 장기 기억의 일부는 효과적으로 작업 기억으로 동작한다고 설명하고 있다. 다시 이야기 하자면, 우리가 하고자 하는 작업 같은 경우도 전문가의 지식 혹은 행동으로 가지고 싶은 지식의 경우 명시화 해서 시간을 들여 반복하는 것이 필요하다. 즉, 학습, 훈련하는 것이 필요한 것이다.

내가 사용하는 배우고 익히는 방법

기존에 방식은 책을 보고 배우고, 프로그래밍과 같은 실습이 필요한 것은 코드를 입력하고 돌려보고 프로젝트를 해보는 것으로 알고 있었다. 물론 영어와 같은 언어는 여러 메타학습적인 부분이 있어서 학습법도 찾아 보고 시도해 보면서 영어로 생각하고, 표현하는 훈련이 필요하다와 같은 내가 지금 사용하는 방법을 찾아 적용하기도 했다.

AC2에 참여 하고 나서 학습하는 방식이 추가 되고 바뀌었다. 특히, 김창준님의 "야생학습" 패치(AC2 Patch)를 듣고 나서는 기존의 책 읽는 방법 그리고 실행하는 것을 훈련하는 방식도 변하고 있는 상황이다. 여기서 이야기하는 것들은 여러 곳에서 배운 것들을 나에게 적용하고 있는 과정 중인 것이다. 그렇기 때문에 v1.x 라고 부르기보다는 보다는 v0.1 혹은 v0.x와 같은 진행형이라는 부분을 이야기하고 싶다.

내가 생각하기에 기존의 내가 쓰던 방식과 다른 것은 "협력적"으로 학습하는 것, "절차적 지식"을 위한 학습, 그리고 "형성 평가적"인 요소의 도입을 하는 것이다.

협력적인 학습의 경우는 김창준님이 Mental Representation관련해서 알려 주실 때 공유받았던 논문[2]에  나오는 내용으로 "그룹이 개인이 독립적으로 수행할 때 발생하지 않는 추상적인 표현을 창발(Emergence)한다는" 주장이다. 이러한 것이 의미있는 지식으로 발전할 수 있다. 그래서, 소그룹의 논의와 이를 공유하는 작업은 학습에서도 중요한 의미를 지닌다고 볼 수 있겠다. 책을 읽는 것도 혼자서 읽고 이야기 하는 것이 아니라 같은 책 혹은 다른 책을 읽는 모임에서도 서로가 책을 읽은 것을 가지고 이야기를 공유하는 것이 혼자 하는 것과는 다른 결과를 만들어 낸다. 나는 정기적인 독서 모임이 일주일 특히 주말에 2회가 있다. 특별한 사정이 있지 않으면 참석을 한다. 하나는 다른 책 혹은 같은 책의 다른 부분을 읽고 이야기하고, 다른 하나는 하나의 책을 정해 놓고 처음 부터 끝까지 같이 읽는다. 다른 형식임에도 공통적인 것은 내가 생각하지 못했던 것을 다른 사람들에게 배우는 것이다.

절차적 지식 학습을 위해 최근에 가장 많이 사용한 방법은 Outcome Observable Question (OOQ)를 이용한 Action Planning이었다. 내 개인적인 생각으로는 이것이 의도적인 수련(Deliberate Practice)과 의도적인 수행(Deliberate Performance)을 적용하는 것이라 생각한다. 이 방식은 AC2를 할 때, 김창준님의 Essense of Agility를 연습하는 방법이었지만, 이 방식은 행동으로 옮길 프레임워크가 있다면 적용이 가능하다. 예를 살펴보자, 예전에 변신철님이 알려 주신 책이었는데 "헤라클리이토스"의 "같은 강에 두 번 발을 담글 수 없다."라는 경구를 실천해 보자고 한다고 하자. 이 문장을 지나간 일은 어쩔 수 없으니, 앞으로 일어날 일에 집중하자고 해보자. 이를 중요한 Outcome으로 보고 이를 관찰할 수 있는 질문으로 바꾸어 "지나간 일 보다는 지금 혹은 곧 발생할 중요한 일은 무엇인가? 그것에 집중하고 있는가?"를 사용해 볼 수 있다. 그렇다면, 이를 기반으로 지금/오늘 나에게 중요한 문제에 대해서 적용해 볼 수 있다. "지나간 부분에 대해서 어쩔 수 없으니 지금 중요한 "임원 보고"에 대해서 준비하고 대응하자."와 같은 Action Plan을 짤 수 있다. 이러한 작업이 의도적 수련이 될 수 있고, 이를 기반으로 실재 실행과도 연결할 수 있다. 이 OOQ 기반 Action Plan을 여러 사람들과 피드백 받아서 한다면 더욱 효과가 좋다. 나는 매일 루틴 처럼 아침에 어제 Action Plan에 대해서 회고를 하고 새로운 Action Plan을 수행하면서 피드백을 받아 반복해서 진행되도록 했었다.

AC2를 하면서 알게된 한가지 효과적인 학습 방법은 형성 평가(Formative Assessment)를 사용하는 것이다. 우리에게 익숙한 학습의 평가는 배우고 난 것을 평가하는 총괄평가(Summative Assessment)를 하는 것이다. 즉, 수업 등의 진도가 나간 후에 마지막에 시험을 봐서 학습자가 얼마나 이해했는지를 평가하는 것이다. 형성 평가는 이와는 달리 중간에 학습자가 얼마나 이해하는지 보여 주게 하면서 학습의 효과를 높이는 것이라고 할 수 있다. 예를 들자면, 학습자들이 몇몇이 모여서 이해하고 있는 곳들을 나누고 함께 모여서 그것들을 나누면서 자신이 알고 있는 것을 확인하고 다른 사람들을 통해서 이해도를 높일 수 있다. 연구자들의 측면의 근거로서 흥미로운 것은 구글 Scholar를 검색해 보는 것이다. 2025년 2월 말에 검색 했을 때에는 형성 학습 관련한 논문이 총괄 평가와 관련된 논문의 약 7배가 많다는 것을 알 수 있다. 하지만, 아직도 현실에서는 총괄 평가가 많은 상황이다. 이러한 상황에서 사용 가능한 전략을 AC2에서 소개 받은 바가 있다. 총괄 평가 시스템이어서 바꾸기 어렵다면 중간 중간에 형성 평가 구간을 두는 것이 한 방법이다. 회사의 분기별 안전 교육에서도 문제 풀이를 중간에 보여주도록 바뀐 적이 있는데 이러한 모습을 반영한 것이라고 할 수 있다. 우리가 형성 평가 기준으로 학습하고 있을 때, 중간에 총괄 평가에해당 하는 시험 혹은 모의 시험들을 넣어서 피드백을 받는 것도 의미가 있다. 좀 더 구체적인 예를 드다면, 내가 영어를 잘 하기 위해서 평생 공부를 하지만, TOEIC, OPiC등 시험을 중간 중간 넣어서 피드백을 받아 성적을 살펴 보는 것이 이러한 방법이 될 수 있다.
 

내가 사용하는 나의 개인 지식 관리

또다른 학습의 과정은 알고 있는 것의 인출(Retrieval)이다. 다시 말해 알게 된 것, 알고 있는 것을 계속 끄집어 내는 것도 좋은 학습 중 하나이다. 이 부분은 나의 뇌에서 지식을 꺼내는 것도 있지만, 지식 관리 시스템에서 내용을 다시 보고 내 기억을 강화 하거나 지식 관리 시스템에 내용을 보강하는 것이. 이를 활용하게 하는 대표적인 것이 워크샵을 하거나 공유회를 하는 것이 될 수 있다. 여기에서는 일반적인 강의만 하는 것이 아니고 AC2의 워크샵 처럼 수련, 연습, 실행을 포함하는 것이 더 좋은 것이 보인다. 최근에는 동기 면담과 관련한 주제에 대해서 작게 공유회를 하였다. 이 때, 동기 면담의 중요한 기술 중의 하나인 반영(Refrelction)에 대해서 이야기도 하고, 이를 위한 간단한 연습을 포함하였다. 이러한 방식은 사람들에게 지식을 전달하는 과정이 포함되어 있지만 나한테는 또다른 학습이기도 한 것이다.

머리 속에 모든 것을 담아 둘 수 없기 때문에 두번 째 뇌라고 할 수 있는 메모앱은 지식 관리 시스템의 뼈대가 된다고 생각한다. 기존에 사용하던 메모앱은 Evernote, Google Keep 그리고 OneNote로 넘어가 사용하고 있었다. AC2를 하면서 다른 분들이 소개하는 것을 듣고는 OneNote에서 Obsidian으로 옮기기 시작했다. 하지만, 오래 사용한 OneNote의 모든 내용을 옮기는 작업은 하지 않고, 지속적으로 업데이트하는 문서를 짧게 먼저 옮기고 사용을 시작했다. 중간에 다시 OneNote에서 많이 참고하는 문서의 복사본을 만들어 옮겨 사용하였다. 현재 OneNote는 거의 열어 보고 있지 않다.

Obsidian은 Text 문서에 Markdown 형식으로 문서를 작성하면 이를 포매팅해서 보여 준다. 이는  단순하지만 불릿 포인트 같은 문서 포맷팅 뿐 아니라, 수학 수식도 작성이 가능하다. 무엇 보다도 문서간의 Link를 활용해서 제텔 카스텐을 지원한다. 처음에 강의 등으로 들은 내용이고, 내가 사용하는 방법은 아직도 어설프지만 나름 흉내 내보려고 하고있는 실정이다. 예를 들어 관련 있는 문서들이 처음에는 파편화 되어 생겨 난다. 그리고, 연결 될 대 문서 제목으로 링크를 만들어 연결 시키서 탐색이나 검색이 용이하게 이뤄진다.

Obsidian을 이용하고 나서 알게된 PARA 룰의 적용도 유용하다. PARA는 Project, Area, Resource, Archive 의 약자로 메모를 카테고리화 해서관리한다. 이와 관련된 YouTube와 온라인 교육을 들은 적이 있다. 교육에서 제안받은 데로 Inbox를 포함하여 5개의 큰 카테고리로 나눠어 메모를 분류하고 활용해서 급하게 만든 문서는 Inbox에 만들어 넣고, 간략하게 정리되면 Project 혹은 관련된 다른 폴더로 이동하게 된다. 물론 다른 폴더에 있는 것들도 완료되거나 하면 Archive등으로 이동하기도 한다. 회사의 메일을 정리하는 방법도 PARA 형태로 바꾸면서 모든 이메일을 백업하는 일은 포기한 상황이기도 하다.

블로깅은 AC2를 하기 전 부터 학습하던 것을 기록하는 도구로서 사용하였다. 특히, 메모 등으로 조각 난 정보들 중에서 이와 같은 글을 쓰거나 학습한 내용 중 다른 분들과도 공유하고 싶은 내용들을 위주로 정리해서 올리고 있다. 이 글도 블로그에 올라갈 것으로 기대한다. 블로깅의 중요한 축은 사람들의 피드백을 살펴 볼 수 있는 부분이다. 다른 블로깅 채널을 뚫어 볼까도 생각하고 있지만, 아직은 시도하기 전이기는 하다.

Anki가 지금까지 마지막으로 활용하게 된 도구이다. Anki는 암기(暗記)의 일본 발음으로 Flashcard 형태의 정보를 간격 반복(Spaced Repetition) 학습을 하게 도와주는 도구 이다. 이는 인출의 연습을 하게 도와 주는 도구로 이제 영어 단어 혹은 자격증 시험에 많이 활용하는 것을 볼 수 있다. 나도 영어로 시작해서 자격증 시험이나 기억하고 싶은 이론 등에 대해서 정리해 두고 살펴 보는 도구로 사용하기 시작했다. Obsidian과 연계하기 시작하면서 새로운 지식을 Obsidian에 정리하고 Anki의 Flashcard로 만들어 기억하고 싶은 것들을 더 자주 들여다 보면서 간격 반복 학습을 하도록 시도하고 있다. 이 부분에 대해서는 배휘동님의 가이드도 참고 하고 있다[3].

정리하며

여기서는 AC2를 하면서 여러 가지를 배우고 얻었지만, 기존에 내가 학습하던 방법과는 다르게 근거가 있는 도구나 방법들을 많이 배웠다. 그래서, 지식이라는 것에 대한 이해도 조금 더 가지게 되었고, 이러한 이해를 바탕으로 학습하는 벙법 및 도구를 얻게 되었다. 이를 기반으로 실용적인 지식 관리 도구들도 가지고 적용하게 되었다. 이 부분은 상당히 개인적인 경험이나 근거들을 기반으로 한 것으로 다른 분들도 이러한 참고하여 자신에게 맞는 방법을 찾아서 튜닝해서 사용할 수 있을 것이라 기대한다.

참고 문헌

[1]  K. Anders Ericsson and Walter Kintsch, "Long-Term Working Memory", https://kantor.comminfo.rutgers.edu/t/MLIS/551/public_dump/morris_a_11.html
[2] D. L. Schwartz "The emergence of abstract representations in dyad problem solving", The journal of the learning sciences, 1995
[3] 배휘동, "[GeekNight 2024] 인지과학 연구로 증명된 학습 보조 도구 Anki: 10배 더 효과적으로 활용하는 방법", https://www.stdy.blog/10x-effective-way-to-use-anki/

 

개요

MVA (Minimum Viable Architecture)는 시스템의 필수적인 아키텍처만을 구현하여 빠르고 효율적으로 제품을 시장에 출시하고 사용자 피드백을 받는 접근 방식이다[1]. 이는 효과적인 아키텍처 실험과 밀접하게 연결된다. MVA를 통해 각 실험은 원자성(Atomic), 시기적절함(Timely), 명확성(Unambigous)한 특징을 유지하면서, 최소한의 아키텍처로 실험을 진행하여, 더 큰 아키텍처 변경 전에 필요한 피드백을 신속하게 얻을 수 있다. 이러한 접근 방식은 리스크를 최소화하고, 결과의 해석을 간단하게 하며, 전체 개발 과정을 더욱 효과적으로 관리할 수 있도록 돕는다.

 

효과적인 아키텍처 실험의 특징

특징설명

원자성 한 번에 하나의 질문에 집중하여 혼란을 방지하고 결과를 명확하게 한다.
시기 적절함 위험을 작고 관리 가능한 단위로 나누어 빠르게 피드백을 얻고 결과 해석을 간소화한다.
명확성 명확한 성공 기준과 측정 가능한 결과를 가지고 있어 실험이 성공했는지 판단할 수 있다.

 

효과적인 아키텍처 실험을 위한 질문

아래 표는 기사에서 설명하는 효과적인 아키텍처 실험을 수행하는 핵심 원칙을 요약하고, 이러한 실험을 계획하고 실행하기 위한 구조적 접근 방식을 제공한다.

가설 설정
(A clear hypothesis)
우리가 테스트하는 구체적인 가설은 무엇이며, 어떤 결과가 가설이 유효하다는 것을 나타낼까?
측정 가능성
(An explicit and measurable goal or target)
성공을 어떻게 측정할 것이며, 어떤 메트릭을 사용할까?
구현
(A method for running the experiment and mechanisms for measuring its success or failure)
실험을 수행하기 위해 어떤 단계를 밟을 것이며, 결과를 어떻게 문서화할까?
대체 계획
(A plan for rollback if the experiment fails)
실험이 실패할 경우, 우리의 롤백 계획은 무엇인가?
시간
(An explicit timeline for the experiment)
이 실험을 완료해야 하는 시간 프레임은 무엇이며, 우리의 목표와 어떻게 일치해야 하는가?

 

참고 문서

[1] Pierre Pureur and Kurt Bittner, "Software Architecture and the Art of Experimentation", Dec 17, 2024, https://www.infoq.com/articles/architecture-experimentation/?utm_source=infoqEmail&utm_medium=editorial&utm_campaign=ArchitectNL&utm_content=01312025

+ Recent posts