목록전체 글 (54)
JOOHUUN
부팅시 f10눌러 grub 모드 진입 e 클릭해서 부팅 설정 편집 ro ~~~ 되어 있는 부분을 rw init=/bin/bash 로 수정 root로 진입됨 read and wirte 모드 진입root: mount -no remount, rw / 1. 패스워드 재설정root: passwd username 2. 패스워드 락 잠금 해제pam_tally2 -u username -r

미니쿠베를 사용해서 로컬에서 fastapi 기반 앱을 배포하는 과정입니다. 미니쿠베, 도커 설치과정은 포함되어 있지 않습니다. 1. fastapi 기반 앱 이미지 빌드 먼저 미니쿠베환경에 도커이미지를 빌드 할 수 있도록 아래 명령어를 입력합니다. eval $(minikube docker-env) # app/main.py from fastapi import FastAPI app = FastAPI() @app.get("/") async def root(): return {"message": "Hello FastAPI"} # requirements.txt fastapi==0.100.0 uvicorn==0.22.0 # Dockerifle FROM python:3.10 WORKDIR /app COPY requir..

Alembic 란 ? Database migration을 해주는 프로그램 입니다. 데이터베이스 테이블은 개발하면서 변경이 일어날 수 있는데, 이러한 데이터베이스의 version을 key로 구분하여 버전관리를 할 수 있도록 도움을 주는 프로그램입니다. 설치 pip install alembic 초기세팅 alembic init test_migration 위 명령어로 디비 버전 관리를 담당할 test_migration 폴더와 alembic.ini 파일이 생성되었습니다. 연동할 디비 설정 # alembic.ini sqlalchemy.url = postgresql://user:password@host:port/dbname 관리할 테이블 설정 실습 마이그레이션을 진행하기 전 기본 모델(위사진)에 테스트 필드(아래사진..

Monstache 몽고디비 컬렉션들을 지속적으로 엘라스틱서치에 색인 시켜주는 도구 (Go 언어기반) 사용이유 사내 프로젝트에서 nosql을 사용하기로 하였고 몽고디비와 엘라스틱서치를 무엇을 쓸지 고민하고 있었다. Monstach를 사용하기로 한 결정적인 이유는 몽고디비의 검색엔진이다. 몽고디비는 DB 역할을 하기엔 충분 했지만 검색엔진으로 사용하기 적합하지 않아서 ES를 연동하여 검색엔진으로 사용하기로 결정했다. (아예 ES를 사용하는 방법도 있지만 ES는 스키마의 수정 및 변경에 대해 자유롭지 않아서 pass) 세팅과정 파일구조 1. replicaset_init.sh 파일 생성(script파일로 세팅을 자동화 진행) 스크립트 설명 docker compose가 실행중일 경우 컨테이너를 내리고 재시작 합니..
1. Install pip install django-soft-delete 2. models.py SoftDelteModel을 import 하여 사용 가능하고 모델에는 is_deleted, deleted_at 포함 되어 있다. from django.db import models from django_softdelete.models import SoftDeleteModel class Article(SoftDeleteModel): title = models.CharField(max_length=100) # Following fields will be added automatically # is_deleted # deleted_at 3. 사용 예시 (장고shell사용) In [1]: from article.m..
REST와 RESTful REST는 REpresntational State Transfer 의 약어로, 클라이언트과 서버가 데이터를 주고 받는 방식에 대한 아키텍처 스타일이다. REST에는 여섯 가지의 기본 원칙이 있고, 이 가이드를 준수한 인터페이스는 Restful 하다고 표현한다. 1. REST의 기본 원칙 1.1 Uniform Interface(균일한 인터페이스) 여러 아키텍처 제약 조건은 균일한 인터페이스를 확보하고 구성 요소의 동작을 안내하는 데 도움이 됩니다. 다음 네 가지 제약 조건은 균일한 REST 인터페이스를 달성할 수 있습니다. Identification of resources - 인터페이스는 클라이언트와 서버 간의 상호 작용에 관련된 각 리소스를 고유하게 식별해야 합니다. Manipu..
mysql dump, load 명령어는 mysql 콘솔이 아닌 파워셀 명령어 창에서 실행한다. 1. dumpdata 추출 모든 DB를 덤프 PS C:\Users\kimju> mysqldump -u -p --all-databases > 파일명.sql; 특정 DB 덤프 mysqldump -u -p --databases > 파일명.sql DDL 정보만 덤프 mysqldump -u -p --databases --no-data > 파일명.sql 테이블구조를 제외한 데이터만 덤프. 여러개의 테이블 가능 mysqldump -u -p --no-create .. > 파일명.sql 특정 DB의 특정 tables 덤프 mysqldump -u -p > 파일명.sql 2. loaddata 삽입 PS C:\Users\kimju>..

개발환경: window, ubuntu20.04 Docker Compose 1) docker-compose.yml version: "3.8" services: backend: build: . command: sh -c "python manage.py collectstatic --no-input && python manage.py migrate && gunicorn --bind 0.0.0.0:8000 payhere.wsgi:application" ports: - 8000:8000 working_dir: /srv/docker-server/ volumes: - ./:/srv/docker-server/ env_file: - ./.env restart: always depends_on: - mysql nginx: ..

$ npm init // package.json 파일 생성 $ npm install express --save $ npm install mongoose --save // 몽고디비툴 설치 $ npm install nodemon --save-dev // node에서 liveserver 역할하는 툴 폴더 구조 1. package.json { "name": "youtube", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "start": "node index.js", "backend": "nodemon index.js", "test": "echo \"Error: no test specified\" && exit 1" }, "aut..

데코레이트 작성 def query_debugger(func): @functools.wraps(func) def wrapper(*args, **kwargs): reset_queries() number_of_start_queries = len(connection.queries) start = time.perf_counter() result = func(*args, **kwargs) end = time.perf_counter() number_of_end_queries = len(connection.queries) print(f"-------------------------------------------------------------------") print(f"Function : {func.__name__..