Java 15

파라미터 타입이 다른 공통 로직 모듈화 - 인터페이스

파라미터 타입이 달라 코드 중복이 발생하는 문제"를 인터페이스를 통해 해결하는 것을 간단한 예로 다시 정리해둔 것임...Animal 인터페이스를 활용하여 공통 로직을 모듈화하고,파라미터 타입이 달라도 하나의 메서드에서 처리할 수 있도록 ... Dog, Cat, Bird와 같은 다양한 동물 객체가 있각 동물 클래스는 공통적으로 이름(name)과 나이(age)를 가지고 있지만,특정 동물마다 고유한 속성이 추가로 존재 공통 로직은 동물의 이름과 나이를 출력하는 작업하지만 각 동물 클래스가 서로 다른 타입이기 때문에 코드 중복이 발생클래스 구조 public class Dog { private String name; private int age; private String breed; // 고유 ..

Java 2024.12.11

jsp

var: 반복 시 사용할 변수 이름 (예: item).items: 반복할 대상 (Java의 List, Set, 배열, 또는 Map).begin, end: (선택 사항) 반복의 시작과 끝 인덱스를 지정.step: (선택 사항) 반복 시 건너뛸 간격.는 JSP의 JSTL 태그 중 하나로, 데이터를 출력할 때 사용일반적으로 ${expression}과 동일한 역할을 하지만, HTML 이스케이프를 지원한다는 차이HTML 태그"; request.setAttribute("content", content);%>일반 출력: ${content}HTML 이스케이프 출력: 일반 출력: HTML 태그HTML 이스케이프 출력: <b>HTML 태그</b> JSTL에서 조건문을 구현하기 위해 사용Java의..

Java 2024.12.10

Java Stream - Stream, map, collect()로 리스트 객체 가공

rows는 Row라는 클래스의 객체 리스트.  List 타입List rows = new ArrayList();rows.add(new Row(1, "Alice", 10));rows.add(new Row(2, "Bob", 20));rows.add(new Row(3, "Charlie", 30)); rows는 Row 객체를 담고 있는 리스트. 이 리스트에 대해 .stream()을 호출하고, 그 다음 .map() 연산을 적용해 데이터를 변환할 수 있음rows = rows.stream() .map(row -> { // 예를 들어 value 값을 2배로 만든 새로운 Row 객체를 반환한다고 가정 return new Row(row.getId(), ro..

Java 2024.10.29

일급 컬렉션

| 일급 컬렉션(First-Class Collection)일급 컬렉션은 컬렉션을 포함한 클래스를 만들어 사용하는 방식을 말함이 클래스는 해당 컬렉션 하나만 필드로 가지며, 그 컬렉션과 관련된 동작을 함께 정의함  - 단일 책임 원칙: 일급 컬렉션은 하나의 컬렉션에 대한 책임만 가짐- 불변성: 컬렉션의 불변성을 보장할 수 있음- 상태와 행위의 결합: 컬렉션과 관련된 동작을 한 곳에서 관리- 비즈니스 로직 캡슐화: 컬렉션과 관련된 비즈니스 로직을 해당 클래스 내에 캡슐화- 이름이 있는 컬렉션: 컬렉션의 의도를 명확히 표현할 수 있음 일급 컬렉션은 마치 특별한 용도의 상자와 같습니다. 일반 컬렉션이 그냥 물건을 담는 평범한 상자라면, 일급 컬렉션은 특정 종류의 물건만 담을 수 있고, 그 물건들을 어떻게 다뤄야..

Java 2024.10.21

정적 팩토리 메서드

| 정적 팩토리 메서드는 객체를 만드는 특별한 방법임일반적인 생성자 대신, 클래스 안에 객체를 만드는 전용 메서드를 만들어 사용함.이 메서드는 이름을 가질 수 있어서 객체가 어떤 목적으로 만들어지는지 더 명확하게 알 수 있음  레고 세트를 생각해보세요. 보통은 설명서를 따라 직접 조립하지만(일반 생성자), 때로는 이미 조립된 부분(예: 우주선 조종석)을 구매할 수 있습니다. 이렇게 미리 조립된 부분을 제공하는 것이 정적 팩토리 메서드와 비슷합니다. 목적에 맞게 미리 구성된 객체를 제공받는 것이죠.   | 정적 팩토리 메서드는 객체 생성을 캡슐화하는 디자인 패턴임- 이름을 가질 수 있어 생성 목적을 명확하게 표현할 수 있음- 호출될 때마다 새 객체를 생성할 필요가 없음 (캐싱, 객체 풀링 등 가능)- 반환..

Java 2024.10.21