Visual Studio Code에서 code 명령어 (터미널에서 Visual Studio Code 실행 명령어)가 작동하지 않는 오류는 주로 PATH 환경 변수에 VS Code 설치 경로가 등록되지 않아서 발생합니다. 해결 방법은 VS Code 설치 경로를 PATH 환경 변수에 추가하는 것입니다.
명령어(python, npm, git 등)가 설치되어 있는지 확인 시스템 PATH 환경 변수에 등록되어 있는지 확인
Visual Studio Code를 설치할 때, 터미널에서code명령어를 사용하여 프로젝트 폴더를 쉽게 열 수 있도록 PATH 환경 변수에 VS Code 실행 파일 경로를 추가해야 합니다.하지만 설치 과정에서 이 부분이 자동으로 처리되지 않거나, 사용자가 수동으로 경로를 추가하지 않은 경우,code명령어를 인식하지 못하는 오류가 발생합니다.
해결 방법
1.VS Code 설치 경로 확인:
일반적으로 VS Code 실행 파일은 다음 위치에 있습니다.
Windows:C:\Users\<사용자 이름>\AppData\Local\Programs\Microsoft VS Code\Code.exe
macOS:/Applications/Visual Studio Code.app/Contents/Resources/app/bin/code
export PATH="$PATH:/Applications/Visual Studio Code.app/Contents/Resources/app/bin"
Ctrl + X를 누르고Y를 누른 후Enter키를 눌러 저장합니다.
source ~/.zshrc또는source ~/.bash_profile명령어를 입력하여 변경 사항을 적용합니다.
3.터미널 재시작:
변경된 PATH 환경 변수를 적용하려면 터미널을 닫았다가 다시 열어야 합니다.
추가 정보:
명령 팔레트 사용:
VS Code 내에서Ctrl + Shift + P(또는Cmd + Shift + PmacOS)를 눌러 명령 팔레트를 열고 "Shell Command: Install 'code' command in PATH"를 검색하여 설치할 수도 있습니다.그러나 이 방법이 항상 제대로 작동하지 않을 수 있습니다.
권한 문제:
경우에 따라 관리자 권한으로 VS Code를 실행해야 할 수도 있습니다.만약 위 방법으로 해결되지 않으면, VS Code를 관리자 권한으로 실행해 보시기 바랍니다.
입력을 받아야할것은 총 두개로 시간 , 분 , 초 엔터(개행) 후에 요리시간에 걸리는 초입니다.
변수는 보기쉽게 hour , min , sec , time 으로 하였습니다.
#include <stdio.h>
int main(){
int hour,min,sec; // 시간 , 분 ,초 변수
int time; // 걸리는 초 변수
scanf("%d %d %d",&hour,&min,&sec); // 시간,분,초 입력 받기
scanf("%d",&time); // //걸리는 초 입력받기
}
이제 입력을 받았으면 초(time 변수) 를 시간, 분, 초로 변환해
각각 시간(hour 변수) 분(min 변수) 초(sec변수) 에 더해주도록 하겠습니다.
hour = hour + time/3600;
min = min + time%3600/60;
sec = sec + time%3600%60;
위에서 이야기 한것처럼 1시간은 3600 초 이므로 받아온초(time 변수) 에서 3600으로 나눈 몫이 시간이되겠죠?
잡설인데.. 2023년 정보처리기사 실기 2회차 문제에 동전 거스름돈 문제가 나왔었습니다,, %%% 십
다 더해주었다면 이제 각각 다음과정을 거쳐야합니다.
1. 초가 60이 넘는다면 0부터 다시 시작하고 분에 넘는시간만큼 더해주기
2. 분이 60이 넘는다면 0부터 다시 시작하고 시간에 넘는시간만큼 더해주기
3. 시간이 24가 넘는다면 0부터 다시 시작하게
왜냐하면 26시간 88분 67초라는 시간은 이세상엔 없기 때문입니다,,
실제로 위과정까지 더해주기만 하면 이런값들이 보여지겠죠?
if(sec>=60) { //초가 60을 넘기게되면
min = min + sec /60 ; // 초에서 나눈 몫을 분에 더해줍니다.
sec = sec %60 ; // 나머지값을 남기면됩니다.
}
if(min>=60) {
hour = hour + min/60 ; // 초 계산과 동일합니다.
min = min%60 ;
}
if(hour>=24){
hour = hour % 24;
// 여기서 -24가 아닌 나머지 연산자로 %24를 해야합니다. 반례로 98을 생각해보세요 -24를 하면
// 결과는 74가 될것입니다,,
}
// 여기서 중요한게 시간,분,초 순으로 조건문을 걸게되면 문제가 생길수도있습니다
// 예를 들어 134 + 149 계산을할때 일의 자리부터 계산을 해서 10을 초과하는건
// 다음자리로 넘겨주잖아요? 이거랑 동일하게 생각하시면 됩니다.
아래엔 풀코드입니다.
#include <stdio.h>
int main(){
int hour,min,sec;
int time;
scanf("%d %d %d",&hour,&min,&sec);
scanf("%d",&time);
hour = hour + time/3600;
min = min + time%3600/60;
sec = sec + time%3600%60;
if(sec>=60) {
min = min + sec /60 ;
sec = sec %60 ;
}
if(min>=60) {
hour = hour + min/60 ;
min = min%60 ;
}
if(hour>=24){
hour = hour % 24;
}
printf("%d %d %d",hour,min,sec);
}
var a = "사과" // 여기서 처음으로 이름이 a인 var 변수가 선언되었습니다.
console.log(a) // 사과
var a = "나무" // 그런데 여기서 다시한번 var a = "나무" 라고 선언하였습니다.
console.log(a) // 나무
a="바나나" // 여기서는 a="바나나" 라고 재할당 한것입니다.
console.log(a) // 바나나
var는 재할당,재선언이 가능하다라고 알고계시면 되겠습니다.
2. let
let 은 재선언 과정에서 오류가 납니다,,
문법오류가 나면서 let 변수 a는 이미 선언되었다고 나옵니다.
재선언 하는 코드를 지우니 문제 없이 실행되었습니다.
따라서 let은 재선언은 되지않고 재할당만 가능하다. 라고 생각하시면 되겠습니다.
3.const
const 변수도 재선언은 안되는 모습입니다...
똑같이 문법오류로 이미 선언되었다고 나옵니다.
그럼 a에 재할당 시키는건 어떨까요?
vs코드 상에서는 빨간줄 오류 없이 문제가 없지만 실행하면
상수 변수로 할당되었다고 나옵니다.
따라서 const 변수는 재할당 재선언 둘다 안된다고 생각하시면 됩니다.
정리하면 var,let,cont 변수들은
재선언
재할당
var
O
O
let
O
X
const
X
X
라고 보시면 되겠습니다.
좀 더 알아보자면 호이스팅 이라는 개념이나옵니다.
호이스팅이란?
자바스크립트 함수는 실행되기 전에 함수내부에 필요한 변수값들을 모두 모아
유효범위의 최상단에 선언한 것 처럼 동작하는 것을 호이스팅 이라합니다.
자바스크립트를 위에서 아래로 하나씩 읽는(파싱) 파서(parser)가 함수 실행전 해당하는 함수 내부를 흝어봅니다
함수 내 존재하는 변수, 함수 선언에 대한 정보를 기억하고 실행합니다.
함수의 유효범위는 함수 블록 {} 내 인데, 필요한 값들을 블록 위의 상단으로 끌어올리는것입니다.
실제코드가 위로 올라가는 것은 아니고
자바스크립트 파서 내부적으로 끌어올려 처리하는 것이므로
실제 메모리에서는 변화가 없습니다.
var 변수의 호이스팅
console.log( ) 함수가 실행될때 위에 선언된적 없는 a라는 변수가 담겨있습니다.
첫번째 결과는 undefined인데 내부에서 미리 a변수를 선언하여 undefined로 초기화를 해두었기 때문입니다.
let 변수의 호이스팅
let 변수는 호이스팅이 불가능합니다. 함수선언전 초기화하기전에 접근할수없다고 나옵니다
const 변수의 호이스팅
const 변수도 동일하게 호이스팅이 불가능합니다. 함수선언전 초기화하기전에 접근할수없다고 나옵니다.