MacOS 에 OpenJDK 설치 (HomeBrew 사용)

  • 다른 버전의 OpenJDK 설치하기

    $ brew tap AdoptOpenJDK/openjdk
    $ brew cask install {JDK버전}
  • 입력 가능한 JDK 버전 종류

    1. OpenJDK8 - adoptopenjdk8
    2. OpenJDK9 - adoptopenjdk9
    3. OpenJDK10 - adoptopenjdk10
    4. OpenJDK11 - adoptopenjdk11
  • 예시

    $ brew tap AdoptOpenJDK/openjdk
    $ brew cask install adoptopenjdk8

[Webhook]

- 웹훅은 새 이벤트 (클라이언트 측 응용 프로그램이 관심을 가질 수있는)가 서버에서 발생한 경우 서버 측 응용 프로그램이 클라이언트 측 응용 프로그램에 알릴 수있는 메커니즘을 제공합니다.


- "역방향 API" 라고도 합니다 . 일반적인 API는 클라이언트가 서버를 호출합니다. 반면 웹훅의 경우 웹훅 (클라이언트에서 제공하는 URL)을 호출하는 서버 측에 등록하면 서버에서 특정 이벤트가 발생했을 때 클라이언트를 호출합니다.


* 특정한 Event가 발생하면 ➔ Trigger로 웹훅이 동작하고 -> 지정한 Action이 일어납니다


[Yona - Mattermost 를 통한 웹훅 테스트]

1. Mattermost 의 팀 설정에서 Incomming Hook 생성 (생성된 webhook url 복사)

2. 요나의 프로젝트 -> 설정 -> 웹훅 -> 새 웹훅 생성 항목에 복사한 Mattermost 웹훅 url 추가

3. 해당 프로젝트에서 이슈 생성 및 수정, 삭제 등등 작업

4. Mattermost 채널에서 봇에 의한 이슈 알림 확인

------------------------------------------------------------------------------------------------------------


1)



2)



3)



4)



---

[Yona 란]

- 네이버에서 개발한 설치형 이슈트래커

- 팀 업무 및 회사의 업무 생산성이 높아지며 정보의 생성, 축적, 공유가 훨씬 편해짐
- 개발조직 / 비개발조직 간의 진정한 협업을 지향
- 그룹 및 프로젝트 단위로 관리 가능(사내에선 프로젝트를 팀 단위로 사용 예정)
- 각종 문서나 파일을 쉽게 공유할 수 있는 게시판 있음

[설치 방법]

* Docker 사용

* docker-compose file


version: '2'
services:
yona:
image: pokev25/yona:latest
container_name: yona
restart: always
environment:
- BEFORE_SCRIPT=before.sh
- JAVA_OPTS=-Xmx2048m -Xms1024m
volumes:
- /home/yona/data:/yona/data # 데이터를 유지할 위치 설정
ports:
- "9000:9000"

yona_db:
image: mariadb
container_name: yo_db
restart: always
volumes:
- /home/yona/mysql/data:/var/lib/mysql # 데이터를 유지할 위치 설정
ports:
- 3306:3306
environment:
MYSQL_ROOT_PASSWORD: 1234
MYSQL_DATABASE: yona
MYSQL_USER: test
MYSQL_PASSWORD: 1234
command:
- --character-set-server=utf8mb4
- --collation-server=utf8mb4_unicode_ci

# docker-compose -f docker-file.yml up -d


* 컨테이너 시작 후 오류가 발생하고 요나가 정상 실행되지 않을 수 있음. (설정이 제대로 완료되지 않은 상태)

* /home/yona/data/conf/application.conf  - 해당 파일이 생성된 것을 확인하고 수정하기

(db 연결 설정 : db_name 은 docker 를 이용해 mariadb 를 생성할 때 지정한 이름과 동일하게 입력)

~~~~

# MariaDB

db.default.driver=org.mariadb.jdbc.Driver

#db.default.url="jdbc:mariadb://192.168.0.0:3306/db_name?useServerPrepStmts=true"

db.default.url="jdbc:mariadb://192.168.0.0:3306/yona?useServerPrepStmts=true"

db.default.user=test

db.default.password="1234"

~~~~

(현재 서버 설정 확인)

application.scheme="http"

application.hostname="192.168.0.0"

application.port="9000"

~~~~

(메일 알림 기능을 사용하려면 아래 설정 수정 필요)

smtp.host = smtp.gmail.com

smtp.port = 465

smtp.ssl = true

smtp.user = "내이메일@gmail.com"

# Be careful!!! Not to leak password

smtp.password = "password"

smtp.domain = gmail.com

#true to use mock mailer for testing, false for using real mail server

smtp.mock = false

# optional, size of mail archive for tests, default: 5

smtp.archive.size = 5

~~~~

(나머지 설정은 필요 시 확인 후 수정)


* 설정 변경 후 다시 컨테이너 시작하면 정상적으로 실행됩니다.



[옵션 몇가지]

* 설정 파일 : /home/yona/data/conf/application.conf


- 가입시 관리자가 승인해야 하는 기능

# signup.require.admin.confirm = true


- 특정 도메인의 이메일만 수신을 가능하게 제한하는 기능

# application.allowed.sending.mail.domains = ""


- 최초 가입시 메일로 유효 메일 확인을 하는 기능

# application.use.email.verification = true


- 로그인 하지 않으면 어떠한 페이지도 보이지 않게 만드는 기능

application.allowsAnonymousAccess=true


--------------------------

* 일반 EBS(ELASTIC BLOCK STORE)를 사용중일 경우 서버를 중지하지 않고도 볼륨을 확장할 수 있습니다.

* 서버를 중지하지 않고 확장 진행 가능 : t2, m3, m4, c3, c4, r3, r4등 현제 세대 인스턴스

* 서버를 중지해야만 확장 진행 가능 : m1, m2, c1, c2, t1 등 이전 세대 인스턴스


[진행 방법]]

* 스크린샷은 제가 이미 디스크 용량을 10 -> 20 기가로 확장 한 후 찍어서 조금 다르게 나옵니다.


1. AWS 콘솔에 접속 후 EC2 대시보드로 이동


2. EBS(ELASTIC BLOCK STORE) - 볼륨 메뉴로 이동 후 확장하려는 인스턴스의 볼륨 선택



------------------------------------------------------------------------------------------------------------------------------------------------------------------------


3. 해당 볼륨을 오른쪽 클릭(또는 상단 작업버튼)을 통해 '볼륨 수정(Modify Volume)' 기능 성택


------------------------------------------------------------------------------------------------------------------------------------------------------------------------


4. 확장하려는 만큼의 디스크 용량 입력 후 수정



------------------------------------------------------------------------------------------------------------------------------------------------------------------------


5. 선택한 볼륨의 상태(state) 값이 'in-uses-optimizing' 으로 변하면 다음 작업 진행 (새로고침을 눌러 확인)



------------------------------------------------------------------------------------------------------------------------------------------------------------------------


6. EC2 인스턴스 쉘(SSH) 접속

7. lsblk 명령어를 통해 현재 디스크 상태 확인

8. sudo growpart /dev/xvda 1   (/dev/xvda 과 1 사이의 띄어쓰기 주의)

9. sudo resize2fs /dev/xvda1

10. 확장된 디스크 용량 확인 및 대시보드의 상태값 확인 (in-use - completed)











'Programming > ETC' 카테고리의 다른 글

웹훅(Webhook)이란?  (1) 2019.02.11
[Yona] 설치형 이슈 트래커 Yona 설치  (0) 2019.01.03
[VirtualBox] CentOS 7 가상환경 생성 및 셋팅  (0) 2018.11.09
[VirtualBox] 네트워크 설정  (0) 2018.11.08
이슈 트래커 종류  (1) 2018.09.19


<CentOS 7 가상환경 생성 및 셋팅>


1. 새 가상환경 만들기


1.1) 새로 만들기 클릭



1.2) 메모리 설정




1.3) 디스크 용량 설정



1.4) 가상 이미지 생성 완료



2. 가상환경 네트워크 준비하기


2.1) VirtualBox 전체 환경설정

* 각 가상환경 설정 버튼과 혼동하지 말자



2.2) 네트워크 탭에서 NAT 네트워크에 사용할 새로운 세팅 생성



2.3) 네트워크 CIDR 은 가상OS에 분배될 내부 네트워크 IP 주소대역임

ex) 평소 사용하는 공유기들이 192.168.0.xxx IP 를 분배해 주는것과 같음

* 위에 써있는 10.0.2.0/24 를 192.168.0.0/24 로 변경해도 됨



2.4) 현재 사용중인 호스트 컴퓨터와 가상OS 를 포트포워딩 설정할 수 있음

아직 가상OS 설치를 하지 않았으므로 비운상태로 넘어가고 가상OS 설치를 끝낸 후 다시 설정함



3. 가상 OS 설치


3.1) 가상환경을 클릭하고 위 설정 버튼을 눌러 설정화면으로 이동

또는 가상환경을 오른쪽 클릭해서 나오는 메뉴에서 설정을 클릭해도 됨

* VirtualBox 전체 설정과 혼동하지 말 것.



3.2) 저장소 메뉴에서 '컨트롤러 : IDE' 항목의 광학 드라이브 항목



3.3) 받아놓은 CentOS 7 이미지 파일을 선택



3.4) '컨트롤러 : IDE' 항목 아래에 이미지가 추가된거 확인 후 '네트워크' 메뉴로 이동




3.5) 네트워크 어댑터를 'NAT 네트워크' 그리고 이름 항목을 2.3 에서 새로 만든 NAT네트워크 이름으로 지정



3.6) 기본적인 셋팅 완료. 가상 OS 설치 전 스냅샷 찍기

***** 스냅샷을 잘 만들어 두면 문제가 생겼을 경우 쉽게 복구할 수 있다. *****



3.7) 스냅샷 생성



3.8) 가상OS 설치 준비 완료


4. 가상 OS 설치


4.1) CentOS 7 설치 시작




4.2) 설치중 표시할 언어 - 한국어로 해도 상관없음



4.3) 기본적으로 네트워크가 꺼져있음. 클릭해서 설정을 변경하도록 하자.



4.4) 네트워크를 켜준다. 기본 설정이 자동으로 셋팅된다.

* 여기 나오는 IP 주소가 2.3, 2.4 에서 만든 NAT 네트워크 셋팅의 CIDR 네트워크 대역중 하나로 설정된다.

* 추후 이 IP로 포트포워딩을 설정한다.




4.5) 디스크 메뉴를 확인해야 한다.



4.6) 디스크 메뉴 안에서는 따로 건드릴건 없고 확인만 되면 완료 버튼을 눌러 되돌아가면 된다.



4.7) 두 항목 설정이 끝나면 설치시작 버튼이 활성화 되므로 설치시작 버튼을 눌러 다음 화면으로 넘어간다.



4.8) root 계정과 사용자 계정 둘다 설정해준다.



4.9) root 계정 비밀번호 설정



4.10) 사용자계정 설정

* 이 사용자를 관리자로 합니다. 체크하기



4.11) 설치가 끝날 때 까지 기다린다.



4.12) 설치가 끝나면 재부팅


*** 설치 끝나고 나서 스냅샷을 하나 더 찍어놓는 것도 좋다. ***

* 그러면 가상OS 를 사용하다가 문제가 발생했을 경우 지금 만든 스냅샷으로 복원하면

OS 를 새로 설치 하지 않고도 처음 OS 설치를 끝낸 순간으로 쉽게 돌아올 수 있다.


* 스냅샷 상태


5. CentOS 7 실행 및 네트워크 설정



5.1) 설치한 CentOS 7 을 실행한다.



5.2) 설치할 때 생성한 사용자 계정으로 로그인 후 ip addr 명령어를 통해 IP 를 확인한다.

OS 설치할 때 확인한 네트워크 IP 와 동일하게 표시될 것이고 이제 다시 2.3, 2.4 항목으로 돌아가 포트포워딩 설정을 해준다.



5.3) 가상OS CLI 화면에서 작업하기는 불편하므로 (해상도 변경의 까다로움, 클립보드 공유 설정 까다로움)

위처럼 SSH 포트를 포트포워딩 해주고 putty 또는 secureCRT 등등의 터미널 프로그램으로 작업할 수 있게 한다.



5.4) 터미널 프로그램으로 접속한다.

Host IP 는 현재 사용중인 컴퓨터 이므로 127.0.0.1 로 설정한다.

포트는 5.3 화면과 같이 가상OS 의 22번 포트와 매핑시킨 포트번호를 입력한다 (이 포스트에서는 10122)

접속 계정도 입력한다.



5.5) 접속해본다.



5.6) 위처럼 VirtualBox 화면을 사용하지 않고 터미널 프로그램으로 잘 연결되었다. 쉽게 작업하도록 하자.


*** 만약 웹서버를 올린다던가 DB 를 설치해서 테스트해보려 한다면

5.3 화면에서 가상OS 로 접근하려는 포트를 모두 추가해줘야 한다.

1) 웹서버라면 80 포트

2) DB 라면 각 DB에 맞는 포트 (ex : mysql - 3306)

그 외 필요한 포트를 모두 추가해 준다.

그 후에 웹서버나 DB를 실행하고 접근할 때는 Host 컴퓨터에서 127.0.0.1:10180 등과 같이 접속하면 된다.



***** 스냅샷은 자주 만들도록 하자. 매우 편하다. *****



-------------------------------------------------------


'Programming > ETC' 카테고리의 다른 글

웹훅(Webhook)이란?  (1) 2019.02.11
[Yona] 설치형 이슈 트래커 Yona 설치  (0) 2019.01.03
[AWS] EC2 인스턴스 디스크 볼륨 확장  (0) 2018.12.07
[VirtualBox] 네트워크 설정  (0) 2018.11.08
이슈 트래커 종류  (1) 2018.09.19

<네트워크 설정 종류별 특징>


출처: https://technote.kr/213


- NAT

- NAT 네트워크

- 브리지 어댑터

- 내부 네트워크

- 호스트 전용 어댑터

- 일반 드라이버



1. NAT (Network Address Translation)

- 가상머신 내부 네트워크 -> Host PC 외부 네트워크 단방향 통신 가능

- Host PC 내의 가상 머신 간의 통신 불가능



--------------------------------------------------------------------------------------------------------------


2. NAT Network

- 가상머신 내부 네트워크 -> Host PC 외부 네트워크 단방향 통신 가능

- Host PC 내의 가상 머신 간의 통신 가능



--------------------------------------------------------------------------------------------------------------


3. 브리지 어댑터 (Bridged Adapter)

- Host PC와 동등한 수준의 네트워크 구성

- 추가의 IP 할당이 필요함



--------------------------------------------------------------------------------------------------------------


4. 내부 네트워크 (Internal Network)

- Host PC와 독립적인 내부 네트워크

- 같은 Host PC 내의 가상 머신 간 연결이 가능



--------------------------------------------------------------------------------------------------------------


5. 호스트 전용 어댑터 (Host-only Adapter)

- Host PC를 포함한 내부 네트워크 (외부 네트워크와는 단절)

- 같은 Host PC 내의 가상 머신 간 연결이 가능



--------------------------------------------------------------------------------------------------------------


6. 일반 드라이버 (Generic Driver)

- 거의 사용되지 않는 모드

- UDP Tunnel networking과 VDE(Virtual Distributed Ethernet) 지원











* 이슈 트래커 - 이슈 트래킹 시스템 (ITS = ISSUE TRACKING SYSTEM)

* 다른 단어로 버그 트래킹 시스템 이라고도 함


- 협업 규모가 커질수록 이슈 트래커의 필요성이 커짐.

- 있으면 좋다 (근데 익숙해지기 전까지는 불편할 수도)


[고려사항]

- 이슈 관리 시스템은 개발팀외에 다른 팀과 협업시에도 사용하게 되므로 편리하고 쉬운 사용을 제공하는 것이 매우 중요하다.

  사용법이 너무 복잡하거나 UI 가 미려하지 않거나 잘 사용하기 위해서는 마크업 언어를 배워햐 하는등의 진입 장벽이 있을 경우 참여를 꺼리게 되며 개발팀 전용 도구로 인식되거나 버그 관리 전문 시스템 등으로 용도가 한정될 수 있다.

- 타 제품으로의 변경이 어려우므로 수정 및 확장성이 좋아야 한다.

- 외부 API 또는 시스템과의 연계를 많이 지원해줄 수록 좋다.

  특히 버전관리 (SVN, Git) 등 과는 거의 필수로 연동되야하므로 꼭 확인해보자.

- 검색 및 리포팅 시스템이 좋은지 확인.

- 사용하는 인원에 대해 메뉴얼 또는 교육이 필요함.

- 만들어 놨는데... 안쓰면...? 어느정도 강제해서 문화로 만들 필요가 있음.


* 참고 문서

https://en.wikipedia.org/wiki/Comparison_of_issue-tracking_systems

https://blog.gaerae.com/2014/05/issue-tracking-system-bug-tracking-system.html

https://blog.gaerae.com/2015/03/comparison-of-revision-control-software.html

https://www.lesstif.com/pages/viewpage.action?pageId=18219528



1) Asana
- https://asana.com
- 간결하고 유연한 프레임워크를 특징으로 하는 부분 유료 이슈 트래커.

2) Bugzilla
- https://www.bugzilla.org/
- Mozilla public license
- 모질라 재단에서 만든 이슈 트래커.

3) Phabricator
- https://www.phacility.com/
- 예전 나무위키:이슈 트래커가 이것을 사용했었다. 페이스북에서 내부용으로 사용하던 툴을 공개한 것.

4) Redmine
- http://www.redmine.org/
- 오픈소스 GNU v2 (무료)
- 언어 : Ruby
- Ruby 기반의 무료 이슈 트래커. 나무위키가 이전에 사용했던 이슈 트래커가 여기에 해당된다.
화면이 단순하고 필요한 기능만 있으며 svn/git 등의 형상관리 연계도 가능하다.
생활코딩에 관련 강의가 나와있어서 참고해도 좋다.

5) JIRA
- https://ko.atlassian.com/software/jira
- 언어 : Java
- Atlassian에서 개발한 유료 이슈 트래커.
같은 회사에서 만든 프로젝트 위키 사이트인 Confluence와 함께 사용하면 시너지 효과가 있다.

6) YouTrack
- https://www.jetbrains.com/youtrack/
- IntelliJ IDEA를 만든 JetBrains에서 개발한 유료 이슈 트래커.

7) Visual Studio Team Services
- https://visualstudio.microsoft.com/ko/team-services/
- 마이크로소프트에서 개발한 유료 이슈 트래커.
- VSTS를 클라이언트 기반으로 옮긴 Team Foundation Server도 있는데,
기업이 직접 서버를 호스팅하고자 할 때 사용된다.
VSTS는 이슈 트래커뿐만 아니라 비공개 Git 레포지토리, 지속적 통합,
그리고 Atlassian의 Confluence와 유사한 프로젝트 위키를 통합 제공하는 일종의 턴키 솔루션이다.

8) Trello
- https://trello.com/
- 간결하고 개성 있는 UI가 특징인 부분유료 이슈 트래커.

9) Mantis
- https://www.mantisbt.org/
- 오픈소스 GNU v2 (무료)
- 언어 : PHP
- 나무위키:이슈 트래커가 사용하고 있었다. 사마귀 캐릭터가 그려진 로고가 특징이다.
설치는 비교적 간단하지만, 그만큼 기능이 많이 부족하다.
버그 트래킹 중심으로 개발되어 이슈 관리가 어렵다.

10) Yona
- https://yona.io/
- 오픈소스(무료)
- 언어 : Java
- 네이버 개발자들이 만든 이슈 트래커. 네이버에서 내부용으로 사용하던 버전을 수정 공개한 것이다.
네이버 개발자들이 만들었기에 한글 처리가 매끈하다.
오픈소스 수익 구조 등의 문제로 요비(Yobi) 프로젝트가 포크되어 요나(Yona)로 이어졌다.


11) GitHub
- https://github.com/
- 기본적으로는 Git 호스팅 사이트이지만, 이슈 트래커 기능도 제공한다.

12) GitLab
- https://gitlab.com/
- GitHub와 유사한 사이트로, 이슈 트래커 기능을 제공한다.

13) Trac
- http://trac.edgewall.org
- 오픈소스 BSD (무료)
- 언어 : Python
- 기본 기능에 충실하며 미니멀리즘을 따르지만, 설치가 복잡하다.
TOW 등을 이용하면 설치는 비교적 간단하다.


* 요나 써보고 싶음.

* https://github.com/yona-projects/yona/wiki

+ Recent posts