본문 바로가기

전체보기

(253)
[Web] Web RTC (Real Time Communication) WebRTC 핵심 개념 정리WebRTC(Web Real-Time Communication)는 브라우저 또는 모바일 환경에서 플러그인 없이 실시간 음성, 영상, 데이터 통신을 가능하게 하는 기술입니다. 일반적인 WebRTC 연결은 다음과 같은 단계로 이루어집니다.SignalingSDP ExchangeICE Candidate GatheringConnectivity CheckSecure Media Transmission각 구성 요소를 조금 더 자세히 살펴보겠습니다. Signaling시그널링(Signaling)은 각 peer가 서로 통신하기 위한 초기 연결 정보를 교환하는 과정입니다.WebRTC 자체는 시그널링 방식을 표준으로 정의하지 않습니다.따라서 보통 다음과 같은 프로토콜을 이용하여 구현합니다.WebSoc..
[Mobile] React Native 핵심 개념과 구조, 동작 원리 React Native(RN)는 하나의 JavaScript 코드베이스로 iOS와 Android 네이티브 앱을 동시에 개발할 수 있게 해주는 프레임워크다. 단순한 “하이브리드”가 아니라, 네이티브 UI를 직접 렌더링한다는 점에서 웹뷰 기반 접근과 구조적으로 다르다.이 글에서는 React Native의 핵심 개념, 내부 구조, 런타임 동작 원리, 브리지 아키텍처, **신규 아키텍처(Fabric / TurboModules)**까지 전체 흐름을 개발자 관점에서 정리한다.React Native의 본질React Native는 다음 조합으로 구성된다.React (컴포넌트 모델 + 선언형 UI)JavaScript 런타임Native Rendering LayerBridge (JS ↔ Native 통신 계층)핵심 철학:“W..
[Swift] Code Smell에 관하여....0 프롤로그코드를 작성할 때면 코드 한 줄 한 줄은 치열한 고민이 있어야 한다. 시간 내에 빨리 제출해야 하는 테스트 패스용 코드가 아닌 이상은 각 코드의 한 줄 한 줄은 고민이 있어야 한다. 그리고 경력자의 코드 한 줄 한 줄이 대충 짜인 것처럼 보일지라도 경력동안 해 온 고민들이 합쳐져 만들어진 결과물이어야 한다. 강연을 하면서 'Loop 혹은 Branch를 위한 코드가 비단 for와 if 뿐만이 아닌 것은 while과 switch의 용도가 분명하기 때문이다'라는 말을 자주 한다. 내가 작성하는 코드는 1차적으로 창조한 사람의 의도를 읽어야 한다. 가령 Python을 예로 들면, 귀도 반 로섬이 Python을 만들 때에 담고자 했던 철학을 이해해야 한다. Java라면 제임스 고슬링이 이 프로젝트를 시작했..
[FP] 함수형/선언형에 대한 고찰 프롤로그요즘 AI Transformation으로 IT 사업이 새로운 국면으로 넘어가는 것 같다. 그래서 최근에 이와 관련된 글도 작성했었다. 그런데 이번에는 함수형과 선언형에 대해서 얘기해보고 싶다. 이는 오래된 주제이기도 하고, 필자가 2016년부터 깊게 파고 있는 주제이다. 필자가 짠 코드가 의도된 대로만 동작하도록 제어하고 싶은 맘에서 학부 시절부터 디자인 패턴과 소프트웨어 공학에 심취했던 나였다. 그런 필자에게 새롭게 다가왔던 개념은 함수형이었다. 함수형은 내가 작성한 코드가 내가 의도한 대로 코드가 동작하도록 하는 강력한 무기가 되었다. 발생할 수 있는 예외 케이스 또한 내가 정의한 에러 코드를 통해서 예측 가능한 범주 내로 가이드해주었다. 진정한 함수형/선언형 코드를 작성했다면, 심지어 코드 ..
[Architecture] 미디어 플레이어의 구조에 대한 고찰 Background처리해야 할 데이터가 많은 경우에는 멀티 코어 프로세서의 환경을 적극 활용하여, 최대한 가용한 리소스를 극한까지 사용해야 할 필요가 있다. 미디어 처리를 최대한 빠르게 처리하여 사용자에게 seemless 한 사용자 경험을 제공하는 것이다. 이를 위해서 여러 가지의 방법이 동원되게 된다. 그리고 소프트웨어 구조에 대해서 얘기하자면, 소프트웨어 구조는 확장성이 가능하도록 구현되어야 한다. 기본적으로 응집도를 높이고 결합도를 낮추라는 말을 많이 들었을 것이다. 예전부터 나는 이에 대해 어마무시하게 집중을 했다. 그리고 실제로 많이 중요하다. 실제로 회사에서 소속되어 개발을 하다 보면, 이를 무시하고 거대한 코드 뭉치를 만들어서 손도 못 대도록 구현할 때가 있다. 그리고 본인이 만든 코드 뭉치..
[iOS] 센서 이야기 - 자이로스코프 Background스마트폰에는 여러 가지의 센서들이 들어가 있다. 자기력계, 가속도계, 자이로스코프, 기압계, 고도계, 위치센서(GPS, Glonass, Galileo, Beidou), 조도센서, 근접센서 등이 대표적이다. 모든 센서들은 자기들의 영역이 있다. 자기력계는 자기장 측정, 가속도계는 가속력 측정, 자이로스코프는 기울기, 기압/고도/조도/근접 등등 모두 현실 세계의 물리량을 수치로 환산하여 OS에 제공하는 역할을 한다. 이번에는 그중에서도 자이로스코프와 가속도계의 협업에 대해서 얘기해보려고 한다. Gyroscope누구냐, 넌?아래는 일반적으로 우리가 보는 자이로스코프의 이미지이다. 원래의 자이로스코프는 중심에 횡방향으로 고속 회전하는 회전판이 있다. 정확한 원리의 이름이 이제는 기억나지 않으나..
[iOS] Developer Common Knowledge SwiftStruct & ClassProtocol Oriented ProgrammingARCCopy-On-Write@escaping & non-escapingSwift ConcurrencyOptionalUIKit & SwiftUIUIKit & ViewControllerSwiftUIAuto LayoutTouch & RenderingNavigationNetwork & Asynchronous TasksURLSessionCombineError HandlingImage LoadingData Storage Cache File I/O Database SQLite CoreData SwiftData Architecture & Testing MVC / MVVM MVC M..
[iOS] Developer‘s Note 보호되어 있는 글입니다.