Git 코드 관리 및 동기화
### Git 로컬 업로드
- 전역 설정
git config --global user.name "사용자"
git config --global user.email "이메일@도메인.com"
- 프로젝트 디렉토리 진입
- 초기화
git init
- 원격 주소 설정
git remote add origin https://gitlab.com/username/repository.git
- 로컬 버전 제출
git add .
git commit -m '커밋 메시지...'
- 원격 저장소에 제출
git push origin main
이 방법은 작동하지만 두 가지 문제점이 있습니다:
- 민감한 데이터가 공개 저장소를 통해 노출될 수 있습니다.
- 매번 커밋 시 비밀번호 입력이 필요합니다.
### .gitignore 파일 사용
`.gitignore` 파일을 만들어 무시할 파일 또는 폴더를 지정하여 버전 관리에서 제외합니다. 예를 들어, `https://github.com/github/gitignore/blob/main/Python.gitignore` 에서 Python 관련 `.gitignore` 파일을 가져와 사용할 수 있습니다.
### 설정 파일에서 민감 정보 보호
- 로컬: `local_settings.py` 에 로컬 환경의 특수 설정을 작성합니다.
- 서버: `settings.py` 에 서버 환경의 특수 설정을 작성합니다.
- `local_settings.py` 를 `.gitignore` 에 추가하여 버전 관리에서 제외하고, `settings.py` 에는 모든 환경에서 공유되는 설정을 작성합니다.
### SSH 키를 이용한 Git 로그인
매번 비밀번호 입력 없이 Git 작업을 수행하려면 SSH 키를 사용합니다.
- SSH 키 생성
ssh-keygen -t rsa
- 원격 저장소에 공개 키 등록
git remote set-url origin git@gitlab.com:username/repository.git
### Git 버전 전환
다양한 버전 간 전환 방법:
- 기록 확인
git log
- 특정 버전으로 이동
git reset --hard 1a2b3c4d5e6f7g8h9i0j
SSH 키를 이용한 서버 접속
서버에 SSH로 접속할 때 비밀번호 입력 없이 접근하려면:
ssh-copy-id -i ~/.ssh/id_rsa.pub root@서버_IP
MySQL 설치 및 설정
- MariaDB 설치
yum install mariadb-server -y
systemctl start mariadb
systemctl enable mariadb
- 사용자 및 데이터베이스 생성
mysql -u root -p
CREATE DATABASE db_name DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
GRANT ALL PRIVILEGES ON db_name.* TO 'user'@'%';
FLUSH PRIVILEGES;
Redis 설치 및 설정
- Redis 설치
yum install redis -y
systemctl start redis
systemctl enable redis
- 설정 변경
vim /etc/redis.conf
requirepass 비밀번호
Python 3 설치
- 의존성 설치
yum install gcc zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel libffi-devel -y
- Python 소스 다운로드 및 설치
wget https://www.python.org/ftp/python/3.9.5/Python-3.9.5.tgz
tar -xvf Python-3.9.5.tgz
cd Python-3.9.5
./configure
make && make install
가상 환경 설정
- 가상 환경 설치 및 활성화
pip3 install virtualenv
virtualenv /envs/myenv --python=python3.9
source /envs/myenv/bin/activate
코드 배포 및 설정
- 최신 코드 가져오기
- 의존성 패키지 설치
pip install -r requirements.txt
- `local_settings.py` 설정
DEBUG = False
ALLOWED_HOSTS = ['*']
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'db_name',
'USER': 'username',
'PASSWORD': 'password',
'HOST': 'localhost',
'PORT': '3306',
}
}
uwsgi 및 Nginx 설정
- uwsgi 실행
uwsgi --ini uwsgi.ini
- Nginx 설정
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
location / {
uwsgi_pass unix:/tmp/uwsgi.sock;
include uwsgi_params;
}
}