node.js 7

쇼핑몰 프로젝트 배포 완료.

한달 좀 넘게 열심히 공부한 쇼핑몰 프로젝트를 드디어 완료했다!디자인 진행도 하지 않았고 여러가지 예외처리들도 모두 제외하고 진행하긴 했지만그래도 DB설계부터 프론트~백엔드 전 작업을 풀스택으로 경험해보는 좋은 공부였다. 마지막 배포는 지난번 포스팅의 절차처럼 DB 배포가 먼저 진행되고https://designerdk.tistory.com/28 mongoDB Atlas로 DB 무료로 배포하기강의를 통해 풀스택으로 '할일 앱'을 만들었고 배포하는 과정으로 들어갔다.가장 먼저 DB 배포를 진행했다. mongoDB atlas를 가입하고 클러스터라는 걸 만들어준다. (shared가 클러스터 1개까지 무료)designerdk.tistory.com백엔드 배포를 진행했다.https://designerdk.tistor..

[구글 OAuth 로그인 만들기] js+node.js로 구현 (credential을 보내고 jwt를 받는 방식)

기존에 구현해 둔 이메일-패스워드 로그인 방식이 백엔드로부터 jwt 토큰을 받고 로컬 스토리지에 저장하는 방식으로 제작 되어있었는데, 이 방식을 유지하면서 구글 OAuth 로그인을 추가로 구현해보았다. 방식을 간단하게 설명하면, 구글 로그인 관련 프론트엔드 코드에서 credential 코드를 보내고 백엔드에서는 이걸 받아서 기존 방식과 같은 jwt로 토큰을 만들어서 응답 데이터로 반환해서 기존 로그인 방식과 구글 로그인 방식이 한 로직으로 다 구현되도록 만들어보았다. 참고로 이번에 구글 로그인 기능을 구현해보면서 알게 된 부분이지만 지금 설명하는 이 방식은 여러가지 구글 오어스 구현 방식 중 하나일 뿐이며, 실제로 개발 방식에 따라 여러 방식으로 구현할 수 있긴 했다. 구글 OAuth 로그인을 구현하기 ..

카테고리 없음 2024.11.17

장바구니 기능 구현 - javaScript + node.js

드디어 평소에 궁금했었던 장바구니 기능을 진행해보았다.   (일단 최대한 기능 위주로 진도를 나가고자 디자인은 정말 하나도 안건드렸다;;)먼저 홈 화면에서 상품 목록을 클릭하면 getProductDetail(item._id)를 실행시키도록 했다.이 함수에 인자로 선택한 상품 아이디를 넣어서 실행하면 해당 아이디를 가지고 get요청을 해서 상품 상세페이지를 가져오게된다.  상세페이지에서는 사이즈를 선택해서 장바구니에 추가를 할 수 있다.사이즈 정보를 선택하는 방법으로 라디오버튼 방식을 해보았다.원래 드랍다운으로 하는게 일반적이나 당장은 이러한 컴포넌트 구현이 공부 주제는 아닌지라;;최대한 간단하게 할 수 있는 라디오 방식으로 했다.//사이즈 선택 라디오 Object.keys(data.data.stock)...

수정과 삭제 기능 - URL에 params(path parameter)로 api 요청하고 응답받기

이어서 상품의 수정 및 삭제 기능 작업을 진행했는데 상품의 경우 api로 주고받는 값들이 많아보니 CRUD를 구현했을 때 코드가 상당히 복잡하고 길어졌다. 그에따라 JS파일을 기능별로 페이지를 분할하는 작업도 병행했다. 모달관련 페이지, 일반 페이지, 겟, 포스트, 업데이트, 딜리트 이렇게 6개 페이지로 나누어보았다. 각 페이지에 대한 js소스는 html에서 하나로 통합된다. script src="/adminProductModal.js">script> script src="/adminProductPost.js">script> script src="/adminProductPut.js">script> script src="/adminProductDelete.js">script> script src="/adm..

프론트~백엔드 한번에 프로젝트 관리하는 방법

Html+js의 정통방식으로 프론트를 만들고 백엔드를 연결하다보니 주소 라우팅 등 이런저런 부분들이 요즘 많이 쓰는 SPA방식에 비해 한계가 느껴졌다. 그래서 정통방식은 유지하면서도 좋은 방식이 없을지 많이 고민해보았고 최근 나의 가장 큰 스승이자 베프인 gpt랑도 많은 이야기를 나눠봤다. 고민해본 결과로 이번 강의 예제는 프론트부터 백엔드까지 한 프로젝트로 관리해보기로 했다. 즉 한 프로젝트 안에서 프론트와 백엔드 api를 소통시키고 나중에 배포까지 클라우드타입과 같은 백엔드 호스팅 서비스에 한번에 하는 것이다. 이 방식의 장단점을 gpt와 많이 논의해봤었는데 아래와 같았다. 장점:단순화된 배포 및 유지 관리: 프론트엔드와 백엔드를 같은 서버에서 관리하므로 배포 및 설정 작업이 단순해지고, 한 번의 배..

[node.js 스터디] 회원가입, 로그인 기능 구현하기

드디어 내가 평소에 궁금했던 회원가입, 로그인 과정을 배우게 되었다.구현은 기존에 진행한 todo-app에 연장선으로 진행했다. 먼저 회원가입부터 진행을 했는데 회원가입의 경우 어떤 특별한 별개 기능이라기보단 유저의 이름, 메일주소, 패스워드를 POST하는 과정이었다. 기존 todo-app은 task라는 api만 있었는데 신규로 user라는 api를 만들고 라우터 세팅 후 User라는 model 스키마도 설계했다. 스키마에는 이름, 이메일주소, 패스워드를 넣어주었다.const userSchema = Schema({ name: { type:String, required:true }, email: { type:String, required:true }, password: { type:String, requi..

새로운 도전

최근 만들어본 ‘킨더서울’ 사이트를 비롯해서 기존에 오픈 되어있는 api 정보들을 가져와서 만드는 사이트들을 여러번 만들다보니 자연스럽게 내가 자체적으로 서버와 데이터베이스를 구축해보고싶은 욕심이 생겼다. 지금까지 자바스크립트 위주로 공부해왔었는데 조사해보니 같은 자바스크립트 베이스의 백엔드 툴로 node.js가 괜찮아보였고 나의 코딩 바이블인 ‘생활코딩’사이트를 통해 node.js를 전반적으로 접해보니 너무 넘사벽 느낌이라기보다 한번 해 볼만 하겠다고 느껴졌다. 좀 더 깊숙하게 공부하면서 실용적인 기능들을 익혀가고 싶었고 (db사용법, 로그인, 주문, 결제 등)이리저리 서치해보니 ‘코딩알려주는누나’의 node.js 강의가 커리큘럼 상 실용적인 부분이 많아보였다. 할일앱부터 쇼핑몰까지 실전예제들을 다루는..