function findDay (a, b) {
const yoil = ["SUN","MON","TUE","WED","THU","FRI","SAT"];
let answer = '';
switch (a) {
case 5:
answer = yoil[(b-1) % 7];
break;
case 2, 8:
answer = yoil[b % 7];
break;
case 3, 11:
answer = yoil[(b+1) % 7];
break;
case 6:
answer = yoil[(b+2) % 7];
break;
case 9, 12:
answer = yoil[(b+3) % 7];
break;
case 1, 7, 4:
answer = yoil[(b+4) % 7];
break;
case 10:
answer = yoil[(b+5) % 7];
break;
}
return answer;
}
function solution(a, b) {
var answer = '';
answer = findDay (a, b);
return answer;
}
이렇게 짜 보았는데 테스트는 통과했지만 제출하니 정답률이 반타작이다. 질문하기를 살펴보니 목요일이 빈칸으로 나온다. 왜 이러지? 🤔
일요일 - 토요일 까지의 요일을 인덱스로 반환해준다. 그래서 0 - 6 사이의 수가 나온다.
JS 기반 해답을 공유해주신 분이 알려주어서, 목요일이 자꾸 빠져버리는 내 코드를 버리고 새로 짜보았다.
function findDay (a, b) {
const yoil = ["SUN","MON","TUE","WED","THU","FRI","SAT"];
const day = new Date(`2016-${a}-${b}`).getDay();
return yoil[day];
}
function solution(a, b) {
var answer = '';
answer = findDay (a, b);
return answer;
}
일단 이걸로 통과는 되었다. 그런데 원래 코드에서 목요일은 왜 안나오는걸까? 🤔 % 7 = 0일 때의 값을 "THU" 로 지정해주어도 나오지 않았다.
자주쓰는 리눅스 명령어 모음
- pwd : 현재 작업 디렉토리가 어디인지 보여준다 (경로가 나옴)
- ls : 리스트. 현재 디렉토리의 폴더와 파일 목록을 보여준다. ls -la 하면 숨겨진 파일도 보여줌.
- cd .. : 상위 디렉토리로 이동
- 폴더생성: mkdir 폴더명, 파일생성: touch 파일명
보통 데이터테이블을 관리할때 서버에서 사용하는 정보, 클라에서 사용하는 정보, 서버와 클라 양쪽에서 사용하는 정보를 다 구분하여 관리하는 방법이 있다.
참고 블로그
오케이 땡큐!
json 파일을 준비하든, 그것도 힘들면 하드코딩을 하든 해서,
서버가 뜰때 서버에서 클라이언트에게 기본 데이터를 읽어오도록 해야한다.
최대한 서버에서 하는일을 줄이고 클라 주도로 시도해보자.
여기서부터 시작해서 나가도록 하자.
로그인 할때 액세스 토큰으로 검증. 스테이지 들어가서는 안쓰겠지만,
은택님은 서버를 먼저 건든게 아니고, 서버의 흐름만 이해한 상태에서 클라이언트부터 건드렸다. 보여질 수 있는 부분과 검증할 수 있는 부분에서 가장 이점을 가지는게 클라이언트기 때문에.
클라이언트를 조금씩 만지다 보면 이 부분이 서버와 이렇게 소통하고 있구나, 를 알 수 있다. 거기서부터 시작하는 것.
결국에 서버와 소통하는건 다 소켓에서 이루어진다.
클라이언트에서 값의 변경을 이루어내려고 할때, 본인이 직접 값을 입력하는 게 아니고 정보 명세서(페이로드)를 넘기는 것이다.
클라는 socket.on으로 받아서 뿌려준다.
앞에 이벤트가 일치할 경우만 on과 emit으로 소통한다. 그렇게 하는 이유가, 클라이언트가 자기혼자 받아서 변조하지 못하게 하려고.
-> 클라이언트에서 어떤 값을 입력할때 서버랑 통신하게 하려고 이렇게 하는 것임. 우리는 지금 그것을 웹소켓으로 하는거고.
socket.on과 emit 하는 부분을 잘 살펴보면 흐름을 조금씩 이해할 수 있을 것.
VS Code 기준으로 다음과 같다.
git checkout 머지당할 브랜치 이름 (dev, main 등)
git merge 머지 넣을 브랜치이름 (보통 feature)
-> 이렇게 merge 받을 브랜치로 이동해서 git merge (받아올 브랜치 이름) 하면 conflict 처리 창이 자동으로 뜰 것.
yarn add -D @types/express
-> 이거 (모듈이름).d.ts 라는 파일이 없어서 그렇다고 한다.
터미널에서 yarn add -D @types/(모듈이름) 을 치면 그 d.ts파일이 있는 경우는 알아서 받아준다.