적용 계기github의 프로젝트 Repository를 public으로 변경하게 되면서,application.yml의 datasource: url, username, password이 외부에 공개되다 보니 이 값을 암호화할 필요성이 생기게 되었습니다. DB에 접근 허용 IP가 제한되어있어 외부에서 접속은 안되긴 하지만.. 그래도 꼭 필요한 작업이라 Jasypt를 통해 암호화를 적용하였습니다.혹시라도 application.yml에 설정 등 중요한 정보가 있을 경우 악용될 수 있으니 조심해야 할 것 같습니다. 🤨 Jasypt란?Jasypt(Java Simplified Encryption)는 애플리케이션 개발에서 중요한 정보를 쉽게 암호화하고 복호화할 수 있도록 도와주는 라이브러리입니다. Spring Boot..
분류 전체보기
오늘은 Spring Security 설정 방법에 대해 작성하려 합니다. 🙃 현재 프로젝트 개발 환경은 아래와 같습니다.- **Language** : Java 17- **Framework** : Springboot (3.2.5)- **Database** : MariaDB- **ORM** : JPA- **Frontend**: Thymeleaf- **Build**: Gradle 1. 프로젝트 초기 설정Gradle을 사용하여 필요한 의존성을 추가합니다. build.gradledependencies { implementation 'org.springframework.boot:spring-boot-starter-security' testImplementation 'org.springframework.s..
RESTful API 컨트롤러 (@RestController)의 @GetMapping은 HTTP Get Method에 해당하는 단축 표현으로 서버의 리소스를 조회할 때 사용하는데요.🤨 컨트롤러에서 데이터를 파라미터로 받을 때는 @RequestParam, @ModelAttribute, @PathVariable (경로 변수), 어노테이션 생략(DTO 객체) 등 다양한 방법이 있습니다.헷갈리지 않도록 각각의 차이에 대해 정리하려 합니다. 🧐(추가로 HttpServletRequest, @RequestBody, @RequestPart도 같이 정리) 1. @RequestParam 사용개별 쿼리 파라미터를 1:1로 매핑하여 사용합니다. (body를 직접 조회하지 않습니다.)@RequestParam은 단일 값(예:..
이전 회사 프로젝트에서는 Swagger2(springfox)를 사용했는데, 개인 프로젝트에서 Swagger 최신 버전 (3.0)을 사용하려고 하니이전과 많은 부분이 달라져서 해당 글에 v3 사용 방법, 예시를 정리하려합니다. :D 이전 글(설정 방법): https://vennycode.tistory.com/60 [Swagger] Spring Boot (Gradle)에서 Swagger 3.0 (Springdoc) 설정 방법백엔드에서 만든 API를 자동으로 문서화해주는 Swagger를 프론트, 앱 팀과 협업 시 유용하게 사용했었는데요.이번 글에서는 Swagger 3.0 (Springdoc-openapi) 설정 방법에 대해 정리하겠습니다. 👩🏻💻vennycode.tistory.com Springdoc-..
Spring Boot는 다양한 애너테이션을 제공하여 개발자가 간결하고 효과적으로 애플리케이션을 구성하고 개발할 수 있도록 도와줍니다. 아래는 Spring Boot에서 자주 사용하는 애너테이션들과 그 설명입니다 :D 1. @SpringBootApplicationSpring Boot 애플리케이션의 진입점(entry point)에 사용되는 애너테이션입니다. 이 애너테이션은 @EnableAutoConfiguration, @ComponentScan, @Configuration을 포함합니다. (그래서 직접 사용할 필요 X)더보기@EnableAutoConfiguration 역할Spring Boot 애플리케이션에서 자동 구성(autoconfiguration)을 활성화합니다. Spring Boot는 클래스패스에 있는 라..
백엔드에서 만든 API를 자동으로 문서화해주는 Swagger를 프론트, 앱 팀과 협업 시 유용하게 사용했었는데요.이번 글에서는 Swagger 3.0 (Springdoc-openapi) 설정 방법에 대해 정리하겠습니다. 👩🏻💻 Swagger란! 🤔RESTful한 웹 서비스를 만들 때 API 문서를 자동으로 만들어주고, API를 직접 테스트할 수 있는 UI를 제공해줍니다대표적인 라이브러리로는 Springfox Swagger, Springdoc이 존재합니다. Springfox가 아닌 왜 Springdoc이냐?-> Springfox Swagger의 경우 3.0버전을 마지막으로 업데이트가 중단되었다고 합니다. (2020년 마지막 업데이트) 그리고 Spring Boot3에서는 동작을 하지 않는 이슈도있기에..
JPA (Java Persistence API)는 객체-관계 매핑(ORM) 프레임워크로, 엔티티 간의 관계를 매핑할 수 있습니다. JPA에서 지원하는 주요 관계 매핑 유형과 그 예시는 다음과 같습니다. 1. @ManyToOne 관계 @ManyToOne 관계는 다수의 엔티티가 하나의 엔티티를 참조하는 관계입니다. 예를 들어, 다수의 게시물(Board)이 하나의 사용자(User)를 참조할 때 사용됩니다. 속성: • cascade: 연관된 엔티티에 수행되는 작업을 지정합니다. • fetch: 연관된 엔티티를 언제 로드할지를 지정합니다. FetchType.EAGER(기본값)은 즉시 로드, FetchType.LAZY는 필요할 때 로드합니다. • optional: 연관된 엔티티가 필수인지 여부를 지정합니다. ..
application.yml 이란?application.yml은 Spring Boot 프레임워크에서 사용하는 설정 파일 중 하나입니다. YAML 형식으로 작성되며, 애플리케이션의 구성 정보를 정의하는데 주로 사용됩니다. 1. 애플리케이션 설정: 애플리케이션의 이름, 버전 등과 같은 일반적인 설정을 포함할 수 있습니다.spring: application: name: my-application 2. 데이터베이스 연결 정보: 데이터베이스의 URL, 사용자 이름, 비밀번호, 드라이버 클래스 등과 같은 데이터베이스 연결 정보를 포함할 수 있습니다.spring: datasource: url: jdbc:mysql://localhost:3306/my_database username: root ..
application.properties와 application.yml은 모두 Spring Boot 애플리케이션에서 설정을 구성하기 위한 파일입니다.이 두 파일은 동일한 목적을 가지지만, 구성 형식과 구문에서 차이가 있습니다. 1. 형식 및 구문 차이application.properties • 형식: 키-값 쌍으로 설정을 정의합니다. • 구문: 각 설정 항목을 한 줄에 정의하며, .(닷) 표기법을 사용합니다. 예시:spring.datasource.url=jdbc:mysql://localhost:3306/mydbspring.datasource.username=rootspring.datasource.password=secretserver.port=8080logging.level.org.springframew..
👉🏻 message.yml 이란?messages.yml 파일은 Spring Framework, 특히 Spring Boot 애플리케이션에서 국제화(i18n)를 지원하기 위해 사용됩니다.국제화는 애플리케이션이 여러 언어와 지역에서 사용될 수 있도록 지원하는 기능입니다. 이 파일을 통해 애플리케이션의 메시지(텍스트)를 여러 언어로 쉽게 관리하고 제공할 수 있습니다. 👉🏻 주요 이유 및 사용 목적 1. 국제화 및 지역화 지원: • 애플리케이션을 여러 언어로 제공하여 글로벌 사용자에게 적합한 경험을 제공합니다. • 지역별로 다른 언어와 문화에 맞춘 메시지를 쉽게 관리할 수 있습니다. 2. 중앙집중식 메시지 관리: • 애플리케이션에서 사용되는 모든 메시지를 한 곳에서 관리할 수 있습니다. • 코드와 메시지..