안녕하세요. 오늘은 공부해도 시간 지나면 까먹어버리는 객체지향 프로그래밍에 대해 작성해보도록 하겠습니다. OOP(Object-Oriented Programming)란?프로그램을 객체라는 독립적인 단위로 나누어 설계하고 개발하는 프로그래밍객체는 데이터(속성)와 메서드(행동)을 포함하며 이 두 가지를 하나로 묶어 프로그램을 구조화하며, 이를 통해 코드의 재사용성과 유지보수성을 높이고 현실 세계의 문제를 프로그램으로 자연스럽게 표현할 수 있음4가지 주요 특징으로는 캡슐화, 상속성, 다형성, 추상화가 있음 OOP의 특징1. 캡슐화(Encapsulation)객체의 데이터(속성)와 이를 처리하는 메서드(행동)을 하나로 묶고 외부에서 직접 접근할 수 없도록 제한하는 개념데이터를 보호하고 객체 내부의 구현 세부 ..
안녕하세요.컴퓨터 프로그램이 실행될 때 메모리는 다양한 용도로 나뉘어 사용되는데요,그래서! 오늘은 메모리의 각 영역이 어떻게 동작하는지에 대해서 정리해보도록 하겠습니다. 1. 코드(Code) 영역프로그램의 기계어 코드(실행할 프로그램의 코드/컴파일된 명령어)가 저장되는 메모리 공간컴파일된 프로그램의 명령어들이 이 영역에서 저장됨읽기 전용 : 보안 및 안정성을 위해 프로그램 실행 중 수정되지 않음고정 크기 : 실행되는 코드의 크기에 따라 공간이 할당됨공유 가능 : 동일한 프로그램을 여러 프로세스가 실행하는 경우 코드 영역은 공유될 수 있음public class HelloWorld { public static void main(String[] args) { System.out.print..
음.. 위에는 뭐라는지 모르겠고 바로 정리해보도록 하겠습니다. 유클리드 호제법(Euclidean algorithm)두 수 a와 b의 최대공약수를 구할 때, a를 b로 나눈 나머지를 구하고, 그 나머지와 b로 다시 최대공약수를 구하는 과정을 반복하여 나머지가 0이 될 때의 b 값을 최대공약수로 취하는 방법(그냥 최대공약수 구하는 알고리즘이구나! 생각하시면 됩니다 ㅎ.ㅎㅎㅎㅎ) 최대공약수(GCD) 구하기예시 1)public class MathUtil { public static int gcd(int a, int b) { while (b != 0) { int temp = a % b; a = b; b = temp; ..
안녕하세요. 오늘은 자바의 스트림에 대해서 알아보도록 하겠습니다.저는 요즘 알고리즘을 공부하고 있는데요, 사람들이 짠 알고리즘 코드를 보면 스트림을 굉장히 많이 쓰고 있는 것을 볼 수 있더라구요. 뭔진 모르겠지만 저렇게 간결하고 멋진 코드를 나도 짜고 싶다! 생각하여ㅎㅎㅎ 정리해보았습니다. 스트림(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이..