목록STUDY/CS (14)
공부해봅시당
프로그래밍에서 "스코프(Scope)"는 변수, 함수, 객체 등의 식별자(identifier)들이 어디까지 접근 가능한지, 즉 그들의 가시성(visibility)과 생명주기(lifetime)를 정의하는 데 사용되는 용어 스코프는 식별자들이 프로그램의 어떤 부분에서 유효한지 결정하며, 이를 통해 어디서 어떻게 식별자들을 찾을 수 있는지를 규정 스코프의 종류 - 글로벌 스코프(Global Scope) 프로그램의 어디서든 접근 가능한 식별자들을 포함 전역 변수, 전역 함수 등이 이에 해당 var globalVar = "This is a global variable"; function checkScope() { return globalVar; } console.log(checkScope()); // "This i..
주로 렉시컬 환경에 대한 내용은 주로 자바스크립트와 관련하여 설명하는 것을 찾아볼 수 있음 다른 프로그래밍 언어들도 렉시컬 스코프를 가지고 있지만, 자바스크립트는 특히 이런 내부 메커니즘에 대한 논의가 더 활발한 편 이는 자바스크립트 엔진의 작동 방식, 클로저, 이벤트 루프 등 자바스크립트의 독특한 특성들이 프로그래머가 코드를 작성하거나 문제를 해결할 때 중요한 역할을 하기 때문 (자바스크립트에서 더 많은 논의가 있는 7가지 이유는 아래 더보기를 펼쳐 확인할 것) 더보기 자바스크립트에서 더 많은 논의가 있는 7가지 이유 자바스크립트의 실행 환경 자바스크립트는 원래 브라우저에서 실행되도록 설계되었으며, 이후에 Node.js와 같은 서버 사이드 환경에서도 실행될 수 있게 됨 이러한 실행 환경들은 일반적으로 ..
DSL(Domain-specific Language): 도메인 특화언어 정의 DSL은 특정 도메인의 문제를 해결하기 위해 특별히 설계된 프로그래밍 언어 특정 작업이나 문제 영역에 대해 최적화되어 있음 해당 분야의 전문가들이 더 쉽게 이해하고 사용할 수 있도록 만들어짐 특정 기능이나 영역을 위해 만들어진 영역이고 아래와 같은 다양한 작업을 처리하기 위해 소프트웨어 개발에 많이 사용됨 소프트웨어 설정 설명 테스트 사양 작업 흐름 규칙 정의 UI 디자인 데이터 조작 예 SQL(데이터베이스 쿼리), HTML(웹 페이지 구조), CSS(웹 디자인), R(통계 계산) 특징 - 특정 도메인에 최적화: 특정 작업이나 산업 분야에 맞춰져 있어 관련된 문제를 효율적으로 해결 가능 - 짧은 개발 시간: 도메인에 특화되어 있..
스크립트 언어(Scripting Language) 1. 정의 응용 소프트웨어를 제어하는 컴퓨터 프로그래밍 언어 스크립트 작성 기능을 지원하는 소프트웨어를 제어하는 역할 수정이 빈번하게 발생하는 부분에서는 소스코드를 한줄씩 읽어 바로 실행하는 인터프리터 방식이 효율적 따라서 스크립트 언어도 대부분 인터프리터 방식을 사용하는 인터프리터 언어라고도 할 수 있음 예) Javascript, jsp, php, python, ruby 2. 특징 - 컴파일 언어에 비해 단순하고 쉬운 문법 구조 - 컴파일러 없이 명령어를 한줄씩 읽으면서 실행 -> 번역속도는 빠르지만 프로그램 실행 시 매번 같은 코드를 번역해야 함. 따라서 프로그램의 실행속도는 컴파일 언어에 비해 느림 - CPU 사용시간 낭비가 큼 -> 복잡한 산술연산..

동적 언어와 정적 언어는 각자 만의 특징과 장단점이 있음 이에 대해 알아보자 정적 언어 예) Java, C, C++ 등 동적 언어 예) Python, Ruby, JavaScript, Perl, PHP, Groovy 등 들어가기 전 컴파일 과정 소스코드를 작성하고 빌드를 하게되면 일반적으로 다음과 같은 과정을 통해 실행파일이 만들어짐 소스코드(Input) -> 전처리기 -> 컴파일러 -> 어셈블러 -> 링커 -> 실행파일(Output) 1. 전처리기: 소스코드 자체에 대한 수정 담당 2. 컴파일러: 소스코드를 어셈블리 코드로 번역 3. 어셈블러: 어셈블리 코드를 목적코드로 번역 4. 링커: 생성된 목적코드들을 링킹하여 실행파일을 만듦 컴파일타임 vs 런타임 컴파일타임: 전체 컴파일 과정과 그 이후 과정 중..

절차적 프로그래밍이란? 명령형 프로그래밍 패러다임 중 하나인 절차적 프로그래밍(Procedural Programming)은 프로시저(함수)를 활용한 프로그래밍 개념 명령형 프로그래밍 '프로그램의 상태'와 '상태를 변경시키는 구문'의 관점에서 연산을 설명하는 프로그래밍 패러다임의 일종 컴퓨터가 수행할 명령들을 순서대로 써 놓은 것 How to solve it > 어떻게 그것을 해결할 것인가에 관심이 있음 거의 대부분의 컴퓨터 하드웨어는 명령형으로 구현됨 거의 모든 컴퓨터 하드웨어들은 기계어를 실행하도록 설계되어 있는데, 보통 명령형으로 써져 있음 포트란, ALGOL, C언어 등이 명령어 프로그래밍 언어의 일종임 (출처: https://code-lab1.tistory.com/244) 절차적 프로그래밍 패러다..