Jinsu's Technical Blog
  • 홈
  • 태그
  • 방명록
  • 메뉴 닫기
  • 글작성
  • 방명록
  • 환경설정
    • 분류 전체보기 (250)
      • Java (18)
      • Spring Framework (33)
        • Toby's Spring 3.1 (6)
        • Spring IoC (6)
        • TDD (6)
        • Reflection (6)
        • AOP (6)
      • Spring Boot (11)
      • Spring Security (22)
      • Database (17)
        • Mysql (2)
        • JDBC (2)
        • JPA (13)
      • Build and Development Tools (3)
        • Maven (1)
        • Gradle (1)
        • Lombok (1)
      • Network (12)
      • Apache Tomcat (11)
      • Microservices Architecture (33)
      • Linux (9)
      • React (10)
      • Docker (22)
      • OAuth (10)
      • DevOps (2)
      • Git (2)
      • HTML (1)
      • CSS (1)
      • JavaScript (1)
      • Problem and Solution Guide (8)
        • Java (1)
        • Spring Framework (4)
        • Reflection (1)
        • Dynamic Proxy (1)
        • JPA (1)
      • Note-Taking (23)
  • 홈
  • 태그
  • 방명록
Spring Security

자체 서명된 인증서 생성하기

CA 기관을 통하지 않고 직접 HTTPS 인증서를 만들어서 사용하려면 **자체 서명된 인증서(Self-Signed Certificate)**를 생성하여 HTTPS 설정에 적용할 수 있습니다. 자체 서명된 인증서는 테스트나 개발 환경에서 주로 사용되며, 운영 환경에서는 보안상의 이유로 권장되지 않습니다. 아래는 자체 서명된 인증서를 생성하고 Spring Boot에서 HTTPS로 설정하는 방법입니다. 1. 자체 서명된 인증서 생성하기 자체 서명된 인증서를 생성하기 위해 Java Keytool을 사용할 수 있습니다. 이 명령어는 keystore.p12라는 이름의 키스토어 파일을 생성하며, 인증서와 개인 키가 포함됩니다.keytool -genkeypair -alias mycert -keyalg RSA -keys..

2024. 10. 28. 13:58
Spring Security

Credential, Principal

보안에서 **Credential(자격 증명)**과 **Principal(주체)**는 시스템이 사용자 또는 시스템의 신원을 확인하고 접근을 관리하는 데 중요한 역할을 하는 개념입니다. 두 개념 모두 인증(Authentication)과 권한 부여(Authorization)를 위한 핵심 요소입니다. Spring Security에서도 이 개념을 바탕으로 사용자 관리 및 보안 기능을 제공합니다. Credential(자격 증명) Credential은 사용자가 시스템에 접근하기 위해 필요한 정보를 의미합니다. 자격 증명은 사용자가 시스템에 로그인하거나 특정 리소스에 접근할 때, 그 사용자가 누구인지 확인하는 정보로 활용됩니다. 시스템은 이 정보를 바탕으로 사용자가 허가된 사용자임을 확인하고, 인증이 성공하면 사용자에..

2024. 10. 28. 13:44
Spring Security

Spring Security

Spring Security는 웹 애플리케이션과 REST API의 보안을 강화하는 Java 기반의 프레임워크로, 주로 **인증(Authentication)**과 권한 부여(Authorization) 기능을 제공합니다. Spring Framework와 쉽게 통합되며, 접근 제어, 보안 정책 관리, 암호화 등의 다양한 보안 기능을 구축할 수 있습니다. Spring Boot와 함께 사용할 때는 많은 설정을 자동으로 구성해 주어, 더 빠르고 쉽게 보안 기능을 추가할 수 있습니다. Spring Boot 3에서는 WebSecurityConfigurerAdapter가 더 이상 사용되지 않습니다. 대신, **SecurityFilterChain**을 사용하여 Spring Security 설정을 구성합니다. WebSecu..

2024. 10. 28. 12:48
Spring Boot

HikariCP

HikariCP는 고성능 JDBC Connection Pool로서, 자바 애플리케이션에서 데이터베이스와의 연결을 효율적으로 관리하는 데 사용됩니다. Spring Boot와 함께 자주 사용되며, 특히 빠르고 경량화된 설계로 인해 다른 connection pool에 비해 높은 성능을 자랑합니다. 이제 HikariCP에 대해 자세하게 설명드리겠습니다. 1. Connection Pool이란? Connection Pool(커넥션 풀)은 데이터베이스와의 연결을 재사용하여 성능을 높이는 기술입니다. 일반적으로 자바 애플리케이션은 데이터베이스와 연결하기 위해 JDBC를 사용하며, 데이터베이스와의 연결을 생성하고 종료하는 작업은 매우 비용이 많이 듭니다. 따라서 애플리케이션에서 매번 새로운 연결을 만드는 대신, 일정 수..

2024. 10. 22. 09:24
Spring Boot

Spring Data JPA

1. Spring Data JPA 시작하기 Spring Data JPA는 Spring 프레임워크와 JPA를 결합하여 데이터베이스 작업을 더 쉽게 만들어줍니다. 기존에 JPA만 사용할 때는 EntityManager를 직접 다루거나, 복잡한 쿼리를 작성하는 것이 필요했습니다. 하지만 Spring Data JPA는 이러한 과정을 추상화하여, 개발자는 필요한 인터페이스만 정의하면 자동으로 CRUD(생성, 조회, 수정, 삭제) 및 복잡한 쿼리를 처리할 수 있습니다. Spring Data JPA는 특히 간단한 방식으로 쿼리 메소드를 생성할 수 있다는 점에서 강력한 도구입니다. 2. 핵심 개념 (Core Concepts) JPA Entity JPA 엔티티는 자바 객체와 데이터베이스 테이블을 매핑하는 클래스를 의미합니..

2024. 10. 22. 09:21
Spring Boot

spring.factories

spring.factories는 Spring Framework에서 매우 중요한 파일 중 하나로, Spring Boot의 자동 구성 및 여러 확장 기능을 지원하기 위해 사용되는 메커니즘이야. spring.factories 파일은 Spring Boot 애플리케이션에서 특정 자동 구성 클래스나 리스너를 등록할 때, 그리고 여러 커스터마이징 지점을 제공하기 위한 설정 파일로 사용돼. spring.factories의 위치와 역할  • 위치: spring.factories 파일은 일반적으로 각 라이브러리의 META-INF/ 디렉토리에 위치해. 즉, 특정 라이브러리가 제공하는 Spring Boot 자동 구성 또는 기능 확장을 정의할 때, 이 파일을 META-INF/spring.factories 경로에 두는 방식으로 ..

2024. 10. 21. 16:59
Spring Boot

@Import

Spring Boot에서 사용하는 **@Import**는 Spring 프레임워크의 핵심 기능 중 하나로, Spring Boot에서 특히 자동 구성(Auto-Configuration) 및 외부 설정을 쉽게 관리할 수 있도록 도와줘. @Import 어노테이션은 여러 가지 방식으로 사용되며, 애플리케이션 컨텍스트에 특정 클래스나 설정 파일을 동적으로 추가하는 기능을 제공해. 특히 Spring Boot에서 자동 구성이나 외부 모듈 통합을 쉽게 구현하기 위해 자주 활용되지. 1. @Import의 기본 개념 @Import는 다른 설정 클래스나 빈을 현재 애플리케이션 컨텍스트에 포함시키기 위한 어노테이션이야. Spring Boot에서는 이를 통해 다양한 자동 설정 클래스나 외부 라이브러리 설정을 포함시켜 빈을 쉽게 ..

2024. 10. 21. 13:41
Spring Boot

Spring Boot의 Auto-Configuration

Spring Boot의 Auto-Configuration(자동 구성)은 Spring Boot가 제공하는 강력한 기능 중 하나로, 기본적인 설정을 자동으로 처리하여 개발자의 설정 부담을 크게 줄여주는 역할을 해. Spring Boot는 이를 통해 개발자가 수많은 설정을 수동으로 하지 않아도, 필요한 설정을 알아서 구성해주고, 기본적으로 적절한 동작을 하도록 애플리케이션을 자동으로 설정해. 이제 Auto-Configuration의 핵심 개념, 작동 원리, 그리고 실제 동작 방식을 완전하게 설명해 줄게. 1. Auto-Configuration의 정의 Auto-Configuration은 Spring Boot가 자동으로 여러 Spring 라이브러리나 컴포넌트를 설정하는 메커니즘이야. 특정 조건을 감지해서(예: 클..

2024. 10. 21. 12:30
Spring Boot

@SpringBootApplication

@SpringBootApplication은 Spring Boot 애플리케이션의 진입점에 주로 사용되는 애노테이션이야. 이 애노테이션은 여러 중요한 Spring 애노테이션들을 결합한 복합 애노테이션이어서, Spring Boot 애플리케이션을 편리하게 설정하고 실행하는 데 큰 역할을 해. 이제 하나씩 완전 자세하게 살펴볼게! @SpringBootApplication의 내부 구성 @SpringBootApplication은 사실 여러 애노테이션의 조합이야. 이 애노테이션은 다음과 같은 세 가지 애노테이션을 포함하고 있어:  1. @SpringBootConfiguration 2. @EnableAutoConfiguration 3. @ComponentScan 1. @SpringBootConfiguration  • 정..

2024. 10. 21. 12:22
Spring Boot

Spring Native

AOT vs JIT  1. AOT (Ahead-of-Time): • 코드가 실행되기 전에 미리 컴파일하는 방식이야. • 예를 들어, Java에서는 소스 코드를 바이트코드로 컴파일한 후, 다시 기계어로 변환하는 과정을 실행하기 전에 미리 수행하는 경우야. • 미리 컴파일된 결과물을 실행하기 때문에 런타임 성능이 향상될 수 있지만, 유연성이 떨어질 수 있어. 2. JIT (Just-In-Time): • 코드가 실행될 때 필요한 부분만 동적으로 컴파일하는 방식이야. • Java의 경우, 바이트코드를 실행하는 동안 JVM이 실행 중인 메서드를 JIT 컴파일러로 컴파일해서 기계어로 변환해. • JIT의 장점은 런타임에서 프로그램을 최적화할 수 있다는 것인데, 즉, 실행 중에 프로그램의 성능을 높일 수 있어. 하지..

2024. 10. 21. 11:46
Spring Boot

SpringApplication.run()

SpringApplication.run()은 Spring Boot 애플리케이션의 시작점으로, 애플리케이션을 실행하고 스프링 컨테이너를 초기화하는 역할을 해. 이 메서드는 Spring Boot의 핵심 중 하나로, 다양한 설정을 자동으로 해주고 애플리케이션을 간편하게 실행할 수 있게 해줘. SpringApplication.run()의 주요 역할:  1. SpringApplication 객체 생성 • SpringApplication.run() 메서드는 내부적으로 SpringApplication 객체를 생성해. 이 객체는 애플리케이션의 실행 환경을 설정하고, 그 설정을 바탕으로 애플리케이션을 부트스트랩(시작)하는 역할을 해. 2. 애플리케이션 컨텍스트 생성 • SpringApplication 객체가 생성되면 S..

2024. 10. 21. 11:14
Spring Boot

Spring Boot

1. Spring Boot란 무엇일까? Spring Boot는 스프링 프레임워크(Spring Framework) 기반의 개발 도구야. 스프링 프레임워크는 자바로 웹 애플리케이션이나 다양한 애플리케이션을 쉽게 만들 수 있게 도와주는 프레임워크인데, 스프링 자체는 설정할 것이 많아서 복잡할 수 있어. Spring Boot는 이런 복잡한 설정들을 자동으로 처리해주고, 쉽게 애플리케이션을 만들 수 있게 도와줘. 간단히 말하면: Spring Boot는 “자바로 웹 애플리케이션을 빠르고 쉽게 만들게 해주는 도구”라고 생각하면 돼. Spring Boot의 주요 특징  • 자동 설정(Auto-Configuration): Spring Boot는 대부분의 설정을 자동으로 해줘. 개발자는 필요한 최소한의 설정만 해도 돼. ..

2024. 10. 21. 10:40
Note-Taking

Spring MVC 구성 요소와 설정 방법에 대한 정리

1. Enable MVC Configuration @EnableWebMvc 애노테이션은 Spring MVC 설정을 자동으로 활성화하는 역할을 해. 이 애노테이션을 클래스에 붙이면, Spring은 기본적인 MVC 설정을 제공해주고, 이 설정을 기반으로 추가적인 설정을 할 수 있게 돼. @EnableWebMvc는 WebMvcConfigurer를 사용하여 커스터마이징할 수 있는 기능을 제공해.@Configuration@EnableWebMvcpublic class WebConfig implements WebMvcConfigurer { // 커스터마이징할 설정 추가 가능} 2. MVC Config API Spring MVC에서 제공하는 다양한 설정들을 WebMvcConfigurer 인터페이스를 통해 커스터마..

2024. 10. 15. 16:23
Apache Tomcat

Apache Tomcat 전체 흐름

1. 프로토콜 핸들러 (Protocol Handler)  • 클라이언트가 HTTP/HTTPS 요청을 보내면, 가장 먼저 프로토콜 핸들러가 이 요청을 처리해. • Tomcat은 주로 HTTP/1.1, HTTP/2, AJP 같은 프로토콜을 처리하는 핸들러를 가지고 있어. 이 핸들러는 들어오는 네트워크 연결을 처리하고, 이를 Tomcat 내부에서 사용할 수 있는 요청 객체로 변환해줘. • 예를 들어, Http11Protocol은 HTTP/1.1 요청을 처리하는 프로토콜 핸들러야. 이 핸들러는 들어오는 TCP 연결을 처리하고, 요청을 커넥터로 넘겨. 2. 커넥터 (Connector)  • Tomcat 커넥터는 프로토콜 핸들러에서 받은 요청을 처리하고, Tomcat의 내부 엔진으로 전달하는 역할을 해. 이 단계에..

2024. 10. 15. 12:12
Apache Tomcat

SLF4J

SLF4J(Simple Logging Facade for Java)는 Java 애플리케이션에서 로깅을 추상화한 프레임워크야. 즉, **여러 로깅 프레임워크(Logback, Log4j, JUL 등)**를 하나의 일관된 API로 통합해서 사용할 수 있게 도와주는 역할을 해. SLF4J는 직접 로깅을 구현하지 않고, 다양한 로깅 프레임워크를 유연하게 연결하는 퍼사드(facade) 역할을 하지. 왜 SLF4J를 사용할까?  1. 로깅 프레임워크 독립성: SLF4J를 사용하면, 나중에 로깅 프레임워크를 변경할 때 애플리케이션의 코드를 수정할 필요가 없어. 예를 들어, 처음에는 Log4j를 사용하다가 나중에 Logback으로 변경하고 싶어지면, SLF4J를 통해 쉽게 교체할 수 있어. 2. 일관된 API 제공: 다..

2024. 10. 15. 11:27
  • «
  • 1
  • ···
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • ···
  • 17
  • »

공지사항

  • Jinsu's GitHub

전체 카테고리

  • 분류 전체보기 (250)
    • Java (18)
    • Spring Framework (33)
      • Toby's Spring 3.1 (6)
      • Spring IoC (6)
      • TDD (6)
      • Reflection (6)
      • AOP (6)
    • Spring Boot (11)
    • Spring Security (22)
    • Database (17)
      • Mysql (2)
      • JDBC (2)
      • JPA (13)
    • Build and Development Tools (3)
      • Maven (1)
      • Gradle (1)
      • Lombok (1)
    • Network (12)
    • Apache Tomcat (11)
    • Microservices Architecture (33)
    • Linux (9)
    • React (10)
    • Docker (22)
    • OAuth (10)
    • DevOps (2)
    • Git (2)
    • HTML (1)
    • CSS (1)
    • JavaScript (1)
    • Problem and Solution Guide (8)
      • Java (1)
      • Spring Framework (4)
      • Reflection (1)
      • Dynamic Proxy (1)
      • JPA (1)
    • Note-Taking (23)

블로그 인기글

전체 방문자

오늘
어제
전체
Powered by Privatenote Copyright © Jinsu's Technical Blog All rights reserved. TistoryWhaleSkin3.4

티스토리툴바