tjddndk17
정리정리 본문
프로그램
객체(object)
- 사물을 표현하는 단위
- 상태(field) 와 동작(method)를 가짐
- 객체지향 프로그래밍(OOP)에서 객체는 클래스의 인스턴스
Object - 소프트웨어 세계에 구현할 대상
Class - 대상을 구현하기 위한 설계도
Instance - 설계도를 따라 소프트웨어 세계에 구현된 실체
개체(entity)
- 정보를 표현하는 단위
- 단일하고 고유한 독자적 존재 -> OOP에서는 인스턴스에 가까움
- 관련있는 속성들이 모여서 의미있는 하나의 정보 단위를 이룸 -> 데이터베이스 에서의 레코드(row)가 개체에 해당
컴포넌트 와 모듈
- 모듈: 실질적으로 구현이 된 단위
- 컴포넌트: 실제적으로 동작하고 있는 개체
서버1대와 클라이언트 100대가 있다면
- 구현된 모듈은 서버1개, 클라이언트1개
- 동작하는 컴포넌트는 서버1개, 클라이언트100개
기본 변수( primitive type / call by value )
- 실제 값을 저장
참조 변수( reference type / call by reference )
- 객체를 가리키는 주소 저장
상수(constant)
- 변하지 않는 변수
- 프로그램이 실행되는 동안 메모리에 저장된 데이터를 변경할 수 없음
참조변수를 상수로 지정할때, 참조변수 안의 데이터까지 변경 못하는건 아님,
상수에 저장된 참조변수의 메모리 주소값을 변경할 수 없다는 뜻이지 안의 데이터는 변경가능
const man = { name: 'tjddndk', age: 20 };
man = { name: 'tjddndk', age: 30 }; // X
man.age = 30; // O
리터럴(literal)
- 값 그 자체를 뜻함
- 변수에 넣는 변하지 않는 데이터를 의미
int a = 1; // 여기에서 리터럴은 1
컴파일러
- 고급언어로 작성된 소스코드 전체를 번역 -> 실행파일 생성 ( 기계어 )
- 번역시간 느림, 실행시간 빠름
- 하드웨어에 종속적
인터프리터
- 고급언어로 작성된 소스코드 한줄씩 번역 -> 번역과 동시에 한줄 단위로 즉시 실행
- 번역시간 빠름, 실행시간 느림
- 하드웨어에 종속되지 않음
JIT 컴파일러
- 컴파일러 + 인터프리터
- 하드웨어와 무관한 바이트코드로 컴파일
Java는 JIT 컴파일러
컴파일러: hello.java -> javac(java compiler) -> hello.class [ 바이트코드 ]
인터프리터: hello.class -> java interpreter -> JVM ( 기계어 )
스크립트
기존에 이미 존재하는 소프트웨어를 제어하기 위한 용도로 쓰이는 언어
런타임
프로그래밍 언어가 구동되는 환경
- JavaScript가 Browser에서 실행된다면 런타임 환경은 Browser
- JavaScript가 Node.js에서 실행된다면 런타임 환경은 Node.js
디자인패턴
스냅샷 ( snapshot )
컴퓨터 파일 시스템에서 스냅샷은 과거의 한 때 존재하고 유지시킨 컴퓨터 파일과 디렉터리의 모임
'개발 > etc' 카테고리의 다른 글
마크다운(MarkDown) 정리 (0) | 2021.12.01 |
---|---|
Method(메소드), Function(함수) 차이 (0) | 2021.03.15 |
Argument(전달인자), Parameter(매개변수) 차이 (0) | 2021.03.15 |