안녕하세요. 오늘은 공부해도 시간 지나면 까먹어버리는 객체지향 프로그래밍에 대해 작성해보도록 하겠습니다. OOP(Object-Oriented Programming)란?프로그램을 객체라는 독립적인 단위로 나누어 설계하고 개발하는 프로그래밍객체는 데이터(속성)와 메서드(행동)을 포함하며 이 두 가지를 하나로 묶어 프로그램을 구조화하며, 이를 통해 코드의 재사용성과 유지보수성을 높이고 현실 세계의 문제를 프로그램으로 자연스럽게 표현할 수 있음4가지 주요 특징으로는 캡슐화, 상속성, 다형성, 추상화가 있음 OOP의 특징1. 캡슐화(Encapsulation)객체의 데이터(속성)와 이를 처리하는 메서드(행동)을 하나로 묶고 외부에서 직접 접근할 수 없도록 제한하는 개념데이터를 보호하고 객체 내부의 구현 세부 ..
안녕하세요. 오늘은 자바의 스트림에 대해서 알아보도록 하겠습니다.저는 요즘 알고리즘을 공부하고 있는데요, 사람들이 짠 알고리즘 코드를 보면 스트림을 굉장히 많이 쓰고 있는 것을 볼 수 있더라구요. 뭔진 모르겠지만 저렇게 간결하고 멋진 코드를 나도 짜고 싶다! 생각하여ㅎㅎㅎ 정리해보았습니다. 스트림(Stream)이란?자바에서 데이터를 쉽게 다루기 위해 제공하는 데이터 처리 흐름배열, 리스트 같은 데이터를 일일이 반복문으로 다루기보다는 스트림을 사용해 데이터를 변환, 필터링, 합산 등의 작업을 간단하게 할 수 있음 스트림 핵심 개념1. 데이터 흐름데이터를 처리하는 흐름을 제공하여 데이터 자체가 아니라 데이터의 흐름을 처리함2. 변경 불가능스트림을 이용해 데이터를 가공하더라도 원본 데이터를 변경되지 않음...
안녕하세요. 오늘은 기본 자료형과 참조 자료형의 저장 방식과 비교 방식에 대해 작성해보도록 하겠습니다. 기본 자료형(Primitive Types)number, string, boolean, null, undefined, symbol과 같은 자료형이며, 값이 스택(Stack)에 직접 저장이 됨값 자체를 비교하므로 같은 값이라면 ===를 사용해도 true를 반환함let a = 10;let b = 10;console.log(a === b); // true 참조 자료형(Reference Types)객체(Object), 배열(Array), 함수(Function) 등이 포함되며 힙(Heap)에 실제 데이터가 저장되고, 스택에는 해당 데이터가 저장된 힙의 주소가 저장됨참조 자료형의 === 비교는 주소가 같은..
안녕하세요.제가 예전에 한 회사 면접을 볼 때 "const로도 값을 변경할 수 있는데 어떤 경우인지 아십니까?"라는 질문을 받았었는데요, 메모리 구조에 대한 지식이 부족했어서 힙? 스택? 어쩌고저쩌고.. 어버버 거렸던 기억이 문뜩 납니다..(아시는 것 같은데 왜 대답을 못 하시죠? 더 생각하고 대답해보세요! 라고 하셨는데 저는 정말 몰랐다구요ㅠㅠㅜㅜㅜ...)무튼..! 그래서 오늘은 const로 선언을 했을 때 어떤 경우에 값을 바꿀 수 있는지 정리해보려고 합니다. const?변수에 재할당을 허용하지 않는 상수를 선언할 때 사용즉, const로 선언한 변수는 한 번 할당된 값이 고정되고 다른 값을 다시 할당하려고 하면 에러가 발생const num = 10;num = 20; // Error!위에서 num이..
안녕하세요. 오늘은 자바의 JVM에 대해 포스팅하도록 하겠습니다.JVM(Java Virtual Machine, 자바 가상 머신)이란?자바 프로그램이 실행되기 위한 가상 환경으로, 자바 소스 코드(.java)를 컴파일하여 생성된 바이트코드(.class)를 실행합니다. 바이트코드는 특정 운영체제나 하드웨어(CPU)에 의존하지 않고(맞춰지지 않고!) 플랫폼 독립적이기 때문에 자바 프로그램은 JVM이 설치된 어떤 환경에서도 실행될 수 있습니다.바이트코드는 기계어와 비슷한 형태이지만 직접 CPU에서 실행되는 기계어는 아니며, JVM이 바이트코드를 해석(interpret)하거나 JIT(Just-In-Time) 컴파일러를 통해 기계어로 변환하여 실행합니다. JVM의 역할바이트코드 실행 - 자바 컴파일러가 생성한 ..
안녕하세요. 오늘은 자바스크립트 문법인 구조 분해 할당에 대해서 포스팅하겠습니다. 구조 분해 할당(Destructuring Assignment)배열이나 객체의 값을 간편하게 추출하여 변수에 할당할 수 있는 문법복잡한 데이터 구조에서 값을 꺼내는 작업을 간단하게 할 수 있음 배열에서 구조 분해 할당배열에서 구조 분해할 때 순서대로 값을 변수에 할당함const fruits = ['apple', 'banana', 'orange'];const [first, second, third] = fruits;console.log(first); // appleconsole.log(second); // bananaconsole.log(third); // orange 객체에서 구조 분해 할당객체에서는 속성의 이름이 변수..