메세지화면에서 공통으로 사용되는 다양한 메세지를 한 곳에서 관리하도록 하는 기능을 메세지 기능이라고 합니다.메세지 기능을 사용하지 않을 경우 우리는 모든 메세지를 각각 하드코딩으로 입력해야 합니다. 상품 ID 상품명 가격 수량 아이템 상세를 보여주는 위 HTML 태그들에는 각각 하드코딩으로 상품ID, 상품명, 가격, 수량이 적혀있습니다.또한 해당 명칭들은 나머지 다른 많은 페이지에서 공통으로 쓰이고 있다고 할 대 기획 변경으로 상품명을 제품명으로 바꿔야 한다면 어떻게 할까요? 메세지 기능을 사용하지 않았다면 모든 소스파일에서 하나하나 상품명이라 적혀있는 곳을 찾아 제품명이라 바꿔주어야 합니다. 하지만 메세지 기능을 사용했다면 다음과 같이 메세지를 변수화 ..
자바 8 부터 람다식과 함께 사용하던 코드를 더 간결하고 강력하게 만들 수 있는 함수형 인터페이스들이 추가됐습니다.따라서 대표적인 함수형 메서드를 정리해 보았습니다.미리 들어가기에 앞서 람다 Stream 사용 시 단순 for 문 혹은 while 문 보다 성능이 떨어집니다.또한 불필요하게 너무 사용하게 되면 오히려 가독성을 떨어트릴 수 있습니다.일단 Stream 이란먼저 유용한 람다식 함수들을 배우기 전에 Stream 이란 무엇인지 간단하게 설명하겠습니다.Stream 은 데이터(리스트, 배열 등) 를 한줄(Stream)로 흘려보내면서 필요한 작업(변환,필터링등) 을 수행하는 기능입니다.쉽게 말해, 데이터를 하나씩 순서대로 흘려보내면서 변형하는 파이프라인 같은 것입니다.데이터 자체를 변경하지 않고, 가공해서..
가끔 기억이 나지 않을 때 참고하려고 정리했습니다. 자바에서는 반복문이 기본적으로 5가지가 있습니다.4가지라고 생각하실 수 있지만 Lamda 를 이용한 반복문까지 포함했습니다. 자바의 반복문for 문반복횟수가 정해져 있을때 사용하면 좋습니다.초기값, 조건, 증감식을 사용해서 반복을 제어합니다.public class ForLoopExample { public static void main(String[] args) { for (int i = 1; i 실행 결과i = 1i = 2i = 3i = 4i = 5 while 문반복횟수가 정해지지 않았을 때 사용하면 좋습니다.조건이 true 일 동안 계속해서 반복합니다.public class WhileLoopExample { public st..
Lombok이란?Lombok은 Java에서 반복적으로 작성해야 하는 보일러플레이트(boilerplate) 코드를 자동으로 생성해주는 라이브러리입니다. 이를 통해 getter/setter, toString(), equals(), hashCode(), 생성자 등의 코드를 직접 작성할 필요 없이 간결한 코드로 유지할 수 있습니다.Lombok을 사용하면 코드의 가독성이 향상되고 유지보수가 쉬워지며 컴파일 타임에 실제 메서드를 생성해주므로 성능에도 영향을 미치지 않습니다.Lombok 설정 방법Lombok 의존성 추가Lombok을 사용하려면 pom.xml(Maven) 또는 build.gradle(Gradle)에 Lombok을 추가해야 합니다.Maven 사용 시 (pom.xml) org.proje..
📌@Valid, @Validated우리가 웹사이트에서 회원가입을 할 때, 이런 걸 검사해야 합니다.✔ 이름을 입력했는지?✔ 나이가 너무 어리진 않은지?✔ 이메일 형식이 맞는지? 이런 검사를 백엔드(Spring) 에서 자동으로 해주는 게 @Valid랑 @Validated입니다.@Valid 사용법 (기본 검사)예를 들어 회원가입할 때, 이름이 비어있으면 안 되고, 나이는 18살 이상이어야 한다는 조건을 붙인다고 생각합시다.UserDTO (데이터 저장하는 클래스)import jakarta.validation.constraints.Min;import jakarta.validation.constraints.NotBlank;import jakarta.validation.constraints.NotNull;publ..
설명Spring Boot 에서 @Scheduled 어노테이션을 사용하면 일정한 시간 간격으로, 혹은 특정 시간에 코드가 실행되도록 설정할 수 있습니다.주기적으로 실행해야 하는 작업이 있을 대 적용해 쉽게 사용할 수 있습니다.사용법@Scheduled 어노테이션을 사용하기 위해 다음과 같이 Application Class 에서 @EnableScheduling 을 추가해야 합니다.@EnableScheduling@SpringBootApplicationpublic class SchedulerApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); ..
Spring Framework는 Java 애플리케이션 개발에서 핵심적인 역할을 하며, 특히 웹 애플리케이션에서는 사용자의 요청을 처리하고 적절한 응답을 반환하기 위해 다양한 애노테이션을 제공합니다. 그중 @Controller와 @RestController는 자주 혼동되는 두 가지 애노테이션입니다. @Controller@Controller는 Spring MVC에서 컨트롤러 역할을 하는 클래스에 사용되는 애노테이션입니다. 주로 뷰(View)를 반환하는 데 사용되며, HTML 페이지와 같은 템플릿 엔진과 함께 사용됩니다. @Controller 는 반환 값이 뷰 이름으로 해석됩니다. Spring 은 해당 이름을 기반으로 HTML, JSP 와 같은 뷰 파일을 렌더링 해줍니다. 또한 일반적으로 HTTP 응답 자체를..
useTransitionUI 를 차단하지 않고 상태를 업데이트 할수 있는 React Hook 을 말합니다. React19 version 에서는 비동기처리도 우선순위를 줄 수 있게 변경이 됩니다.원래 useTransition 은 수많은 state 가 존재할 경우 우선순위를 주기 위해서 탄생했습니다.예를 들어, 사용자가 검색어를 입력하면 결과를 가져오는 작업이 있는데, 결과를 가져오는 동안 앱이 멈춘 것처럼 보이는 문제를 사전에 방지해 줍니다. 쉽게 말해 긴급한 작업과 덜 긴급한 작업의 UI 가시성을 처리하고 싶을 때 사용합니다.import React, { useState } from "react";const Transition = () => { const [number, setNumber] = useSt..