본문 바로가기

TIL

TIL 040623

페어코딩 세번째 날 - 내가 드라이버!

개인과제 두번째 날 - 시작


내가 혼자 풀던 순서의 문제를 네비게이터분과 함께 풀었다.

참고 코드는 보지 않았다.

사분면 문제는 그냥 if, elif, elif, else로 4개 사분면을 구분했다.

 

네비게이터분과 함께 and로 x값, y값이 둘 다 양수인지 음수 판별했다.

 

검색해보니 양수인지 음수인지 판별하는 함수는 딱히 없고 그냥 0과 부등호로 구분한다.

 

다른 사람의 풀이를 봤더니 x값과 y값을 곱해서 양수인지 음수인지 먼저 구분하고 if문을 중첩시켜서 1,3사분면, 2,4사분면을 구분한 풀이가 있었다.

 

또 비슷한 풀이인데 파이썬 기초에서 1줄로 줄이기였나? 아무튼 코드를 줄인 풀이도 있었다.

 

quad를 이용한 풀이도 있었는데 처음 보고 검색해보니 적분 이런 얘기가 나온다.

 

a=1, b=0을 담아놓고 return 할 때 2a-b로 사분면 값을 구하는 풀이가 있었는데 다시 봐야겠다.

x, y의 부호가 같으면 b를 0에서 1로 바꿔준다.

그리고 y가 만약 -이면 a를 2로 만들어준다.

그리고 바로 return 2*a-b

 

x, y가 모두 +면 둘의 부호가 같기 때문에 b가 1이되고 y가 +이므로 a는 그대로 1.

2a-b는 2-1이라서 1사분면이 된다.

x, y가 모두 -면 b=1, a=2. 2a-b=4-1=3. 3사분면이 된다.

x가 -, y가 +이면 b=0, a=1. 2사분면이다.

x가 +, y가 -이면 4-0. 4사분면.

 

오오오... 앞으로 사분면 하면 이게 꼭 떠오를 것 같다.


20분만에 한 문제를 다 풀고 다른 풀이도 구경해서 문제를 하나 더 풀었다.

근데 내가 문제 해석을 제대로 안했다.

음수는 주어지지 않고 숫자 리스트에서 두개의 숫자를 골라 나오는 곱의 최대값을 구하는 문제였다.

네비게이터 분이 sort를 이용해서 max랑 second max를 구하면 될 것 같다셔서

아 아까 내가 문제를 잘못 읽었나? max 하나만 구하는게 아니라 제일 큰 값이랑 두번째로 큰 값 이렇게 두 개 구하는건가? 하고 헷갈렸다.

음수는 없다는 것도 빼먹었다.

두 숫자를 곱하는 모든 경우의 수를 다 구한 후 sort해서 두개만 slice하는 방식으로 풀었는데

정답을 입력하려니 그게 아니었다. ㅎㅎㅎ

slice 부분만 빼고 max를 써서 최대값을 return하는 풀이를 제출했다.

처음 접근할 때 combination으로 리스트에서 2개의 숫자를 고르는 함수가 없을까 했는데 itertools인가 뭔가를 import해야한다.

그냥 네비게이터분의 처음 언급대로 numbers.sort(reverse=True)로 해서 numbers[0]*numbers[1]을 하면 간단히 끝나는 문제였다.

 

알게된점:

- 마음이 급해도, 시간이 좀 들더라도, 처음에 문제 해석을 제대로 하자!

- 네비게이터님 말씀을 좀 더 귀담아 듣고 잘 못 알아들었으면 질문하자.  

- 라이브셰어 할 때 내 부분만 보지 말고 가려진 밑에 부분에 네비게이터님이 뭔가 쓰고계신건 아닌지 확인하자.

- 문제 풀이랑은 상관 없지만 key=abs로 절대값 기준으로 sort 할 수도 있다.


특강

vi가 뭐고 ide가 뭐지? 검색해봐야겠다.

나중에 검색하려 했는데 vi가 특강에서 다시 나왔다.

커밋메시지를 입력했던 창을 말한다.

ide는 파이참 얘기때 나왔는데 파이참, VSCode 이런걸 말한다.

R이랑 R Studio 이런 차이 같다.

지난 특강 때 이후로 git bash를 별로 쓸 일이 없었는데 앞으로는 소스트리 말고 git bash로 해봐야겠다.

---> 처음부터 다 git bash로 해보려고 지난 줌 강의를 봤는데 vi 잘 설명해주셨고 중요하다고 마우스 클릭 더블클릭처럼 익숙해져야 한다고 강조하셨다.

......이제부터 익숙해져야지!!!


파이썬 장고 실무 기초의 1-10 장고 프로젝트 만들기를 보면서 개인 과제를 시작하려고 했는데 강의 화면처럼 왼쪽에 Pure Pycharm, Django 이런 것들이 안 뜬다.

 

검색해보니 일단 그냥 New Project를 create하고 나중에 Django를 설치하는 포스팅이 있다.

이대로 따라했다.

처음에 일단 새 프로젝트를 시작하는데 이번엔 Git 특강에서 배운 Git Bash로 실습해보려고 미리 만든 .git 폴더 때문에 폴더가 비어있지 않다는 창이 떴다.

그냥 Open Project와 Create from existing source 중에서 Create~~~를 선택했다. venv 폴더가 생겼다.

VSCode처럼 그냥 파란 venv 폴더다.

강의 영상 속 Django 프로젝트는 주황색인데...

블로그 포스팅을 따라 이 프로젝트에 Django를 설치했다.

.idea란 폴더가 생겼다.

.... 똑같은 폴더가 하나 더 생기고 그 안에 기본 settings.py 이런게 이미 만들어져있어야하는데 그런게 없다.

........폴더를 없애고 새로 만들어봐야겠다.

폴더를 삭제했는데 9000개가 넘는 항목들이 휴지통으로 이동했다. ;;;

 

아 원래 community를 쓰다가 이번주에 장고 강의를 따라 professional을 새로 설치했는데 그 차이인가???

맞다!

community edition 말고 2023.1을 실행해서 new project를 눌렀더니 강의 화면과 똑같이 뜬다.

하아 과제 시작하는데만 시간을 얼마나 쓴겨...

 

내 컴퓨터엔 파이참이 두개니까 잘 구분하자!

잘 만들어졌는데 venv 폴더는 똑같이 하늘색이다.

튜터님 venv 폴더가 주황색인건 맥이라서 그런가보다.


templates 폴더가 나는 없다.

 

기본으로 만들어주는건줄 알았는데 없으면 내가 만들면 되는건가?

1-11 장고를 사용한 화면 띄우기를 봐봤는데 과제에 필요 없을 것 같아서 건너뛰려 했었다.

어쨌든 1-10 장고 프로젝트 만들기의 다음 과정에 관한 강의니까 혹시 하고 다시 한번 봐보다가 튜터님을 따라

 

연두색 재생 버튼을 눌러봤다.

 

처음 장고 프로젝트를 시작할 때 서버랑 연결하면 알아서 보라색 templates 폴더가 생긴다.


장고 프로젝트를 시작하고나서 이제 첫 커밋과 푸시를 하려는데 git add .으로 모두 스테이지에 올려주니까 warning이 떴다.

 

검색해보니 마지막에 한줄 남겨주는것에 관한 경고였다.

다음에 바꿀거라고 하는데 이것 자체를 안 하게 하는 방법과 그냥 warning만 안뜨게 하는 방법 두가지가 있단다.

 

난 그냥 error가 아니고 warning이니 넘어가기로 했다.

 

혹시 나중에 무슨 에러 나면 이거 때문이 아닐지 기억해둬야겠다.


강의대로 터미널을 열고 django_admin startapp을 이용해서 account 폴더와 erp 폴더를 만들려고 했는데

bash: django_admin: command not found

이런 문구가 뜬다.

폴더도 안 만들어졌다.

 

음..... 예전에 터미널 뭘 바꾸는 설정창을 본 것 같기도 하고...

강의에서 그런게 아니라 포스팅 보고 한 것 같은데.... 이번주 일인데 가물가물 ㅜㅠ

여기를 다시 cmd로 바꿔봐야겠다.

 

bash에서 cmd로 바꾸니까  해결!

file-settings-terminal-shell path에서 바꾸면 된다.

 

git bash에서 git init으로 .git 숨김폴더를 만들고 git 프로젝트로 만들면 파이참 터미널이 bash로 바뀐다.


form에 관한 추가 정보를 접했다.

forms.py를 만들고 검색하면서 더 해보려고 했다.

forms.py를 작성하면 models.py는 안하는걸줄 알았는데 아닌 것 같다.

노션, 슬랙, 검색, 유튜브 동영상으로 어떻게 해보려했지만 시간이 부족하다.

과제 제출 기한을 맞추려면 로그인, 회원가입 부분을 빨리 끝내고 재고관리 부분을 들어가야할 것 같다.


강의처럼 models.py를 사용해서 그냥 로그인 기능을 만들려는데 강의처럼 bio도 있을 필요가 없다.

email은 장고에서 기본 제공하는 기능이 있는 것 같은데 강의에선 안 다뤘다.

??? ㅜㅠ models.py를 작성하지 않고 forms.py만 사용해서 로그인 기능을 만들 수 있다고 다시 보니 노션에 나와있다.

그러면 forms.py만 작성하고 makemigrations, migrate하면 되는거려나?

username 없이 email을 계정으로 사용하게 만들 수는 없는지 검색하다가 또 시간이 많이 흘렀다.

 장고의 기존 클래스를 커스텀하면 된다는데 복붙해서 쓰면 할 수 있을 것 같기도 하고...

근데 빨리 완성을 해야한다. ㅜㅠ

결국 장고 프로젝트 시작만 하고 하루가 다 갔다.

내일 5시까지 재고관리까지 만들어서 제출할 수 있을까? ㅜㅠ

일단 models.py에 아무것도 안 쓰고 migrate하니까 auth_user에 필요한 정보들이 다 생겼다.


일단 강의 2-2 프로젝트 구조 만들기, 프로젝트 세팅하기를 마쳤다고 치고 커밋했다.

로그인, 로그아웃, 회원가입은 브랜치를 따로 만들어서 작업하기 위해 accounts라는 브랜치를 생성했다.

이것만 한시간 ㅜㅠ


으우앙 ㅜㅠ 또 한시간이 훌쩍 지났다.

강의를 복습하면서 UserModel 클래스 없이 그냥 장고 기본 데이터베이스꺼를 쓰려고 해봤는데 다 엉키는 것 같다.

그냥 강의랑 완전 똑같이 다 처음부터 따라하면서 다시 처음부터 해야겠다...

오늘 밤새더라도 로그인 로그아웃 회원가입 부분은 최소한 마무리 지어야겠다.

재고관리 언제 시작해ㅜㅠ

'TIL' 카테고리의 다른 글

TIL 041023  (0) 2023.04.10
TIL 040723  (1) 2023.04.07
TIL 040523  (0) 2023.04.05
TIL 040423  (0) 2023.04.04
TIL 040323  (0) 2023.04.03