1) 모델
처음에 model.py를 잘못 만졌다가, 계속 오류가 났었다.
이제 모델을 건들기 전에
마이그레이션 기록들을 살펴 본 뒤,
테이블까지 살펴보고, 테이블 내부 형태까지 살펴본 뒤에
삭제, 추가 하는 습관이 생겼다.
근데 아직도 이름바꾸기는 조금 어렵다..ㅎ
그 사이에 sqlite3의 사용법도 익히게 되었다.
그리고 오류가 생기면 대체로 테이블이 없다, 테이블이 없다... 테이블이 이미 있다...
이런 오류였기 때문에
sqlite로 바로 테이블 생성하고 삭제하고 하는것 까지 익숙해졌다.
새로운 필드를 만들 땐, 이전 데이터들에 없는 값을 채워주기 위해 디폴트 값을 정의해야한다.
2) 장고의 구조 이해
장고는 프로젝트 라는 거대한 틀이 있고, 그 내부에 여러 앱들을 추가하는 구조로 이루어진다.
한 앱은 한 폴더로 이루어져있고, 그 폴더 내부에는 여러가지 파이썬 파일들이 구성되어 있다.
만약에 필요한 함수가 크다면 새로운 파일을 만들어서 함수를 저장한 뒤,
다른곳에서 그 함수를 쓰면(from .파일이름 import 함수이름들 해야 쓸 수 있음)
함수가 그대로 작동한다!
그리고 뷰가 가장 중요하다고 느꼈던게,
url.py에서 path를 작성 할 때, 뷰에서 어떤 함수를 작동하도록 해라~하고 쓰기 때문이다!그럼 그 path로 이동했을 때, 그 작동한 화면을 볼 수 있다
1) 가상환경 설치
가상환경이 뭔지부터 몰라서 찾아보니 굉장히 쉽게 설명해주신분이 계셨다..
가상환경이라는게 애초에 다른 버전의 프로그램을 돌리기 위해 있는 것이였다!
마침 나는 파이썬3 .12가 안되고 3.11에서만 무언가가 되기때문에 이걸 3.11로 설치했어야 됐고
이 설명을 보며 아 ~~그래서 그렇구나 라고 잘 이해하게 되었다.
문제는
가상환경을 설치하면서 이게 어디에 설치되고, 어디에 설치해야하고, 어느 폴더로 가야하며
설치된건 어디에있고 삭제는 왜 또 맘대로 안되며...ㅋㅋㅋ
:wq 이거부터 ㅜㅜ
아직 배워야 할 게 많지만 이제 무섭지는 않다!
(처음엔 진짜 뭔지 몰라서 인터넷에 나와있는 $표시부터 다 따라 쳤었다..)
2) 파일이동
3) 폴더 위치 찾기
cmd option c 하면 파일 위치가 복사된다.
4) 환경변수 이해
python3 -> python 만 쳐도 나오도록 함
이번에 우리는 완전 생 초보들만 모여서 진행한 조였다.
그래서 좋았던 점도, 단점도 있었지만 그래서 바닥부터 크게 된 것같다..(feat 오류지옥)
이번에 우리가 한 것은 과거 데이터와, 오늘 데이터를 비교하는 프로젝트였다.
그런데, 과거 데이터와 오늘의 데이터 저장 형식이 다르게 되어 있다는 것이 굉장한 골칫덩이였다.
근데 그거보다 더 큰 골치는 시간을 제대로 입력해 주지 않으면 데이터를 받아오지 못한다는 사실이였다(데이터가 계속 업데이트 되기 때문)
또한 데이터를 받아와서 저장하는 것도 문제고, 이 데이터를 어떤 방식으로 저장해야될지도 사실 엄청 고민했었다.
다들 초보이기 때문에 쉽게 꺼내 쓸 수 있는 데이터 형식이 되었으면 좋겠다고 생각했기 때문이다.
여기서 url을 업데이트 시간을 반영해서 조정하는 것도 할 줄 알게 되었고,
데이터를 받아서 데이터베이스에 저장하는것도 굉장히 어려웠고... 흐엉 ㅜㅜ
정말 아침에 일어나자마자부터 딱 자기전까지 코딩생각만 머릿속에 뺑글뺑글 돌아갔다.
왜냐하면 내가 제시한 아이디어였고,
데이터가 저장되지 않으면 절대 이 프로젝트는 완성될 수 없기 때문에
내 역할이 가장 초반에 탄탄히 다져져야 했기 때문이다. 그래서 부담감도 엄청났다..
그와중에 아침에 일어나서 매일 아침운동도 했다 ㅋㅋㅋㅋㅋ
아침운동이 하루종일 집중할 수 있게 해주는 키포인트이기도 했기 때문이다.
그리고 처음에는 인코딩 키, 디코딩 키도 어떻게 해야할 지 몰라 엄청 버벅였다
심지어 둘 다 나와있는데도 뭔가 다를 줄 알고
인코딩키를 디코딩하는 프로그램을 돌려 디코딩했더니
엥? 똑같이 나오네 ? 하면서 익혀갔다 ㅋㅋㅋㅋ
사람들도 날씨를 과거 데이터를 받아와서 비교하는 프로젝트는 잘 하지 않는다는 것을 알았다..
그런 자료가 별로 없어서 나는 과거 데이터를 비교하는 프로젝트를 해보고 싶었는데,
그게 오히려 독이 된 것이다..(왜냠 나는 초보초보초보니깐 ..흑)
그래도 어찌저찌 구조를 잘 공부했는데(오류지옥에서 살아남으며 저절로 공부함..ㅎㅎ)
이 오류를 분석 할 때 인공지능이 큰 도움이 되었다.
오류를 입력하면 오류를 해석해 주는 것 뿐만 아니라 어떤 문제인지 설명도 해주기 때문이다.
대신 그것을 알아먹는 것은 그 사람 몫이고,
인공지능이 코드를 잘 짜주진 못한다.(질문이나 짤 구조같은것을 잘 적어주면 될지도..근데 나는 지금은 내가 짜는게 편하다..)
하지만 ;같은걸 잘 못 친 사소한 오류나
source venv/bin/activate라고 쳐야하는데
python3 venv/bin/activate라고 쳤거나
하는 것을 잘 잡아주어서, 이제 진짜 코드를 잘 짜는 것이 중요하게 됐고
쓸데없는 곳에서 하는 시간낭비가 매우매우매우 줄어들었다는 것을 체감하게 되었다.
필자는 코파일럿과, gpt4(남친찬스~~~><) 를 둘 다 쓰는데,
아무래도 둘 다 있는게 좋은 것 같다.ㅋㅋㅋㅋㅋㅋㅋㅋ
그 차이는 써본 사람만이 알 것이다 ㅋㅋㅋ
근데 정말 어느 정도이지, 막 잘 하고 그런건 아니다.
월요일 화요일은 다들 깃에 익숙해지고, 장고에 익숙해 지는 시간이였던 것같다.
그리고 화요일 저녁때 만나보니 다들 어느정도 기능을 완성 하신 것 같아
다음날 작업 하다가 전체적으로 어떤 기능을 구현해야 하는지 알려드렸다.
(아무래도 내가 낸 주제로 작업하다보니 내가 확실하게 말씀드려야 다들 진행하기 쉬울 것 같았다)

(저 스프레드 시트 정리는 또 인공지능의 힘을 빌렸따! 받아오는 API가 두 곳에서 받아오는데, 지역 저장 형태가 하나는 위도 경도로 되어있고, 하나는 지역번호로 되어있어서, 지역 번호별로 위도 경도를 구분해내는데 gpt를 썼다 ㅎㅎ 노가다로 할뻔)

이런식으로 전체적으로 구성을 짜드렸고
그리고나서 저녁에 만나서 얘기해보니 훨씬 효율이 올라간 게 느껴졌고 연결할 부분들이 보였다.
심지어 그 자리에서 연결 부분을 해결 하기도 했다.
우리팀은 매일 5시에 회의를 한다. 그러면 다들 어느정도 완성했는지 보이기 시작하는데,
이 완성한 부분을 깃허브에 올린 버전들을 살펴보면서 아 이걸 어디다 어떻게 써야되는구나가 보이고
그러면 내 부분도 완성하기 쉬워진다!
팀원들이 어디까지 완성했는지가 보이면 나도 속도를 내야 한다는 생각이 들게 되고
밤을 새더라도 완성시켜서
어느정도 합을 맞출 수 있게 된다.
나랑 같이 백엔드를 맡은 팀원이 계셨는데, 그분이 내가 고민하면서 엄청 길게 짤 뻔했던 코드를 if continue 를 이용해서 짧게 짜주셨다!
보면서
'아 내가 생각하지 못했던 부분을 다른사람이 볼 수 있고
이래서 협업을 하는구나.'
라고 크게 느꼈다!! 그분은 내가 코드를 이미 잘 짜놔서 자기는 숟가락 얹은 것 밖에 없다고 했지만 진짜 나는 저런 한 줄이 너무너무 크게 느껴졌다!
아직 프론트랑 백이 이어지는 작업을 하지 못했지만, 그건 다른 팀원이 맡아주셨고, 이제 데이터 쌓는 것은 잘 되기 때문에 그부분을 나도 맡아서 도와드릴 것 같다.
그리고 팀장님께서는 깃허브 관리를 맡아주셨는데 굉장히 잘 해주시고,
다들 첨 하다보니 깃허브를 다루지 못하는 팀원들이 많았는데 굉장히 친절하게 잘 알려주신것 같아 보였다.
그리고 각자가 한 프로젝트가 잘 굴러가는지 계속 확인해주신 덕분에
뭔가 순조롭게 굴러갈 수 있었던 것 같다.
다들 어렵고 포기하고 싶은 순간도 있었을 텐데 포기하지 않고 계속 하고있는 팀원들을 보면서
나도 포기하고싶은 순간에 포기하지 않고 내가 맡은 기능을 구현해 낼 수 있었던 것같다.
1) 참조
이번 프로젝트에서는 테이블끼리 서로 참조하도록 만들지 못했다.
다음번엔 이 참조 부분을 제대로 공부해서 연결관계를 만들고 싶다.
목 금 이렇게 이틀 기간이 남은 상태에서 테이블을 또 잘못 건드렸다가 프로젝트를 망치고 싶지 않아서,
나는 이렇게 하기 위해선 잘 만든 다른 프로젝트를 한번 면밀히 분석해 봐야 할 필요가 있다고 생각한다. 그래서 이번 프로젝트를 끝내고 , 다른 프로젝트를 살펴 본 뒤, 한번 테이블 관계같은 것을 수정해서 보완해 볼 생각이다.
아무래도 이번이 첫 프로젝트고 다음 프로젝트 때는 더 많은 기능을 구현한 결과물을 내보고 싶기 때문에 JS와HTML에 대해 더 깊게 공부하고 다음 프로젝트 전까지 혼자 토이프로젝트를 진행해보면서 공부해 볼 것 같다.
아무래도 코딩을 공부하는 것에는 프로젝트를 직접 해보는 것 만큼 크게 공부되는게 없는 것 같다.