안녕하세요. 오늘은 공부해도 시간 지나면 까먹어버리는 객체지향 프로그래밍에 대해 작성해보도록 하겠습니다. OOP(Object-Oriented Programming)란?프로그램을 객체라는 독립적인 단위로 나누어 설계하고 개발하는 프로그래밍객체는 데이터(속성)와 메서드(행동)을 포함하며 이 두 가지를 하나로 묶어 프로그램을 구조화하며, 이를 통해 코드의 재사용성과 유지보수성을 높이고 현실 세계의 문제를 프로그램으로 자연스럽게 표현할 수 있음4가지 주요 특징으로는 캡슐화, 상속성, 다형성, 추상화가 있음 OOP의 특징1. 캡슐화(Encapsulation)객체의 데이터(속성)와 이를 처리하는 메서드(행동)을 하나로 묶고 외부에서 직접 접근할 수 없도록 제한하는 개념데이터를 보호하고 객체 내부의 구현 세부 ..
안녕하세요. 오늘은 자바의 스트림에 대해서 알아보도록 하겠습니다.저는 요즘 알고리즘을 공부하고 있는데요, 사람들이 짠 알고리즘 코드를 보면 스트림을 굉장히 많이 쓰고 있는 것을 볼 수 있더라구요. 뭔진 모르겠지만 저렇게 간결하고 멋진 코드를 나도 짜고 싶다! 생각하여ㅎㅎㅎ 정리해보았습니다. 스트림(Stream)이란?자바에서 데이터를 쉽게 다루기 위해 제공하는 데이터 처리 흐름배열, 리스트 같은 데이터를 일일이 반복문으로 다루기보다는 스트림을 사용해 데이터를 변환, 필터링, 합산 등의 작업을 간단하게 할 수 있음 스트림 핵심 개념1. 데이터 흐름데이터를 처리하는 흐름을 제공하여 데이터 자체가 아니라 데이터의 흐름을 처리함2. 변경 불가능스트림을 이용해 데이터를 가공하더라도 원본 데이터를 변경되지 않음...
안녕하세요. 오늘은 자바의 JVM에 대해 포스팅하도록 하겠습니다.JVM(Java Virtual Machine, 자바 가상 머신)이란?자바 프로그램이 실행되기 위한 가상 환경으로, 자바 소스 코드(.java)를 컴파일하여 생성된 바이트코드(.class)를 실행합니다. 바이트코드는 특정 운영체제나 하드웨어(CPU)에 의존하지 않고(맞춰지지 않고!) 플랫폼 독립적이기 때문에 자바 프로그램은 JVM이 설치된 어떤 환경에서도 실행될 수 있습니다.바이트코드는 기계어와 비슷한 형태이지만 직접 CPU에서 실행되는 기계어는 아니며, JVM이 바이트코드를 해석(interpret)하거나 JIT(Just-In-Time) 컴파일러를 통해 기계어로 변환하여 실행합니다. JVM의 역할바이트코드 실행 - 자바 컴파일러가 생성한 ..
안녕하세요. 오늘은 자바에서 객체를 생성하는 2가지 방법, 프로토타입 방식과 싱글톤 방식에 대해 알아보도록 하겠습니다. 프로토타입 패턴(Prototype Pattern)⭐ 매번 새로운 객체 인스턴스를 생성하는 방식입니다. ⭐ 각 객체 인스턴스는 서로 독립적이며 각각의 인스턴스는 별도의 상태를 가질 수 있습니다. ⭐ 프로토타입 패턴을 사용하면 객체를 반복해서 생성할 때 유용하여 객체 인스턴스 간의 상태 공유가 필요하지 않은 경우에 적합합니다. ⭐ 'new' 키워드를 사용하여 객체를 생성하며 생성자를 호출하는 방식으로 객체를 초기화하며, 객체 생성 및 초기화가 단순하고 빠른 경우 'new' 키워드로 객체를 생성하는 것이 효율적입니다.// Prototype Pattern ExampleRectangle rec..
안녕하세요. 오늘은 단방향 암호화는 무엇이고 종류에는 무엇이 있는지 알아보도록 하겠습니다. 단방향 암호화(One-way Encryption)란?⭐ 데이터를 한쪽 방향으로만 암호화를 한다는 의미로 평문을 암호문으로 암호화할 순 있지만 암호문을 평문으로 바꾸는 복호화는 불가능하므로 암호화만 가능하기 때문에 단방향 암호화라고 합니다. ⭐ DB로 비밀번호를 관리할 때 유용하게 사용됩니다.But, 단방향 암호화 방식으로 저장할 경우 데이터베이스가 유출되어도 안전하지만 유저가 비밀번호를 잊어버렸을 경우에는 찾기가 불가능합니다. 그래서 대부분의 사이트는 유저가 비밀번호 찾기를 할 경우 메일이나 SMS을 통해 새로운 비밀번호로 변경하도록 하더라고요 :) ⭐ 대표적으로 MD5와 SHA-256 암호화 알고리즘이 있습니다...