무제 - 고은
급한 물에 떠내려가다가 닿은 곳에서 싹 틔우는 땅버들씨앗 이렇게 시작해보거라 고은, 순간의 꽃 중에서 이 시를 읽으면 무언가를 시작할 때의 부담을 조금 내려놓을 수 있습니다. ...
급한 물에 떠내려가다가 닿은 곳에서 싹 틔우는 땅버들씨앗 이렇게 시작해보거라 고은, 순간의 꽃 중에서 이 시를 읽으면 무언가를 시작할 때의 부담을 조금 내려놓을 수 있습니다. ...
ERR_CERT_AUTHORITY_INVALID 개발중인 웹사이트에 https를 적용하면서 무료인 Let’s encrypt 인증서를 이용했습니다. 적용했는데 아래와 같은 에러가 발생하더라고요. 관련해서 찾아보니 2021년 9월에 Let’s encrypt의 루트 인증서 변경으로 인한 이슈가 한번 있었는데, 지금은 2022년 7월 이잖아요? 저도 괜히 저 이슈랑 연관있나 싶어서 찾아보다가 시간만 날렸습니다. 아까운 내 시간.. 현상 ...
Package libffi was not found in the pkg-config search path 본인 개발 환경에서는 docker-compose build시 아무런 문제가 없는데, 막상 가상서버에서 docker-compose build를 하면 cffi 빌드 문제가 발생하는 경우가 있습니다. 에러 메시지는 아래와 같습니다. debug log 1 2 3 4 5 6 7 8 9 10 11 12 13 #11 10.05 Building wheels for collected packages: cffi #11 10.05 Building wheel for cffi (setup.py): started #11 10.05 Building wheel for cffi (setup.py): finished with status 'error' #11 10.05 ERROR: Command errored out with exit status 1: #11 10.05 command: /usr/local/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-lt5a4gm7/cffi_f02ff5d2648d42c398bfaa5f9587d9a1/setup.py'"'"'; __file__='"'"'/tmp/pip-install-lt5a4gm7/cffi_f02ff5d2648d42c398bfaa5f9587d9a1/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d /tmp/pip-wheel-m5z8su85 #11 10.05 cwd: /tmp/pip-install-lt5a4gm7/cffi_f02ff5d2648d42c398bfaa5f9587d9a1/ #11 10.05 Complete output (58 lines): #11 10.05 Package libffi was not found in the pkg-config search path. #11 10.05 Perhaps you should add the directory containing `libffi.pc' #11 10.05 to the PKG_CONFIG_PATH environment variable #11 10.05 Package 'libffi', required by 'virtual:world', not found #11 10.05 Package libffi was not found in the pkg-config search path. #11 10.05 Perhaps you should add the directory containing `libffi.pc' 해결 가상 서버에는 libffi-dev가 설치되어 있지 않아서 그렇습니다. Dockerfile 패키지 설치작업에 libffi-dev 를 추가하면 해결됩니다. 1 RUN apk add postgresql-dev gcc python3-dev musl-dev zlib-dev jpeg-dev libffi-dev
pkg-resources==0.0.0 파이썬 패키지 관리를 위해 freeze를 이용하여 requirements.txt를 만들고 이 파일을 이용해 패키지를 설치하다 보면 만나게 되는 이슈입니다. 보통 아래와 같은 명령어 실행중에 만나게 되겠죠? 1 2 $ pip freeze > requirements.txt $ pip install -r requirements.txt debug log 1 2 Could not find a version that satisfies the requirement pkg-resources==0.0.0 (from -r requirements.txt (line 24)) (from versions: ) No matching distribution found for pkg-resources==0.0.0 (from -r requirements.txt (line 24)) 해결 원인을 찾아보고자 pkg-resources==0.0.0 의 용도가 무엇인지 찾아봤는데, 그냥 버그라네요;; askubuntu 링크 무튼 그냥 패키지에서 제거하셔도 무방합니다. 1 $ pip uninstall pkg-resources==0.0.0
FitYourEarPlug 개발을 위해 공부한 책 내용 정리입니다. 제가 모르는 부분만 적었어요. 11장. 다대다 관계 구현하기 ManyToManyField를 사용한다. 기본적으로 null=Ture가 설정되어 있다. 15장. 폼으로 포스트 작성과 수정기능 구현하기 웹 개발에서는 입력 빈 칸을 폼(form)이라고 한다. CreateView을 사용하면 xxx_form.html 템플릿을 찾는다. 장고는 태그의 action 속성(입력한 데이터를 전송할 url 설정)을 설정하지 않아도 알아서 처리해 준다. 로그인안 사용자에게만 허용하려면 LoginRequiredMixin 클래스 사용 UserPassesTestMixin 클래스를 사용하여 유저의 속성을 확인하는 메소드를 사용할 수 있다. 16장. 외부 라이브러리를 블로그에 활용하기 django-xxx 형태의 패키지를 찾아서 사용하면됨 17장. 폼으로 댓글 기능 구현하기 url 뒤에 #comment-1 과 같이 표기하면 해당 id의 요소로 바로 링크 가능
저것은 벽 어쩔 수 없는 벽이라고 우리가 느낄 때 그때 담쟁이는 말없이 그 벽을 오른다 물 한 방울 없고 씨앗 한 톨 살아남을 수 없는 저것은 절망의 벽이라고 말할 때 담쟁이는 서두르지 않고 앞으로 나아간다 ...
FitYourEarPlug 개발을 위해 공부한 책 내용 정리입니다. 제가 모르는 부분만 적었어요. 11장. 테스트 주도 개발 적용하기 12장. 템플릿 모듈화하기 13장. 다대일 관계 구현하기 SlugField 사람이 읽을 수 있는 텍스트로 고유 URL을 만들고 싶을 때 사용한다. ForeignKey로 연결되어 있는 레코드를 불러 올 수 있다. 모델명을 소문자로 쓰고 뒤에 _set을 붙이는게 기본 설정이다.
FitYourEarPlug 개발을 위해 공부한 책 내용 정리입니다. 제가 모르는 부분만 적었어요. 8장. 웹 페이지 만들기 9장. 정적 파일과 미디어 파일 관리하기 10장. 페이지 구성 개선하기 장고의 모델을 만들면 기본적으로 pk 필드가 만들어 진다. 일반적인 기능 개발이라면 CBV 방식을 추천한다. ListView는 모델명 뒤에 ‘_list’가 붙은 html 파일을 기본 템플릿으로 사용한다. 장고 templates 폴더의 html 파일은 정적인 파일이 아니다. Pillow: 파이썬 이미지 처리 라이브러리
FitYourEarPlug 개발을 위해 공부한 책 내용 정리입니다. 제가 모르는 부분만 적었어요. 1장. 왜 이 책을 읽어야 하나요? 2장. 웹 개발 준비하기 3장. 웹 프런트엔드 기초 다지기 4장. 부트스트랩 적용하기 5장. 장고의 역할 이해하기 6장. 장고 프로젝트 만들기 7장. 장고 프로젝트에서 앱 개발하기 HTML html에서 사용하는 기능은 태그를 의미하고 속성은 태그안의 속성을 의미. 스타일은 태그 개별로 속성을 설정할 수도 있고, 태그 자체에 설정할 수도 있음. 하나의 웹사이트를 만드는 경우 일관된 디자인을 적용할 텐데 하나의 html 파일 내에서는 태그에 스타일을 설정하면 되지만 파일이 여러개인 경우는 스타일을 복사, 붙여넣기 해가며 관리하는 것은 비효율적이다. 그래서 CSS를 사용한다. CSS는 웹 문선의 디자인을 구현하기 위한 언어이다. CSS 하나만 관리하면 웹사이트 전체 디자인을 제어할 수 있다. 1 2 <hr/> - 수평선 태그 <span> - 별 기능 없음, div와 비슷 부트스트랩 웹 개발에 사용되는 구성요소들을 미리 디자인 해놓은 툴킷 템플릿을 다운 받은 후 index.html 등의 소스코드를 복사하여 필요한 기능을 가져다 쓰면 된다. 다양한 컴포넌트 등을 검색하하여 복붙해서 쓰면 된다. CDN(Contents Delivery Network) 장고 동작 구조 (출처 https://lazy-cloud.tistory.com/95) MTV(Model, Template, View) 패턴 대문 페이지 = Landing Page 모델 변경하면 Migration 해줘야함
robots.txt 현재 저의 gh-pages는 even 테마를 submodule로 관리하고 있고, 빌드시에 생성되는 public 폴더를 deploy하는 구조로 되어 있습니다. 테마의 default robots.txt를 사용하게 되는데 기본 robots.txt에는 아래와 같이 Allow 설정이 없습니다. 1 2 User-agent: * Sitemap: https://jaejin0me.github.io/sitemap.xml 저것때문인지 최근에 올린 글들이 검색엔진에 인덱싱이 안되는거 같아 Allow를 추가한 robots.txt를 만들고 GitAction 스크립트를 수정하여 복사하여 사용하도록 했습니다. 1 2 3 User-agent: * Allow: / Sitemap: https://jaejin0me.github.io/sitemap.xml 1 2 3 4 5 6 7 8 9 10 - name: Build run: hugo --minify + - name: Copy robots.txt + run: | + cp -f ./robots.txt ./public/robots.txt + - name: Deploy uses: peaceiris/actions-gh-pages@v3 if: github.ref == 'refs/heads/master' 링크에 들어가 보시면 Allow가 추가된걸 확인할 수 있습니다. https://jaejin0me.github.io/robots.txt 조회수 좀 늘었으면 좋겠네요ㅎㅎ Go 3 우분투에서 LTE 잡는거 꿀팁인데 진짜..