1. Node.js 개요
1.1. Node.js란?
Node.js는 Chrome V8 엔진 위에서 실행되는 서버 사이드 JavaScript 런타임 환경입니다. 일반적으로 JavaScript는 브라우저에서 실행되지만, Node.js를 사용하면 서버에서도 JavaScript를 실행할 수 있습니다.
1.2. Node.js의 특징
- 비동기 이벤트 기반: I/O 작업을 비동기적으로 처리하여 성능을 향상합니다.
- 싱글 스레드 모델: 하나의 스레드에서 여러 요청을 처리하여 효율성을 극대화합니다.
- NPM(Node Package Manager) 지원: 다양한 패키지를 설치하여 기능을 확장할 수 있습니다.
- 모듈 시스템 제공: 모듈을 사용하여 코드를 구조적으로 작성할 수 있습니다.
1.3. Node.js 설치
Node.js 설치
Node.js 공식 웹사이트에서 다운로드하여 설치합니다.
설치 완료 후 아래 명령어를 입력하여 정상적으로 설치되었는지 확인합니다.
node --version # Node.js 버전 확인
npm --version # npm 버전 확인
2. JavaScript의 주요 개념
2.1. ES6(ECMAScript 2015) 이후 주요 기능
1) 변수 선언 방식
- var : 함수 스코프, 중복 선언 가능, 호이스팅 발생
- let : 블록 스코프, 중복 선언 불가
- const : 블록 스코프, 재할당 불가
let name = "홍길동";
const age = 25;
2) 화살표 함수 (Arrow Function)
const add = (a, b) => a + b;
console.log(add(10, 20)); // 30
3) 템플릿 리터럴 (Template Literal)
const name = "홍길동";
console.log(`안녕하세요, ${name}님!`);
4) 객체 및 배열 구조 분해 할당 (Destructuring)
const person = { name: "홍길동", age: 25 };
const { name, age } = person;
console.log(name, age);
5) 스프레드 연산자 (Spread Operator)
const arr1 = [1, 2, 3];
const arr2 = [...arr1, 4, 5];
console.log(arr2); // [1, 2, 3, 4, 5]
2.2. 동적 타이핑 (Dynamic Typing)
JavaScript는 변수에 값이 할당될 때 데이터 타입이 결정됩니다.
let x = "Hello";
x = 10; // 정상적으로 동작함
console.log(typeof x); // number
3. 객체와 배열 다루기
3.1. 객체와 배열의 생성 및 활용
객체 생성 및 활용
const person = {
name: "홍길동",
age: 25,
greet() {
console.log(`안녕하세요, 저는 ${this.name}입니다.`);
}
};
person.greet();
배열 생성 및 활용
const numbers = [1, 2, 3, 4, 5];
numbers.forEach(num => console.log(num));
3.2. 객체 및 배열 관련 메서드
map() - 배열 요소를 변환
const numbers = [1, 2, 3];
const doubled = numbers.map(num => num * 2);
console.log(doubled); // [2, 4, 6]
filter() - 특정 조건을 만족하는 요소만 필터링
const numbers = [1, 2, 3, 4, 5];
const evenNumbers = numbers.filter(num => num % 2 === 0);
console.log(evenNumbers); // [2, 4]
reduce() - 배열 요소를 누적하여 단일 값으로 반환
const numbers = [1, 2, 3, 4, 5];
const sum = numbers.reduce((acc, num) => acc + num, 0);
console.log(sum); // 15
4. 마무리
이번 강의를 통해 Node.js의 개념과 설치 방법, JavaScript의 주요 기능과 활용법, 객체와 배열을 다루는 방법에 대해 학습하였습니다.
특히, JavaScript의 ES6 이후 문법과 다양한 내장 메서드를 활용하면 보다 간결하고 효율적인 코드 작성을 할 수 있습니다. 앞으로 프로젝트에서 이러한 개념들을 적극 활용하여 더욱 효율적인 개발을 진행해야겠습니다.
이 글은 LG CNS AM Inspire Camp 1기 진행 중 Obsidian에 정리해뒀던 글을 블로그에 옮긴 글입니다.
'Experience > LG CNS AM Inspire Camp 1기' 카테고리의 다른 글
[LG CNS AM Inspire Camp] 10. 자바(Java) 객체지향 프로그래밍 (배열, String, 클래스, 메서드, static) (0) | 2025.02.10 |
---|---|
[LG CNS AM Inspire Camp] 9. React 컴포넌트와 상태 관리 (0) | 2025.02.10 |
[LG CNS AM Inspire Camp] 7. React Router와 Todo 리스트 구현 (0) | 2025.02.10 |
[LG CNS AM Inspire Camp] 6. React의 Ref와 상태 관리 최적화 (0) | 2025.02.10 |
[LG CNS AM Inspire Camp] 5. 이벤트 핸들링 및 컴포넌트 상태 관리 (0) | 2025.02.10 |