개발 환경 IDE : IntelliJ Framework : Spring Boot 3.0.5 JDK -version : openjdk 17 Gradle : Groovy 검색하면 많이 나오는 설정들이 대부분 plugin에 querydsl 설정을 추가하는데 Spring Boot 3 버전 이상부터는 plugin에 querydsl 을 사용하면 제대로 작동되지 않습니다. 반드시 plugins에서 제거해주고 dependencies 에만 라이브러리 추가해주세요. build.gradle plugins { id 'java' id 'org.springframework.boot' version '3.0.5' id 'io.spring.dependency-management' version '1.1.0' //plugins 에서 ..
캡슐화 해서 객체 생성하는 디자인 패턴 객체를 생성하는 대신 객체의 인스턴스를 반환한다. 생성자를 직접 사용하는 것을 제한할 수 있다. 정적 팩토리 메서드(Static Factory Method)란? 정적(static). 팩토리(factory). 메서드(method) 정적 팩토리 메서드란 객체 생성을 담당하는 정적 메서드라는 의미를 가진다. 생성자 대신에 메서드로 객체를 생성하는 방식이다. 정적 팩토리 메서드를 사용하면 좋은 이유? 1. 이름을 지정해서 코드의 가독성이 높아진다. 정적 팩토리 메서드는 목적에 맞게 명확한 이름을 직접 지정할 수 있다. 반면에 생성자는 클래스 이름만 사용하기 때문에, 동일한 클래스에 여러 생성자가 있는 경우 구분하기 어렵다. public class Drink { privat..
에러 메세지 No ParameterResolver registered for parameter [com.clone.instagram.domain.user.repository.UserRepository userRepository] in constructor [public com.clone.instagram.domain.user.service.UserServiceTest(com.clone.instagram.domain.user.repository.UserRepository,com.clone.instagram.domain.user.service.UserService)]. 원인 Junit5 테스트 코드에서 의존성이 주입되지 않았을때 발생하는 에러 해결방법 1. 테스트 클래스에 @SpringBootTest 테스트..
Spring Security를 적용하기 위해서는 @Configuration 어노테이션이 달린 설정 클래스를 구현해야 하고, 이 클래스에서 SecurityFilterChain을 생성하여 보안 필터 체인을 구성합니다. 이때 보안 필터 체인에서 사용할 Filter 클래스 중 하나로 OncePerRequestFilter 클래스를 선택하여 구현할 수 있습니다. OncePerRequestFilter 클래스를 본격적으로 살펴보기에 앞서서, Spring Security에서 Filter를 구성하기 위해 앞서 정의해야할 것들이 있어 이해를 위해 순서대로 차례로 정리해보겠습니다. @Configuration : 시큐리티 구성을 위한 클래스 기존 방식으로 @configuration 어노테이션이 달린 설정 클래스는 아래와 같이 ..
에러 메세지 Cannot resolve method 'and' in 'HttpSecurity' @Bean public SecurityFilterChain filterChain(HttpSecurity http) throws Exception { http .csrf().disable() .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS) .and() .cors().configurationSource(corsConfigurationSource()).and() .authorizeRequests() .antMatchers("/api/v1/users/*").permitAll() .antMatchers("/api/v1/login")...
에러 메세지 Cannot resolve method 'antMatchers' in 'ExpressionInterceptUrlRegistry’ @Bean public SecurityFilterChain filterChain(HttpSecurity http) throws Exception { http .csrf().disable() .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS) .and() .cors().configurationSource(corsConfigurationSource()).and() .authorizeRequests() .antMatchers("/api/v1/users/*").permitAll() .ant..
단위 테스트 실습 - 문자열 계산기 다음 요구사항을 JUnit을 활용해 단위 테스트 코드를 추가해 구현한다. 요구사항 사용자가 입력한 문자열 값에 따라 사칙연산을 수행할 수 있는 계산기를 구현해야 한다. 문자열 계산기는 사칙연산의 계산 우선순위가 아닌 입력 값에 따라 계산 순서가 결정된다. 즉, 수학에서는 곱셈, 나눗셈이 덧셈, 뺄셈 보다 먼저 계산해야 하지만 이를 무시한다. 예를 들어 "2 + 3 * 4 / 2"와 같은 문자열을 입력할 경우 2 + 3 * 4 / 2 실행 결과인 10을 출력해야 한다. 힌트 문자열을 입력 받은 후(scanner의 nextLine() 메소드 활용) 빈 공백 문자열을 기준으로 문자들을 분리해야 한다. String value = scanner.nextLine(); String..
비즈니스 요구사항과 설계 회원 회원을 가입하고 조회할 수 있다. 회원은 일반과 VIP 두 가지 등급이 있다. 회원 데이터는 자체 DB를 구축할 수 있고, 외부 시스템과 연동할 수 있다. (미확정) 주문과 할인 정책 회원은 상품을 주문할 수 있다. 회원 등급에 따라 할인 정책을 적용할 수 있다. 할인 정책은 모든 VIP는 1000원을 할인해주는 고정 금액 할인을 적용해달라. (나중에 변경될 수 있다.) 할인 정책은 변경 가능성이 높다. 회사의 기본 할인 정책을 아직 정하지 못했고, 오픈 직전까지 고민을 미루고 싶다. 최악의 경우 할인을 적용하지 않을 수도 있다. (미확정) 요구사항을 보면 회원 데이터, 할인 정책 같은 부분은 지금 결정하기 어려운 부분이다. 그렇다고 이런 정책이 결정될 때 까지 개발을 무기..
- Total
- Today
- Yesterday
- spring boot 3
- document insert
- Linux
- java.lang.NullPointerException: Parameter specified as non-null is null
- addFilterBefore
- array
- ChatGPT
- MultipleBagFetchException
- checkout
- Cannot construct instance of
- dto 클래스 생성자
- Java
- port
- FetchJoin
- Git
- Kotlin
- QueryDSL
- Spring Security
- 문자열계산기
- MongoDB
- 추상클래스
- n+1
- insertOne
- JPA
- 스프링오류
- junit5
- 배열
- ?.let
- insertMany
- 장애 대응
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |