글 전체(30)
-
[Django] DRF란?
DRF란? Django REST Framework의 약자로 django에서 RESTful API를 쉽게 만들 수 있도록 도와주는 오픈소스 라이브러리 Multi Platform 시대에 맞게 오픈 API 형태로 제공하거나, 협업하는 프론트 개발자가 쉽게 데이터를 주고받을 수 있게 직렬화 및 역직렬화 진행 REST란? REpresentational State Transfer의 약자로 자원을 URL에 표현하여 자원의 상태 및 정보를 주고 받는 모든 것을 의미 예를 들어, 음식 데이터가 DB에 저장되어 있을 때, /api/foods라는 형태로 URL을 제공하여 해당 URL로 요청을 보내면 음식 데이터(자원)를 전송해 준다. 즉, Django에서 RESTful한 API 서버를 구축하기 위해 필요한 것들을 구현해 놓..
2022.10.12 -
[Docker] Image & Container 세부 정보 출력하기
이미지 세부 정보 출력하기 $ docker image inspect 컨테이너 세부 정보 출력하기 $ docker container inspect inspect 명령어로 image & container 세부 정보 출력하기 $ docker inspect 이 명령어로 이미지든 컨테이너든 세부 정보를 볼 수 있다. 출력되는 형식은 json 형식으로 출력된다. 해당 컨테이너가 어떤 설정 파일로 빌드가 되었는지를 확인하려면 Config의 Labels에서 com.docker.compose.project.config_files 부분을 보면 된다. :)
2022.08.22 -
[Python] static method와 class method
Static Method와 Class method 공통점 인스턴스를 만들지 않아도 class의 메서드를 바로 실행할 수 있다. class hello: num = 10 @staticmethod def calc(x): return x+10 print(hello.calc(10)) # 결과: 20 class hello: num = 10 @classmethod def calc(cls, x): return x+10 print(hello.calc(10)) # 결과: 20 둘 다 객체를 생성하지 않고 바로 메서드를 호출했다. 차이점 Static Method 만약 hello 클래스의 num 속성에 접근하려면 어떻게 어떻게 해야할까? 객체로 접근하는 것이 아니기 때문에 self.num을 사용할 순 없다. 억지로 사용하고 ..
2022.08.17 -
[Docker] docker: Error response from daemon: exec: "nvidia-container-runtime-hook": executable file not found in $PATH.
이전 글과 이어집니다 NVIDIA driver를 재설치 한 후 docker로 다시 NVIDIA가 연결된 컨테이너를 재시작했는데 해당 에러가 났다. Error response from daemon: exec: "nvidia-container-runtime-hook": executable file not found in $PATH. NVIDIA driver를 새로 설치해서 인식을 못하는 것 같은 느낌이었다(어떤 이유인지는 정확하게 모름) 이번에도 검색을 해 보니 nvidia-container-runtime을 설치해 주면 문제가 쉽게 해결된다고 한다. $ apt-get install nvidia-container-runtime
2022.08.16 -
[Ubuntu] couldn't communicate with the NVIDIA driver
연휴가 끝난 후 졸린 눈을 비비고 출근하여 서버를 확인해 보니 couldn't communicate with the NVIDIA driver 라는 에러가 발생했다. 건든 것도 없고 무엇이 문제인지 감이 안잡혀서 먼저 커널 로그를 살펴보았다. 그 결과 관련해서는 아무 것도 나오지 않았다. 그래서 구글에 검색해 본 결과 꽤 많은 포스트가 검색되었다. 아마 자주 일어나는 에러인 것 같다. 그렇기에 나도 따로 정리를 해보려고 한다. 에러 발생 원인 nvidia GPU 드라이버에 문제가 생기는 경우에 에러가 발생한다. NVIDIA 드라이버를 사용 중에 서버를 종료하거나 시스템을 종료하면 에러가 난다고 한다. 에러 해결 방법 기존 서버에 설치되어 있는 NVIDIA 드라이버를 전부 삭제하고 재설치하면 된다. NVID..
2022.08.16 -
[Django] pending되는 이슈에 대한 고찰
회사 프로젝트 진행 중 당황스러운 일을 겪었다. 영상 업로드 요청에 대해서 긴 시간이 걸렸다(엄청나게 길진 않지만 거의 1분 가까이 걸렸다). 그 이유는 한 번의 요청에 여러 이벤트가 발생했다는 점. 영상 파일을 웹서버에 업로드 업로드된 파일을 mp4파일로 변환(FFMPEG 사용) 업로드된 파일을 raw파일로 변환(FFMPEG 사용) 위에 변환된 두 파일을 NAS에 저장 mp4로 변환된 파일을 외부 storage에 저장 4번에서 NAS에 저장된 두 파일의 path를 DB에 저장하고 client에 리턴 이렇게 한 번에 많은 것을 처리하기 때문에 업로드 요청 시간이 오래 걸리게된다. 아키텍처를 내가 설계했다면 이런 식으로 하지 않았겠지만 기존 레거시 코드를 기반으로 마이그레이션했기 때문에 어쩔 수 없이 이런..
2022.08.02