본문 바로가기
✨ 서울대생이 면접 떨어지고 6개월간 삽질하며 정리한 'CS 정리 노트', 지금 무료로 풀립니다!

Programming Language56

[Javascript] 실행 컨텍스트와 렉시컬 환경 소스코드의 평가 및 실행모든 소스코드는 실행에 앞서 평가 과정을 거친다. 평가 과정에서는 실행 컨텍스트라는 것을 생성하고 변수, 함수의 선언문만 먼저 실행하여 생성된 변수나 함수 식별자를 실행 컨텍스트에 키로 등록한다. 값은 아직 정해지지 않아 undefined상태이다.이런 평가 과정이 끝나면 실행 단계가 시작된다. 즉 런타임 과정에서 변수나 함수의 값을 채워 넣는다. 이때 실행 컨텍스트에 존재하는 스코프를 참조하여 값을 정하게 된다. var x;x = 1위의 코드에서 평가 과정을 통해 1번 명령줄을 보고 x에 대한 키를 생성하고 실행과정에서 2번 명령줄을 보고 x에 값을 할당한다 실행 컨텍스트의 스택전체 소스코드의 실행은 다음 순서를 가지게 된다1. 전역 소스의 평가2. 전역 소스의 실행3. 전역 소스.. 2024. 6. 13.
[Javascript] 스코프의 정의 및 렉시컬 스코프 알아보기 스코프의 정의와 종류스코프 = 식별자가 유효한 범위.전역에서 선언된 변수는 전역 스코프를 갖는 전역변수, 지역에서 선언된 변수는 지역 스코프를 갖는 지역변수다.  스코프 체인함수 안의 또 다른 함수를 정의할 수 있는데 이를 중첩 함수라고 부른다. 함수가 중첩될 수 있으므로 지역 스코프 역시 중첩될 수 있다. 이는 스코프가 중첩에 의해 계층적 구조를 갖는 것을 의미한다. 이때 바깥 쪽 함수의 지역 스코프를 계층적으로 더 상위 스코프로 간주한다. 참고로 모든 지역 스코프의 최상위 스코프는 전역 스코프이다. 이렇게 모든 스코프가 하나의 계층을 만들어내는 것을 스코프 체인이라 한다 변수를 참조할때 JS엔진은 스코프 체인을 통해 변수를 참조하는 코드의 스코프에서 시작하여 상위 스코프 방향으로 이동하며 선언된 변수.. 2024. 3. 21.
[Regex] 정규 표현식 알아보기2 (파이썬) https://wikidocs.net/4309 07-3 강력한 정규 표현식의 세계로 이제 07-2에서 배우지 않은 몇몇 메타 문자의 의미를 살펴보고 그룹(Group)을 만드는 법, 전방 탐색 등 더욱 강력한 정규 표현식에 대해서 살펴보자. [TOC] # ... wikidocs.net | | 메타 문자는 or과 동일한 의미로 사용된다. A|B라는 정규식이 있다면 A 또는 B라는 의미가 된다. ^ ^ 메타 문자는 문자열의 맨 처음과 일치함을 의미한다. 앞에서 살펴본 컴파일 옵션 re.MULTILINE을 사용할 경우에는 여러 줄의 문자열일 때 각 줄의 처음과 일치하게 된다. $ $ 메타 문자는 ^ 메타 문자와 반대의 경우이다. 즉 $는 문자열의 끝과 매치함을 의미한다. \A \A는 문자열의 처음과 매치됨을 의.. 2022. 4. 25.
[Regex] 정규 표현식 알아보기 (파이썬) 미루고 미루다 시작하는 정규 표현식 공부! https://wikidocs.net/4308 07-2 정규 표현식 시작하기 [TOC] ## 정규 표현식의 기초, 메타 문자 정규 표현식에서 사용하는 메타 문자(meta characters)에는 다음과 같은 것이 있다. > ※ 메타 문자란 원래 ... wikidocs.net 메타 문자: 원래 그 문자가 가진 뜻이 아닌 특별한 용도로 사용하는 문자 메타 문자 종류 : .^$*+?{}[]\|() 문자 클래스 [] 문자 클래스로 만들어진 정규식은 "[ ] 사이의 문자들과 매치"라는 의미를 갖는다. Dot(.) 정규 표현식의 Dot(.) 메타 문자는 줄바꿈 문자인 \n을 제외한 모든 문자와 매치됨을 의미한다. 반복 (*) *은 * 바로 앞에 있는 문자 a가 0부터 무한.. 2022. 4. 24.
[자바] 쓰레드와 공유 객체 및 동기화 package first_project; public class MusicBox { //Dance music이란 메시지가 1초이하로 쉬면서 10번 반복출력 public void playMusicA(){ for(int i = 0; i < 10; i ++){ System.out.println("Dance music"); try { Thread.sleep((int)(Math.random() * 1000)); } catch (InterruptedException e) { e.printStackTrace(); } } // for } //playMusicA //Ballad music이란 메시지가 1초이하로 쉬면서 10번 반복출력 public void playMusicB(){ for(int i = 0; i < 10;.. 2021. 11. 17.
[자바] 쓰레드Thread 생성 쓰레드 생성 방법은 크게 두가지가 있다. 1. Thread 클래스 상속받아 오버라이딩 메서드 구현 2. Runnable() 인터페이스를 구현 아래는 1번 방법으로 쓰레드를 생성한 모습이다. run() 메서드를 새롭게 작성해주면 된다. package first_project; public class MyThread1 extends Thread{ String str; public MyThread1(String str) { this.str = str; } @Override public void run() { for(int i = 0;i 2021. 11. 17.