1주차

GemstoneS·2021년 12월 13일
0

<1주차 요약>

시간표 상 3개의 강의를 최대한 빠르게 마무리 지어야 하기에 적절한 시간 분배와 이해가 동시에 진행되어야 하는 상황이었다. 시간이 촉박하였으나, 웹의 기본을 제대로 이해하지 못하고 넘어가는 것은 아닌것 같아 지난 한주 동안 '웹 프로그래밍 A to Z'에 가장 많은 시간을 할애하였으며, 파이썬 기초문법의 경우 예전의 배움을 토대로 빠르게 수업을 진행하며 몰랐거나 궁금했던 내용을 구글링을 통해 강의 자료에 추가적으로 기입하는 것으로 한주를 마무리 지었다.




1. 웹 프로그래밍 A to Z

3일간 시간을 분배하여 진행한 총 5주차 강의로 HTML, CSS, Javascript, JQuery, Ajax, API, 부트스트랩, 파이썬 웹 크롤링, mongoDB Atlas, python Flask 프레임워크를 활용하여 간단한 웹 페이지를 만들고 AWS를 통한 배포까지... 프론트, 서버, DB가 어떻게 유기적으로 동작하는지를 전반적으로 훓어볼 수 있는 좋은 강의였다. 특히 강의를 모두 듣고 난 후 답을 보지 않고 다시한번 풀어보는 타임어택 과제는 한주를 마무리짓는 백미였다.


💀💀💀<절망의 타임어택 과제>💀💀💀

MongoDB Atlas와의 연동만을 배운 상황에서 처음으로 1시간 30분의 타임어택 과제가 주어졌을때 아래와 같은 코드가 주어지며 아래의 코드를 복붙하여 DB로 사용하라고 되어있었다. 단순히 코드를 복붙하고 실행하면 된다는 말에 코드를 복붙 후 실행하였으나, 이 DB에 어떻게 접근해야하는지를 알 수 없었다.

결국 구글링을 통해 'How do I access MongoDB on localhost?'의 질문에 대한 답변으로 'To connect to your local MongoDB, you set Hostname to localhost and Port to 27017 .'를 찾을 수 있었다.

로컬 MongoDB에 연결하기 위해 호스트 이름을 localhost로 포트번호를 27017로 한다는 내용이였고, 이 부분에서 나는 커다란 실수를 하게 되는데 배운 MongoDB Atlas를 활용하는 것이 아닌 주어진 코드대로 로컬 몽고DB를 이용하여 해당 과제를 해결하려 했다는 것이다. 물론 이도 충분히 찾아보고 배운다면 가능하였겠으나, 주어진 시간내에 DB연결만 찾다가 마감시간이 찾아오게 되었다.

이렇게 나의 첫번째 타임어택 과제가 종료되었고 과제 종료 직후 팀원분께 해당 부분에 대해 여쭤보니 그때서야 내가 그때까지 무엇을 하고 있었는지를 깨달을 수 있게 되었고, 잠깐 동안 과제를 제대로 파악조차 못하였고, 분명 MongdoDB Atlas 연동을 배웠으나 배운것을 제대로 활용하지 못했다는 절망에 빠져있었다. 물론 배운것을 활용하지 않고 스스로 찾아서 할 수도 있었겠지만, 개발은 언제나 주어진 마감시한이 정해져있고 이 시간이 타이트하게 잡혀있을때는 배운 지식을 적극 활용하여 해당 지식으로 과제를 조금씩이나마 해결해 나가야겠다고 생각하였다. 또한 과제를 받고 과제를 다 하지 못하더라도 조금의 시간을 가지고 해당 과제가 어떤식으로 동작할 것인지, 어떻게 동작하면 좋을지, 과제의 목적 등 과제를 파악하는 연습을 지속적으로 이어나가야 되겠다.

  # <과제에서 주어진 로컬 mongoDB 코드> 
  from pymongo import MongoClient

  client = MongoClient("mongodb://localhost:27017/")

  db = client.dbStock

  codes = [...]
  db.codes.insert_many(codes)


  stocks = [...]
  db.stocks.insert_many(stocks)

  # <3주차 강의에서 배운 mongoDB Atlas에 연결하는 코드>
  # <Username>, <Password>, <클러스터명> 부분에 꺽쇠없이 해당 내용을 적으면 됨
  from pymongo import MongoClient
  import certifi
  client = MongoClient('mongodb+srv://<Username>:<Password>@<클러스터명>.vfs2q.mongodb.net/Cluster0?retryWrites=true&w=majority', tlsCAFile=certifi.where())
  db = client.dbsparta
  • cf. 만약 연결도중 아래와 같은 에러가 발생할 경우 certifi 패키지를 먼저 설치해준 후 import해주면 되며, 원인은 사용하고 있는 인터넷 환경에 따라 보안 관련 추가 설정을 해주어야할 때가 있다고 한다. (보안상의 이유로 클라이언트와 서버간에 통신에 ssl 인증서가 필요. 파이썬의 certifi 모듈을 통해 설치된 인증서를 찾아 함께 전송.) 또한 MongoClient의 마지막 부분에 ',tlsCAFile=certifi.where()'도 작성해주어야 한다.

    결론 : mongoDB Atlas 연결 코드 실행시 아래와 같은 에러가 발생한 경우, certifi 패키지 설치 후 'import certifi' 및 MongoClient의 마지막 부분에 ',tlsCAFile=certifi.where()'까지 작성.




2. 파이썬 기초 문법

파이썬 기초 문법의 경우 웹 프로그래밍 A to Z 수업에서 웹 크롤링 및 Flask 프레임워크를 사용하였었고, 이전에 배웠었던 경험이 있었기에 하루의 시간을 배정하여 빠르게 듣고 몰랐거나 잊어버렸던 부분을 구글링하여 강의 자료에 추가하는 방식으로 진행하며 강의를 이수하였다.




마지막으로 첫주를 마무리 하며 가장 애를 먹었던 HTTP Request Method를 회고에 남기며 첫주 회고를 마무리 짓겠다.


HTTP Request Method

( source : https://gnaseel.tistory.com/24 )

Cf.
1) Idempotent : 멱등법칙으로 연산을 여러 번 적용하더라도 결과가 달라지지 않는 성질을 의미한다. ... 예를 들어, 수 1은 곱셈의 멱등원이다: 1 × 1 = 1.
( source : https://ko.wikipedia.org/wiki/%EB%A9%B1%EB%93%B1%EB%B2%95%EC%B9%99 )
2) Cacheable : A cacheable response is an HTTP response that can be cached, that is stored to be retrieved and used later, saving a new request to the server.(캐시 가능한 응답은 캐싱할 수 있는 HTTP 응답으로, 나중에 검색하여 사용하기 위해 저장하여 서버에 새 요청을 저장합니다....?)
( source : https://developer.mozilla.org/en-US/docs/Glossary/cacheable )

대표적인 HTTP Request Method 4가지

GET : GET은 지정된 리소스에서 데이터를 요청하는 데 사용됩니다. GET은 가장 일반적인 HTTP 메소드 중 하나입니다.

POST : POST는 리소스를 생성/업데이트하기 위해 서버에 데이터를 보내는 데 사용됩니다. POST은 가장 일반적인 HTTP 메소드 중 하나입니다.

PUT : PUT은 리소스를 생성/업데이트하기 위해 서버에 데이터를 보내는 데 사용됩니다.

DELETE : DELETE 메소드는 지정된 리소스를 삭제합니다.

profile
#AI #python #back-end

0개의 댓글

관련 채용 정보