💻 개발블로그80 WIL:20220226 🤓 Weekly I Learned 유화프로젝트를 진행하게 되었다. 내가 하고 싶었던 프론트를 담당하게 되었고, 팀원들도 보여주는 것에 대해 욕심이 있었기에 기존에 내가 하고싶었던 디자인을 가미해 진행하게되었다. 팀원들이 의욕적으로 프로젝트를 하니깐 프론트를 담당함으로써 책임감이 더 무겁게 느껴지기도 했다. 그 동안 내배캠 과정을 참여하면서 진로에 대한 새로운 고민이 생기기도 했었기에 튜터님께 상담도 신청해서 조언을 구하기도 했었다. 내가 듣는 과정은 백엔드이지만, 프론트에 마음이 기울기도 했고 그렇다고 프론트엔드에 대해 뭘 제대로 아는 상황도 아니었기 때문에 여러 조언을 구했는데, 개발자의 길을 걷기로 마음을 먹었다면 백엔드까지 배워두면 더 좋을 것 같다고 생각했기 때문에 내배캠과정에서 나에게 맞는 역할.. 2022. 2. 26. WIL:20220221 🤓 Weekly I Learned 오래간만에 WIL을 작성해본다. 그 동안 너무 많은 것들을 단 기간에 학습하다보니, 집중력도 떨어지고 학습 능률도 많이 떨어지고 그러다보니 자연스럽게 흥미도 조금 잃었던 것 같다. 강의 수준이 갑자기 높아지고 머릿속에 넣어야 할 것들이 많아지다보니 진로에 대한 고민도, 내가 앞으로 더욱 집중해서 봐야할 것들에 대해서 생각이 많아졌던 시간을 보냈다. 초기 django기초 강의를 보면서 굉장히 새롭고 흥미롭게 느껴졌었는데, 복습과 응용에 대한 시간이 너무 부족하다 느껴서 심화강의는 조금 미뤄두고 튜터님의 보충강의와 함께 기초 장고 세팅과 동작에 대해 집중을 하기로 했다. 이전에 끝냈던 프로젝트에서는 장고에 대해서 조금 멀리하고 주로 html, css에 더욱 집중했던터라 dj.. 2022. 2. 21. Django심화강의:2주차(05)(20220216) 🤓 Auto_now / Timezone 설정 📁 Auto_now, Auto_now_add ( Ctrl과 코드를 누르면 해당 코드 내부로 들어간다. ) - Auto_now : save할 때마다 생성시점을 기록한다. - Auto_now_add : created 할 때마다 생성시간을 기록한다. 데이터베이스탭에서 직접 수정하거나 rawsql 사용할 때 auto_now가 작동하지 않는다! ⏰ Timezone - 데이터베이스에 들어가는 시간 확인하기 (파이참 하단의 python cosole을 클릭해서 연다.) - 콘솔에 유저네임을 테스트로 저장할 때 auto_now가 실행되는지 테스트해본다. from tabom.models.user import User user = User(name='test') #유저네임은 't.. 2022. 2. 17. 파이썬특강(1)(20220216) 코딩 기능 분할의 이유? TDD방식? 2022. 2. 16. Django심화강의:2주차(04)(20220216) 👍 좋아요 모델 구현하기 / 모델클래스 만들기 좋아요 모델에서 필요한 기능 분석 필요 - 좋아요는 게시글에 유저당 한 개만 누를 수 있다. - 좋아요 카운팅 - 좋아요를 눌렀을 때 버튼 변화 더보기 - 게시글(그것이 댓글이든, 유튜브 영상이든, 블라인드 포스트이든)에 “좋아요”를 누를 수 있다. (이떄 좋아요 개수가 증가한다.) - 한 사용자는 하나의 게시글에 단 하나의 좋아요만 할 수 있다! - 이미 좋아요 했는지 여부를 표시해 주어야 한다. - 이미 좋아요를 했다면, 좋아요 버튼을 다시 누름으로써 좋아요를 취소할 수 있다. (이때 좋아요 개수가 감소한다.) - 게시글의 리스트(최신 게시글이 맨 위로 오도록)를 보여준다. 이 때 좋아요 받은 개수도 같이 보여준다. >>> 좋아요 모델 구현하기 ⭐ 좋아요.. 2022. 2. 16. Django심화강의:2주차(03)(20220215) 😎 환경별로 다른 설정값 사용하기 환경별로 다른 설정값을 사용하는 이유? 로컬과 실제 프로덕션 비밀번호가 같아버리면 해킹우려가 생길 수 있어 따로 관리한다. 환경별 다른 설정값을 주는 방법은 다양하고 정해진 답이 없다. 강의에서는 settings과 local_settings사용. 🔎 git ignore하기 .gitignore에 한 줄 추가하기 - DjangoPro/local_settings.py 🔎 local_settings.py 생성하기 - 위에서 gitignore에 추가했던 경로에 맞춰 Django폴더안에 local_settings.py 파일을 생성한다. - local_settings.py 안에 코드 붙여넣기 더보기 더보기 # For Production # SECRET_KEY = "django-ins.. 2022. 2. 16. Django심화강의:2주차(02)(20220215) 😎 Github-action에서 데이터베이스 연결하기 📖 yml 파일 수정 - env: 환경변수 - mysql -e: escaping 문자열 전달 (명령어 바로 실행) github-action에서도 실행가능하고 interactive shell을 사용할 수 없기 때문에 사용함. 더보기 name: Django CI on: push: jobs: ci: env: DB_DATABASE: sparta DB_USER: root DB_PASSWORD: 12345 runs-on: ubuntu-latest steps: - name: Check out the codes uses: actions/checkout@v2 - name: Set timezone to KST run: | sudo rm /etc/localtime sud.. 2022. 2. 15. Django심화강의:2주차(01)(20220214) 😎 Github-action에서 디버깅 📖 마이그레이션 python manage.py migrate 파이썬에서 데이터베이스가 변경이 되면 마이그레이션을 해줘야 한다. 마이그레이션 후 데이터베이스를 새로고침하면 해당 db에 테이블이 생성됨을 확인할 수 있다. 마이그레이션의 필요성? 소스코드를 git에서 관리하듯이 데이터베이스를 관리는 마이그레이션으로! 마이그레이션은 변경이력을 저장하므로 유용하다! 🔎 ssh 키 생성하기 # ssh 키 생성하기 (windows는 git bash로 ssh연결한다.) ssh-keygen -t rsa - 입력창은 Enter로 패스! - git bash에 있던 경로에서 id_rsa.pub 메모장으로 열어서 내용 복사하기. # github에서 ssh키 추가하기 - github -> .. 2022. 2. 14. Django심화강의:1주차(10)(20220213) 😎 Mysql설치하기 (windows사용) mac과 windows에서의 설치 방법이 다르다고 한다. # docker desktop 설치하기 https://docs.docker.com/desktop/windows/release-notes/https://hub.docker.com/editions/community/docker-ce-desktop-windows (설치하는데 조금 시간이 걸리고, 컴퓨터를 다시 재부팅해야 하는 상황이 발생했다.) Docker Desktop for Windows by Docker | Docker Hub We and third parties use cookies or similar technologies ("Cookies") as described below to collect an.. 2022. 2. 14. Django심화강의:1주차(9)(20220213) 😎 파이참에서 django실행 # 파이참에서 django실행하기 - 실행/디버그 구성편집 -> 새 구성 추가 / django server -> 저장 -urls.py에서 중단점표시, 디버깅 확인하기 - runserver후, 로컬호스트/api/docs로 접속 후 값을 입력한 뒤 값이 잘 넘어오는지 파이참에서 확인 2022. 2. 13. Django심화강의:1주차(8)(20220211) 😎 iGithub Action 으로 push 할 때 마다 테스트하기 CI (Continuous Integration) # Github연결하기 github 레포지토리에 내 프로젝트를 연결한다. (git명령어 사용해서 연결, git명령어 참고) # 프로젝트 폴더에 디렉토리 추가 - 프로젝트폴더안에 .github 디렉토리 생성 - .github폴더안에 workflows 디렉토리 생성 - workflows폴더안에 ci.yml 또는 ci.yaml 파일 생성 - ci.yml 안에 코드 붙여넣기 (강의에서는 정렬이 제대로 되어있지 않았다.😢) 더보기 name: Django CI on: #action실행이 언제 되는지 정의(push할 때마다) push: jobs: #workflows는 여러개의 job으로 구성/이번 프.. 2022. 2. 12. Django심화강의:1주차(7)(20220211) 😎 Black, isort, mypy, test까지 한 번에 실행하기 (윈도우) 명령어를 따로 따로 입력하면 번거로우므로 하나의 스크립트로 묶어 실행할 수 있다. 강의에서 실습 코드가 mac과 window에서 다르다. # test.sh 파일만들기 프로젝트 파일을 선택하고 test.sh폴더를 만들어 준다 그 안에 코드를 복사+붙여넣기 해 준다. (여기서 맥과 윈도우는 코드가 다르다.) 더보기 더보기 #!/usr/bin/env bash # 쉬뱅:리눅스를 위한 장치 어떤 파일을 사용해서 열게 될 지 # 스크립트의 명령을 실행하다가 중간에 실패하는 경우, 스크립트 중단 # pipefail은 mac에서는 쓰이지만 윈도우에서는 사용X (아래 3줄은 mac에서만 사용) # 윈도우는 스크립트가 실패/성공 후엔 터미널이.. 2022. 2. 11. Django심화강의:1주차(6)(20220211) 😎 isort설치하기 isort: import순서를 정리해준다. # isort 설치하기 poetry add isort==5.10.1 터미널에 입력하기 # isort 실행 전 설정하기 isort에 "black"을 사용하고 있음을 알린다. 서로 함께 사용할 수 있도록 pyproject.toml에 추가해준다. git status를 입력하면 isort를 설치했기때문에 poetry.lock이 있고 설정파일도 변경됐기때문에 pyproject.toml이 있다. # isort 실행하기 poetry run isort . isort가 실행하면 수정된 파일목록이 출력된다. urls.py에 들어가면 import부분에 한줄이 늘어났음을 확인할 수 있다.(좌측에 초록색으로 변경사항이 보인다.) isort설치완료 2022. 2. 11. Django심화강의:1주차(5)(20220211) 😎 테스트 만들고 실행하기 # 파이썬 패키지와 파일 만들기 -'tests'파이썬패키지 생성 -test_view.py 파일생성 (코드 붙여넣기할 때 tab확인, class안에 함수..) 더보기 더보기 class TestView(TestCase): def test_add_view(self) -> None: result = self.client.get("/api/add", {"a":1, "b":3}) self.assertEqual(result.status_code, 200) self.assertEqual(result.json(), {"result":4}) -python manage.py test를 입력하여 터미널에서 볼 수 있다. # Django 설정 터미널로 테스트를 실행하면 디버깅이 안되고 파이참 자체로 .. 2022. 2. 11. Django심화강의:1주차(4)(20220211) 😎 Django-Stub, Mypy 설치(윈도우사용) # django-stub, mypy 설치하기 poetry add django-stubs==1.9.0 mypy==0.931 터미널입력 -django-stubs는 장고과 mypy를 함께 사용할 수 있도록 한다. -mypy # overrides알아보기 [[tool.mypy.overrides]] #overrides섹션 module ="packagename" #모듈에 패스를 적어준다. . . . #설정내용 적어주기 overrides는 모듈별로 mypy를 따로따로 설치할 수 있다. 업데이트 안내가 뜨면 (outdated), 업데이트에 해당하는 것에 버전을 써주고 poetry add한다. poetry add mypy==0.931 # pyproject.toml 내용.. 2022. 2. 11. Django심화강의:1주차(3)(20220211) 😎BLACK설치하기(윈도우사용) code formatter: 협업시 팀원끼리 일관된 코드스타일을 유지할 수 있도록 도와준다. Black만의 코드 자동수정 기능이 있다. # Black 설치하기 poetry add black==21.12b0 터미널에 바로 명령어를 붙여넣으면 실행된다. # Black 실행하기 poetry run black . 터미널에 명령어를 붙여넣고 실행하면 Black코드스타일로 코드가 변경된다. - 긴 문자열의 경우에는 print('---')을 print( '---' ) 방식으로 변경해준다. - '싱글쿼터의 경우 "더블쿼터로 변경한다. # Black 설정하기 [tool.black] #섹션 line-length = 120 2022. 2. 11. Django심화강의:1주차(2)(20220210) 😎 Django-ninja로 첫 API 만들어보기 장고심화강의 1주차에서 만든 장고 프로젝트에서 이어서 진행한다. # django urls.py 작성하기 📍 url.py 수정 후 에러발생, ninja모듈이 없다고 해서 pip install ninja로 모듈을 설치했다. 하지만 다음 에러에서는 업그레이드관련 문구가 출력되어 python -m pip install --upgrade pip 실행 마지막으로 NinjaAPI에 관련해 ninja를 찾지 못하는 것 같아서 python install django-ninja로 장고닌자를 설치해주니 해결이 되었다. # SWAGGER 사용하기 (Open API) http://127.0.0.1:8000/api/docs 접속 장고닌자를 사용하면 자동으로 swagger ui를 .. 2022. 2. 11. Django심화강의:1주차(1)(20220210) 😎Poetry설치하기(윈도우사용) ( 윈도우 파워쉘(powershell)을 통해 명령어를 입력한다. ) # 파이썬버전 확인하기 python --version 명령어를 입력하면 파이썬 버전이 출력된다. # 파이썬버전 지정하기 py -%version% (파이썬 3.9버전 예시: py -3.9) 파이썬 버전을 여러개 설치했을 경우, 버전을 지정해줄때 사용한다. # Poetry 설치하기 (Invoke-WebRequest -Uri https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py -UseBasicParsing).Content | python - 윈도우의 경우, 명령어를 Powershell에 입력하여 poetry를 설치한다. # .. 2022. 2. 10. 이전 1 2 3 4 5 다음