전체 글 51

[Android] Context 란?

Context의 정의 Interface to global information about an application environment. This is an abstract class whose implementation is provided by the Android system. It allows access to application-specific resources and classes, as well as up-calls for application-level operations such as launching activities, broadcasting and receiving intents, etc. Application 환경에 대한 전역 정보를 접근하기 위한 인터페이스.추상 클래스이며 실..

Android 2019.01.09

안드로이드 4대 컴포넌트란 무엇인가? - Activity

개발자가 되기위한 첫 걸음 Activity(액티비티)란?액티비티는 UI 화면을 담당하는 컴포넌트이다. 안드로이드 액티비티가 화면에 UI를 표시하는 역할을 수행한다고 해서 자체적인 그리기 기능이 실행되어 화면을 그리는 것이 아니다. VIew 또는 ViewGroup의 다양한 조합을 화면에 배치함으로써, UI를 표시하는 것입니다. 이러한 관점에서 보면 액티비티는 화면에 UI를 표시하기 위한 틀이라는 개념이 될 수 있습니다. 따라서 하나의 UI는 하나의 Activity라는 말이 됩니다. 하나의 애플리케이션은 하나 이상의 액티비티가 느슨하게 서로 묶여 있는 형태로 구성됩니다. 각각의 액티비티는 여러 가지 작업을 수행하기 위해 또 다른 액티비티를 시작할 수 있습니다. 새로운 액티비티가 시작될 때마다 이전 액티비티는..

Android 2019.01.09

안드로이드 4대 컴포넌트란 무엇인가?

개발자가 되기위한 첫 걸음 안드로이드 4대 컴포넌트안드로이드의 4대 컴포넌트란?안드로이드의 주요 4대 컴포넌트는 액티비티(Activity), 서비스(Service), 브로드캐스트 리시버(Broadcast Receiver), 콘텐트 프로바이더(Content Provider)를 말합니다. 각 컴포넌트들은 하나의 독립된 형태로 존재하며, 정해진 역할을 수행합니다. 또한 각 컴포넌트들은 인텐트(Intent)라는 일종의 메시지 객체를 사용하여 상호 통신을 합니다. 이들 중에서 가장 많이 사용하는 것은 액티비티이지만 나머지 컴포넌트도 매우 중요하므로 어떤 기능을 하는지 알아둬야 합니다. 다음 그림은 안드로이드 애플리케이션을 구성하는 안드로이드 4대 컴포넌트를 그림으로 나타낸 것입니다. 당연하겠지만 이 중에서 가장 ..

Android 2019.01.09

Parcelable vs Serializable

안드로이드 앱을 개발할 때 종종 하나의 액티비티 에서 다른 액티비티 로 데이터를 전달하기 위해 인텐트에 전달할 데이터를 추가 합니다.복잡한 클래스의 객체를 이동하려는 경우 Serializable 또는 Parcelable 를 사용하여 직렬화 하여 인텐트에 추가 해야 합니다. Serializable 이란 무엇인가?serial(직렬의) + ~able(~가능한) Serializable Serializable 은 Android SDK 가 아닌 표준 Java 의 인터페이스 입니다. 이 인터페이스를 구현한 클래스의 객체는 이제 한 액티비티 에서 다른 액티비티 로 이동할 준비가 됩니다. 다음 코드에서 이 인터페이스를 사용하는 것이 얼마나 간단한 지 알 수 있습니다. 12345678910111213141516171819..

Android 2019.01.09

ffmpeg 옵션 정리

정리된 글이 없어 직접 정리함. 1ffmpeg -i 입력파일명 ... 출력파일명cs -i 옵션으로 지정된 임의의 수의 "파일"(일반 파일, 파이프, 네트워크 스트림 등등)을 읽고 임의의 파일에 기록. ex) 출력 파일의 비디오 비트율을 64 kbit/s로 설정 ffmpeg -i input.avi -b:v 64k -bufsize 64k output.avi ex) 출력 파일의 프레임 속도를 24fps로 강제 설정 ffmpeg -i input.avi -r 24 output.avi ex) 입력 파일의 프레임 속도를 1fps로 출력 파일의 프레임 속도를 24fps로 설정 ffmpeg -r 1 -i input.m2v -r 24 output.avi -y (global)묻지 않고 출력 파일을 덮어씀. -n (globa..

Web/Nginx 2019.01.03

[Nginx] RTMP module 설치 및 설정

1.설치 NGINX 소스와 rmtp모듈 소스 다운로드 wget http://nginx.org/download/nginx-1.7.5.tar.gz wget https://github.com/arut/nginx-rtmp-module/archive/master.zip 파일 압축 해제 tar -zxvf nginx-1.7.5.tar.gz unzip master.zip NGINX 소스 디렉토리로 이동후 ./configure --add-module=/path/to/nginx-rtmp-module make make installnginx (1.3.14 -1.5.0) 버전은 http_ssl_module 를 추가로 설치하여하야합니다. ./configure --add-module=/path/to/nginx-rtmp-modul..

Web/Nginx 2019.01.03

RTMP란?

1. RTMP는 무엇인가? RTMP(Real Time Message Protocol)은 어도비(Adobe) 독점 프로토콜로 보통 비디오나 오디오등을 인터넷 상에서 실시간으로 스트리밍 데이터를 전송해서 불특정 다수들이 받아 볼수 있도록 하는 기술의 규격입니다. RTMP는 기본 1935포트를 사용하지만 통신이 실패하면 RTMPS(434)나 RTMPT(80) 포트를 사용하여 통신하도록 시도합니다. 패킷 구조는 다음과 같습니다. 위의 이미지를 보시면 RTMP 규격을 거쳐서 다른 기기까지 전송이 되는 것을 볼수 있습니다.대부분 실시간 방송 서비스는 보통 RTMP를 이용해서 스트리밍하게 됩니다. RMTP에 대해 자세하게 알고싶으신 분은 위키디피아에 들어가셔서 확인을 하실수가 있습니다. 2. RTMP를 사용하는 서비..

Web/Nginx 2019.01.03

JDBC- MariaDB와 Java연동

JDBC- Java Database Connectivity- 자바에서 DB 프로그래밍을 하기 위해 사용되는 API ==> 데이터베이스 종류에 상관없다.JDBC API 사용 어플리케이션의 기본 구성 - JDBC 드라이버 : 각 DBMS에 알맞는 클라이언트 JDBC 프로그래밍 코딩 흐름 1) JDBC 드라이버 로드2) DB 연결 3) DB에 데이터를 읽거나 쓰기 (SQL문)4) DB 연결 종료 JDBC 커넥터는 https://downloads.mariadb.org/connector-java/위 링크에서 다운로드 가능합니다. 다운 받은 커넥터를 라이브러리에 추가 해줍니다. 아래는 예시로 작성한 코드입니다.12345678910111213141516171819202122232425262728293031323334..

Language/Java 2019.01.02

동적 계획법 알고리즘 문제풀이 기초와 예제(Assembly-line scheduling)

간단하게 요약해 동적계획법이란 복잡한 문제를 푸는 알고리즘의 한 종류로서, 큰 문제를 작은 문제로 나누고 작은 문제를 먼저 해결 한뒤에 결과를 바탕으로 큰 문제의 해답을 찾는 방법이다.피보나치 수열을 예로 들어보자. 피보나치 수열은 아래와 같이 표현할 수 있을 것이다. 하나의 수열 항목을 구하는 것에 대한 점화식을 알게 되면, 이를 반복하여 큰 문제에 대한 해답을 알아낼 수 있다. 동적 계획법 점화식 구현 방법 우리는 식을 세우는 것에 그치지 않고, 이것을 컴퓨터로 코딩해서 해를 구하는 프로그램을 만들어야 한다. 위 예로 든 피보나치 수열을 동적계획법으로 구현하기 위해서는 세가지 방식을 사용할 수 있을 것이다. 1. 다른 문제에서 가져오는 방식현재 노드의 값을 구하기 위해서 다른 곳(먼저 계산한 작은 문..

알고리즘 2018.12.28

안드로이드 WebRTC 시작하기 -3

p2p에서의 다음과 같은 시나리오를 생각해 봅시다. 처음에 peer 연결과 offer SDP를 생성합니다. 이 offer에는 호출하는 peer에 대한 데이터가 들어 있으며 peer의 코덱 및 기타 엔터티를 식별하는데 사용됩니다.그런 다음 이 offer는 호출 peer에 "Local Description"으로 저장되고 일부 신호 메커니즘을 통해 호출 수신자에게 전송됩니다. 일반적으로 시스템의 대부분은 신호 매체로 웹 소켓을 사용하며 사용 및 요구 사항에 따라 다를 수 있습니다.수신자 측이 offer를 받아 "Remote Description"으로 저장하고 해당 offer에 대한 Answer SDP를 만듭니다. 이 Answer SDP는 호출자의 offer SDP와 비슷하지만 해당 피어의 세부정보를 가지고 있..

Android 2018.12.25