Backend 57

[Spring Security] Spring Security 임시 계정

📌 Spring Security 임시 계정Security filterChain 에서 권한 검사를 설정한 경우 이를 통과하기 위해 로그인이 필요!!기본 폼을 활성화 하면 자동으로 로그인창이 뜬다. 이때 DB연결 전 이라면 임시계정이 필요하다. 📖 인증 필터http.authorizeExchange(exchanges -> exchanges.anyExchange().authenticated()); 📖 기본 로그인 폼 활성화http.authorizeHttpRequests() .anyRequest().authenticated() .and() .formLogin(); // 기본 로그인 폼 활성화 📌 Spring Security 계정 생성 방법✅ 1. 자동 생성 - 로그 확인Sp..

Backend/spring 2025.02.23

[Java] 비동기 작업 처리 (ExecutorService VS CompletableFuture)

📌 Java에서 비동기 작업 처리Java에서 비동기 작업을 처리하는 방법은 다양하지만, ExecutorService와 CompletableFuture가 가장 일반적이고 널리 사용된다.😆 ✅ 1. Thread 직접 사용Thread 클래스를 직접 생성하여 작업을 실행하는 방법. 📖 예제Thread thread = new Thread(() -> { System.out.println("비동기 작업 실행");});thread.start(); ✔ 장점간단한 작업에 적합. ❌ 단점스레드 풀 관리가 불가능하고, 직접 관리해야 해서 복잡해짐.성능 및 자원 관리 측면에서 비효율적. ✅ 2. ExecutorService스레드 풀을 관리하며 효율적으로 비동기 작업을 처리.Runnable 또는 Callable을 활용..

Backend/JAVA 2025.02.23

[Spring Security] Spring Security란?

📌 1. Spring Security란?Spring Security는 Spring Framework의 서브 프로젝트로, 애플리케이션의 인증(Authentication)과 권한 부여(Authorization)를 처리하는 보안 프레임워크 🛠 Spring Security 핵심 기능 🔹 1. 인증(Authentication)사용자가 누구인지 확인하는 과정. 👉 Spring Security에서 지원하는 인증 방식폼 로그인 (formLogin()) – ID/PW 입력 후 세션 기반 로그인HTTP Basic 인증 (httpBasic()) – 간단한 API 인증 방식 (ID/PW Base64 인코딩)JWT 기반 인증 – 토큰을 이용한 인증 방식OAuth2 로그인 (oauth2Login()) – Google, G..

Backend/spring 2025.02.16

Eureka란?

📌 1. Eureka란?Eureka는 Netflix에서 개발한 서비스 디스커버리 및 로드 밸런싱을 제공하는 도구  주로 Spring Cloud에서 서비스 디스커버리 솔루션으로 사용되는데, 이 경우 서비스들이 동적으로 등록되고 서비스 위치 정보를 중앙에서 관리하기 때문에 Gateway에서 각 서비스의 uri를 직접 설정할 필요없다. ✅ Eureka의 주요 개념 1️⃣ Eureka ServerEureka Server는 여러 마이크로서비스들이 서로를 찾을 수 있도록 서비스 정보를 저장하고 제공.여러 개의 Eureka 서버를 클러스터링하여 고가용성을 보장할 수 있다. 2️⃣ Eureka Client ( 서비스 등록 & 서비스 검색 )서비스가 Eureka Server에 자신을 등록하고, 다른 서비스를 찾기 위해..

GateWay란?

📌 1. GateWay란? MSA (Microservices Architecture)에서 Gateway는 여러 마이크로서비스를 단일 진입점(Entry Point)으로 통합하고 관리하는 중앙 집중식 API 라우터이다.주로 API Gateway라고 불린다. 👉 단일 진입점 설정더보기*각 서비스 port에 직접 접근이 불가능하도록 방화벽 등 네트워크 설정으로 개별 서비스 포트에 대한 외부 접속을 차단.*Spring Boot를 사용하면, server.port=8083 server.address=127.0.0.1설정하여 로컬에서만 접근 가능하도록 제한할 수 // Gateway에서 사용자 정보를 설정exchange.getRequest().mutate().header("X-User-Roles", "ROLE_USE..

Spring Cloud란?

📌 Spring Cloud란?Spring Cloud는 Spring Framework를 기반으로 한 마이크로서비스 아키텍처(MSA)에서 사용할 수 있는 도구와 라이브러리 모음!! 🛠 Spring Cloud의 주요 기능1. 서비스 디스커버리 (Service Discovery)Eureka: 마이크로서비스가 서로를 찾고 통신할 수 있도록 서비스 위치 정보를 제공한다.Consul, Zookeeper 등의 서비스 디스커버리 도구와 통합 가능. 2. API Gateway마이크로서비스를 위한 API Gateway를 제공한다.클라이언트 요청을 라우팅하고 인증, 로드 밸런싱 등 다양한 부가 기능을 제공. 3. 분산 구성 관리Spring Cloud Config를 사용하여 애플리케이션의 설정을 중앙에서 관리하고, 실시간으..

DTO 작성 방법 - Array 및 Object 타입

DTO(Data Transfer Object)는 애플리케이션의 계층 간 데이터를 간단히 전달하기 위해 사용되는 객체입니다. 특히 DTO는 데이터를 캡슐화하여 객체로 전달함으로써 데이터 일관성을 유지하고, 불필요한 비즈니스 로직을 생략함으로써 성능을 높일 수 있습니다. 이 글에서는 DTO의 작성 방법을 키워드 및 예제와 함께 설명하며, Array나 Object 타입의 필드가 포함된 경우의 작성법도 함께 다루겠습니다.1. DTO 작성의 기본 구성DTO는 주로 다음 요소로 구성됩니다.필드: DTO가 전달할 데이터. 주로 private 접근 제어자로 선언하여 외부 접근을 제한합니다.기본 생성자: 객체 생성 시 기본 상태로 생성할 수 있도록 빈 생성자를 추가합니다.게터/세터: 각 필드에 접근할 수 있도록 gett..

Backend/spring 2024.11.18

MyBatis 연결 (Spring DAO 작성 방법)

목차1. 매퍼 인터페이스 사용   *MyBatis Generator를 사용하여 생성하는 방법2. SqlSession 직접 사용 3. 어노테이션 기반 매퍼 0. 시작하기 전에0-1. Spring boot mybatis 의존성 추가pom.xml에 MyBatis 의존성을 추가합니다. org.mybatis.spring.boot mybatis-spring-boot-starter 3.0.6 0-2. Spring 공통 설정  0-3. MyBatis-Spring 통합 라이브러리 사용 준비MyBatis-Spring 통합은 Spring Framework와 MyBatis를 함께 사용하는 방식으로, 의존성 주입(DI) 및 트랜잭션 관리를 쉽게 할 수 있습니다.- applica..

Backend/spring 2024.10.30

HttpURLConnection

HttpURLConnection은 자바에서 HTTP 프로토콜을 사용하여 서버와 통신할 때 사용되는 클래스로  Java의 표준 라이브러리인 java.net 패키지에 포함되어 있습니다.URL을 통해 서버와 연결하고 데이터를 송수신하는 데 사용됩니다. 주요 기능서버와의 연결 설정: URL을 사용하여 서버에 연결하고, HTTP 요청 방법(GET, POST 등) 및 다양한 속성을 설정할 수 있습니다.데이터 송수신: 서버와의 연결을 통해 데이터를 송수신할 수 있습니다. 응답 처리: 서버로부터 받은 응답 데이터를 처리하고 응답 코드, 응답 헤더, 응답 본문 등을 확인할 수 있습니다.연결 관리: 연결을 열고 닫는 등의 연결 관리 작업을 수행할 수 있습니다. 사용 예제아래는 간단한 HttpURLConnection을 사용..

Backend/JAVA 2024.06.07

블록킹큐(Blocking Queue)

Queue의 개념Queue는 컬렉션 프레임워크의 일부로, 데이터를 선입선출(FIFO, First-In-First-Out) 방식으로 저장하고 관리하는 자료구조입니다. 큐는 주로 데이터의 순서를 유지하면서 처리해야 하는 상황에서 사용됩니다.  BlockingQueue의 개념Queue를 상속 받아, 큐의 기본작업에 블로킹 연이 추가된 인터페이스입니다.동기화된 방식으로 작동하여 여러 스레드가 안전하게 접근할 수 있습니다. BlockingQueue는 큐가 비어 있을 때 요소를 가져오려고 하면 대기하고, 큐가 가득 차 있을 때 요소를 추가하려고 하면 대기합니다. (put, take 함수에서 블락됐을 때 다음 코드가 실행되지 않고 대기하는 걸 볼 수 있다!!)  *블로킹 연산특정 조건이 충족될 때까지 스레드를 일시 ..

Backend/JAVA 2024.06.05