본문 바로가기 메뉴 바로가기

정훈's 프로그래밍

프로필사진
  • 글쓰기
  • 관리
  • 태그
  • 방명록
  • RSS

정훈's 프로그래밍

검색하기 폼
  • 😍 Jeong Hun.Story (1171)
    • CURSOR (5)
    • Back End (184)
      • 🍀 Spring Boot (23)
      • ☠️ Java (65)
      • 🌈 .NET (84)
      • 🍕 .NET RESTful API (7)
      • 🍔 .NET Entity Framework Cor.. (2)
      • 🥧 Python (3)
    • Front End (79)
      • 🤢 Next.js (15)
      • 😤 React (12)
      • 🌈 Html (7)
      • 🌈 JavaScript (44)
    • deploy (11)
      • 💾 Github (4)
      • 🐳 Docker (7)
    • RDBMS (44)
      • Prisma (6)
      • SQL (4)
      • 🌈 MsSql (34)
    • Mobile (29)
      • 📱 SwiftUI (29)
    • 정보 보관 ver1.0 (747)
  • 방명록

😍 Jeong Hun.Story (1202)
forEach vs stream

forEach와 stream() 메서드는 둘 다 컬렉션의 요소를 반복(iterate)하는 기능을 제공하지만, 동작 방식과 목적이 다릅니다.✅ forEach vs. stream() 차이점 요약구분 forEach stream()목적단순 반복(iteration) 수행데이터 변환 및 가공반환값없음 (void)변환된 스트림을 반환병렬 처리parallelStream().forEach() 사용 가능하지만, 비순차적 실행 가능성 있음parallelStream()을 활용하면 병렬 처리가 안정적으로 가능사용 예로그 출력, 데이터 출력 등필터링, 변환, 수집 등 데이터 가공원본 컬렉션 변경 여부원본 컬렉션 수정 가능원본 컬렉션을 변경하지 않음 (불변성 유지)1️⃣ forEach : 단순 반복(iteration)forEach..

Back End/🍀 Spring Boot 2025. 2. 18. 14:51
Context API와 커스텀 훅을 사용해 전역 인증 상태를 관리

아래는 React와 TypeScript를 사용하여 로그인 후 인증 정보를 관리하는 예시 코드입니다. 이 예제에서는 Context API와 커스텀 훅을 사용해 전역 인증 상태를 관리하며, localStorage에 토큰을 저장해 새로고침 시에도 인증 정보를 유지할 수 있도록 합니다.1. 인증 Context 및 Provider 생성먼저, 인증 정보를 담을 Context와 Provider를 만듭니다.파일: src/contexts/AuthContext.tsximport React, { createContext, useState, useEffect, ReactNode } from 'react';// 사용자 정보 타입 정의 (필요에 따라 확장 가능)interface User { id: number; name: s..

Front End/😤 React 2025. 2. 12. 21:06
ProtectedRoute-인증 상태 확인 후 페이지 이동

아래는 React Router와 앞서 만든 인증 로직(예: Context, useAuth 훅 등)을 활용하여, 페이지에 진입하기 전에 인증 여부를 확인하고 인증되지 않은 경우 경고창을 띄운 후 로그인 페이지로 리다이렉트하는 예시입니다.1. ProtectedRoute 컴포넌트 만들기설명:ProtectedRoute 컴포넌트는 자식 컴포넌트를 렌더링하기 전에 useAuth를 통해 로그인 여부를 체크합니다. 인증되지 않은 상태라면 alert 창을 띄운 후 로그인 페이지로 이동시킵니다.파일: src/components/ProtectedRoute.tsximport React from 'react';import { Navigate } from 'react-router-dom';import { useAuth } fro..

Front End/😤 React 2025. 2. 12. 21:03
JWT-상황별 토큰(token) 설정 가이드

### 1️⃣ **기본 동작 방식** (예제 코드 기준)```javareturn ResponseEntity.ok(Map.of(    "token", token,    "email", userDetails.getUsername()));```- **현재 구현**: 토큰을 응답 **Body**에 포함하여 전송- **클라이언트의 책임**:   - 로그인 응답에서 토큰을 추출 → **로컬 저장소** (localStorage, sessionStorage, Cookie 등)에 저장  - **매 요청 시** `Authorization: Bearer ` 헤더를 **수동 설정**---### 2️⃣ **자동 헤더 설정이 필요한가요?**- **서버 측**: 토큰 생성만 담당- **클라이언트 측**: 토큰 저장 및 헤더 설정을..

Back End/🍀 Spring Boot 2025. 2. 11. 20:48
Spring Security에서 CORS 설정

✅ 1. 모든 도메인 허용 (*)모든 도메인에서 요청을 허용하려면 setAllowedOrigins(List.of("*"))을 사용할 수 있습니다.하지만, setAllowCredentials(true)와 함께 사용할 수 없습니다.즉, setAllowCredentials(true)를 설정한 상태에서 setAllowedOrigins("*")을 사용하면 Spring Boot가 예외를 발생시킵니다.configuration.setAllowedOrigins(List.of("*")); // 모든 도메인 허용configuration.setAllowCredentials(false); // credentials 허용 비활성화🔹 장점:빠른 테스트 및 제한 없는 접근이 가능공용 API에서 사용할 수 있음🔹 단점:보안 취약점..

Back End/🍀 Spring Boot 2025. 2. 9. 20:09
@JoinColumn을 생성하면서도 외래 키(Foreign Key)는 생성하지 않는 방법

📌 @JoinColumn을 생성하면서도 외래 키(Foreign Key)는 생성하지 않는 방법JPA에서는 기본적으로 @JoinColumn을 사용하면 자동으로 외래 키(FK) 가 생성됩니다.하지만, 외래 키를 생성하지 않으면서도 조인을 유지하는 방법이 있습니다.1️⃣ 방법: @JoinColumn과 함께 @ForeignKey(NO_CONSTRAINT) 사용JPA에서는 @ForeignKey(value = ConstraintMode.NO_CONSTRAINT) 를 사용하면 외래 키 제약 조건(FK)을 생성하지 않도록 설정할 수 있습니다.🔹 예제 코드@Entitypublic class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) ..

Back End/🍀 Spring Boot 2025. 2. 9. 17:50
@ElementCollection & @CollectionTable

1️⃣ 기본 개념✅ @ElementCollectionJPA에서는 일반 엔티티가 아닌 값 타입(예: List, Set 등)을 저장할 때 사용합니다.별도의 테이블을 생성하여 관리합니다.예를 들어, 사용자(User)가 여러 개의 역할(Role) 을 가진다면, 역할을 따로 테이블에 저장해야 합니다.✅ fetch = FetchType.EAGEREAGER(즉시 로딩) : User 엔티티를 가져올 때 즉시 함께 가져옴기본적으로 @ElementCollection은 LAZY이므로 명시적으로 EAGER로 설정하면 즉시 로딩됨2️⃣ 예제 코드로 이해하기👎 @ElementCollection 없이 일반적인 필드로 저장하면?@Entitypublic class User { @Id @GeneratedValue(strat..

Back End/🍀 Spring Boot 2025. 2. 9. 16:59
JTA 트랜잭션 vs Spring 트랜잭션

jakarta.transaction.Transactional (JTA 트랜잭션)JTA는 글로벌 트랜잭션을 다룰 때 사용됩니다.readOnly = true 속성을 지원하지 않습니다.분산 트랜잭션 환경(예: 여러 DB 또는 메시지 브로커를 포함한 트랜잭션)에서 사용됩니다.org.springframework.transaction.annotation.Transactional (Spring 트랜잭션)Spring에서 제공하는 트랜잭션 관리 기능을 사용할 수 있습니다.readOnly = true 지원 → DB에서 불필요한 flush() 호출을 방지하여 성능을 최적화할 수 있습니다.Spring의 TransactionManager를 통해 AOP 기반 트랜잭션 관리가 가능합니다.

Back End/🍀 Spring Boot 2025. 2. 7. 15:34
RESTful 애플리케이션 개발 시 자주 사용되는 어노테이션

아래는 Spring Boot 기반 RESTful 애플리케이션 개발 시 자주 사용되는 어노테이션들을 설명과 함께 정리한 표입니다.@GetMappingHTTP GET 요청 전용 매핑 어노테이션으로, @RequestMapping(method = RequestMethod.GET)의 단축 표현입니다.데이터 조회, 검색, 목록 반환 등 GET 방식의 요청을 처리할 때 사용합니다.@PostMappingHTTP POST 요청 전용 매핑 어노테이션으로, @RequestMapping(method = RequestMethod.POST)의 단축 표현입니다.새 리소스 생성, 폼 데이터 제출 등 POST 방식의 요청을 처리할 때 사용합니다.@PutMappingHTTP PUT 요청 전용 매핑 어노테이션으로, @RequestMapp..

Back End/🍀 Spring Boot 2025. 2. 7. 14:55
도메인 모델(Entity) & API 모델

일반적으로 JPA 엔티티를 Controller에 직접 노출하는 것은 권장되지 않습니다. 그 이유는 다음과 같습니다.계층 간의 명확한 분리도메인 모델(Entity): 비즈니스 로직과 데이터베이스 매핑에 집중합니다.API 모델(DTO): 클라이언트와의 데이터 교환에 최적화된 모델입니다.이를 분리하면 내부 데이터 구조(엔티티)가 변경되어도 API 계약에는 영향을 주지 않아 유지보수가 쉬워집니다.보안 및 데이터 노출 관리엔티티에는 내부 구현에 필요한 정보나 민감한 데이터가 포함될 수 있습니다.DTO를 사용하면 클라이언트에 노출할 데이터를 명확하게 제한할 수 있습니다.직렬화 및 성능 이슈엔티티에 지연 로딩(lazy-loading) 관계가 있을 경우, JSON 직렬화 시 예상치 못한 데이터 로딩이나 순환 참조 문제..

Back End/🍀 Spring Boot 2025. 2. 7. 13:50
이전 1 ··· 5 6 7 8 9 10 11 ··· 121 다음
이전 다음
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
  • JangJeongHunWorld
  • 닥터슬랭
TAG
  • java 키워드 정리
  • 람다식(lambda expression)
  • 문자 자르기
  • React
  • REST API
  • jstl(java standard tag library)-core
  • system.io
  • System.Diagnostics
  • 인텔리제이(intellij)
  • jsp 오픈 소스
  • 스프링 시큐리티(spring security)
  • await
  • 표현 언어(expression language)
  • java.sql
  • .submit()
  • 특정 문자를 기준으로 자르기
  • error-java
  • 스프링 프레임워크(spring framewordk)
  • 스프링 시큐리티(spring security)-http basic 인증
  • jstl(java standard tag library)
  • In App Purchase
  • docker
  • java web-mvc
  • 진수 변환
  • 메이븐(maven)
  • MainActor
  • java-개발 환경 설정하기
  • 제품 등록
  • 스프링 프레임워크(spring framework)
  • nl2br
more
«   2025/07   »
일 월 화 수 목 금 토
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 29 30 31
글 보관함

Blog is powered by Tistory / Designed by Tistory

티스토리툴바