- 타입 스크립트와 컴파일러
- 키오스크 개발
프로그래머스공부하며 느낀 점
참조한 사이트
타입 스크립트에는 TSC라는 컴파일러가 있다.
컴파일러 란?
컴퓨터 언어를 다른 언어로 변환해주는 도구이다.
정적 언어의 정체성을 유지해주는 도구이다.
코드의 실행 주체에 따라서 기계어가 아니어도 된다.
Node.js, Chrome V8엔진, FireFox SpiderMonkey가 코드 해석 실행을 담당하기 때문에, 기계어 변환 없이 순수 자바스크립트로 실행이 가능하다.
자바스크립트는 인터프리터언어이다. 즉, 한 줄씩 실시간 번역을 하기 때문에 오류를 미리 잡기 힘들다.
대표적인 TSC 명령어 네 개
tsc --inittsc index.tstsc src/*.tstsc index.js --declaration --emitDeclarationOnly

뭔가가 잘못되었다.

마이그레이션은 이렇게 해놨는데 없는 값을 추가하면, DB에서 거르는 것이 아니라 그 이외의 값은 입력이 안되는 것이었다.


제대로 걸러낸다

못걸러낸다 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
아니 왜...


매서드 내에서의 if문사용

findAll 매서드 내에서 if문 사용은 불가능하다.
itemInquiryRepository = async (orderFilter, orderSort) => {
console.log("orderFilter:", typeof orderFilter, orderFilter);
let whereClause;
if (orderFilter !== "all") {
whereClause = { type: orderFilter };
} else {
whereClause = {};
}
const Inquiry = await Item.findAll({
where: whereClause,
attributes: { exclude: ["itemOrderCustomerId"] },
});
return Inquiry;
};
위와같이 밖에서 변수와 if문을 선언하고 안에서 써먹었다.

풀기전에 생각
자신 -1이어야 1이 남는가?소수-1의 약수를 구하면 되는가?자신-1이어야 하는가?자신-1의 약수... 즉, 2면 된다...결론 : 홀수인경우면 2에서 끝나고, 짝수인 경우 1씩 올려야한다.
그런데, 홀수인지 확인하는 과정 자체가 2로 나눠서 나머지를 보는 것이기 때문에 따로 조건을 짤 필요는 없을 것같다.
답이 항상 존재한다니까 2부터 시작하면 되겠다.
나의 풀이
function solution(n) {
var reminder = 0;
let i = 1;
while (reminder !== 1) {
i++;
reminder = n % i;
}
return i;
}
나머지가 1이 될때까지 i를 1씩 증가 시키면서 나머지를 구하게 코드를 짰다. 원래는 i를 2부터 시작했는데 그러면 답을 다 구한다음에 i가 1 증가하는 문제가 생겨서 i를 1부터 시작시키고, 나누기전에 i를 1증가시키는 방법을 선택했다.
다른 사람의 풀이 1.
function solution(n, x = 1) {
while (x++) {
if (n % x === 1) {
return x;
}
}
}
while문의 조건안에 증감을 넣을 수 도 있다는 것을 배웠다.
다른 사람의 풀이 2.
const solution = function(n) {
for (let i=0; i<n; i++){
if (n%i == 1){
return i
}
}
}
제일 무난한 방법인것같다.
조건을 먹일 때 좀 더 자세히 따져야겠다.
느낌적 느낌으로다가 조건을 지정하니 말도 안되는 조건이 되었다.
매서드의 안에서는 if문을 사용할 수 없고, 대신 밖에서 적용한뒤 매서드 안에 변수를 넣는 방법을 사용해야한다.