검색결과 리스트
2024/03 에 해당되는 글 15건
- 2024.03.15 Babylon Inspector
- 2024.03.15 Babylonjs 설정
- 2024.03.15 nginx 설치 과정
- 2024.03.15 vite 프로젝트 생성
- 2024.03.13 세션을 이용한 상태 유지
- 2024.03.13 쿠키로 상태 유지
- 2024.03.12 윈도우에서 프로세스 확인 및 종료
- 2024.03.12 docker-compose 설치 명령어
- 2024.03.11 django에서 경로 마지막에 slash 안 넣기
- 2024.03.11 django Forbidden (Origin checking failed
- 2024.03.11 포트 사용 종료
- 2024.03.08 django 에 csrf token 보낼 때 헤더 이름
- 2024.03.08 Django + Nginx + uWSGI 배포 1
- 2024.03.04 pip upgrade 명령어
- 2024.03.04 SvelteKit 설치 명령어
2024. 3. 15. 15:45
npm install -D @babylonjs/inspector
import { Inspector } from '@babylonjs/inspector';
Inspector.Show(scene, { });
2024. 3. 15. 13:38
npm create vite@latest .
Vanilla
JavaScript
npm install
npm run dev
npm install -D @babylonjs/core
counter.js javascript.svg 삭제
main.js style.css 내용 전체 삭제
main.js에 기본 코드 입력
import * as BABYLON from '@babylonjs/core';
const canvas = document.querySelector('#renderCanvas');
const engine = new BABYLON.Engine(canvas);
const createScene = () => {
const scene = new BABYLON.Scene(engine);
return scene;
}
const scene = createScene();
engine.runRenderLoop(() => {
scene.render();
});
style.css 에 기본 스타일 입력
html, body { overflow: hidden; width: 100%; height: 100%; margin: 0; padding: 0; }
#renderCanvas { width: 100%; height: 100%; touch-action: none; }
2024. 3. 15. 10:40
1. 업데이트
sudo apt update
sudo apt upgrade
2. 엔진엑스 공식 패키지 저장소 설정을 도와줄 패키지 설치
sudo apt install -y curl gnupg2 ca-certificates lsb-release debian-archive-keyring
gnupg2 - an encryption tool that includes digital signitures and certificates
3. 엔진엑스 패키지 저장소의 서명키를 다운로드하고 저장
curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
| tee /usr/share/keyrings/nginx-archive-keyring.gpg > /dev/null
4. lsb_release 명령을 이용해 운영체제와 배포판 이름을 정의하는 변수 선언
OS=$(lsb_release -is | tr '[:upper]' '[:lower]')
RELEASE=$(lsb_release -cs)
echo "deb [signed-by=/usr/name/share/keyrings/nginx-archive-keyring.gpg] \
http://nginx.org/packages/${OS} ${RELEASE} nginx" \
| tee /etc/apt/sources.list.d/nginx.list
5. 업데이트 후 엔진엑스 설치
sudo apt update
sudo apt install -y nginx
nginx
APT - Advanced Package Tool
패키지 관리 시스템
엔진엑스 GPG 패키지 서명키 - 저장소의 패키지 검증
2024. 3. 15. 08:25
npm create vite@latest
Vanilla
Vue
React
Preact
Lit
Svelte
Others
2024. 3. 13. 12:02
global SESSIONS
사용자의 전화번호, 적립 횟수 담고 있음
각 상태 정보는 32글자의 랜덤 ID를 Key로 가짐
이 ID는 session_id로 쿠키에 저장
요청할 때마다 쿠키에서 session_id를 조회
쿠키에 session_id가 없다면
랜덤으로 session_id를 생성
이렇게 session_id 예측을 최소화 해서 보완성을 강화
세션
서비스에 접속한 사용자의 상태를 저장/유지하기 위한 방식
메모리
디스크
데이터베이스 서버(MySQL, PostgreSQL)
캐시 서버 (memcached, redis)
웹 서비스에서 세션 데이터는 매 요청을 처리할 때마다 조회가 발생
데이터베이스의 데이터에 비해 변경 및 삭제가 많이 일어남
세션 데이터의 입출력 속도가 빨라야
서비스 응답 속도도 빨라짐
2024. 3. 13. 10:02
웹 브라우징할 때 쿠키는 까페의 쿠폰과 같은 역할
까페에 방문할 때마다 쿠폰을 가져가서
커피를 구매하면 스탬프를 받듯이
브라우저도 서버로부터 받은 쿠키를 저장해 두었다가
웹사이트에 다시 방문할 때마다
해당 쿠키 정보를 서버로 자동 전송
이 과정은 cookie 라는 요청 헤더를 통해서 진행
서버는 사용자의 행동에 따라
새로운 쿠키를 발급하거나
기존 쿠키를 업데이트
해야 한다고 판단할 때
응답 헤더에 Set-Cookie 를 포함시켜
쿠키 정보를 전달하면
브라우저는 이 쿠키를 저장
쿠키의 만료 시간을 Expires 로 설정
브라우저는 해당 웹사이트에 요청을 보낼 때마다
cookie 헤더를 통해 자동으로 전송
쿠키는 발급된 도메인에 한해서만 유효
이것은 특정 까페에서만 사용되는 쿠폰과 같음
쿠키는 서버와 클라이언트 간에
정보를 공유고 교환하기 위한 데이터 저장 구조 방식
웹사이트에서 보내는 모든 요청은 쿠키를 자동 전송
웹사이트 방문, 웹사이트 새로고침, 링크 클릭,
자바스크립트를 이용한 http 요청에서 쿠키는 자동 전송
응답 객체에서 set_cookie로 설정된 쿠키 값은
사용자가 브라우저 개발자 도구를 통해
손쉽게 바꿀 수 있음
만약 사용자의 쿠키 값 변경을 막으려면
set_signed_cookie( ) 를 이용해서
서명된 쿠키를 생성
서명된 쿠키는 브라우저에서
값 확인만 가능하고 변경은 불가능
쿠키는 이름 : 값으로 설정
추가로 만료 시간인 max_age와 expires 인자 설정
쿠키가 유효한 도메인을 지정하는 domain 인자
https에서만 설정되는 secure 인자
다른 사이트로의 요청에서 쿠키 전송에 대한 정책을 지정하는
samesite 인자
브라우저에서는 document.cookie 문자열 속성을 이용해
브라우저의 쿠키 내역을 확인
쿠키 생성할 때 httponly 옵션이 설정된 쿠키는
자바스크립트를 통해서는 조회할 수 없고
브라우저의 개발자 도구로는 모든 쿠키 확인
쿠키는 브라우저의 개발자 도구에
애플리케이션 - 쿠키 에서 확인하고
이곳에서 직접 수정 가능
쿠폰 적립 횟수 같은 정보는 사용자가 쉽게 변경 가능해서
쿠키에 저장하는 것은 적절하지 않음
쿠키에 저장하기 적절한 예시
사용자 선호, 테마 설정, 장바구나 정보,
최근 검색어, 최근 본 상품, 광고 추적 ID 등
민감하지 않은 상태 정보들
HTTP에서는 다른 페이지와 상태를 공유하기 위해 쿠키를 사용
스탬프 적립할 때 쿠키에 전화번호를 저장
다른 페이지에서 쿠키의 전화번호를 조회
2024. 3. 12. 19:45
프로세스 확인
netstat -ano
해당 포트의 PID 확인 후 종료
taskkill /f /pid 20972
해당 포트 검색
netstat -ano | find "443"
현재 열린 포트 확인
netstat -ano | find "LISTEN"
TCP만 확인
netstat -anp tcp | find "LISTEN"
해당 IP의 PORT 확인
netstat -ano | find "특정 IP:443"
특정 PID의 종료 명령어
tasklist | find "pid"
2024. 3. 12. 10:50
sudo curl -SL
https://github.com/docker/compose/release/download/v2.24.7/docker-compose-linux-x86_64
-o /usr/local/bin/docker-compose
docker-compose version 확인 사이트
https://github.com/docker/compose/releases
2024. 3. 11. 17:35
settings.py에 다음을 추가한다
APPEND_SLASH=False
2024. 3. 11. 15:27
http://localhost:5173 does not match any trusted origins.): /auth/login/
이런 메세지가 떴을 때는
settings.py 에 다음을 넣어준다
CSRF_TRUSTED_ORIGINS = ['http://localhost:5173']
2024. 3. 11. 14:38
8000 번 포트 검색
netstat -nap | grep :8000
특정 포트를 종료시키려면 tcp 포트가 8000 일 때
fuser -k -n tcp 8000
2024. 3. 8. 16:49
2024. 3. 8. 15:10
1. pip freeze > requirements.txt
a. pip freeze 는 현재 설치되어 있는 python 라이브러리 목록 표시
b. requirements.txt 에 목록을 써서 배포할 때 표시
c. github에 requirements.txt 커밋
2. settings.py에서 ALLOWED_HOSTS = ['*'] 로 표시
3. 리눅스에서 다음 명령어 실행
a. sudo apt update
b. sudo apt upgrade
c. sudo apt install build-essential, pip3, python3
d. sudo pip3 install --upgrade pip
4.홈 디렉토리에 소스코드 다운로드
a. git clone https://github.com/xxxx
5. 가상환경 생성
a. sudo apt install virtualenv
b. virtualenv -p python3 venv
c. source venv/bin/activate
6. 패키지 설치
a. pip install -r requirements.txt
b. 설치하다가 pkg-config 없다고 에러나면 pkg-config 설치
i. sudo apt install pkg-config
c. 설치하다가 Command ‘pkg-config --exists mariadb' 뜨면 default-libmysqlclient-dev 설치
i. sudo apt install default-libmysqlclient-dev
7. 서버 실행
a. python manage.py runserver 0.0.0.0:8000
b. 확인 후 종료
8. 웹서버와 연결할 uwsgi 설치
a. pip install uwsgi
9. uwsgi.ini 작성 후 저장
a. vi uwsgi.ini
b. chdir=/home/ubuntu/{프로젝트폴더}
module={프로젝트내 파일이름}.wsgi:application
master=True
pidfile=/tmp/project-master.pid
vacuum=True
max-requests=5000
daemonize=/home/ubuntu/{프로젝트폴더}/django.log
home=/home/ubuntu/{프로젝트 폴더}/venv
virtualenv=/home/ubuntu/pybo/venv
socket=/home/ubuntu/{프로젝트 폴더}/uwsgi.socket
chmod-socket=666
프로젝트 폴더 - manage.py가 있는 경로 디렉토리 이름
프로젝트 내 파일 이름 - settings.py 가 있는 경로 디렉토리 이름
c. chdir=/home/leejae/pybo
module=icube.wsgi:application
master=True
pidfile=/tmp/project-master.pid
vacuum=True
max-requests=5000
daemonize=/home/leejae/pybo/django.log
home=/home/leejae/pybo/venv
virtualenv=/home/leejae/pybo/venv
socket=/home/eejae/pybo/uwsgi.socket
chmod-socket=666
i. xcube2 내의 pybo 디렉토리 안에 icube 프로젝트 생성시 작성
d. uwsgi --ini uwsgi.ini 입력
[uWSGI] getting INI configuration from uwsgi.ini 뜨면 통신 정상
10. nginx 설치
a. sudo apt install nginx
11. nginx.conf 수정
a. sudo vi /etc/nginx/nginx.conf
http {
upstream django {
server unix:/home/leejae/pybo/uwsgi.sock;
}
}
입력
c. uwsgi 사용하면 uwsgi.sock 생성 후 nginx 하고 연결됨
12. default 수정
a. sudo vi /etc/nginx/sites-enabled/default
b. location / {
include /etc/nginx/uwsgi_params;
uwsgi_pass django;
}
location /static/
alias /home/xcube2/pybo/pybo/static;
}
location /media/ {
alias /home/leejae/pybo/pybo/media;
}
13. nginx 재시작
a. sudo service nginx restart
14. python 서버 실행 - 외부 접속을 위해 0:8000 으로 시작해야 함
a. python manage.py runserver 0:8000
15. 접속 후 확인
2024. 3. 4. 16:57
2024. 3. 4. 13:47