Spring 18

[JPA] @GeneratedValue (Entity key생성)

@GeneratedValue @GeneratedValue는 Java Persistence API (JPA)에서 엔티티 클래스의 주요 키(Primary Key) 값을 자동으로 생성하기 위해 사용되는 어노테이션입니다. JPA는 관계형 데이터베이스와 자바 객체를 매핑하는 ORM(Object-Relational Mapping) 기술을 제공하는데, 이때 엔티티 클래스의 주요 키 값을 생성하는 방법 중 하나로 @GeneratedValue를 사용할 수 있습니다. @GeneratedValue (strategy type) @GeneratedValue 어노테이션은 다음의 4가지 방식으로 자동 생성 전략을 설정할 수 있습니다. GenerationType.IDENTITY: 주로 MySQL과 같은 데이터베이스에서 사용되는 방법..

Spring 2023.08.06

AWS EC2 인스턴스에서 환경변수 설정하는 방법

AWS EC2 인스턴스에서 .yaml 파일에서 불러오는 값 중 노출되면 안 되는 값들은 환경변수로 설정하는 것이 좋습니다. spring: datasource: url: jdbc:mysql://cordjg-database.c8izlkxyxcni.ap-northeast-2.rds.amazonaws.com:13306/uncover?serverTimezone=Asia/Seoul&useSSL=false&characterEncoding=UTF-8 username: admin password: ${MYSQL_SECRET} driver-class-name: com.mysql.cj.jdbc.Driver jpa: hibernate: ddl-auto: update properties: hibernate: dialect: o..

Spring 2023.05.13

Ngrok - 특징 및 사용법 (로컬 서버를 공개 서버로)

What is a NgrokNgrok은 로컬 개발 환경에서 인터넷을 통해 웹 애플리케이션에 안전하게 접근할 수 있도록 해주는 도구입니다. 보안 연결을 통해 인터넷에서 서버를 실행할 수 있으며, 웹 애플리케이션을 외부에 노출시키지 않고도 테스트할 수 있습니다. Ngrok의 주요 장점은 다음과 같습니다. 1. 편리한 설치와 사용 Ngrok는 다운로드 및 설치가 간편합니다. 설치 후에는 쉽게 사용할 수 있으며, 명령어 한 줄로 로컬 개발 서버를 인터넷으로 노출시킬 수 있습니다. 2. 안전한 연결 Ngrok은 TLS/SSL 보안 연결을 사용하며, 인증서는 자동으로 생성됩니다. 이를 통해 로컬 서버에서도 안전하게 연결할 수 있으며, 외부에서도 보안적으로 안전한 연결을 통해 애플리케이션을 실행할 수 있습니다. 3...

Spring 2023.04.06

Apache Tomcat (톰캣)

What is an Apache Tomcat? Tomcat 은 자바 웹 애플리케이션 서버로, 웹 애플리케이션을 실행하기 위한 자바 서블릿 및 JSP(JavaSever Pages)를 지원하며, 다음과 같은 장점들을 가지고 있습니다. 1. 경량화된 서버 : Tomcat은 경량화된 서버로써, 가볍고 빠르게 동작합니다. 따라서 웹 애플리케이션의 배포 및 실행이 빠르게 이루어집니다. 2. 개발과 배포의 용이성 : Tomcat은 자바 웹 어플리케이션을 개발하고 배포하는 데 필요한 대부분의 기능을 제공합니다. 또한, Tomcat은 많은 개발자와 커뮤니티가 활발하게 참여하고 있기 때문에, 다양한 플로그인과 라이브러리를 사용할 수 있습니다. 3. 높은 호환성 : Tomcat은 Java Servlet, JavaServer..

Spring 2023.04.06

Spring _ JAR(Java Archive) , WAR(Web application Archive)

JAR / WAR JAR과 WAR는 둘 다 자바 애플리케이션을 패키징 하는 방식입니다. JAR은 Java Archive의 약자로, 라이브러리 모듈 또는 단일 애플리케이션을 배포할 때 사용되는 방식이며, WAR는 Web Archive의 약자로, 웹 애플리케이션을 배포할 때 사용되는 방식입니다. JAR과 WAR에는 구조적으로도 차이가 있는데 JAR 같은 경우는 폴더 구조가 없으며 메타데이터(manifest) 파일을 포함합니다. 반면 WAR는 웹 애플리케이션의 구조를 따르는 폴더 구조와 웹 관련 파일들(html, jsp, servlet 등)을 포함합니다. 이러한 차이 때문에 웹 어플리케이션을 배포하는 때 WAR는 JAR보다 훨씬 효율적이며 편리합니다. JAR 패키징 방법 기본 설정에서 어플리케이션을 build..

Spring 2023.04.06

Java Spring _ SSR(Server Side Rendering) ,CSR(Client Side Renderin

Server Side Rendering (SSR) 서버 사이드 렌더링은 말 그대로 서버에서 웹 페이지를 렌더링 하는 방식입니다. 사용자가 요청한 페이지에 대한 HTML,CSS,JavaScript 파일을 서버에서 완전히 렌더링 한 후, 클라이언트(브라우저)로 전송합니다. 이 방식의 가장 큰 장점은 초기 페이지 로딩 속도가 빠르다는 것입니다. 왜냐하면 서버에서 이미 완성된 형태로 전달되기 때문입니다. 장점 초기 로딩 속도가 빠르다. 검색 엔진 최적화(SEO)에 유리하다. 단점 서버 부하가 크다. 전체 페이지를 다시 렌더링해야 하는 경우가 많다. 주로 사용되는 경우(SSR) 1. 검색 엔진 최적화 (SEO)가 중요한 경우 : SSR을 사용하면 서버에서 렌더링된 완성된 페이지를 제공하므로 크롤러가 쉽게 콘텐츠를..

Spring 2023.03.23

MapStruct / Spring MVC에서 DTO오 Entity간의 매핑 처리하기

의존성 추가 먼저 프로젝트에 MapStruct를 추가해야 합니다. Gradle 또는 Maven 프로젝트에 다음 의존성을 추가합니다. Gradle: implementation 'org.mapstruct:mapstruct:1.4.2.Final' annotationProcessor 'org.mapstruct:mapstruct-processor:1.4.2.Final' Maven: org.mapstruct mapstruct 1.4.2.Final org.mapstruct mapstruct-processor 1.4.2.Final provided DTO와 Entity 클래스 생성 다음과 같이 DTO와 Entity 클래스를 생성합니다. @Getter @Setter @NoArgsConstructor @AllArgsCons..

Spring 2023.03.18

Spring Security 권한 부여

Spring Security는 애플리케이션에 보안을 적용할 수 있도록 도와주는 프레임워크입니다. 권한 부여는 사용자가 요청한 자원에 대한 접근을 허용하거나 거부하는 기능을 제공합니다. 이 글에서는 Spring Security의 권한 부여에 대해 간단하게 정리해 보겠습니다. 1. 권한 부여 기본 원리 Spring Security는 권한 부여를 위해 사용자의 권한과 요청 자원의 권한을 비교합니다. 사용자의 권한은 사용자가 로그인하면서 인증 과정에서 얻어지며, 요청 자원의 권한은 개발자가 설정해야 합니다. 2. 사용자의 권한 설정 사용자의 권한은 'UserDetails' 인터페이스의 구현 클래스를 이용해 설정할 수 있습니다. 일반적으로 'User' 클래스를 사용해 권한을 설정하며, 다음과 같이 생성할 수 있습..

Spring 2023.03.17

Spring Security: 강력한 웹 보안 프레임워크

웹 애플리케이션 개발에서 보안은 필수적 요소인데 , Spring Security는 Spring 프레임워크의 일부로 웹 애플리케이션의 보안을 강화하는 데 사용되는 강력한 보안 프레임워크이다. 이 글에서 Spring Security의 기본 개념과 주요 기능을 알아보고, 간단한 예제를 통해 적용하는 방법을 알아보겠다. Spring Security란? Spring Security는 인증(Authentication)과 권한부여(Authorization)를 중심으로 하는 웹 애플리케이션 보안 프레임워크이다. 기본적으로 세션 기반의 인증을 제공하며, 보다 고급기능들을 포함하고 있다. 주요 기능은 다음과 같다. 1. 인증(Authentication) - 사용자의 자격을 확인하는 과정 2. 권한부여(Authorizati..

Spring 2023.03.16

Spring Security [DelegatingFilterProxy, FilterChainProxy]

DelegatingFilterProxy와 FilterChainProxy는 Spring Security에서 사용되는 두 가지 중요한 클래스입니다. 이들의 역할과 차이점을 이해하려면 먼저 Servlet 필터와 Spring Security의 필터 체인에 대한 지식이 필요합니다. DelegatingFilterProxy DelegatingFilterProxy는 Spring Security의 시작점이자 Servlet 컨테이너와 Spring 애플리케이션 콘텍스트 사이에서 연결 역할을 하는 필터입니다. 이 필터는 Servlet 컨테이너의 표준 필터 체인에 등록되어 작동합니다. DelegatingFilterProxy의 주요 목적은 Spring의 애플리케이션 컨텍스트에서 빈(Bean)으로 관리되는 실제 필터 구현체에 작업..

Spring 2023.03.16