목록분류 전체보기 (420)
초보 개발자
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bUSih4/btrsysBKokQ/Ki6fkmdfL00YxlPr6Kixnk/img.png)
장고로 다양한 모델을 만들 때, 일일이 데이터를 만들면 시간이 오래걸릴 것이다. 하지만 django-seed를 사용한다면 이러한 문제를 해결해준다. 먼저 django-seed를 다운로드 받아야한다. pipenv install django-seed 그리고 커맨더를 만들어서 사용을 해야 하는데, 아무 app에 management라는 폴더를 하나 만들고 그 안에 __init__.py와 commands폴더를 만들자 그리고 commands의 폴더안에 또 __init__.py를 만들고 seed_facilities.py를 만들자 전체전인 코드를 살펴보면 먼저 seed_facilities라는 명령어를 사용하기 위해선 Command라는 클래스를 하나 만들어주어야 한다. 그 클래스는 BaseCommand를 상속하고, 그 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cHbWzw/btrstJEMf7m/ZfINY3W0rcyYX8n8kr3Ojk/img.png)
퍼블릭 방식 접속 데이터 베이스의 옵션이 퍼블릭 액세스 가능으로 표시되어있어야 퍼블릭방식으로 접속이 가능하다. sudo mysql -h데이터베이스엔드포인트 -u아이디 -p 패스워드 입력 이렇게만 해주면 된다. 단, 이상태에서는 접속이 불가능 하다. 우리가 만든 데이터베이스의 보안그룹에 접속하여, 누구나 접속이 가능하도록 설정을 해주어야한다. 또 어떤 서버에 접속할 것인지 지정하는 포트번호도 지정해주어야 한다. 내 IP로 지정하면 내 IP에서만 접속이 가능하지만, anywhere로 해두면 어디서나 접근이 가능하다. 비공개상태 접속 데이터베이스에 우리가 생성한 EC2에서만 접근이 가능하도록 하는 것을 말한다. 좀 전과 반대로 불가능에 체크해주자. 그리고 ec2를 생성하고 그 ssh 방식으로 접근해보 ec2를..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/ct3dnW/btrsnnNAQr0/GCrKr5rn1xwy6Lpmn4Dvgk/img.png)
MySQL 설치 WSL2 터미널에서 아래 명령어로 Ubuntu 패키지를 업데이트합니다. sudo apt update 아래 명령어로 mysql을 설치합니다. sudo apt install mysql-server 설치확인하고 버전 번호를 확인합니다. mysql --version MySQL 시작 해당 명령어로 mysql을 실행합니다. sudo /etc/init.d/mysql start 위 명령어를 실행한 후에 아래와 같은 에러가 발생한다면 su: warning: cannot change directory to /nonexistent: No such file or directory 아래와 같이 명령어를 실행해줍니다. (리눅스OS에 따라 상이) # Ubuntu sudo service mysql stop sudo ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cpuxV0/btrsveq1fPG/Ru7wfVCfQ73RLPqKI3cFG0/img.png)
EC2를 생성하여 AWS로부터 하나의 컴퓨터를 받았다. 그리고 거기에 아래와 같이 명령어를 입력하여 python3을 python으로 입력해도 알아들을 수 있도록, pip3를 pip로 입력해도 알아들을 수 있도록 설정을 해주고, flask 와 boto3을 받았다. # python 이라는 명령어로 3 버전 이상을 실행하도록 하는 명령어입니다. sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 10 # pip3 설치 sudo apt-get update sudo apt-get install -y python3-pip # 버전 확인 pip3 --version # pip3 대신 pip 라고 입력하기 위한 명령어 # 아래 명령어를 입..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bd8WX2/btrsc2wnw0K/YbDhxnBdMvOVShWgK1Cah1/img.png)
EC2 인스턴스를 SSH로 접속하고 싶을 때는, pem 파일을 활용해야 한다. 그런데 보안특성 상 AWS 홈페이지에서 다운받은 pem 파일을 그대로 사용하면 permission 에러가 난다. 파일 자체에 권한이 너무 많이 부여돼서 위험하니, 권한을 제한하라는 경고 문구가 나온다. 리눅스 운영체제의 경우 sudo chmod 400 [파일명]으로 간단하게 파일 권한을 바꿀 수 있다. 그런데 윈도우에서는 chmod 400이라는 명령어가 안되니 다른 방법으로 권한을 바꿔주야 한다. 구글링해보면 속성 → 보안텝으로 들어가서 권한을 변경해주는 방법들이 있지만 그 방법대로는 제대로 권한이 변경되지 않았고, 결국 아래와 같은 코드를 cmd (Power shell 아님, power shell과 cmd는 문법이 조금 다름..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/XJAWU/btrsveLj77G/ksOnZiRyBhkrKH8gAk5WA1/img.png)
나의 버킷이 속하는 리전에서 정적호스팅을 사용하면, 빠르지만 만약 다른 리전에서 사용하면 느릴 것이다. 그럼 리전마다 s3를 만들어주면 해결이 가능하겠지만, 비효율적이다. cloud front는 이 부분을 해결해 줄 것이다. 아래의 그림과 같은 역할을 한다고 한다. cloudfront에 들어가서 우리의 버킷을 선택해주고 생성해보자! 편집에 들어가서 기본값을 s3에 있는 index.html로 지정해주면 새로운 도메인을 들어가면 바로 출력이 되는 것을 확인할 수 있다. github action을 사용하여 우리가 index.html을 수정하면 그 수정한 파일이 자동으로 s3에 저장되고 그 저장된 index.html이 cloudfront에서 다시 캐싱되는 것을 해주어야 한다. 따라서 먼저 IAM의 권한을 추가시..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bX2sie/btrr2y9Laa6/wYTNkL0QCSFXYMwVLaKpY0/img.png)
AWS는 여러나라에 데이터 센터를 갖고있다. 데이터 센터가 있는 나라를 리전이라 하고, 리전 내의 데이터 센터 위치를 존이라고 한다. 만약 서울에 데이터 센터가 영등포, 강남에 위치하면 서울리전에 영드포 존, 강남 존 이라고 불린다, 버킷은 내가 파일을 저장하는 폴더라고 생각하면 된다. 버킷 생성시 일단 아무것도 건들지 말고 생성해주자 파일을 업로드하면 버킷에 잘 등록이 되는 것까지 확인할 수 있다. 업로드하면 객체 URL이라는 것이 생성이 되어 클릭하면 이미지에 접근할 수 있는 Url을 제공해 준다. 하지만 그걸 클릭하면 브라우저에서 실행이 되면서 접근 권한 없다고나온다. 즉 브라우저에서 열 수 있으려면 모든 사람들이 읽을 수 있는 권한이 있어야한다. 근데 우리는 처음에 버킷의 주인만 읽을 수 있도록 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/b5eMbd/btrrQrC0iwf/uKzIyo9Da4RauVQPjnZGlK/img.png)
raw_ids fields는 foreign key를 좀 더 나은 방법으로 볼 수 있게 해준다. Room Admin에 위와 같은 코드를 작성해주면 더이상 리스트로 보이지 않고 user admin로 검색할 수 있게 해준다. 만약 user가 엄청 많아진다면 전처럼 리스트에서 고르는건 힘들 것이다. InlineModelAdmin admin안에 또 다른 admin을 넣는 방법이다. 우리는 Photo모델을 만들고 그 모델 안에서 제목, 파일, 룸(foreign key)을 지정해주는 식으로 하였다. 따라서 방에 사진을 올리기 위해선 방에서 올리는 것이 아닌, 포토 모델에서 따로 올려주어야 하였다. 근데 이 분리된, 모델을 하나로 합칠 수 있는 방법이 바로 인라인모델어드민이다. admin.py에서 새로운 클래스 하나를..