반응형

springboot 25

[JUNIT] Spring Test MockMvc의 한글 깨짐 처리

Spring에서 JUNIT 테스트 코드를 작성할 때 아래와 같이 filter를 추가하면 한글 사용을 할 수 있다.CharacterEncodingFilter("UTF-8", true)  @AutoConfigureMockMvc@SpringBootTestpublic class ApiControllerTest { private MockMvc mockMvc; @Autowired private WebApplicationContext ctx; @BeforeEach public void setup() throws Exception { this.mockMvc = MockMvcBuilders.webAppContextSetup(ctx) .addFilters(new CharacterEncodingFil..

back end/java 2025.03.10

Spring Boot에서 log4j2 설정하는 방법

Spring Boot에서 로깅을 구성하는 방법 중 하나는 log4j2를 사용하는 것입니다. log4j2는 구성이 유연하고 높은 성능을 제공하므로 많은 개발자들이 선호합니다. 아래는 Spring Boot에서 log4j2를 구성하는 방법입니다. 1. log4j2를 추가합니다. 먼저, Maven 또는 Gradle을 사용하여 log4j2 의존성을 추가합니다. Maven의 경우 다음과 같이 추가할 수 있습니다. org.apache.logging.log4j log4j-slf4j-impl 2.14.1 2. log4j2 구성 파일을 작성합니다. log4j2.xml 또는 log4j2.yml과 같은 구성 파일을 작성합니다. 이 예제에서는 log4j2.xml 파일을 사용합니다. 이 예제에서는 콘솔에 로그를 출력하기 위해 C..

back end/java 2023.02.25

Spring Boot: 웹 애플리케이션을 빠르고 쉽게 구축하는 방법

Spring Boot는 Spring Framework를 기반으로 한 웹 애플리케이션을 빠르고 쉽게 구축할 수 있는 도구입니다. Spring Boot를 사용하면 웹 애플리케이션 개발을 위한 초기 설정과 기본 구조를 쉽게 설정할 수 있으며, 다양한 기능을 제공하는 라이브러리와 연동하여 개발을 빠르게 진행할 수 있습니다. 이번 글에서는 Spring Boot의 개념과 특징, 사용 방법에 대해 자세히 알아보겠습니다. Spring Boot란 무엇인가? Spring Boot는 Spring Framework를 기반으로 하며, 웹 애플리케이션을 빠르고 쉽게 구축할 수 있도록 도와주는 도구입니다. Spring Boot는 일반적인 Spring Framework 개발에 필요한 초기 설정과 기본 구조를 자동으로 설정하여, 개발..

back end/java 2023.02.17

[보안취약점] Cross-Domain Misconfiguration (CORS) in Spring Security

OWASP ZAP을 실행하면 다음과 같은 보안 취약점이 검출될 수 있습니다. OWASP ZAP 내용 1) 설명 Web browser data loading may be possible, due to a Cross Origin Resource Sharing (CORS) misconfiguration on the web server 2) 기타 정보 The CORS misconfiguration on the web server permits cross-domain read requests from arbitrary third party domains, using unauthenticated APIs on this domain. Web browser implementations do not permit arbi..

back end/java 2023.02.15

spring boot utf8 설정

한국 개발자의 가장 큰 비애는 한글인데요 개발을 하다 보면 한글이 깨지는 경우가 정말 많습니다. 한글이 안깨지게 하기 위해 character를 UTF-8로 설정을 해야 하는데요. SpringBoot에서는 아래와 같이 간단하게 설정 파일(application.properties 또는 application.yml)을 통해 설정할 수 있습니다. 아래는 application.properties 기준입니다. spring.http.encoding.charset=UTF-8 spring.http.encoding.enabled=true spring.http.encoding.force=true

웹 개발 2021.07.25

spring boot properties 암호화 (Jasypt)

Spring boot로 개발을 하다 보면 application.properties나 application.yml 등의 설정 파일을 사용합니다. 이 설정 파일에는 서버 연결 정보, DB 연결 정보 등과 같은 민감한 정보가 있을 수 있습니다. 그래서 실무를 하다보면 민감한 정보는 암호화하지 않게 되면 보안진단 시 문제가 발생합니다. 따라서 민감한 정보는 암호화를 해야 하는데, Spring boot와 연동해서 쉽게 사용할 수 있는 것이 Jasypt 라이브러리(오픈소스) 입니다. 사용방법은 다음과 같습니다. (Spring boot 이외에도 사용 가능하지만, 여기서는 Spring boot에서 사용하는 방법을 기록합니다.) 1. Dependency 추가 1.1 Maven pom.xml에 아래와 같이 추가합니다. c..

웹 개발 2021.07.11

[Eclipse] Spring boot 프로젝트에서 war 파일 만들기

SpringBoot에서 war 파일을 만들기 위해서는 @SpringBootApplication에서 SpringBootServletInitializer를 확장해야 합니다. 그 방법은 다음과 같습니다. pom.xml의 packaging을 war로 변경합니다. war​ pom.xml에 아래 dependency를 추가 org.springframework.boot spring-boot-starter-tomcat provided ​ @SpringBootApplication 애노테이션이 있는 java 파일에 다음과 같이 SpringBootServletInitializer를 추가합니다. import org.springframework.boot.SpringApplication; import org.springframew..

웹 개발 2021.07.04

SpringBoot 에서 hibernate.dialect 에러 발생. (로컬서버 실행 안되는 현상)

Spring Boot에서 프로젝트 실행 시 아래와 같은 에러 메시지 발생하며 실행되지 않는 경우가 있습니다. Caused by: org.hibernate.HibernateException: Access to DialectResolutionInfo cannot be null when 'hibernate.dialect' not set 이 경우 application.properties에 DB에 맞는 SQLDialect를 설정해주시면 됩니다. 예를 들어 PostgreSQL의 경우 다음과 같습니다. spring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect 이렇게 설정하고 다시 실행을 하면 정상적으로 로컬서버가 실행됩니다.

웹 개발 2021.07.04

java test plugin - Infinitest

Infinitest는 지속적인 테스트를 해주는 Eclipse와 IntelliJ 플러그인입니다. Infinitest는 소스 코드 변경을 감지해서 영향도가 있는 테스트를 수행합니다. github: http://infinitest.github.io user guide: http://infinitest.github.io/doc/user_guide.html Eclipse에 설치방법 Help > Eclipse Marketplace 열기 infinitest 검색 및 설치 설정 파일 infinitest.filters 파일을 프로젝트 루트 디렉터리(working directory)에 추가합니다. Test로 끝나는 테스트 파일 .*Test Inner Classes .*\$.* package 안에 있는 테스트 com\.my..

웹 개발 2020.12.26

Spring Boot에서 MySQL JDBC Timezone 설정

때때로 MySQL에 날짜를 저장할 때 Database의 날짜가 시스템이나 JVM과 다르다는 것을 알게 됩니다. 이런 경우에는 Timezone을 설정하면 됩니다. 방법 1. URL parameter로 Timezone 설정 MySQL은 기본적으로 useLegacyDatetimeCode=true를 사용합니다. Timezone을 변경하려면 이 옵션을 false로 변경해야 합니다. 또한 serverTimezone 옵션도 추가해야 합니다. 아래와 같이 application.properties에 적어줍니다. spring.datasource.url=jdbc:mysql://loalhost:3306/test ?serverTimezone=UTC &useLegacyDatetimeCode=false spring.datasour..

웹 개발 2020.12.26
728x90
반응형
loading