3월, 2019의 게시물 표시

4K 그리고 HDMI 2.0

이미지
기술이 발전하면서, 더 좋은 화질로 동영상을 볼 수 있게 되었다.

당연한 이야기겠지만,
동영상은 이미지 보다 더 많은 용량을 차지하므로,
더 많은 하드 용량, 더 빠른 네트워크, 더 넓은 대여폭 등등이 요구된다.

SD -> HD -> FHD -> UHD
구글링을 해보니, 위 순서대로 동영상 화질이 좋아진거 같다.

SD : 360p
HD : 720p
FHD : 1080p
UHD : 2160p

p는 pixel 을 위미하는 것이고,
360p는 세로 pixel 갯수가 360개로 이루어진 화면을 뜻하는 말이고,
720p는 세로 pixel 갯수가 720개로 이루어진 화면을 뜻하는 말이고,
1080p는 세로 pixel 갯수가 1080개로 이루어진 화면을 뜻하는 말이고,
2160p는 세로 pixel 갯수가 2160개로 이루어진 화면을 뜻하는 말이다.

(pixel : 화면을 구성하는 가장 기본이 되는 단위)

그 중에서 UHD가 사람들이 제일 관심있어 하는 화질이다.
화질이 제일 좋기 때문이다.
pixel 갯수가 많으면 많을수록 화질이 좋아지는건 당연한 것이다.

또한, 기업에서도 UHD를 지원하는 제품을 많이 출시하고, 홍보에 열을 올리고 있다.

잉? 그럼 4K는 뭐지?
4K는 UHD와 같은 의미로 사용되고 있다.

그러므로, 아래 두 문장은 같은 의미라고 보면 된다.
"이 모니터는 4K를 지원합니다."
"이 모니터는 UHD를 지원합니다."

※ 구글링을 해보니, 엄밀히 말하면, 4K는 UHD랑 다른거라고 한다.

위에서 2160p 라고 표시된것은,
화면이 16:9 비율이고 세로가 2160 pixel 이라고 한다.

비율을 사용해서 가로 pixel을 계산해보면 3840 pixel 이 나온다.

4K에서 K는 1000배를 의미한다.
우리가 일상에서 사용하는 단위 km 은 1000m 이다.
그리고 kg 은 1000g 이다.

그러므로 4K 는 4000 을 의미하는거지만,
컴퓨터 세상에서는 1000 은 1024 로 계산하므로,

4K는 4 *…

협업 툴 Collaboration Tool

회사는 혼자서 일을 하는 조직이 아니다.
여러 사람들과 같이 협업을 하면서 조직이 굴러가는 곳이다.

그러려면, 회의도 해야 하고, 문서도 주고 받아야 하고, 스케줄도 체크해야 하고,
등등.... 구성원들과 서로 정보 교환해야 할게 너무 많다.

위와 같은 문제를 도와주는 프로그램을 "협업 툴"이라고 한다.

대표적인 협업 툴은 Atlassian 이라는 회사에서 만든
Jira,Confluence 가 있다.

그러나, 조금만 구글링을 해보면,
무수히 많은 협업 툴들이 존재한다는걸 알게 된다.

나열해 보자.
유료도 있고, 무료도 있다.

www.trello.com
www.meistertask.com
www.asana.com
www.freedcamp.com
www.slack.com
www.jandi.com
www.quip.com
www.realtimeboard.com
www.basecamp.com
www.blossom.co
www.instagantt.com
www.redmine.org
www.wrike.com
www.bitrix24.com
www.gantter.com
www.instagantt.com
www.kanbantool.com
www.weebly.com
www.realtimeboard.com
www.teamgantt.com
www.podio.com
www.redbooth.com
www.stackfield.com
www.mantisbt.org
.......
더 있다. 많다. 진짜 많다.

아마도 구글에서 위 협업 툴들을 검색하다보면,
고구마 줄기처럼 새로운 협업 툴들이 계속 나타날 것이다.

하나씩 사용해 보고, 자신에게 맞는거를 고르면 된다.
그런데.... 생각해보니 정말 무책임한 말같다.

하지만 어쩌겠는가,
뭐.....업무도 다르고, 사람마다 취향도 다르니..... 어쩔수없지 뭐.

만약, 프로그램 개발이나,
소스 코드를 관리하는 업무를 하는 경우라면,

gitlab 혹은 bitbucket 를 꼭 사용해 보기를 바란다.

source 관리도 해주고,
bug tracking 관리도 해주고,
암튼 …

PostgreSQL src-backend-postmaster-autovacuum.c

PostgreSQL function-call-graph

PostgreSQL src-backend-main-main.c

Jenkins 젠킨스 Git 깃 연동 (2)

이미지
예제를 통해 실습을 해보자.

실습에 사용할 샘플 프로그램은 "youtube downloader" 이다.

이름 그대로 youtube 의 URL 을 통해 영상을 다운로드 하는 프로그램이다.

이곳에 가면, 소스와 설명을 살펴 볼 수 있다.
https://github.com/rg3/youtube-dl

"Clone or download" 을 클릭하면 git 주소를 얻을 수 있다.


사전에 먼저 필요한 패키지를 설치하자.
youtube-dl 을 컴파일하는데 필요한 패키지들이다.
% sudo apt-get install zip python pandoc

Jenkins 젠킨스에서 새로운 Item을 생성한 후, 아래처럼 설정한다.



설정을 완료되었으면, Build Now 를 클릭한다.


#1 은 작업 번호를 나타낸다.
#1 작업의 시작 시간을 클릭하면 세부 항목을 볼 수 있다.


Build 의 실제 진행 상황을 볼 수 있다.


Build 완료 후, 실행해 보자.


정상적으로 잘 수행되는걸 확인할 수 있다.
youtube-dl 사용법은 구글링해서 참고하면 된다.





출처
https://jenkins.io
http://jibak.tistory.com/11
http://jibak.tistory.com/12
http://ict-nroo.tistory.com/35
http://yookeun.github.io/tools/2014/09/18/jenkins-github
http://jojoldu.tistory.com/291

Jenkins 젠킨스 Git 깃 연동 (1)

이미지
Jenkins(젠킨스)와 Git(깃)을 연동해 보자.

새로운 Item 을 클릭한다.


새로운 Item 을 만드는 화면이 나온다.


Enter an item name 을 자유롭게 입력한 후,
Freestyle project 를 클릭한다.


"소스 코드 관리" -> "Git" 클릭한다.
"Repository URL" 에 소스코드가 들어 있는 git 주소를 입력한다.

주소는 ssh 로 시작하는 주소를 넣으면 된다.
왜냐하면 ssh 로 시작하는 주소는 authorized_keys 를 등록해 놓으면,
소스를 가져올 때 암호를 물어보지 않기 때문이다.


Git 주소를 입력하면, jenkins(젠킨스)는 접속 테스트를 시도한다.
authorized_keys 가 등록되어 있지 않다면, 에러가 발생한다.

Git 주소가 public 이면 상관없지만,
public 이 아닐 경우는 authorized_keys 를 등록해야 한다.


Git 주소 입력 후, Add 버튼을 클릭한다.


Credentials 를 추가하자.
Username, Description 은 적당히 넣으면 된다.
Password, ID 는 Git 에서 사용하는 계정을 넣으면 된다.


"Build" -> "Add build step" -> "Execute shell" 클릭한다.


이곳에서 빌드를 수행할 명령어를 입력 하면 된다.
일반적으로 ./configure; make; make install; 를 넣으면 된다.
./configure
make
make install
테스트를 위해 mk.sh 라는 쉘을 만들고 수행이 되는지 확인해 봤다.
./mk.sh
"저장" 을 클릭한다.


"Project Item 1" 화면으로 전환된다.
"Item 1" 은 위에서 설정한 이름이므로, 설정에 따라 다르게 나타날 것이다.


"Build Now" 를 클릭하면, B…

Jenkins(젠킨스) 설치

이미지
Jenkins(젠킨스)는 소프트웨어 개발 시 지속적으로 통합 서비스를 제공하는 툴이다.
CI(Continuous Integration) 툴 이라고 표현한다.

이게 무엇인고 하고 구글링을 해보니,
다수의 개발자들이 하나의 프로그램을 개발할 때 버전 충돌을 방지하기 위해 각자 작업한 내용을 공유영역에 있는 저장소에 빈번히 업로드함으로써 지속적 통합이 가능하도록 해주는 것이라 한다.

이건 또 무슨말인가.... 하고 구글링을 더 해보니,
옛날옛날에는 개발자들이 당일 작성한 소스들의 커밋이 모두 끝난 심야 시간대에,
build(빌드)를 실행하는 방식이 일반적이었다.

Jenkins(젠킨스)와 같은 CI(Continuous Integration) 툴이 등장하면서,
GIT, SVN 같은 버전관리 툴과 연동하여 소스의 커밋을 감지하면,
자동적으로 빌드가 작동되도록 하는 방식이다.

원래 허드슨 프로젝트로 개발되었고, 지금은 Jenkins(젠킨스) 이름으로 변경되었다고 한다.
이러쿵 저러쿵 내용이 많아서 여기까지 하고, 직접 사용해 보자.

Jenkins(젠킨스) 설치 전에 먼저 Java, Tomcat 이 설치되어 있어야 한다.

Java 설치는 여기를 참고하자. http://kimchki.blogspot.com/2019/03/ubuntu-1604-java-8-open-jdk.html

Tomcat 설치는 여기를 참고하자.
http://kimchki.blogspot.com/2019/03/ubuntu-1604-tomcat-8.html

Jenkins(젠킨스)를 다운로드 하자.
https://jenkins.io/download


지원하는 플랫폼이 많다.
Azure
Docker
FreeBSD
Mac
OpenBSD
openSUSE
Red Hat/Fedora/CentOS
Ubuntu/Debian
Windows
Generic Java package (.war)

플랫폼은 패키지 형태로 설치하는거고, deb rpm msi pkg(mac) 형태로 제공하는거고, docker 는 docker pull 명령어를 사용하는거고, wa…

Ubuntu 16.04 에 Tomcat 톰캣 8 설치

이미지
Ubuntu 16.04 에 Tomcat 톰캣 8 을 설치해 보자.

% sudo apt-get install tomcat8


설치가 잘 되었는지 확인해 보자.
Tomcat 톰캣은 8080 포트를 사용한다.
http://127.0.0.1:8080


위 페이지가 나오는 root directory 위치이다.
/var/lib/tomcat8/webapps/ROOT/index.html



출처
http://nahosung.tistory.com/97
http://coding-factory.tistory.com/58
http://kurts.tistory.com/6

Ubuntu 16.04 에 Java 자바 8 Open JDK 설치

이미지
JAVA를 사용하기 위해 JDK를 설치해 보자.

JAVA는 OPEN JDK, ORACLE JDK 2가지가 존재한다. ORACLE JDK는 유료이므로, OPEN JDK를 설치해 보자.
apt 명령어를 사용해서 간단하게 설치 가능하다.
% sudo apt-get install default-jdk


JRE만 설치할 수도 있다.
% sudo apt-get install default-jre


설치 완료 후, 버전을 확인해 보자.
% java -version
openjdk version "1.8.0_171"
OpenJDK Runtime Environment (build 1.8.0_171-8u171-b11-0ubuntu0.16.04.1-b11)
OpenJDK 64-Bit Server VM (build 25.171-b11, mixed mode)

% javac -version
javac 1.8.0_171


java를 원활하게 사용하기 위해서는, JAVA_HOME 을 설정해야 한다
java 가 어딨는지 검색해 보자.

% which java
/usr/bin/java

심볼릭 링크로(symbolic link) 되어 있을테니, 원본을 살펴보자.
% ls -l /usr/bin/java
/usr/bin/java -> /etc/alternatives/java

다시 한번 확인해 보자
% ls -l /etc/alternatives/java
/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java

이번에는 심볼릭 링크가(symbolic link) 아니라 진짜 파일이다.

java 관련 환경 설정을 하자. export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/jre export PATH=$PATH:$JAVA_HOME/bin
export CLASS_PATH=$CLASS_PATH:$JAVA_HOME/lib




출처
https://www.hostinger.com/tutorials/install-java-ubuntu
http:…

Oracle JDK , Open JDK 차이

Firefox Send 출시 - 2019.03.12

이미지
2019.03.12 에 Firefox 브라우저를 관리하는 Mozilla 재단에서,
파일 전송 서비스를 만들었다.

서비스 이름은,
Firefox Send

파일을 웹브라우저를 통해서 업로드 하고,
링크를 생성하고,
다른 사람이 그 링크를 통해 다운로드 하는 방식이다.

네이버, 다음, 센드애니웨어 등등
대부분의 서비스들이 사용하고 있는 방식이다.

Firefox Send 에서 비회원은,
파일 크기가 1GB 까지만 전송 가능하고,
회원가입을 하면 2.5GB 까지 전송 가능하다.
더군다나, 무료!!!

아래 링크에 들어가면,
아주 자세한 내용을 볼 수 있으니 참고하면 된다. (영어로)

https://blog.mozilla.org/blog/2019/03/12/introducing-firefox-send-providing-free-file-transfers-while-keeping-your-personal-information-private

https://blog.mozilla.org/firefox/use-firefox-send-to-safely-share-files-for-free

무료니까 직접 사용해 봤다.


https://send.firefox.com 접속한다.


회원가입 or 로그인을 해본다.


메일함에 들어가서, 가입 확인 체크 링크를 클릭한다.


가입이 성공적으로 되었다.


구글 크롬 브라우저를 사용해서 접속하면,
상단에 "Firefox 브라우저 사용해보세요~" 라고 광고가 뜬다.


Firefox 브라우저를 사용해서 접속해 보면,
광고 메세지 표시가 나오지 않는다.


파일을 하나 선택해 본다.


여러개의 파일을 선택해서 upload 할 수 있다.


다운로드 횟수를 정할 수 있다.


다운로드 기간을 정할 수 있다.


실제로 업로드 속도가 얼마나 나오나 궁금해서 테스트 해봤다.


약 1MB/s 정도 속도가 나온다.


업로드가 완료되면, 다운로드 할 수 있는 링크가 생성된다.
이 링크를 다른 사람에게 전달하면, 해당 파일을 다운로드 할 수 있다.


링크를 클릭했을 때, 이런식으로…