분류 전체보기 32

if(kakao) 2020 카카오톡 사례로 살펴보는 견고한 안드로이드 앱 만들기

# 크래시 분석 - 추가정보 크래시가 난 경로를 기록해둔다 Session -> mainactivtiy -> profile activity -> crash # 라이프사이클 - 크래시 Activity, fragment 에서 비동기 요청 후 늦은 ui 업데이트 callback에서 context 사용시 메모리릭 발생 fragment에서 host 없이 context 사용시 크래시 발생 => 라이프사이클 상 어떤 요청이 유효하지 않다면, 요청을 취소하자 - 시간이 오래걸리는 비동기 작업이 있을 경우, 적절한 예외처리가 되어 있는지 확인 할 것 # lint 이슈 확인 - stringFormat string xml에 한국어-영어 포매팅 유의 #infinite 어떤 수를 실수 0으로 나눔 (ex. 21억번 수행으로 AN..

client/android 2021.04.09

packet? frame? (calculate rtp packet based mtu)

미디어 통신시 계속 궁금했다. 패킷로스가 난다. 패킷은 한프레임인가? 한프레임은 어떻게 정의되는가? mtu(maximum transmission unit)이 설정된 값은 실제로 미디어 송수신시 무슨 의미일까? 결론은, mtu 기반으로 rtp frame 이 같은 timestamp로 나눠져서 전송될 것이고, i-frame, p-frame 등에 따라서 한프레임이 쪼개지는 패킷 수도 다르다. H.264 also implements B-Frames. This type of frame fills in information between P-Frames. This means that the B-Frame will need to be held until the next P-frame arrives before the ..

server 2019.08.11

SDP(Session Description Protocol)

SDP는 멀티미디어를 전달하는 RTP 프로토콜에 대한 세부적인 내용을 협상합니다. SDP의 Capability Exchange를 주도하는 라인은 m= 와 a= 로 RTP가 사용할 코덱, IP 주소, 포트넘버가 자세히 명기됩니다. SDP 메세지를 생성하는 UA는 자신이 지원가능한 모든 코덱과 능력을 아래와 같이 명기합니다. m=audio 16444 RTP/AVP 0 8 18 101 a=rtpmap:0 PCMU/8000 a=ptime:20 a=rtpmap:8 PCMA/8000 a=ptime:20 a=rtpmap:18 G729/8000 a=ptime:20 a=sendrecv a=rtpmap:101 telephone-event/8000 a=fmtp:101 0-15 m= (미디어 설명) Media Descript..

webrtc 2019.08.03

190630 구글 IO Seoul 후기메모

​ ​​ Track 1. 장한보람 # Webtech 크롬포함 웹 업데이트 웹 한계 > 구글이 이를 극복하기 위해 하는일 # 업데이트 내용 1. Instant 신속 2. Powerful 확장성 3. Safe 안정성 -> 사용자 경험 중시 # V8 자바스크립트 엔진 업데이트 -> 적은 메모리로 빠른 처리 # 모던웹 : 초기 렌더링 이슈 Ex. Image-lazy-loading : 사용자가 보는 화면만 로딩, 스크롤 내리면 이미지 추가 로딩 progressive web app PWA Chrome 76버전 이상부터는 데스크탑도 가능 # 단일 코드베이스에서 여러 디바이스를 커버하게 진화하는 중 = PWA, Flutter ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ ​​ Track 2. 김석용 # 리액트네이티브 - j..

memo 2019.06.30

GC 튜닝 & STW (STOP-THE-WORLD)

ㅇ 여러분이 운영하고 만드는 시스템이 GC를 적게 하도록 하려면 객체 생성을 줄이는 작업을 먼저 ㅇ String대신 StringBuilder나 StringBuffer를 사용하는 것을 생활화하는 것부터가 시작 ㅇ (Eden 영역에서 객체가 처음 만들어지고, Survivor 영역을 오가다가, 끝까지 남아 있는 객체는 Old 영역으로 이동한다. 간혹 Eden 영역에서 만들어지다가 크기가 커져서 Old 영역으로 바로 넘어가는 객체도 있긴 하다) Old 영역의 크기를 적절하게 '잘' 설정해야 한다. ㅇ 특히 -Xms 옵션과 -Xmx 옵션은 필수로 지정해야 하는 옵션이다. 그리고 NewRatio 옵션을 어떻게 설정하느냐에 따라서 GC 성능에 많은 차이가 발생한다. 힙(heap) 영역 크기 -Xms JVM 시작 시 ..

server 2019.05.28

쿠버네티스_네이버 클라우드 플랫폼 강의

https://www.youtube.com/watch?v=ul-WwsP7veM #도커 -docker L2 -linking : 도메인을 통한 통신(동일 호스트 = local로 한정적) -custom network : vm 간 추가적인 network path # 쿠버네티스 -network overlay flannel : 멀티호스트 처리 -docker0=cni0 동일 역할 -쿠버네티스 한줄정의: 멀티호스트에 deployment된 application들을 자동으로 관리하는툴 - *** etcd : lifecycle의 key/val 저장, 보안정의/위치정의(master와같이둘지) 정의필요 -컨테이너는 어디에 위치시킬것인가? POD간 affinity, scheduling가능(각 호스트에 어떤 POD?) -컨테이너도..

server/container 2019.05.25

스트리밍 프로토콜 선택

스트리밍 프로토콜은 스트림의 대기 시간에 직접 영향을 미칩니다. WebRTC 또는 Apple HLS를 사용하는지 여부에 따라 비디오 지연은 1 ~ 45 초 사이에 떨어질 수 있습니다. 대기 시간은 비디오 프레임을 캡처하여 재생할 때까지의 지연입니다. 비디오 지연이라고도하며, 카메라의 렌즈에서 시청자의 화면으로 라이브 브로드 캐스트를 수신하는 데 걸리는 시간으로 측정됩니다. 스트리밍 프로토콜이란 무엇입니까? 온라인 비디오 전송은 스트리밍 프로토콜과 HTTP 기반 프로토콜을 모두 사용합니다. RTMP (Real-Time Messaging Protocol)와 같은 스트리밍 프로토콜은 빠른 비디오 전달을 제공하는 반면 HTTP 기반 프로토콜은 시청 경험을 최적화하는 데 도움이됩니다. 기존의 낮은 대기 시간 스트..

video 2019.04.11

About WebRTC_basic

1. what is WebRTC? Web Real-Time Communication 웹 기반에서의 실시간 미디어 통신을 위한 표준 및 오픈소스 프로젝트 WebRTC 란 P2P 통신(영상 및 음성 통신용)을 위한 웹 표준 WebRTC 는 브라우저에서 동작하는 유일한 P2P프로토콜 WebRTC 스트림에는 암호화가 필수적이므로 SSL (Secure Sockets Layer)을 사용 UDP 기반의 데이터 통신 - WebRTC api MediaStream (getUserMedia) : 미디어 스트림 동기화. 예를 들어 카메라 및 마이크 입력에서 가져온 스트림은 비디오 및 오디오 트랙을 동기화. RTCPeerConnection : webRTC의 거의 모든 운용은 PeerConnection 인터페이스로 해결가능, 자..

webrtc 2019.04.11

class < jar < war < ear

jar, war, ear 이 압축방식들은 압축의 해제없이 JDK에서 각 파일들을 접근하여 사용할 수 있도록 설계되어 있다. jar, war, ear 파일들은 java jar tool을 이용하여 압축된 파일이다. 이 파일들은 각각 다른 목적을 가지고 사용된다. 단위: class < jar < war < ear jar (java archive)라이브러리, 리소스, property 파일들을 포함한다.JDK에서 제공하는 Java Archive Tool을 이용하여 jar 파일에 대한 작업을 할 수 있다. (Jar tool)JAR 파일 생성 jar cf jar-file input-file(s)JAR 파일 콘텐츠 보기 jar tf jar-fileJAR 파일 콘텐츠 추출 jar xf jar-fileJAR 파일에서 특정..

server 2019.03.20