본문 바로가기

전체 글106

[Webpack] SPA 구현 시 새로고침 후 404 에러 (라우팅 에러) Webpack과 Vanilla JavaScript를 사용하여 SPA를 구현하던 중 에러가 발생했다. 문제 상황 메뉴바 Click을 통한 페이지 이동에는 문제가 없다. 그러나 새로고침을 하거나 주소창에 URL 입력 시 404 에러가 발생했다. 단 루트 페이지(/)에서는 에러가 발생하지 않았다. 원인 처음에는 window.history.pushState를 활용한 라우팅 관련 코드가 원인이라고 생각했다. 그러나 관련 코드를 수정해도 문제가 해결되지 않았다. 주소창에 URL을 입력하는 것은 GET 요청을 의미한다. 그러므로 에러가 발생한 이유는 해당 URL의 GET 요청을 처리하지 못한 것이다. 서버에 없는 URL이기 때문에 해당 요청을 처리하지 못하고 404 에러가 발생한다. 해결방안 History API 사.. 2022. 1. 27.
[코딩테스트] Codility 5-3  GenomicRangeQuery (JavaScript) 링크 : https://app.codility.com/programmers/lessons/5-prefix_sums/genomic_range_query/ Solution1 정답률 : 62% 시간복잡도 : O(N * M) 코드 작성 S를 impact factor 숫자로 된 문자열로 바꾸기 P와 Q를 반복문으로 순회하며, S 구간별 최소값 찾기 function solution(S, P, Q) { let Num = ''; for (let i=0; i 2022. 1. 27.
[코딩테스트] Codility 5-4 MinAvgTwoSlice (JavaScript) - 평균의 수학적 특성 활용 문제 링크 : https://app.codility.com/programmers/lessons/5-prefix_sums/min_avg_two_slice/ Solution 정답률 : 100% 시간복잡도 : O(N) 시간복잡도를 줄이기 위해 수학적 인사이트가 필요했다. 두 수의 평균은 두 수 중 작은 수보다 크거나 같다 정수 m, n이 있고, m 2022. 1. 26.
[코딩테스트] Codility 5-1 PassingCars (JavaScript) 문제 링크 : https://app.codility.com/programmers/lessons/5-prefix_sums/passing_cars/ Solution1 정답률 : 100% 시간복잡도 : O(N) East 방향의 자동차를 east 배열을 선언하여 따로 넣기 특정 East 방향의 자동차보다 큰 자동차들 개수에서, East 방향의 자동차 수를 뺀 수를 count에 더해주기 function solution(A) { let count = 0; // 배열 A에서 east 방향의 자동차만 담는 배열을 따로 선언하기 let east = []; for (let i=0; i 1000000000 ? -1 : result; } 2022. 1. 26.
[코딩테스트] Codility 4-4 MissingInteger (JavaScript) 문제 링크 : https://app.codility.com/programmers/lessons/4-counting_elements/missing_integer/ Solution 1 정답률 : 66% 시간복잡도 : N^2 코드 작성 전달인자인 배열 A의 중복을 제거한 뒤, 오름차순으로 정렬하고, 0 이상의 엘리먼트만 필터합니다. 1부터 100,000까지 양의 정수를 엘리먼트로 갖는 배열 number를 선언합니다. 두 배열의 0번 인덱스를 비교하여, A의 엘리먼트 중 비어있는 양의 정수의 최소값을 찾을 수 있습니다. function solution(A) { // 배열 A의 중복 제거, 오름차순 정렬, 양의 정수만 필터링한 배열 positive 선언 let newA = [...new Set(A)]; let a.. 2022. 1. 21.
[Heroku] Node.js 서버 및 DB 무료 배포/호스팅 (MySQL & Sequelize) Sequelize Version : ^6.12.0-alpha.1 mysql Version : 2.18.1 mysql2 Version : 2.3.3 1. create new app을 통해 서버 배포 준비하기 heroku 터미널 사용과 서버 배포 방법은 유튜브와 구글링을 통해 쉽게 찾을 수 있기 때문에 생략했습니다. 여기서는 MySQL과 Sequelize를 사용한 DB 연결을 중점적으로 포스팅했습니다. 그래도 서버 배포를 위해 입력해야할 기본 코드들은 아래와 같이 정리했습니다. 서버 index.js 파일에서 port에 환경변수 process.env.PORT를 할당해야합니다. 저는 express 라이브러리를 사용했으며, 사용한 코드는 아래와 같습니다. // server의 index.js const port =.. 2022. 1. 19.
반응형