`record`는 **Java 16부터 정식 도입된 특별한 클래스 타입**으로, **데이터 전달용 객체를 간결하게 정의**하기 위해 만들어졌습니다. 기존의 `Class` 작성 방식보다 훨씬 적은 코드로 **불변(immutable) 데이터 객체**를 생성할 수 있습니다.---### ✨ **record의 3대 특징**1. **불변성**: 모든 필드가 `final`로 자동 설정2. **자동 메서드 생성**: 생성자, `equals()`, `hashCode()`, `toString()` 자동 구현3. **간결한 문법**: 데이터 구조를 선언하는 데 집중---### 📍 **기존 Class vs record 비교**#### 1. **전통적인 DTO 클래스 (Before)**public class LoginRequ..
Spring MVC에서 Service 레이어를 interface와 implements로 나누는 이유와 장점을 설명해드리겠습니다.1. 느슨한 결합도 (Loose Coupling)- interface를 사용하면 실제 구현체(implements)와 이를 사용하는 클래스 간의 결합도가 낮아집니다.- 예를 들어, Controller는 ServiceImpl의 구체적인 내용을 알 필요 없이 interface만 알면 됩니다.2. 유연성과 확장성public interface UserService { User findUser(Long id);}public class UserServiceImpl implements UserService { public User findUser(Long id) { //..
spring.application.name=demo# Spring MVCspring.mvc.view.prefix=/WEB-INF/views/spring.mvc.view.suffix=.jsp# MYSQLspring.datasource.url=jdbc:mysql://127.0.0.1:3306/springspring.datasource.username=rootspring.datasource.password=rootspring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver# JPAspring.jpa.hibernate.ddl-auto=updatespring.jpa.show-sql=truespring.jpa.properties.hibernate.format_sql=..
docker run -d \ --name mysql-container \ -e MYSQL_ROOT_PASSWORD=my-secret-pw \ -e MYSQL_DATABASE=my-database \ -e MYSQL_USER=user \ -e MYSQL_PASSWORD=password \ -p 3306:3306 \ -v mysql-data:/var/lib/mysql \ mysql:8.0### 명령어 설명:1. **`-d`**: 컨테이너를 백그라운드에서 실행 (데몬 모드)2. **`--name`**: 컨테이너 이름 지정 (`mysql-container`)3. **환경 변수**: - `MYSQL_ROOT_PASSWORD`: 루트 비밀번호 (필수) - `MYSQL_DATABASE`: 생성할..
## 1. 현재 React 버전 확인```bashnpm list react```## 2. React 및 관련 패키지 업데이트```bash# 최신 React 버전 설치npm install react@latest react-dom@latest# 타입스크립트 React 타입 업데이트npm install @types/react@latest @types/react-dom@latest```## 3. Vite 구성 업데이트`vite.config.ts` 파일에서 React 플러그인 설정 확인:```typescriptimport { defineConfig } from 'vite'import react from '@vitejs/plugin-react'export default defineConfig({ plugins: ..
React에서 Link 컴포넌트는 React Router 라이브러리에서 제공하는 중요한 기능으로, SPA(Single Page Application)에서 페이지 간 이동을 처리하는 데 사용됩니다. Link는 브라우저의 기본적인 페이지 리로드 없이 경로를 변경하고 새로운 UI를 렌더링합니다. 아래는 Link 사용법을 단계별로 설명합니다.1. React Router 설치React Router는 Link 컴포넌트를 제공하는 라이브러리입니다. 먼저 프로젝트에 설치해야 합니다.npm install react-router-dom2. 기본적인 프로젝트 구조 설정BrowserRouter를 사용하여 라우팅을 활성화합니다.import React from "react";import ReactDOM from "react-do..
createBrowserRouter는 React Router v6.4 이상에서 소개된 데이터 중심 라우팅 기능을 제공하는 함수로, 브라우저 기반의 라우터를 생성합니다. 기존의 보다 라우터 구성과 데이터 로딩에 대한 제어를 더 세밀하게 할 수 있습니다.1. 기본 개념createBrowserRouter는 라우트 정의를 통해 브라우저 라우터를 생성하며, 이를 로 연결하여 애플리케이션에 적용합니다.2. 설치React Router를 설치해야 합니다.npm install react-router-dom3. 기본 사용법다음은 createBrowserRouter의 기본적인 사용법입니다.App.tsximport React from "react";import ReactDOM from "react-dom/client";imp..
interface SectionTemplateProps { title: string; imageSrc: string; children: React.ReactNode;}export default function SectionTemplate({ title, imageSrc, children,}: SectionTemplateProps) { return ( {title} {children} );} import SectionTemplate from "./SectionTemplate";export default function AnotherPage() { return ( {/* 변경될 내용 ..
Spring Boot 애플리케이션의 실행과 관련된 Dockerfile의 실행 시점은 Docker 컨테이너의 빌드와 실행 프로세스에서 각각 다릅니다. Dockerfile에 정의된 각 단계는 빌드 또는 실행 단계에서 실행됩니다. 아래에서 각각의 상황을 설명합니다.1. Dockerfile의 실행 시점A. 이미지 빌드 시점Dockerfile의 명령어 중 RUN, COPY, ADD 등의 명령은 이미지 빌드 시점에 실행됩니다.이 과정은 docker build 명령을 실행할 때 발생합니다.예제:# DockerfileFROM openjdk:17-jdk-slim# 빌드 시 실행COPY target/myapp.jar /app.jarRUN apt-get update && apt-get install -y curl# 실행 시..
- Total
- Today
- Yesterday
- React
- jstl(java standard tag library)-core
- java web-mvc
- 진수 변환
- .submit()
- 스프링 프레임워크(spring framework)
- jstl(java standard tag library)
- 제품 등록
- System.Diagnostics
- 특정 문자를 기준으로 자르기
- docker
- In App Purchase
- java 키워드 정리
- 표현 언어(expression language)
- nl2br
- java-개발 환경 설정하기
- 스프링 프레임워크(spring framewordk)
- system.io
- await
- 인텔리제이(intellij)
- 스프링 시큐리티(spring security)-http basic 인증
- java.sql
- REST API
- jsp 오픈 소스
- 람다식(lambda expression)
- 메이븐(maven)
- MainActor
- 문자 자르기
- 스프링 시큐리티(spring security)
- error-java
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |