728x90

 

 

Sequel Pro를 다운받고

ssh통해서 데이터베이스를 열고자 하였다.

대학교 이후로 db관련 ide를 언제 열어봤던가..

떨리는 맘으로 ssh 관련 정보를 입력하고, 이전에 가지고 있던

key 파일 [~~].gem 파일의 링크를 걸어주었다.

하지만 귀신과 같이 연결 실패, 오랜만에 찾아온 손님에게 문전박대라니..

 

다행이도 에러 내용을 상세하게 전달해주고 있었다.

전체 에러 내용은  아래와 같다

 

{나의 key 파일} are too open.

It is required that your private key files are NOT accessible by others.

bad permissions: ognore key : {나의 key 파일}

 

이는 나의 키 파일의 권한과 관련된 문제때문에 발생된 것이다.

기본적으로 ssh에서 사용할 수 있는 키는

 

1. 사용자 외 접근 불가

2. 수정 불가

 

를 만족 시켜야 정상적인 키로 인식되고

문제 없이 기능할 수 있다.

 

나의 경우 내가 키 파일 내부의 내용을 한번 수정하면서 해당 파일이 

수정가능한 상태로 되었기에 위와 같은 에러가 발생한 것이다..!

gem파일을 직접 수정하지는 않고 text로 확장자 변경했다가 왔다갔다,,,

 

고로 해당 파일의 권한을 수정해주면 된다.

사용자 외 접근 불가 + 수정 불가 파일로 권한을 바꾸어 주면 된다.

 

권한 관련된 명령어 chmod 를 사용해 준다.

파일 주소를 쭉 쳐도 되겠지만, 나의 경우

터미널을 키고 해당 파일로 경로 이동후에

아래와 같은 명령어를 실행해 줬다.

 

$ chmod 400 {나의 key 파일 이름}

 

그러고 나서 다시 데이터베이스 IDE에서

key값을 이용해서 연결을 시도하면

정상적으로 접근할 수 있다!!!

 

EZ.피지.

 

 

 

 

 

 

 

728x90

'Back-end' 카테고리의 다른 글

Django settings.py 파일 분석해보기  (0) 2024.06.10
Django 프로젝트 시작해보기  (2) 2024.06.05
[venv] 가상환경과 venv 세팅 알아보기  (4) 2024.06.04
728x90

 

이 세팅s 파일에 무슨 내용들이 있는지 체크 해보려고 한다.

 

BASE_DIR

루트 디렉토리 설정입니다! 

아래와 같이 기본적으로 설정되어 있는데, 

Path() : 파일 시스템에서 파일경로를 관리하는 함수입니다.

__file__ : 현재 파일, 여기서는 settins.py

resolve() : 절대 경로를 뽑아줍니다.

parent : 부모 폴더를 의미합니다.

 

BASE_DIR = Path(__file__).resolve().parent.parent

 

SECRET_KEY

암호화 인증에 사용되는 비밀키이다. 일반적으로 프로젝트 생성시에 settings.py에 생성된다. 하지만 해당 비밀키는 공개되면 안되기에

코드단에서 관리해주면 안된다. (개인 프로젝트라면 문제없겠지만) 후에는 json이나 environ등의 방식으로 외부에 따로 저장해야한다.

 

DEBUG

개발시에는 True, 프러덕션일때는 False 로 설정해주면 된다.

에러 발생시에 전자는 디테일한 정보를 주고 후자는 Not Fount 등의 표시만 보이고 아무런 표시가 보이지 않는다.

 

ALLOWED_HOSTS

운영 서비스시 호스트로 가능한 목록이다. 

 

INSTALLED_APPS

현재 장고 프로젝트에서 사용되는 어플리케이션 목록입니다. 단어 하나가 폴더 경로라고 생각하면 쉽습니다.

issue/qwe/user 라고 한다면 issue 폴더 안에 qwe 폴더 안에 user 관련된 내용의 어플리케이션입니다.

 

MIDDLEWARE

장고에서 발생하는 요청과 응답 처리에 연결되는 프레임 워크입니다. 

 

DATABASES

디비와 관련된 세팅을 하는 부분입니다. 기본적으로 sqlite3로 설정되어있습니다. 

 

LANGUAGE_CODE, TIME_ZONE

시간 지역 설정과  언어 설정입니다. 'ko-KR', 'Asia/Seoul' 을 하용합니다.

 

USE_IN18N, USE_L10N, USE_TZ

각각 번역 시스템 활성화 여부, 현지화된 데이터 형식 사용여부, 시간대 인식여부를 설정하는 변수입니다.

 

 

728x90
728x90

 

프로젝트 생성을 원하는 폴더로 이동 후에 아래 명령어를 순차적으로 입력해준다.

$ python3 -m venv venv # 가상환경 생성
$ source venv/bin/activate # 가상환경 실행

$ pip install django # 장고 설치
$ pip install djangorestframework 

$ django-admin startproject issuelist .  # 현재 폴더에 장고프로젝트 생성 'issuelist'

 

여기서 마지막 명령어에  . 이 빠지지 않도록 유의!! 지금 현재 있는 디렉토리를 뜻한다.

 

그러고 나면 가상환경 상태애서 issueList 라는 프로젝트와 manage.py 파일이 생성된 것을 확인할 수 있다.

구체적인 구조는 아래와 같다.

 

__init__.py : 해당 폴더가 파이썬 패키지라는 것을 알려줍니다. (내용 X)

manage.py : settings.py 에 설정된 부분을 가지고 오는 등의 사이트 관리를 하는 파일입니다.

settings.py : 설정 추가해주는곳 입니다.

urls.py : url 패턴 목록을 관리합니다.

asgi.py, wsgi.py : 장고 프레임워크가 작동하기 위한 웹서버 인터페이스 

 

정도로만 체크체크!

 

그리고 나서 해당 명령어로 마이그레이션을 진행한다.

마이그레이션이란, 장고에서 변경사항을 데이터베이스 스키마에 반영하는 과정입니다!

$ python3 manage.py migrate

 

 

db.sqlite3 이라는 파일도 추가되었습니다. 

그러고 나면 이제 실행할 일만 남았습니다.

$ python3 manage.py runserver

 

 

딱 보니 127.0.0.1:8000으로 접속하면 될것 같군요.  이는 localhost:8000 과도 같습니다.

해당 페이지에 접속하면 장고 웹 페이지가 실행된것을 확인할 수 있습니다.

 

728x90
728x90

 

가상환경이 어떤 것인지, 어떻게 실행하는지에 대해서 간략히 알아보고자 한다.

 

가상환경은 프로젝트 마다 다른 버전, 패키지 등을 관리하기 위해서 사용한다.

모든 프로젝트가 같은 버전을 바라보지는 않는다. 예전에 만든 프로젝트들은 이전 버전들을 참조하고 있을 것이고,

최근에 생성한 프로젝트들은 최신 버전들을 바라보고 있을 것이다. 

이때 동일한 환경에서 두 프로젝트를 돌리면 버전 문제로 제대로 된 실행이 되지 않을 확률이 높다. 

 

 

아래 그림에서 왼쪽은 가상환경을 사용하지 않았을 때의 환경이다. 같은 파이썬 환경을 공유하고, 두 프로젝트는 같은 버전의 C를 바라본다. 중간에 B프로젝트에서 C버전을 바꾼다면 A가 바라보는 C의 버전도 같이 변화한다. 얼마나 무서운 일인가!! 쵸비비이이이사아앙

하지만 오른쪽의 이미지 처럼 가상환경속에서는 자유로운 세팅이 가능하다. A와 B는 각각 원하는 패키지와 버전을 따로 참조할 수 있고 심지어 다른 파이썬 버전을 사용할 수도 있다. 

 

 

그럼 가상환경 세팅은 어찌 할까?

일단 세팅하기를 원하는 프로젝트 루트로 이동한다. 그리고 아래 명령어를 실행.

실행해주면 해당 이름의 폴더가 추가된다. 저 경우 가상환경의 이름을 'venv' 로 지었다.

$ python -m venv ${가상환경 이름}

 

 

폴더가 생성된것을 확인했으면 이제 실행을 시켜준다!

$ source ${가상환경 이름}/bin/activate       // Mac 실행 명령어
$ source ${가상환경 이름}/Scripts/activate   // Window 실행 명령어

 

종료할때는 간단히 단어 하나를 입력해주면 가상환경이 종료가 된다.

$ deactivate    // 가상환경 종료 명령어

 

728x90

+ Recent posts