java 8

[리팩토링] 함수 추출하기(Extract Function)

리팩터링은 코드의 가독성, 유지 보수성, 구조를 개선하면서 기능에는 영향을 주지 않는 프로세스입니다. 함수 추출(Extract Function) 기술은 대표적인 리팩터링 기술 중 하나로, 큰 함수를 작은 함수로 분할하는 작업을 합니다. 이 글에서는 Java에서 함수 추출 기술, 그 장점, 그리고 실용적인 예제를 통해 기술 적용법을 알아보겠습니다. 1. 함수 추출 기술의 주요 장점은 다음과 같습니다: - 가독성 향상: 복잡한 함수를 작고 명확한 이름을 가진 함수로 분할하면 코드를 이해하기 쉬워집니다. - 재사용성 증가: 독립된 작은 함수로 분할하면 다른 곳에서도 쉽게 재사용할 수 있습니다. - 유지 보수성 개선: 문제가 발생했을 때 작은 함수를 수정하면 전체 코드에 미치는 영향이 줄어듭니다. 2. 함수 추..

개발/리팩토링 2023.04.25

Java 제네릭(Generic) 타입 이해하기

1. 제네릭 타입이란? Java의 제네릭(Generic) 타입은 클래스, 인터페이스, 메소드에 다양한 타입을 사용할 수 있게 도와주는 기능입니다. 제네릭을 사용하면 다양한 타입에 대해 동일한 코드를 작성할 수 있으며, 컴파일 시점에 타입 검사를 통해 안정성을 높일 수 있습니다. 예시: List stringList = new ArrayList(); List integerList = new ArrayList(); 2. 제네릭 클래스와 인터페이스 제네릭 클래스와 인터페이스는 다양한 타입의 객체를 다룰 수 있습니다. 타입 파라미터를 꺽쇠 괄호 안에 지정하고, 클래스 또는 인터페이스 이름 뒤에 위치합니다. 예시: public class GenericBox { private T object; public void ..

개발/Java 2023.04.07

스크립트릿(scriptlet)

JSP(JavaServer Pages)에서 기호는 스크립트릿(scriptlet)을 표시하는 데 사용됩니다. 스크립트릿은 JSP 페이지에서 Java 코드를 삽입하는 데 사용됩니다. 스크립트릿 내에서는 Java 코드를 작성할 수 있습니다. 예를 들어, 변수를 정의하거나 조건문, 반복문 등을 사용할 수 있습니다. 스크립트릿을 사용하여 JSP 페이지를 동적으로 생성할 수 있습니다. 아래는 기호를 사용하여 스크립트릿을 작성하는 예시입니다. 0) { message = "The number is positive"; } else { message = "The number is negative"; } %> 위의 예제에서는 number 변수를 정의하고, if-else문을 사용하여 message 변수를 설정합니다. 마지막 ..

개발/js 2023.04.05

Java 17의 새로운 기능과 장단점 탐구

들어가며 Java 17은 2021년 9월에 발표된 Long-Term Support(LTS) 버전으로, 이전 LTS 버전인 Java 11 이후의 많은 변경 사항과 개선 사항을 포함하고 있습니다. 이 글에서는 Java 17의 주요 새로운 기능과 장단점에 대해 자세히 살펴보겠습니다. Java 17의 주요 새로운 기능 JEP 356: Enhanced Pseudo-Random Number Generators Java 17에서는 난수 생성에 관한 새로운 API가 도입되었습니다. java.util.random 패키지에는 이제 유연하고 확장 가능한 의사 난수 생성기(Pseudo-Random Number Generator, PRNG) 인터페이스와 여러 구현체가 포함되어 있습니다. 이를 통해 개발자는 보다 간편하게 난수를..

개발/Java 2023.04.01

Java 1.8에서 도입된 Optional 기능 탐구

Java 8에서 소개된 Optional 기능은 개발자들에게 큰 혁신을 가져왔습니다. 이 기능은 깔끔하게 Null을 처리하면서 코드의 가독성과 안정성을 높이는데 도움이 됩니다. Java 1.8에 도입된 Optional 기능에 대해 자세히 살펴보겠습니다. Optional이란? Optional은 java.util 패키지에 소속된 클래스로, 값이 없을 수도 있는 객체를 감싸는 Wrapper 클래스입니다. 이를 통해 명시적으로 값의 존재 여부를 확인할 수 있으며, Null 포인터 예외를 방지할 수 있습니다. Optional의 생성 Optional 객체는 다음 세 가지 방법으로 생성할 수 있습니다. 1. Optional.empty(): 빈 Optional 객체를 생성합니다. 이 객체는 값이 존재하지 않는 것을 나타..

카테고리 없음 2023.04.01

GPT-4로 자바 로또번호 생성기 만들기

한국 로또 번호 생성기를 자바로 구현하려면 다음과 같은 코드를 사용할 수 있습니다: import java.util.ArrayList; import java.util.Collections; import java.util.HashSet; import java.util.List; import java.util.Set; public class KoreanLottoGenerator { public static void main(String[] args) { List lottoNumbers = generateLottoNumbers(); System.out.println("생성된 로또 번호: " + lottoNumbers); } private static List generateLottoNumbers() { Set ..

개발/Java 2023.03.31

Lombok 라이브러리의 @Builder 패턴 사용법 및 장점

Lombok 라이브러리의 @Builder 어노테이션에 대해 알아보겠습니다. 이 글에서는 @Builder 어노테이션의 기능과 사용법, 그리고 그 장점에 대해 설명 드립니다. 1. 소개: Lombok 이란? Lombok은 자바 개발 시, 반복적인 코드 작성을 줄여주는 유용한 라이브러리입니다. 이 라이브러리를 통해 개발자는 getter/setter, toString, equals, hashCode 등의 코드를 작성하지 않아도 되며, 이를 통해 코드의 가독성과 생산성이 향상됩니다 2. @Builder 어노테이션 이란? @Builder 어노테이션은 Lombok 라이브러리의 한 기능으로, 빌더 패턴을 자동으로 구현해주는 어노테이션입니다. 빌더 패턴은 객체를 생성하는 패턴으로, 많은 필드를 가진 클래스나 복잡한 생성..

개발/Java 2023.03.31

ObjectMapper

com.fasterxml.jackson.databind.ObjectMapper는 Jackson 라이브러리에서 제공하는 클래스 중 하나로, JSON 데이터를 Java 객체로 변환하거나 Java 객체를 JSON 데이터로 변환하는 기능을 제공합니다. ObjectMapper의 주요 기능은 다음과 같습니다 : 1. JSON 데이터를 Java 객체로 변환하기 ObjectMapper는 readValue() 메소드를 제공하여 JSON 데이터를 Java 객체로 변환할 수 있습니다. 이 메소드는 다음과 같이 호출됩니다: String json = "{\"name\":\"John\", \"age\":30}"; ObjectMapper objectMapper = new ObjectMapper(); Person person = o..

개발/Java 2023.03.31