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