01. Java
02. git
03. Database
04. Jsp [Server]
05. HTML,CSS
07. JS
06. 미니프로젝트-2W
08. SpringFramework , SrpingBoot
19. 중간프로젝트 (1M)
10. Linux 명령어 (v)
11. AWS
12. React JS [Front-end]
13. DevOps - Docker
14. App - Android
15. 최종프로젝트 (1M)
useradd 사용자명
passwd 사용자명
usermod 옵션 사용자명
userdel 사용자명
sudo chsh -s 쉘타입 계정명
sudo chsh -s /bin/bash user01
sudo chsh -s /bin/sh user01
su 계정명
sudo chown 옵션 소유자:소유그룹 디렉토리경로
- 폴더나 파일의 소유권을 바꾸는 명령
- 소유권 변경은 sudo권한 필요
-R
옵션은 하위폴더의 모든 소유권을 리컬시브로 하게 변경
- 쉘스크립트는 사용할 수 있는 명령어들의 조합을 모아서 만든 배치파일
- 운영체제의 Shell을 이용해 한줄씩 순차적으로 읽으면서 명령어들을 실행시켜주는 인터프리터 기반 프로그램 실행파일
- 쉘파일은 변수, 제어문도 사용가능
- rwx = 읽기쓰기실행
- rwxrwxrwx = 소유권자 : 소유그룹권한 : 다른사람에대한권한
chmod 권한이진수합 파일명
chmod 764 ./createUser.sh
- 실행파일 안에서 매개변수의 개수를 $1, $2, $3 .. 으로 표현
- 실행시킬때
./실행파일명 매개변수1, 매개변수2, 매개변수3
으로 실행
- wget명령어로 다운
- FTP통신으로 tar파일을 옮기고 압축해제하고 실행
- apt명령문으로 파일 다운
apt는 인터넷을 통해 원격에 저장된 패키지를 다운로드 받아서 설치해주는 향상된 패키지 관리 도구
향상된 패키지 관리 도구 apt는 피룡한 파일을 다운로드 하고 환경 설정까지 처리 해줌
인터넷 연결 확인
- curl은 Client Url 이란 의미로 클라이언트에서 url을 사용해 서버와 데이터를 송수신하는 명령어 툴
curl 외부인터넷주소
apt-get update
apt search 패키지명
apt-get install 패키지명
sudo apt-get install openjdk-11-jdk
java -version
javac -version
- 하나의 서비스 또는 어플리케이션이 하나의 거대한 아키텍쳐를 가짐
- 데이터베이스는 같은 서버에 묶을 수도 있고, 다른 서버에 분리해서 설계할 수도 있음
- 분산환경
자바설치
mysql설치
- apt방식으로 mysql을 받고 설치
sudo apt-get install mysql-server
- mysql접속
sudo mysql
- root유저정보확인
use mysql;
select user, host, plugin from user;
- 초기비밀번호설정
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password by '비밀번호';
- root계정이 외부에서 접속가능하도록 업데이트
UPDATE mysql.user SET Host='%' WHERE USER='root';
- 권한적용
FLUSH PRIVILEGES;
m
- 탈출
exit
- 트러블 슈팅 : 외부접속이 막히는 경우 외부에서 접근할 수 있도록 약간의 수정이 필요
- mysqld.cnf파일 수정
grep -r bind /etc/mysql
- 해당파일의 로컬에서만 접속하는 부분 주석처리
sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
- i키 입력 후 주석처리하고 :wq 저장
- mysql재부팅
sudo service mysql restart
개발서버에서 프로젝트 빌드
- 컴퓨터가 코드를 실행 시킬 수 있도록 컴파일하며, 어플리케이션에 필요한 라이브러리를 통합하고 합치는 과정
- EC2에서 프리티어로 제공하는 운영체제는 사양이 좋지 않기 때문에 윈도우에서 빌드
- 레이아웃을 쓰는 경우 th:replace부분을 ./경로/경로 형태로 전부 수정
- 파일 업로드 경로 처리
- 개발 환경의 업로드 경로 \를 전부 우분투 환경의 경로에 맞추어 /로 변환
- 우분투에 만들어지는 로컬 업로드 폴더는 window와 다름
- app-properties파일의 업로드 경로를 우분투의 경로 /home/ubuntu/upload형태로 바꿈
- 우분투에 /home/ubuntu/upload폴더를 만들어줌
- 파일을 업로드 하려면 어플리케이션이 폴더를 rwx할수 있는 권한이 있어야 함
sudo chmod -R 777 /home/ubuntu/upload
으로 누구나 다 rwx할수 있는 권한을 줌
- 운영 데이터베이스의 접속 주소가 다르다면 수정
java -jar 경로/프로젝트.jar
FTP통신을 이용해 빌드 된 파일 전송
스프링부트인 경우 백그라운드로 war(jar)파일 실행
java -jar 경로/프로젝트.jar
- 포그라운드 실행 시 터미널을 종료하면 어플리케이션도 종료
nohup java -jar 경로/프로젝트.jar &
- 우분투 서버에서 실행파일을 백그라운드로 동작
- 터미널을 종료해도 어플리케이션은 백그라운드로 동작
- 실행로그는 nohup.out파일에 기록록
tail -fn50 nohup.out
- 운영 환경에서 에러는 이곳에서 볼 수 있음
- 백그라운드 실행되는 파일은 프로세스 번호로 종료
- 프로세스 확인 명령
ps
- 프로세스 중 jar파일을 찾는 명령
pgrep *.jar
- 프로세스 종료(755권한 필요)
sudo kill -9 PID번호