포트폴리오를 구성하기 위한 기반조건으로는
1. jdk 1.8
2. tomcat 8.5
3. mysql(installer, workbench)
4. putty(puttygen 포함)
5. filezilla client
가 사전에 준비되어야 한다.
덧. enthea는 개인적으로 사용한 id값의 통일이므로, 추후 재사용되거나, 다른 경우에는 상황에 따라 올바른 값을 사용하여야 한다.
아마존 웹 서비스 이용
1. 아마존 웹 서비스에 가입한다
2. EC2에 진입한다. 이는 가상공간의 서버를 사용하는 서비스이다.
3. 인스턴스 생성 - 인스턴스 시작
4. ubuntu를 선택한다
5. 프리 티어 사용이 가능한 과금정책을 이용한다. 기본적으로는 무료로 사용할 수 있다.
6. 다음 페이지로 넘어와 의도하지 않은 종료로부터 보호를 체크한 후 다음 페이지로 넘어간다.
7. 스토리지 추가 페이지를 확인한 후 다음 페이지로
8. 태그는 인스턴스를 쉽게 구별할 수 있도록 기록한다.
9. 보안 그룹은 추후에 필요할때 구성할 것.
10. 이로써 웹 서비스의 서버가 구성되었다.
11. 새 키 페어 선택을 하고 키페어를 생성한다. 이 키 파일은 잃어버릴 경우 서버를 재구성해야 한다.
12. 이로써 웹 서비스의 서버의 구성 및 시작이 완료되었다.
13. 좌측 인스턴스 탭을 눌러 연결버튼을 클릭한다.
14. 퍼블릭 DNS를 이용하여 인스턴스에 연결에 표시된 주소를 복사 및 기억한다.
ec2-52-14-216-119.us-east-2.compute.amazonaws.com
15. puttygen을 실행하여 11에서 생성된 키 페어를 load한다.
16. 키를 save private key 하여 ppk로 저장한다.
17. putty를 켜서 hostname에
ubuntu@ec2-52-14-216-119.us-east-2.compute.amazonaws.com
라고 입력한다.
SSH - Auth 탭 마지막의 private key file for authentication에 browse 하여 16에서 만든 ppk파일로 설정한다.
그 후 save 하여 설정을 저장한다.
이후 저장된 session을 더블클릭하는것으로 접속할 수 있다.
18. 이후 apt-cache search svn을 입력하여 svn 패키지를 검색한다.
19. sudo apt-get install subversion을 하고 y를 입력해 svn 패키지를 설치한다.
20. mkdir svn 을 하여 svn 폴더를 생성하고 ls를 이용해 svn 폴더가 생성되었는지를 확인한다.
21.
sudo groupadd dev
sudo usermod -a -G dev ubuntu
를 하여 dev 그룹을 만들고 계정 ubuntu를 dev에 포함시킨다
그 후 cd svn 하여 svn폴더로 이동한다.
pwd를 통해 자신의 위치가 svn인지 확인한다.
22.
mkdir portfolio
를 통해 포트폴리오 폴더를 만든다.
sudo chown -R ubuntu:dev portfolio
sudo chmod -R g+rws portfolio
를 하여 권한을 부여하고 폴더를 재설정한다.
23.
sudo svnadmin create --fs-type fsfs /home/ubuntu/svn/portfolio
를 통하여 svn저장소를 파일시스템으로 생성한다.
24. cd를 이용하여 home/ubuntu/svn/portfolio/conf 로 이동한다.
sudo chown ubuntu authz
sudo chown ubuntu passwd
를 하여 authz폴더와 passwd폴더를 ubuntu계정으로 소유권을 변경한다.
25.
vi authz를 하여 authz를 편집한다.
authz 중
groups의 빈공간에 dev = enthea
맨 마지막에
[/]
@dev = rw
를 추가한다.
enthea는 자신이 설정한 id이다.
26.
passwd를 편집한다.
빈 공간에
enthea = 비밀번호
를 입력한다.
enthea는 자신이 설정한 id이다.
27. vi svnserve.conf하여 진입한다.
password-db = passwd
authz-db = authz
의 주석을 해제하여 읽어들일 수 있게 한다.
팁. vi로 권한이 부족해 변경이 불가능하다면 sudo vi로 변경할 수 있다.
28. svnserve -d -r /home/ubuntu/svn
을 입력하여 svn을 기동한다.
실행이 되지 않는다면 ll을 눌러(소문자 LL) 포트폴리오 폴더의 파일리스트를 확인한다.
db의 권한이 root에 있다면
sudo chown -R ubuntu db
를 하여 우분투 계정에 권한을 부여한다.
29.
svn mkdir -m 'test' --username enthea svn://localhost:3690/portfolio/trunk
를 입력하여 trunk를 밀어넣는다.
svn ls --username enthea svn://localhost:3690/portfolio
를 통하여 확인
svn 데몬 실행
svnserve -d -r /home/ubuntu/svn
svn 데몬 종료
killall svnserve
30. sudo apt-get install nmap을 입력하여 포트확인 패키지를 설치한다.
이후 nmap localhost를 입력하여 현재 서비스중인 포트를 확인한다.
31. 이제 방화벽 설정을 위해 아마존 웹 서비스의 보안 그룹을 선택한다.
default값이 아닌 '다른'(런치 위자드, 마이 시큐리티 그룹) 보안그룹을 선택하고
인바운드 - 편집 - 규칙 추가 - 포트레인지 3690 - 소스는 위치무관으로 정한다.
32. 이클립스에서 - 헬프 - 이클립스 마켓플레이스 - svn 검색
svn team provider를
설치한다.
33. window - preferences - team - svn - svn connector
에 제대로 적용되었는지 확인한다.
34. window - show view - other - svn - svn repositories
를 통하여 하단에 svn repositories를 추가
해당탭 new repositories location을 선택
URL에 아마존 URL을 입력
svn://과 포트를 추가
svn://ec2-52-14-216-119.us-east-2.compute.amazonaws.com:3690/portfolio
의 형태가 됨.
브라우즈를 눌러 연결됨을 확인하고 캔슬 후 finish
35. 이클립스 하단에 추가된 SVN Respositories의 오른쪽에 New Repository Location을 눌러 사용할 로케이션을 추가한다.
URL값으로
svn://ec2-52-14-216-119.us-east-2.compute.amazonaws.com:3690/portfolio
Authentication 에 아이디(enthea)와 비밀번호를 입력한 후 browse하여 시험한다.
이후 finish하여 추가한다.
36. 원하는 프로젝트를 웹 서버에 업로드하려면
원하는 프로젝트 - 우클릭 - team - share project - svn - next - 브라우즈 - 원하는 폴더 클릭 - 맨 뒤에 프로젝트명 추가(/프로젝트명) - ok
portfolio/java의 뒤에 원하는 프로젝트명을 추가
portfolio/java/원하는프로젝트명
이후 next에 comment창에 자신이 한 행동을 적고 finish
상기 행동으로 업로드 완료
37. 프로젝트 다운로드
java(사전에 저장된 폴더)에 들어가 원하는 프로젝트를 우클릭 후 checkout하여 다운로드
mysql의 서버 설치
38. sudo apt-cache search mysql
로 패키지를 찾고
sudo apt-get install mysql-server-5.7
을 설치
mysql -u root -p
를 통해 mysql로 접속
connect mysql;
을 통해 mysql에 연결
grant all privileges on *.*
to root@"%" identified by 'admin'
with grant option;
을 통하여 권한 부여
상기 admin은 임의적으로 지정된 비밀번호이다.
flush privileges;
로 권한부여를 마친다.
select user, host from user where user = 'root';
를 통하여 권한부여가 제대로 되었는지
(%가 부여되어 있는지)를 확인한다.
etc/mysql로 이동하여
sudo vi mysql.conf.d
를 입력하여 mysql의 설정파일을 관리자 권한으로 진입한다.
그 후 해당 폴더 내의 mysql.cnf에 커서를 맞추고 enter하여 진입한다.
입력모드로 변경하지 않고
/bind-address
를 입력하여 검색한다.
그 후, bind-address를 #을 입력하여 주석처리하여, 모든 컴퓨터에서 바인딩을 할 수 있도록 처리한다.
39. 아마존 웹 서비스에서
보안 그룹 - 인바운드 - 편집 - 규칙 추가
포트범위 3306에 위치 무관을 부여한다.
40. mysql을 제어하는 법
sudo service mysql stop | start | restart
를 하여 정지 | 시작 | 재시작을 선택할 수 있다.
팁.
Authentication is required to stop 'mysql.service'.
Authenticating as: Ubuntu (ubuntu)
의 오류는 sudo를 붙이지 않았을 경우, ubuntu계정으로 mysql을 제어하려 했을 때, 권한 문제로 인해 발생하는 오류이다.
41. mysql에서 커넥션(원각+버튼) 을 눌러 아마존 웹 서비스를 추가한다.
Hostname의 값을 상기
ec2-52-14-216-119.us-east-2.compute.amazonaws.com
주소값으로 변경한 후, test connection을 하여 테스트하여 본다.
테스트에서 성공할 경우 ok를 눌러 등록하여 준다.
42. 모델링 한 모델을 database - Forward Engineer 를 통하여 stored connection에 위에서 등록한 커넥션을 선택하고 업로드한다.
이후 업로드가 되었는지 확인하는 방법은
커넥션 탭에서 등록한 커넥션에 들어간 후, 네비게이터의 schemas에 mydb - Tables에 업로드한 모델이 있는지 확인하면 된다.
팁.
자바의 객체명은 javaMethod의 방식으로 단어의 첫 글자를 대문자로 표기하는데
sql에서의 컬럼명은 sql_column으로 언더바를 이용하여 표기함.
sql의 not null제약조건은 사용자에게 항상 입력받아야 할 때 사용한다.
팁.
5개의 게시판이 있을 때, 각 게시판에 attach_file1, attach_file2의 컬럼이 존재한다.
여러 개의 게시판에 같은 컬럼이 존재하기에, 같은 컬럼은 별도의 테이블로 분리할 수 있다.
그 후 분리할 때에 게시판마다 구분값을 하나씩 부여한다.
유저에게 관리자 권한을 부여하는 방법은
모든 유저에게 is_admin CHAR(1) 를 부여하고
기본값을 n으로 놓고, 관리자 권한을 부여할 사람에게 y값을 부여하여 처리하면 좋다.
43. mysql의 커넥션 탭에서
sql사용자 생성
네비게이터의 User and privileges
계정명과 패스워드를 부여한 후 Administrative Roles 에서 권한을 부여(DBManager나 DBA등)
DBA선택시 모든 권한 부여
Scheme privileges에서 사용자별로 데이터베이스를 지정해 줄 수 있음.
add entry에서 원하는 데이터베이스를 지정한 후, 하단의 옵션들 중 부여할 옵션을 체크한다.
select all을 클릭하면 모든 옵션이 부여되나, grant option은 제외된다.
이후 apply를 눌러 저장한다.
44. 서버대 서버 자료 밀어넣기
foward는 모델링된 자료를 밀어넣는 역할을 하며
schema transfer wizard는 서버대 서버로써 자료를 밀어넣는 역할을 한다.
소스 커넥션을 넘겨줄 서버로 잡고
타겟 커넥션으로 밀어넣게 된다.
그 후, 내보낼 데이터베이스를 선택하고 받을 데이터베이스를 선택한다.
원하는 폴더를 선택한 후 내보낸다.