오늘은 실시간 강의로 GIT에 대해서 공부하는 날. 캠프 시작 후 처음으로 zoom을 이용한 수업이다. 고용노동부 출결 시스템에도 직접 입퇴실 처리를 하는 거라 좀 신경쓰인다.
본격적인 수업에 앞서서 개발자가 공부하는 방식에 대한 강사님의 이야기가 인상깊었다. GIT이란 무엇인가? 에 대한 질문을 필두로 구글링으로 내게 맞는 정보 찾기, 찾은 정보를 내 언어로 이해하기, "분산"이라는 단어가 여기저기 나와 있다고 제대로 이해하지 않은 채 당연하게 가져다 쓰지 않기 등등..
지금 배우는 것들에 더 몰입하기 위해서 많은 참고가 되는 내용들이었다.
자, 그래서 GIT 이란 무엇일까?
강의에서 구글링한 뒤 나오는 자료들의 중요도를 판별하는 기준 중 하나가 해당 서비스의 공식 문서 (도메인이 주로 docs로 시작하는)라 한다.
GIT을 검색하면 그 조건에 맞는 git-scm 페이지의 문서가 나온다.
프로젝트의 버전 관리를 위한 시스템(VCS - Version Control System)
GIT을 사용하면 프로젝트를 진행하면서 생긴 각각의 버전이 히스토리로 남기 때문에 관리 측면에서 용이하고, 다른 사람들과 협업을 할 때 작업을 나누어서 ("이슈"라고 한다고 했던 거 같다) 진행 한 뒤 나중에 하나로 만들기도 용이하다고 한다.
GIT을 실행하기 위한 다양한 명령어들은 다음 블로그를 참고하면 좋을 것 같다. GIT명령어
숙제 마무리
<4주차>
기존에 만들었던 원페이지 쇼핑몰에서 주문을 받으면 적게 되어 있는 이름, 수량, 주소, 전화번호가 아래에 차례대로 반영되어 새로고침 되도록 하는 것이었다.
그런데 다 되었다고 생각하고 아무리 작동을 시켜봐도 주문 정보를 작성한 내용이 홈페이지에 표시가 되지 않았다. 그리고 not JSON serializable"라는 에러 메시지가 떴다.
ROBO 3T를 켜서 보면 db에는 들어가 있는데, 화면상 표시가 되지 않는 게 너무 이상했다. 결국 해설의 코드와 대조해가면서 어디가 달라졌는지를 파악했는데, 다음과 같은 부분이 문제인 것 같았다.
# 주문 목록보기(Read) API
@app.route('/order', methods=['GET'])
def view_orders():
orders = list(db.orders.find({}, {'_id': False}))
return jsonify({'result': 'success', 'orders': orders})
if __name__ == '__main__':
app.run('0.0.0.0', port=5000, debug=True)
class나 function definition이 끝난 다음에는 2 blank lines가 필요하다는 말인데.. 처음에 뼈대는 코드스니펫으로 복붙해 넣은 것인데 어쩌다 blank line이 하나 빠졌는지 알다가도 모를일이다.
<5주차>
완성된 원페이지 쇼핑몰을 누구라도 접속해서 볼 수 있도록 업로드 했다.
이 과정도 험난했다. 처음에 과제를 하지 않고 훑어본 다음 다시 했더니 스텝이 여럿 꼬여서 곳곳마다 에러가 발생..
그래서 아예 AWS 서버 구축부터 다시 해야 했다.
완성하고 나서 반추하니 terminal에서 pip install pymongo 명령어를 내렸으면 해결이 됐을 것도 같다는 생각을 했지만.. 복잡할 때는 아예 그냥 갈아 엎는 편이 더 나을지도 모르겠다.
☑기억해야 할 명령어 (수정 사항이 생겼을 때 서버를 끄고, 기존 파일 지우고, 새 파일 다시 업로드 하고, 서버를 다시 켜주는 과정에 꼭 필요!)
그렇게 기초 강의를 완강하고 세상에 나오게 된 내 첫 웹페이지 서비스 '웹프로그래밍 A-Z 기초' 결과물
git-sum 오타인가요?? ㅎㅎ