TIL 2022.11.14 ~ 11.20

김경민·2022년 12월 30일
0

TIL

목록 보기
4/15
post-thumbnail

[TIL/79일차/11.14] Docker Opencv 설정 ft. 내배캠

ImportError: libGL.so.1: cannot open shared object file: No such file or directory

ubuntu22.04.1에서 파이썬 3.10.8 이미지에 opencv를 설치하고 실행을 하는데 아래와 같은 에러가 났다.

ImportError: libGL.so.1: cannot open shared object file: No such file or directory

찾아보니 libgl1-mesa-glx라는 것이 설치가 안됐기 때문이고

해결 방법은

이미지 빌드하는 파일인 Dockerfile에 설치하는 구문을 추가해 주면 된다.

RUN apt-get update
RUN apt-get -y install libgl1-mesa-glx

ubuntu 버전 확인

$ lsb_release -a

[TIL/80일차/11.15] 프로젝트 구상, drf살짝 ft. 내배캠

프로젝트 기능에 대한 회의, 아이디어 구상과 와이어 프레임, 정책을 생각하는 하루였고 drf에 대하여 약간 공부하는 하루였습니다.

[TIL/81일차/11.16] Generics RetrieveAPIView ft. 내배캠

url 파라미터 두 개 이상 사용하기

  • 파라미터의 이름이 pk이가(미확) 아니거나 두 개 이상일 경우 특정 인스턴스를 가져올 수 있는 방법에 대해 고민해 보고 찾아봤습니다.

결론은 self.kwargs에 저장된 것을 활용하면 됨

예시, 특정 모델의 인스턴스를 가져오고 싶을 때 get_object를 오버라이딩하여 가져오는 경우

def get_object(self):
    return MyModel.objects.get(foo = self.kwargs["foo"], bar = self.kwargs["bar"])

[TIL/82일차/11.17] Algorithm, DRF ListCreateView ft. 내배캠

python len()함수는 어떻게 O(1)의 시간 복잡도를 가질까?

  • len()은 len ()을 호출한다. (마크다운 언어로 __ 띄움)
  • len ()은 카운터로 작동하며 데이터가 정의되고 저장되면 자동적으로 증가한다.
    결과적으로 길이를 가져오라는 것 대신 이미 저장된 value값을 가지고 오는 것이다.

algorithm 회고

토끼반 알고리즘 10문제

  • 짧게 생각하고 오만함이 차고 넘쳐 까불다가 오히려 시간을 더 써버렸다.
  • 하지만 맞왜틀이 아닌 틀왜맞을 찾았다. 반례를 등록하고 싶은데 프로그래머스에는 있지는 않는 것 같다.
  • 쉬운 풀이가 있음에도 돌아가서 나자신에게 아쉬웠다(성능은 좀 나으니까 정신 승리, 아무나 그렇다고 해줘ㅠ)
  • 화나지만 그래도 뿌듯하고 짜증나지만 재밌다. 나 자신에게 화가나

[TIL/83일차/11.18] Django 쿼리셋 로깅하기 ft. 내배캠

로깅이란?

  • 정보를 제공하는 일련의 기록인 로그(log)를 생성하도록 시스템을 작성하는 활동.

settings.py

LOGGING = {
    'version': 1,	#logging 버젼
    'disable_existing_loggers': False, # 원래 있던 로깅들을 그래도 냅둠 # 만약 True면 못쓴다는 거겠죠? ㅎ
    'handlers': {					# 로깅 메세지에서 일어나는 일을 결정하는 녀석이라고 장고공식문서에 나와있는데, 아직 무슨말인지는 저도 모르겠네요 ㅎㅎ 
        'console': {
            'level': 'DEBUG',
            'class': 'logging.StreamHandler',
        }
    },
    'loggers': {				# 로깅을 console에 띄울지 ... 다른데 띄울지 그냥 DEBUG용으로 레벨을 설정할 수 도있고, 
        'django.db.backends': {
            'handlers': ['console'],
            'level': 'DEBUG',
        },
    }
}

[TIL/84일차/11.19] django-crontab ft. 내배캠

django-crontab이란?

  • 서버를 실행하고 주기적으로 함수를 실행해야할 경우 필요한 라이브러리이다.
  1. django-crontab
    pip install django-crontab

  2. settings.py 앱 추가
    settings.py

INSTALLED_APPS = [
    .
    .
    'django_crontab',
    .
    .
]
  1. 앱 하위에 cron.py 생성 후 원하는 함수 구현
def crontab_hello():
    print('hello')
  1. settings.py 설정하기
CRONJOBS = [
    ('* * * * *', 'study_group.cron.crontab_penalty_student', '>> '+os.path.join(BASE_DIR, 'stady/log/cron.log')),
]
  • 매분 실행하고 프로젝트/폴드/로그파일 경로를 설정하여 로그를 확인할 수 있다.
    (crontab 시간 설정 웹 사이트)[https://crontab.guru/#_*_]

[WIL/ 12주차] 내일 배움 캠프 12주차 ft. 내배캠

이번 주에 대표적으로 한것

  • Docker
  • 프로젝트 구상
  • drf generics viewset(살짝)
  • 알고리즘

회고

느낌적으로 새롭게 배우는 것이 많은 한 주였다. 무언가를 많이 만들기보다는 조금씩 만들며 개념을 다지는 주였다. 알고리즘을 하면서 정답으로 가는 길을 돌아가곤 하는데 잘 짠 코드를 보면 감탄도 나오고 나에 대한 분노도 조금 느끼나 좌절하지 않고 더 잘쓰기 위해서 노력하자는 마음이 든다. DRX의 꺾이지 않는 마음 ㅋ

다음 주에 할 것

프로젝트 진행, 배포, 리팩토링, 보완

알고리즘

profile
적은 대로 된다.

0개의 댓글