[Java] 스트림(Stream)에 대하여
·
Java
스트림 (Stream) 자바 스트림(Stream)은 Java 8에서 도입된 기능으로, 컬렉션이나 배열 등의 데이터를 함수형 방식으로 처리할 수 있게 해주는 핵심 기능이다. '데이터 소스'에서 추출된 요소들이 순차적으로 흐르는 파이프라인을 의미한다. 코드를 간결하고 가독성 있게 만들어주며 병렬 처리까지 쉽게 해준다. 특징 1) 데이터 소스 : 배열, 컬렉션 등에서 얻는다. 2) 함수형 : 익명 함수 (람다)를 사용하여 코드를 간결하게 만든다. 3) 비파괴적 : 원본 데이터를 변경하지 않는다. 4) 단 한 번만 사용 : 스트림은 최종 연산 후 닫히며 재사용할 수 없다. 왜 스트림을 사용하는가 ? 전통적인 방식 : 외부 반복으로 개발자가 직접 인덱스를 관리하고 반복을 제어해야 한다. 스트림 방식 : 내부 ..
[Java] 실수를 나타내는 Double, double, float, decimal 의 차이
·
Java
자바에서 실수를 표현하는 기본적인 방법은 원시 타입인 `float`와 `double` 두 가지이다. 1) float vs. double `float` 크기 : 4 Byte정밀도 : 소수점 이하 약 7자리 표현 범위 : 비교적 좁음 사용 : 메모리 절약이 중요하거나 정밀도가 크게 필요하지 않을 때 주의 : `float` 리터럴 숫자 뒤엔 `f` 또는 `F`를 붙여야 한다. `double` 크기 : 8 Byte정밀도 : 소수점 이하 약 15자리 표현 범위 : 매우 넓음 사용 : 자바에서 실수를 다루는 기본 타입이나. 특별한 이유가 없다면 `double`을 사용한다. 주의 : 실수 리터럴은 기본적으로 `double`로 간주한다. 2) double vs. Double 이 둘은 같은 값을 다루지만, 메모리 위치..
[Java] POJO(Plain Old Java Object)
·
Java
POJO 원칙 (Plain Old Java Object) "오래된 방식의 순수한 자바 오브젝트"POJO는 정말 말 그대로 오래된 방식의 간단한 자바 객체를 말한다. 반면, 특정 기술과 환경에 종속되어 사용되는 기술을 EJB(Enterprise Java Beans)라고 한다. 이 EJB는 자바 개발을 할 때 로우 개발에 신경 쓰지 않고 개발을 쉽게 하도록 도와주지만, 특정 기술에 의존하여 확장성이 떨어지고 객체지향성을 잃어버리게 된다. 따라서 옛날에 객체지향성이 큰 순수한 방식으로 돌아가자는 의미로 POJO가 탄생하게 되었다. 특정 '기술'과 환경에 종속되어 의존하게 된 자바 코드는 가독성이 떨어져 유지보수가 어렵고 확장성이 매우 떨어진다는 단점이 있었습니다. 이는 객체지향 언어인 자바가 객체지향의 장..
[Java] 객체지향설계의 5가지 원칙 (SOLID 원칙)
·
Java
1. SRP (단일 책임 원칙, Single Responsibility Principle) 한 클래스는 하나의 책임만 가져야 한다. 한 클래스가 너무 많은 일을 하게 되면 유지보수가 어려워진다. 예시잘못된 예 : 하나의 클래스가 '보고서 생성' , '출력' , '이메일 발송' 책임까지 모두 담당한다. class ReportService { void generateReport() { /* 보고서 데이터 생성 */ } void printReport() { /* 보고서 출력 */ } void sendReportByEmail() { /* 보고서 이메일 발송 */ }}개선 : 각 클래스가 한 가지 책임만 맡는다. class ReportGenerator { void generate() { /* 보고..
[Java] 자바 예상 질문 정리
·
Tech/정리
보호되어 있는 글입니다.