데이터 분석만 주로 해왔던 나는 분석 원툴로 취업시장에 도전하고 있었다.
그동안 컨셉을 컴퓨터 조금 아는 데이터 분석가로 밀고 왔지만 이제는 분석 결과를 개발 단계에 직접 적용할 수 있는 분석가 컨셉을 갖추어야 할 필요성을 느꼈다.
지난 4개월 간 자연어 처리 전문가 과정 중 프로젝트를 진행할 때 번역 모델을 배포해야 했었다.
당시 BE, FE라고는 전혀 알지 못했었기에(지금도 마찬가지...) 급한 불부터 끄자는 마음으로 flask와 gunicorn으로 매우매우 간단한 서버와 배포 환경을 만들었었다.
이 과정에서 서버를 만들고 뿌리는게 생각보다 재미있었다.
이에 앞으로 백엔드 소양까지 갖춘 분석가로의 방향을 새로 다져보고자 한다.
물론 분석 쪽도 포기하진 않을 것이다!
Javascript는 사실상 처음 보기 때문에 이 언어만의 특징(?)과 동작 원리들을 위주로 정리하고자 한다한
console.log(temp); // 흐름 상 temp가 선언되지 않았지만 Hosting에 의해 temp는 undefined로 정의
var temp = 80;
var temp;
console.log(temp) // 80 출력
// function level scope 예시
// var로 선언되었기 때문에 런타임 이전에 선언 및 undefined로 초기화
var i = 0
for (var i = 0; i < 10; i++) {
console.log(i);
}
console.log(i); // 10
중복 선언 불가, 재할당 가능
block level scope : 제어문, 함수 몸체 등 code block은 local variable로 처능
Hoisting이 발생하지 않는 것 같지만 발생함화
선언과 초기화가 분리되어 진행 -> 선언 단계가 먼저 실행되지만 초기화는 선언문에 도달했을 때 실행
초기화 이전에 접근 시 ReferrenceError 발생
일시적 사각지대(Temporal Dead Zone) : 스코프 시작 지점부터 초기화 시작 지점까지 변수를 참조할 수 없는 구간
// scope, 중복 선언 예시
let example = 0;
{
let example = 1;
let newExample = 3;
}
let example = 321; // Syntax error, 중복 선언
console.log(example); // 0
console.log(newExample); // ReferenceError, block level scope
// TDZ 예시
// Runtime 이전에 선언 실행, variable initialize X
// 변수 hello의 TDZ 시작
console.log(hello); // ReferenceErro화
// 변수 hello의 TDZ 끝
let hello; // 초기화
console.log(hello); // undefined
hello = 3; // 할당
console.log(hello);