말로는 이해가 어려우실 거 같아 제가 작업한 자막영상을 아래에 올립니다. 해당 영상으로 제가 얻는 수익은 일체 없음을 알려드립니다. 저는 free라이센스로 사용하고 있어요.
원본영상에 amara를 사용해 직접 코멘트 및 전체 가사 번역한 한글자막을 달았습니다.
한국어 자막을 끄고 켜려면 CC를 눌러서 감상해주세요
성우 라이브 영상에 4시간 이상 들여서 번역 및 싱크 맞춰서 넣었네요....
아무튼 위에서 영상을 재생해보면 기존의 영상은 유지한채로 위에 자막을 씌우는 개념임을 알 수 있습니다.
굳이 영상을 재업로드한다는 식으로 타 채널의 수익창출을 방해하지 않을 수 있는 장점이 있죠.
간단한 사용법을 알려드립니다.
일단 amara.org에 가입 후 +ADD videos를 하면 아래와 같이 영상 URL과 비디오의 언어(말하기)를 선택합니다.
Add new subtitles에 번역(현지화한) 언어를 선택하고 추가를 누릅니다.
아래와 같이 자막 에디터가 나왔는데 전 기본적으로 subtitle edit로 작업하기에 자막한 영상을 바로 업로드합니다.
영상 우하단에 보이는 연장 아이콘을 눌러 Upload subtitles를 클릭
- 그 다음 자막파일을 선택해 올리고 우 상단에 exit를 클릭
자막이 올려졌으면 해당 영상은 블로그나 홈페이지에 임베디드 가능합니다. Embed를 눌러 코드를 확인합니다.
그러면 코드가 두 개 보이는데 위의 태크는 body태그가 닫히는 곳과 가까운 곳, 아래 태그는 body태그내 아무곳에나 넣으면 됩니다.
뭔 소린지 모르겠다구요? =_=
블로그 기준으론 그냥 아래와 같이 달면 끝입니다. 당연 예시이므로 영상의 url이라던가 그런건 본인이 작업한 자막에서 Embed를 통해 확인후 넣어주세요.
밑에 data-로 시작하는 옵션은 본인 자유인데
data-show-subtitles-default="true" 는 기본적으로 자막을 보이게 할꺼냐고 data-initial-language="ko" 는 기본 자막언어입니다.
예시코드) 티스토리 같은 경우 그냥 아래와 같은 형식으로 넣어주면 끝입니다. 위에 <script로 시작하는 태그는 아무데나 넣어줘도 되요.
<p>
<script type="text/javascript" src="https://amara.org/embedder-iframe"></script>
</p>
<p>원본영상에 amara를 사용해 직접 코멘트 및 전체 가사 번역한 한글자막을 달았습니다.</p>
<div class="amara-embed" data-url="http://www.youtube.com/watch?v=Zf8kX8SJVHg"
data-show-subtitles-default="true"
data-initial-language="ko"
data-team="null"> </div>
그럼 아래와 같이 자막이 씌워진 영상이 보입니다.
아쉬운 점이 있다면 태그가 제한적인건지 아예 기본적인 자막 태그가 안 먹는지 배경색 없애고 우하단 정렬같은 건 못하네요. 그래도 이렇게 현지화 가능한게 어딘가 싶습니다.
SQL> conn sys/oracle as sysdba --- 관리자 계정 로그인
SQL> create user demo -- demo이름의 user계정생성
identified by demo; -- pw는 demo로 설정
SQL> conn demo/demo --- id/pw가 demo/demo인 계정으로 접속
2. 권한 유형
- System권한 : DB조작권한 (소유자 DBA)
- Object 권한 : 오브젝트 조작권한 (소유자 Object 소유자)
* 테이블, 인덱스, 뷰, 시노님, 시퀀스를 객체 (또는 오브젝트) 라고 한다.
3. System 권한
- DB 조작권한으로 System 권한종류는 약 100여개
CREATE USER : 데이터 베이스 유저 생성 권한
CREATE SESSION : 데이터베이스 접속 권한
CREATE TABLE : 테이블 생성 권한
CREATE VIEW : view 생성 권한
CREATE SEQUENCE : sequence 생성 권한
SYSDBA : 데이터베이스 관리 최고 권한
(...등등)
바꾼 값의 결과는 아래와 같으며 해당 수의 진법 표기는 괄호안에 적는다. (10)은 10진법 표기
13 (10) -> 01101 (2)
- 8진법 -> 10진법 (자릿수 변환)
0307 (8)
(3 x 82) + (0x81) + (7 x 80) = 199 (10) // 0승은 항상 1
0-4) 리터럴
소스코드에서 프로그래머에 의해 직접 입력된 값, 자바에서 실제 처리하는 데이터
1. 기본 데이터 타입
- 자바에서의 기본테이터 타입 (반대는 참조데이터 타입) 은 아래 8가지이다.
- 타입이름은 모두 소문자임에 유의
- 1Byte 는 8 bit이다.
즉 0000 0000(2) ~ 1111 1111(2) 의 값을 표현을 가진다.
1Byte 2Byte 4Byte 8Byte (8bit) (16bit) (32bit) (64bit) ----------------------------------------- 정수형 byte short int long 실수형 float double 문자형 char --- 실제로 char(캐릭터) 타입은 정수형에 포함되나 이는 뒤에서 설명 논리형 boolean
char는 ushort, int, uint, long, uyong, float, double 또는 10진수로 암시적으로 변환될 수 있다. 그러나 다른 유형에서 char 유형으로의 암묵적 변환은 없다.
1) 정수형(Interger Type)
저장되는 값의 허용범위 (char타입은 음수값을 포함하지 않으므로 제외)
n = 메모리bit수 - 1 (ex : 8bit크기는 8 - 1 = 7)
-2^n ~ (2n-1)
byte : -128 ~ 127 | 0포함, -2^7 ~ (2^7-1)
short : -32768 ~ 32,767
char : 0 ~ 65536 (유니코드) | 0 ~ (2^16-1)
int : 약 -21억 ~ 21억 | -2^31 ~ (2^31-1)
long : 약 -922경 ~ 922경
1-2) 정수 리터럴 표현
- 2진수 : 0b1011 (맨앞은 숫자 0)
- 8진수 : 013 (맨앞은 숫자 0)
- 10진수 : 365 (소수점없는 10진법 숫자)
- 16진수 : 0x3B0F (맨앞은 숫자 0)
- long타입 (기본적으로 자바 컴파일러는 정수 리터럴을 int타입으로 간주한다!)
long l = 12_345_678_999; // int타입으로 간주해서 타입이 맞지 않다는 에러 출력
long l = 12345678999L; // int타입 범위를 벗어나면 L을 붙여서 롱타입임을 알려줌, 에러 없음
* 숫자밑에 _은 자릿수 구분을 위한 임의 표기로 에러사항이 아님
1-3) char타입
작은 따옴표로 감싼 형식을 쓰며 이것을 문자 리터럴이라고 한다.
문자 리터럴엔 유니코드값인 2byte크기 (0~65535)에 세계각국의 문자코드가 변환되어 저장된다.
C:\Users\rutel>java -version
C:\Users\rutel>javac -version
'javac'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는
배치 파일이 아닙니다.
시스템 환경설정 (자바 환경설정)
파일 위치 상관없이 모든 위치에서 자바 프로그램을 사용할수 있게 설정한다.
1) 탐색기 - 내PC - 오른쪽 버튼 - 속성 - 고급시스템설정 선택 2) 시스템 속성 - 고급 - 환경변수 3) 시스템 변수 - Path - 편집 - 새로만들기 C:\Program Files\Java\jdk1.8.0_181\bin 위와 같이 입력 후 확인
자바 실행환경(JRE) 설정
1) 탐색기 - 내PC - 오른쪽 버튼 - 속성 - 고급시스템설정 2) 시스템 속성 - 고급 - 환경변수 3) 시스템 변수 - 새로만들기 변수이름:CLASSPATH 변수값: .;C:\Program Files\Java\jdk1.8.0_181\lib\tools.jar - 위와 같이 기입 후 확인
그 다음 커맨드 창에서 아래 명령어를 입력하면 정상적으로 자바 컴파일러 버전이 확인될 것이다. C:\Users\rutel>javac -version
웹서버(웹애플리케이션서버) 설치 html은 정적웹프로그램으로 브라우저로 바로 열어서 확인가능하다. jsp는 동적웹프로그램 별도 웹서버를 거쳐서야 확인가능하다.
<!DOCTYPE html>
<html>
<head>
<title>html 첫 시간</title>
</head>
<body>
<h1>html 첫 시간</h1>
<h2>HTML이란?</h2>
<p>
Hyper Text Markup Language의 약자.<br>
웹페이지를 만들어 주는(구조를 담당) 프로그램언어.<br>
명령어(tag)로 구성된다.
</p>
<p>
일반적으로는 tag는 각 괄호 안에 들어가고 시작 tag와 종료 tag 한 쌍으로 이루어지며<br>
원칙적으로 대소문자 구별은 없으나 소문자로 쓴다.<br>
소스상에서 공백처리는 줄바꿈 적용 불가하고<br>
문자 사이 띄우기는 한 개만 가능하다.
</p>
<p>
웹문서를 저장할 때 확장자는 .htm 또는 .html로 저장한다.<br>
한글을 포함하여 영문 이외의 특수문자 등을 제대로 나타내려면 인코딩은 UTF-8로 지정한다.
</p>
<hr>
<h2>웹문서를 구성하는 필수(기본) 태그들</h2>
<hr>
<pre>
<!DOCTYPE html> ----- 웹문서 버전을 브라우저에 알림
<html> ----- 웹문서 시작 선언
<head> ----- 웹문서 머리말 영역 시작 선언
사용자에 보이지않으나 여러 태그들 추가됨
<title> ... </title> ----- 웹문서 제목 지정 (브라우저 탭 부분)
</head> ----- 웹문서 머리말 영역 끝 선언
<body>
... ----- 사용자에게 보여질 컨텐츠 등을 지정함
</body>
</html> ----- 웹문서 끝 선언
</pre>
<hr>
hn(n=1~6)태그 - 제목글자 태그들
<hr>
<p>
글자는 두껍게(볼드체)로 나타나며
위아래에 한 줄 공백이 생긴다.
글자의 크기는 h1일 떄 가장 크고 점점 작아지다가 h6일 떄 가장 작다.
</p>
<h1>제목글자 태그 h1입니다.</h1>
<h2>제목글자 태그 h2입니다.</h2>
<h3>제목글자 태그 h3입니다.</h3>
<h4>제목글자 태그 h4입니다.</h4>
<h5>제목글자 태그 h5입니다.</h5>
<h6>제목글자 태그 h6입니다.</h6>
<!-- <h7>제목글자 태그 h7입니다.</h7> -->
<!-- <h8>제목글자 태그 h8입니다.</h8> -->
<!-- <h9>제목글자 태그 h9입니다.</h9> -->
<hr>
<h2>body(본문)을 구성하는 여러 태그들</h2>
<hr>
<p> <!-- 소스상의 공백은 브라우저에 영향을 못 미치나 작업자의 효율성을 위함임 -->
문단을 구성 <p><br>
줄 바꿈을 지정 <br><br>
수평선을 지정 <hr><br>
공백을 소스 그대로 살려줌 (고정폭 글꼴로 나타남) <pre>
</p>
<!-- 주석 태그입니다. -->
<h3>풀꽃</h3>
<pre> 나태주</pre>
<p>
자세히 보아야 예쁘다<br>
오래 보아야 사랑스럽다<br>
너도 그렇다
</p>
</body>
</html>
결과 미리보기 :
html 첫 시간
HTML이란?
Hyper Text Markup Language의 약자. 웹페이지를 만들어 주는(구조를 담당) 프로그램언어. 명령어(tag)로 구성된다.
일반적으로는 tag는 각 괄호 안에 들어가고 시작 tag와 종료 tag 한 쌍으로 이루어지며 원칙적으로 대소문자 구별은 없으나 소문자로 쓴다. 소스상에서 공백처리는 줄바꿈 적용 불가하고 문자 사이 띄우기는 한 개만 가능하다.
웹문서를 저장할 때 확장자는 .htm 또는 .html로 저장한다. 한글을 포함하여 영문 이외의 특수문자 등을 제대로 나타내려면 인코딩은 UTF-8로 지정한다.
웹문서를 구성하는 필수(기본) 태그들
<!DOCTYPE html> ----- 웹문서 버전을 브라우저에 알림
<html> ----- 웹문서 시작 선언
<head> ----- 웹문서 머리말 영역 시작 선언
사용자에 보이지않으나 여러 태그들 추가됨
<title> ... </title> ----- 웹문서 제목 지정 (브라우저 탭 부분)
</head> ----- 웹문서 머리말 영역 끝 선언
<body>
... ----- 사용자에게 보여질 컨텐츠 등을 지정함
</body>
</html> ----- 웹문서 끝 선언
hn(n=1~6)태그 - 제목글자 태그들
글자는 두껍게(볼드체)로 나타나며 위아래에 한 줄 공백이 생긴다. 글자의 크기는 h1일 떄 가장 크고 점점 작아지다가 h6일 떄 가장 작다.
제목글자 태그 h1입니다.
제목글자 태그 h2입니다.
제목글자 태그 h3입니다.
제목글자 태그 h4입니다.
제목글자 태그 h5입니다.
제목글자 태그 h6입니다.
body(본문)을 구성하는 여러 태그들
문단을 구성 <p> 줄 바꿈을 지정 <br> 수평선을 지정 <hr> 공백을 소스 그대로 살려줌 (고정폭 글꼴로 나타남) <pre>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<script type="text/javascript">
function fun1() {
alert("안녕 자바스크립트");
return;
}
function fun2(money) {
alert("받은 동전 : " + money)
return;
}
function fun3(money) {
alert("무료음료수 전달")
return "커피";
}
function fun4(a, b) {
alert("받은 동전" + a + b);
alert("음료수 선택");
return "사이다";
}
</script>
<body>
<h1>WebContent/js1/test3.html</h1>
<input type="button" value="출력버튼" onclick="fun1()">
<input type="button" value="값을 받아서 뽑기출력버튼" onclick="fun2(500)">
<input type="button" value="무료음료수받기" onclick="alert('전달받은 음료수: ' + fun3() )">
<input type="button" value="음료수받기" onclick="alert('받은 음료수: ' + fun4(500, 100) )">
</body>
</html>
위의 funtion 인 fun4에서 "받은 동전" + a + b와 같이 쓰면 문자열로 서로 연결된다.
이를 피하고 a와 b변수의 값을 더하고자 한다면 아래와 같이 수정한다.
function fun4(a, b) {
alert("받은 동전" + (a + b) );
alert("음료수 선택");
return "사이다";
}
1. 가변인자를 통한 함수 정의
(...)
<script type="text/javascript">
// 입력받은 값 평균 구하기
function fun4(...args) {
let res = 0;
for (let i = 0; i < args.length; i++) {
res += args[i];
}
avg = res / args.length;
return avg;
}
</script>
(...)
<input type="button" value="두수합리턴받아서 평균 구하기"
onclick="alert('리턴받은값 : ' + fun4(10, 20) )">