백엔드 개발자(node.js)가 되는 과정 76

백엔드에서 현재 시각을 데이터베이스에 입력하기

팀프로젝트로 웹 사이트 개발 과정에서 게시글이나 댓글이 등록 또는 수정된 시간을 데이터베이스에 기록하는 과정에서 신기한 부분을 발견했다. 1. 들어갈 때랑 나올 때 시간 형식이 변한다. @app.route("/members//comments", methods=["POST"]) def post_comments_with_id(member_id): now = datetime.now() # 한국 기준 현재시각을 출력합니다. data["upload_time"] = now db.comments.insert_one(data) return jsonify({"msg": "방명록 작성 완료!"}) 방명록 POST 과정에서 다른 과정은 생략하고 현재 시각 설정에 관한 코드만 보자 일상에서 현재 시각이 필요한 경우 항상 da..

파이썬 vs 자바스크립트 코드의 차이

파이썬으로 DS 분야를 공부했던 입장에서 자바스크립트는 확실히 복잡하게 느껴졌다. 같은 객체 지향 프로그래밍 언어라서 입문 수준의 코드를 익히는게 어려운 일은 아니었지만 왜 이렇게 했을까? 라는 의문이 드는 몇 가지가 있었다. 1. default parameter 출력에 관하여 function greeting(name='apple', name2, name3) { console.log(`Hi ${name}`); console.log(`Hi ${name2}`); console.log(`Hi ${name3}`); }; greeting(undefined, 'ball', 'cat') 위 함수에서 name 파라미터에 디폴트 값을 사용할 경우 undefined를 써줘야 한다. 개인적으로 이 부분이 조금 불편하게 여겨..

AWS EC2에서 mongoDB 데이터베이스 생성하기

지난 일주일간 팀프로젝트로 미니 웹페이지를 생성했지만 배포에 욕심이 났다. beanstalk로 간단하게 배포할 수도 있지만 개인적으로 EC2 인스턴스 생성부터 배포까지 한번 해내고 싶었다. (무엇보다 beanstalk로 생성하니 나도 모르게 EC2 인스턴스 생성되어 실행된다는 사실을 뒤늦게 알았는데, 나도 모르게 인스턴스 생성된다는 점이 조금 맘에 걸렸다...돈이 걸린 문제니까...) 특히 EC2에서 mongoDB 데이터베이스를 구축하는 과정은 경험한 적이 없었는데 메뉴얼을 참고하며 간단한 구축 방법을 익힐 수 있었고, 이를 아래와 같이 정리했다. install guide: (https://www.mongodb.com/docs/manual/tutorial/install-mongodb-on-ubuntu/)..

백엔드 기초 입문과 미니 프로젝트 03

코멘트 수정 기능 구현 각 코멘트마다 '수정'이라는 a 태그에 해당 코멘트 id와 연결되는 링크를 담았고, 이를 클릭 시 아래 백엔드로 이동한다. @app.route("/comments/", methods=["GET"]) def get_comment_with_id(id): result = db.comments.find_one({"_id": ObjectId(id)}) result["_id"] = str(result["_id"]) return render_template("edit.html", result=result) 수정 버튼을 누르면 우선 기존 코멘트 id에 기록된 내용들을 가져와 edit.html에 함께 전송한다. {{ result['comment'] }} 수정 기존에 사용했던 코멘트 등록 틀만 따로..

백엔드 기초 입문과 미니 프로젝트 02

프로젝트 목표 본인 소개 페이지와 하단에 코멘트를 남길 수 있는 개인 페이지를 만든다. 구현 내용 Pagination 한 페이지 당 보여질 코멘트의 개수를 지정하고 limit = 5와 같은 형태로 변수 지정한다. 페이지 수가 많을 것을 대비하여 n개 단위로만 페이지 번호가 보여지도록 한다. 예를 들어 5개 단위로 페이지를 그룹지을 경우 최초 1 ~ 5페이지 번호만 보여지며 6페이지로 이동할 경우 6 ~ 10 페이지 번호가 보여지게 한다. 페이지번호 노출 범위에 대한 정보를 page_set = 5와 같은 형태로 변수 지정한다. Previous와 Next 버튼은 다음 페이지 그룹이 노출되도록 하는 기능이다. 가령 현재 페이지가 1 ~ 5페이지 내 있는 경우 Next 버튼을 클릭하면 6페이지로 이동하고, 6 ..

백엔드 기초 입문과 미니 프로젝트 01

지난 2주 간 스파르타 코딩 클럽 사이트에서 제공하는 웹 개발 종합반 5주 완성 강의를 듣고 개인 미니 프로젝트를 진행했습니다. 프로젝트 목표 최신 영화 목록에 대해 별점과 코멘트를 등록할 수 있고, 각 영화마다 현재까지 달린 코멘트를 확인할 수 있는 사이트를 개발한다. 위 사진에서처럼 이미 정해전 영화 목록에 대해서 코멘트를 달 수 있는 기능과 영화 제목을 클릭하면 지금까지 달린 코멘트를 볼 수 있는 페이지로 전환되도록 구현하였다. 아래 내용은 입문자로서 구현하면서 고민했던 부분에 대한 내용이다. html 전환 메인페이지에 나열된 특정 영화 제목 중 하나를 클릭하면 reviews.html 페이지로 넘어가되 reviews 페이지의 골격은 유지하면서 movie_id에 따라 콘텐츠가 다르게 적용되도록 구현한..