될때까지

((TURTLE HOME)) 3일차 : CSV파일 생성 및 DB에 적용하기 본문

프로젝트/wecode1차 : TURTLE-HOME

((TURTLE HOME)) 3일차 : CSV파일 생성 및 DB에 적용하기

랖니 2022. 7. 20. 22:56
728x90

이제까지는 데이터를 넣을 때 post메소드를 생성하고 그 메소드를 사용해서 작업했다. 하지만 오늘은 데이터를 CSV파일로 만들고, 이를 mysql데이터베이스에 적용시키는 방법으로 데이터를 집어넣었다.

CSV는 Comma Seperated Value 데이터로, 쉼표를 기준으로 항목을 구분하여 저장하는 데이터를 말한다. 컴마로 구분되어 있기 때문에 테이블 형태로 구성된 자료나 텍스트 자료를 저장할 때 주로 사용된다고 한다. 적용 방법은 다른 블로그가 더 자세하니까 생략 :)

맨 처음 상품관련 CSV를 만들 때, 하나의 테이블에 모든 정보를 다 넣었다. 이렇게 만든 이유가 무엇이냐고 물어본다면.. 글쎄요 하나의 테이블에 다 집어넣어서 뽑아올 수 있을거라 생각했다고나 할까? 솔직히 말하면 아무 생각이 없었다. 할 수 있을 것 같았다. 이게 바로 실수였겠지.

이 파일을 왜 만들며, 어떤 역할을 하는 파일인지에 대한 개념이 부족했다. 일단 하나의 테이블 당 하나의 CSV파일을 만들어야하는 이유를 몰랐고(여쭤보니 가장 손쉽게 할 수 있는 방법) , 가장 최하단의 데이터를 기준으로 잡으면 한 테이블에 모든 데이터를 다 넣을 수 있고, 하나의 테이블에 모든 데이터가 다 들어가있으니까 CSV파일도 여러개 만들지 않아도 되지 않을까 생각했다. (이것도 되는 방법이다. 파이썬 문법을 적절히 사용해서 필요한 데이터만 뽑아오면 되는 데 지레 겁을 먹고 포기했었다. 근데 이 작업은 내 기준 중요한 일이 아녔기에 빠른 포기에 칭찬한다)

대카테고리 소카테고리 소카테고리 이미지 상품명 상품번호 상품 설명 이미지 url 사이즈 가격
침실 침구 https://images.unsplash.com/photo-1630809355701-af054d63cb31?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=1382&q=80 린넨 이불 커버 2235.01 깨끗한 화이트 색감에 시원한 린넨 소재의 침구입니다. https://images.unsplash.com/photo-1617325247661-675ab4b64ae2?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=1171&q=80 싱글 165000

하지만 동기들은 products라는 앱안에서 만들었던 테이블 당 하나의 CSV파일들을 각각 만들었다. 멘토님께 여쭤보았더니 products안의 models.py에서 만든 테이블은 하나의 케이스(와인잔)라 하셨다. 어떤 데이터를 담아야하는 지 틀을 잡는 개념이고, 실제 들어가야하는 내용물(와인)은 CSV파일에 작성하여 넣어주는 것이라 하셨다. 아마 그렇게 하나에 하나를 담는 게 편하니까 그렇게 나눠서 작업한 게 아닐까 싶다.

그리고 바울님이 makemigrations(DB의 변경사항이 있다고 알려줌), migrate(DB의 변경사항을 저장)까지 하고 pr을 남겼고, merge까지 끝났는 데 왜 내 컴퓨터로 pull받았을 때 또 migrate를 해야하는 지 궁금했다. 이유는 각자 다른 DB를 사용하고 있기 때문이다. 수정된 내용이 내 db에 저장이 안된 상태기 때문!! makemigrations는 변경 사항이 있다고 알리는 단계고, migrate는 변경사항을 DB에 저장하는 단계다.

CSV만드는 작업은 참 피로했다. 입사할 회사는 저런 작업(?) 내가 안했으면 좋겠다.. 노가다자냐

728x90