개인 Notion 계정으로 옮겨진 완성된 노트의 복사본.
— 프로세스, 스레드
프로세스의 메모리 영역
•
Code
◦
프로그램의 실행 코드나 명령어들이 기계어 형태로 저장.
◦
CPU는 이 영역에 저장된 명령어들을 순차적으로 읽어서 처리.
•
Data
◦
코드에서 선언한 전역 변수와 정적 변수가 저장.
◦
프로그램이 실행되면서 할당되고 종료되면서 소멸.
•
Stack
◦
함수 안의 지역변수, 매개변수, 반환값들이 저장.
◦
함수가 호출되면 관련 정보가 스택에 쌓이고, 함수가 종료되면 해당 정보는 스택에서 제거.
•
Heap
◦
동적으로 할당되는 데이터를 위한 자유 공간.
◦
프로그래머는 필요한 만큼의 메모리를 할당하고 해제 가능.
▪
예: 프로그램에서 사용자의 입력에 따라 변할 수 있는 양의 데이터를 관리할 때.
— Git
git init
- 로컬 저장소를 초기화.
git remote add <원격저장소명> <원격저장소주소>
- 로컬 저장소에 연결된 원격 저장소 관리.
git remote -v
- 등록된 원격저장소 확인.
git status
- 현재 작업 중인 저장소의 상태 확인.
git diff <파일명>
- 파일의 변경 사항 확인.
git add <파일명>
- 파일을 staged 상태로 변경.
git commit -m "메시지"
- 파일의 변경 내용을 확정.
git push <원격저장소명> <브랜치명>
— JS심화
Async
ChatGPT Prompt Customization
Don't print what the section is about.
•
Title
•
Example
•
Bulleted List of Important Points (1-3 items)
Prompt:
chattie, can you tell me about...
1.
Callback
2.
Promise
3.
Async / Await
Response:
Callback
Example:
function fetchData(callback) {
setTimeout(() => {
callback('Data fetched');
}, 1000);
}
fetchData(data => {
console.log(data);
});
JavaScript
복사
•
A function passed as an argument to another function.
•
Executed after the completion of a task.
•
Can lead to "callback hell" with nested callbacks.
Promise
Example:
let promise = new Promise((resolve, reject) => {
setTimeout(() => {
resolve('Data fetched');
}, 1000);
});
promise.then(data => {
console.log(data);
});
JavaScript
복사
•
Represents a value that may be available now, later, or never.
•
Uses .then() for resolved and .catch() for rejected states.
•
Avoids callback hell by chaining .then() calls.
Async / Await
Example:
async function fetchData() {
let data = await new Promise((resolve) => {
setTimeout(() => {
resolve('Data fetched');
}, 1000);
});
console.log(data);
}
fetchData();
JavaScript
복사
•
Syntactic sugar over promises, making asynchronous code look synchronous.
•
Uses async to declare a function and await to pause execution until the promise resolves.
•
Simplifies error handling with try...catch.
JS 엔진
개념 | 설명 |
Prototype | Java의 Object, Luau의 Instance처럼, JS의 최상위 클래스. |
호이스팅 | 변수 선언을 참조 이전에 하는 것. (할당 X)
var은 undefined로 초기화됨. |
TDZ | Temporal Dead Zone. 호이스팅 이후 변수가 초기화되기까지의 영역.
때문에 변수 선언은 최상단에 하는 것이 좋다. |
Callstack | 호출된 함수의 실행 맥락(execution context)이 쌓이는 스택. |
Scope | 변수에 접근할 수 있는 범위. |
Java와 달리, JS는 함수 객체 this도 전역 객체를 가리킨다. 그래서 나온 게···
•
call(), apply()
•
bind()
•
함수로 객체를 만들 때의 new 바인딩
엔진명 | 개발자 | 사용처 | 특징 |
V8 | 구글 | Google Chrome, Node.js | - 고성능 JIT 컴파일러
- 오픈 소스
- 다양한 프로젝트와 도구에서 활용 가능 |
SpiderMonkey | 모질라 | Firefox | - 자바스크립트 최신 표준 빠른 구현
- 오픈 소스
- 활발한 개발 및 업데이트 |
JavaScriptCore (Nitro) | 애플 | Safari | - 빠른 실행 속도
- 효율적인 메모리 사용
- WebKit의 일부
- 오픈 소스 |
Chakra (ChakraCore) | 마이크로소프트 | Internet Explorer, Edge (구버전) | - JIT 컴파일 방식
- 오픈 소스
- 성능 최적화에 중점 |
Hermes | 페이스북 | React Native | - 모바일 앱 시작 시간 단축
- 메모리 사용량 감소
- 오픈 소스
- 모바일 최적화에 중점 |
— 프롬프트 엔지니어링
후카츠 프롬프트
지시문
당신은 (GPT에게 부여할 역할) 입니다.
아래의 제약조건과 입력문을 토대로 최고의 결과를 출력해주세요.
제약 조건
•
[제약 조건을 걸 내용]
입력문
[GPT에게 요청하려는 내용]
출력형식
[GPT가 출력할 형식을 지정]
My Prompt
지시문
당신은 전문적인 소프트웨어 개발 교육자입니다.
아래의 제약조건과 입력문을 토대로 최고의 결과를 출력해주세요.
제약 조건
•
한글로 작성한다.
•
"-이다."의 형식으로 말을 끝맺는다.
•
두 개의 개념은 표로 비교한다.
•
표로 비교할 경우 출력 형식을 따르지 않아도 된다.
입력문
•
Single Turn, Multi Turn
•
Few Shot
출력 형식 for each list item
Title
A code block example if there's any
Bulleted List of Important Points (1-3 items)
or
Comparing Table
Bulleted List of Important Points (1-3 items)
— 데이터베이스
개념 | 설명 |
DMS | Database Management System |
CRUD | Create, Read, Update, Delete |
SQL | Structured Query Language |
SQL 구상 (ERD)
— 웹 심화 교재 요약
ChatGPT 만세!
네트워크 기초
Internet: 전 세계 컴퓨터와 네트워크를 연결하는 거대한 정보 통신망.
IP: 인터넷에서 장치들을 식별하고 위치를 지정하는 주소 체계.
DNS: 도메인 이름을 IP 주소로 변환해주는 시스템.
클라이언트-서버: 클라이언트가 서버에 요청을 보내고 서버가 응답하는 네트워크 구조.
네트워크 프로토콜 및 통신
TCP/UDP: 데이터 전송을 위한 신뢰성 있는(또는 비신뢰성 있는) 프로토콜.
3-way Handshake: TCP 연결을 확립하기 위한 세 단계 과정.
WebSocket: 실시간 양방향 통신을 위한 프로토콜.
네트워크 장비 및 도구
프록시 서버: 클라이언트와 서버(인터넷) 사이에 중개 역할을 하는 서버.
WireShark: 네트워크 트래픽의 패킷을 분석하는 도구.
웹 기술 및 서버
HTTP Cache: 웹 페이지 로딩 속도를 높이기 위해 데이터를 임시 저장하는 기술.
HTTP ETag: 웹 캐시 유효성을 검증하기 위해 사용하는 식별자.
HTTP 보안헤더: 웹 앱의 보안을 강화하기 위한 HTTP 헤더.
HTTP 자격증명 헤더: HTTP 요청에서 사용자 인증 정보를 전달하는 헤더.
데이터 저장 및 관리
Cookie, Storage (ft. Session): 웹 브라우저에서 데이터를 저장하고 관리하는 방법.
비동기 통신 기법
폴링 (Polling): 주기적으로 서버에 요청을 보내 상태를 확인하는 방식.
롱 폴링 (Long polling): 서버에서 즉각 응답을 주지 않고 대기하다가 데이터가 준비되면 응답하는 폴링 방식.
API 및 데이터 쿼리
GraphQL: 효율적인 데이터 쿼리를 위해 사용하는 API 쿼리 언어.
웹 서버 및 앱 서버
WS, WAS: Web Server(웹 서버)와 Web Application Server(웹 앱 서버)의 약자.
Nginx, Apache: 널리 사용되는 웹 서버 소프트웨어.
Node.js 및 프레임워크
Node.js: 서버 측 자바스크립트 런타임 환경.
Express.js, NestJS: Node.js를 위한 웹 앱 프레임워크.