메인 페이지와 맵 페이지를 만든 후 그동안 사용했던 주요 기술들과 가장 도움이 많이되었던 참고한 글들을 적어둔 Info 페이지를 만들었다. 나는 네온싸인 느낌을 좋아하기에 이번에는 네온싸인을 컨셉으로 만들어 보았다. 제작과정 중 스크롤 애니메이션 라이브러리와 fullPageScroll이 서로 동시에 원활히 동작을 하지 않았다. 이문제 때문에 꽤나 많은 시간을 보냈다. 안되는 원인은 이러했다. fullPageScroll은 한번 스크롤을 할 때마다 페이지의 최상단에 다음 보여질 스크롤 페이지가 오도록 한다. 이때, 스크롤 애니메이션 라이브러리는 스크롤 시 보여지는 태그들의 클래스네임에 보여지게 하는 클래스네임을 부여해서 효과를 주는 방식인데, fullPageScroll에서는 클래스네임이 부여된 채로 시작하고..
취준생
문제 설명 1부터 입력받은 숫자 n 사이에 있는 소수의 개수를 반환하는 함수, solution을 만들어 보세요. 소수는 1과 자기 자신으로만 나누어지는 수를 의미합니다. (1은 소수가 아닙니다.) 제한 사항 n은 2이상 1000000이하의 자연수입니다. 문제 풀이 방법 이 소수찾기 문제는 두 함수로 나누어서 풀어보았다. 첫번째 함수는 인자로 전달된 수가 소수인지 true / fasle 를 반환한다. for문에서 Math.sqrt를 사용한 이유는 주어진 수를 나누어 나머지를 확인할 때 중복된 동작을 방지하기 위함이다. (ex. 8이 주어진 경우 약수는 1, 2, 4, 8 이지만, 재곱근 2.8284....을 이용해 풀어주면 2 까지 동작하면 된다.) 그리고 소수이면 true, 아니면 false를 반환한여 ..
문제 설명 문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요. 제한 사항 문자열 전체의 짝/홀수 인덱스가 아니라, 단어(공백을 기준)별로 짝/홀수 인덱스를 판단해야합니다. 첫 번째 글자는 0번째 인덱스로 보아 짝수번째 알파벳으로 처리해야 합니다. 문제 풀이 방법 이 문제는 문자열에 있는 단어들을 빈칸 단위로 나눈다음 순회하며 처리해줘야 한다. 우선 split(" ")메서드를 이용해 빈칸으로 나눠진 단어들을 구분해준다. 나누어진 문자열들은 배열안에 들어가 있는 상태로 나오기에 이제 배열 메서드를 사용해주어 계산하자 for문으로..
문제 설명 비밀지도 네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 있어 위치를 확인하기 위해서는 암호를 해독해야 한다. 다행히 지도 암호를 해독할 방법을 적어놓은 메모도 함께 발견했다. 지도는 한 변의 길이가 n인 정사각형 배열 형태로, 각 칸은 "공백"(" ") 또는 "벽"("#") 두 종류로 이루어져 있다. 전체 지도는 두 장의 지도를 겹쳐서 얻을 수 있다. 각각 "지도 1"과 "지도 2"라고 하자. 지도 1 또는 지도 2 중 어느 하나라도 벽인 부분은 전체 지도에서도 벽이다. 지도 1과 지도 2에서 모두 공백인 부분은 전체 지도에서도 공백이다. "지도 1"과 "지도 2"는 각각 정수 배열로 암호화되어 있다. 암호화된 배열은 지도..
매인 페이지와 정보 페이지에 사용할 예정인 full-page-scroll을 연습해봤다. 내가 느끼기로는 full-page-scroll을 사용했을 때 일반적인 스크롤 보다는 보다 깔끔하게 디자인이 가능할것 같아 공부해 적용하려한다. 일반적인 웹에서 보여지는 스크롤바를 없애기 위해 webkit-scrollbar를 사용했다. 바닐라JS를 공부할 때 한번 사용한 적이 있는데 자주 접하지 않아 낮설어서 명세서를 찾아봤다. (다른 웹에서는 지원을 하지만 파이어폭스와 Android 파이어폭스에서는 지원하지 않는다....) /* 화면에서 스크롤바 안보이게 */ body::-webkit-scrollbar { display: none; } 위의 코드는 full-page-scroll이 적용되는 페이지의 최상단에 적용해도 되..
서버측에서 특정 url로 사용자가 접속하면 해당되는 웹을 가져와 보여주는 기능을 구현했다. server 디렉터리에 있는 index.js를 보자 const express = require('express'); const mysql = require('mysql'); const cors = require('cors'); const path = require('path') const app = express(); const port = 3307; const db = mysql.createConnection({ host: '127.0.0.1', // localhost라고 하게 되면 에러가 뜬다. 127.0.0.1과 localhost는 같다는거 같다. user: 'root', password: 'oo991128'..