HLS? 2009년 애플에서 개발한 HTTP 기반 적응 비트레이트 스트리밍 통신 프로토콜 일반 웹 서버에서 HTTP를 통해 오디오와 비디오를 전송하여 웹 브라우저, 모바일 기기, 여러 미디어 플레이어, 스트리밍 서버 등 다양한 기기에서 재생할 수 있다. 안전성을 위해 설계되었으며 네트워크 상황에 따라 동적으로 재생을 최적화한다. 동작 방식 미디어 원본 > 인코더 > 스트림 세그멘터 > 웹 서버 > 플레이어 미디어(오디오, 비디오)를 Media encoder로 인코딩한다. 인코딩된 파일은 MPEG-2 transport stream 컨테이너 혹은 fMP4 방식으로 처리되어 Stream segmenter로 전송된다. HLS는 처음에 MPEG-2 Transport Stream(TS) 컨테이너 사용을 지정했다. ..
로드 밸런서 서버나 장비의 부하를 분산(Load Balancing)하기 위해 사용하는 장비 ex) L4 스위치, ADC / AWS의 NLB, ALB / HAProxy 왜 로드 밸런서를 쓰는가? 로드 밸런서는 서버의 부하를 분산시키기 위해 사용한다. 그렇다면 왜 서버의 부하를 분산시켜야 할까? 서비스를 운영하는데 하나의 서버로도 무리 없이 운영할 수 있었다. 클라이언트로부터 요청이 들어오면 서버는 응답을 한다. 어느 날, 예상했던 요청보다 더 많은 요청이 들어왔다. 서버는 요청을 감당하지 못해 뻗어버리고 이는 곧 서비스 장애로 연결된다. 클라이언트는 원하는 리소스를 받지 못하게 되는 것이다. 그렇다면, 많은 요청이 들어와도 서버가 뻗지 않고 응답할 수 있는 방법은 없을까? 두 가지 해결책이 있다. 해당 서..
정규표현식? 문자열에서 특정한 문자를 찾아내는 작업을 해야 한다고 하자. 작업의 대상(특정한 문자)을 찾은 다음, 작업을 해야 한다. 특정한 문자가 어떤 패턴을 가지고 있는지 찾는다. 문자열에서 패턴에 일치하는 문자를 찾는다. 정규표현식에서는 1번을 컴파일, 2번을 실행이라고 한다. 더 구체적으로 말하면 패턴을 정규표현식 객체로 만드는 과정을 컴파일이라고 한다. 그리고 패턴에 일치하는 문자를 찾는 과정을 실행이라고 한다. 정리하면 정규표현식은 문자열에서 특정한 문자를 찾아내는 도구 역할을 한다. 정규표현식은 컴파일, 실행 두 가지 단계로 이루어진다. 컴파일 컴파일은 검출하고자 하는 패턴을 만드는 일이다. 패턴은 정규표현식 객체로 만들어지며 정규표현식 리터럴, 정규표현식 객체 생성자 두 가지가 있다. 1...
코루틴에서 제너레이터, 이터러블/이터레이터까지 여정 코루틴에서 제너레이터, 이터러블/이터레이터까지 여정 1. 코루틴? 루틴(Routine) 코루틴(Coroutine) 특징 2. 제너레이터 사용법 활용 - 무한 이터러블 피보나치 3. 이터러블과 이터레이터 Iterable Iterator Iteration protocol 참고자료 1. 코루틴? 코루틴(coroutine)을 알기 위해서는 루틴(routine)에 대한 이해가 먼저 필요하다. 루틴은 우리가 잘 알고 있는 function()을 생각하면 된다. 루틴(Routine) 한 번 입장하면 무조건 반환된다. 반복적으로 사용할 수 있다. 인자를 받아들여 내부 로직에 활용할 수 있다. 코루틴(Coroutine) 여러번 진입할 수 있고 여러번 반환할 수 있다. 특..
DEVIEW 2017 세션 중 하나인 그런 REST API로 괜찮은가를 듣고 정리한 내용입니다. REST API는 무엇인지, REST를 구성하는 6가지의 제약조건 중 오늘날 대부분의 REST API가 만족시키지 못한다는 self-descriptive messages와 HATEOAS란 무엇인지 중심으로 정리했습니다. REST API? REST 아키텍처 스타일을 따르는 API REST : 분산 하이퍼미디어 시스템(웹)을 위한 아키텍처 스타일 아키텍처 스타일 : 제약조건들의 집합 즉, 제약조건을 모두 만족해야 REST하다고 말할 수 있다. REST의 구현 원칙을 제대로 지키는 시스템 => RESTful REST를 구성하는 스타일 (= 제약 조건) client-server stateless cache unifo..
문자열 인코딩(character encoding)이란 2진법을 사용하는 컴퓨터가 인간이 언어를 일정한 규칙에 따라 2진수로 변환하는 방식을 말한다. 컴퓨터는 0과 1만 알기 때문에 '안녕하세요', 'Hello'라는 문자열을 이해할 수 없다 그래서 컴퓨터가 이해할 수 있는 2진수으로 해당 문자열을 변환하는 작업이 필요하다. 문자열 인코딩은 2진수와 문자가 일대일로 대응하는 규칙인 문자 집합(charset)을 통해 문자열을 2진수로 처리한다. 문자열 인코딩과 문자 집합 UTF-8, UTF-16, EUC-KR, 유니코드, 아스키코드... 등등 여러가지 문자열 인코딩과 문자 집합이라는 개념을 쓰는데 이 두 개념이 헷갈릴 때가 많았다. 실제로도 이를 동의어 취급하기도 하고, 혼용해서 쓰는 경우가 많기에 더 구분이..
test 디렉토리 안에 여러 파일들이 있다. 이 중 파일명이 JPG로 끝나는 파일들만 추출하고 싶다면, FileNameFilter 인터페이스를 구현해서 쉽게 찾을 수 있다. D ㄴtest ㄴamericano.JPG ㄴcafelatte.JPG ㄴFile.md ㄴlayout.html ㄴtest.txt public class FileExample2 { public static void main(String[] args) throws Exception { File f = new File("D:\\test\\"); File[] fileList = f.listFiles(new FilenameFilter() { @Override public boolean accept(File dir, String name) { re..
java.io.File 메서드 설명 boolean canRead() 읽을 수 있는 파일인지 검사한다. boolean canWrite() 쓸 수 있는 파일인지 검사한다 boolean canExecute() 실행할 수 있는 파일인지 검사한다 int compareTo(File pathName) 지정한 파일(pathname)과 비교한다 boolean exist() 파일이 존재하는지 검사한다. boolean isAbsolute() 파일 또는 디렉토리가 절대경로명으로 지정되었는지 확인한다 boolean isDirectory() 디렉토리인지 확인한다 boolean isFile() 파일인지 확인한다. boolean createNewFile() 아무런 내용이 없는 새로운 파일을 생성한다. (단, 이미 생성하려는 파일이 ..
- Total
- Today
- Yesterday
- getCanonicalPath
- 특수문자 치환
- 정규표현식 패턴
- hls.js
- 코프링
- CGLIB프록시
- 정규표현식 플래그
- getPath
- websocket handshake
- opencsv
- csv 라이브러리
- github actions 기초
- 다이나믹프록시
- MPEG-2 TS
- github actions 구성요소
- self-descriptive
- sockjs
- Best Time to Buy and Sell Stock
- github actions components
- getAbsolutePath와
- java8 stream
- HtmlUtils
- csv to bean
- file
- Longest Consecutive Sequence
- AOP
- 문자열인코딩과 문자집합의 차이
- FileNameFilter
- 정규경로
- 그런RESTAPI로괜찮은가
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |