https://prime-number-discriminator.herokuapp.com/
- EJS
- SCSS
- CSS
- JavaScript
- Node.js
- MongoDB
- Heroku
- 사용자가 데이터 입력 후
Result클릭 - 서버로 데이터 전송
- 소수인지 판별 후
alert으로 결과 알림
- 사용자가 데이터 입력 후
Result클릭 - 서버로 데이터 전송
- 소수인지 판별 후 DB에 저장
- 최근 검색된 10개 항목 DB로부터 가져와서
last에 띄우기 - 가장 많이 참조된 10개 항목 DB로부터 가져와서
rank에 띄우기
- 이제 외부에서도 내가 만든 사이트에 접근할 수 있다.
-
require('dotenv').config()를 이용하여.env파일 내용을process.env로 가져올 수 있다. -
CSS에 여러 프로그래밍적 요소가 추가된 것.CSS파일이 많지 않아서 효과적이진 않았음.
-
HTML과JS분리 및MVC모델을 적용하여 코드를 리팩토링
-
const parent = document.getElementById("rank") while (parent.hasChildNodes()) parent.removeChild(parent.firstChild) fetch("/rank") .then(async (response) => { const result = await response.json()
이미 존재하는 데이터를 전부 삭제 후 비동기 요청을 보냈다. 응답이 오기까지 시간이 걸리기 때문에 깜박임이 생겼다.
-
fetch("/rank") .then(async (response) => { const result = await response.json() const parent = document.getElementById("rank") parent.innerHTML = ""
먼저 비동기 요청을 보낸 후 요청이 오면 기존 내용을 삭제한다. 기존 내용을 삭제하는 방법도 달라졌는데, 기존에는 부모 노드를 이용하여 자식 노드를 차례로 삭제하는 방법을 사용했다. 수정 후에는 부모 노드의
innerHTML에 빈 데이터를 넣음으로써 기존 내용을 삭제하는 방법을 사용했다.
-
소수판별기와 어울리지는 않지만 공부삼아 구현해보았다.
OAuth의 기본 동작만 구현하였고, 기존 사이트에는 회원가입 및 로그인 기능이 없기 때문에, 현재는Local Repository의feature/oauth에만 유지중이다.
-
사이트에 처음 접속 & 새로고침 시 클라이언트에게 보여지는
last,rank테이블을EJS 템플릿을 이용하여 구현하였다. 기존 방식보다route.js와updateTables.js,common.js파일이 훨씬 간단해졌다. -
last,rank테이블에 있는Checkbox클릭 시 해당 숫자의 소인수분해 결과를 볼 수 있다.
-
현재 사이트에
Bootstrap 5.0버전을 적용한 브랜치feature/bootstrap을 생성하였다. 기존 UI보다 썩 마음에 들지 않아merge는 하지 않았다.