본문 바로가기
반응형

분류 전체보기95

[springboot] 스프링에서 Bean 주입 시 @Autowired 사용을 권장하지 않는 이유 Spring에서 관리하는 Bean 객체 주입 방법에는 3가지가 있다. (Controller, Service에서 DI 발생)@Autowiredsetter생성자이 중 가장 권장하는 방식은 생성자로 주입받는 방식이다.(@Autowired는 권장하지 않는다.) 즉, 생성자로 Bean 객체를 받도록하면 @Autowired와 동일한 효과를 볼 수 있다. 생성자는 @RequiredArgsConstructor이 final이 선언된 모든 필드를 인자값으로 하는 생성자를 롬복의  @RequiredArgsConstructor가 대신 해준다.  (생성자를 직접 안 쓰고 롬복 어노테이션을 사용하는 이유는 해당 클래스의 의존성 관계가 변경될 때마다 생성자 코드를 계속해서 수정하는 번거로움을 해결하기 위함이다. @RequiredA.. 2024. 2. 15.
[JPA] Entity PK는 bigint(MySQL)-Long(java) 타입으로 해야 하는 이유 프로젝트 개발 시 향후 대량의 데이터를 고려한다면 JPA를 통해 Entity PK는 bigint 타입이 좋다.중규모의 프로젝트면 int 타입이 적절하지만, 거의 대부분이 대량의 데이터를 DB에 저장하게 되므로 그 많은 수억건의 데이터들을 다 수정하려면 꽤 많은 시간이 소요되기 때문에 애초에 개발 시 bigint 타입으로 하는 것이 좋다. 비록 int형에 비해 디스크 용량을 많이 차지하지만 향후 유지보수를 위해선 bigint 타입으로 하는 것이 옳다. 2024. 2. 15.
[git] .gitignore 적용 안될 때 일단 .gitignore에 무시하고 싶은 폴더나 파일을 적어주고 저장한다.#제외config/그다음 terminal에서 git bash를 열어서 아래 내용을 써주면 된다. git rm -r --cached 삭제하고싶은 파일이나 폴더이름git add .git commit -m "커밋내용" 예시:git rm -r --cached config/git add .git commit -m "Removed tracked files in config folder and applied .gitignore"명령어가 실행된다. 다 실행된 뒤 파일 구조를 보면 .gitignore에 config/ 적은 것이 잘 적용이 되어 config 파일이 무시된 것을 확인할 수 있다.  .gitignore이 잘 적용이 안 되는 경우가 많다... 2024. 2. 14.
[springboot] 컨트롤러 JUnit 테스트 Controller JUnit 테스트할 때의 어노테이션 정리 @ExtendWith(SpringExtension.class) //JUnit5 버전, JUnit4 버전은 @RunWith- 스프링 부트 테스트와 JUnit 사이에 연결자 역할 @AutoConfigureMockMvc //@WebMvcTest(@Service, @Repository   테스트 불가능, 컨트롤러 테스트만 가능) 비슷한 의미- MockMvc 제어하는 어노테이션- @Controller 뿐만 아니라 @Service, @Repository 모두 테스트 가능 @SpringBootTest- 테스트에 필요한 거의 모든 의존성 제공- Autowired 허용하여 객체 의존성 주입- 사용 시 @ExtendWith(SpringExtension.class.. 2024. 2. 14.
[JPA] @Setter 대신 @Builder 사용해야하는 이유 @Setter로 생성자 이용 vs  @BuilderJUnit 테스트 할 때 @Setter를 사용하면 set문장이 많아져 코드가 길어진다. 이를 @Builder를 사용하면 한줄코드로 간편하다.  또한, 명확히 어떤 필드에 어떤 값을 채워야 할지를 알 수 있는 장점이 있다.(@ Builder는 해당 클래스의 빌더 패턴 클래스를 생성해주고, 생성자 상단에 선언 시 생성자에 포함된 필드만 빌더에 포함한다.) 주의: @Builder를 사용하려면 기본생성자를 만들어주는@NoArgsConstructor(access = AccessLevel.PROTECTED) 어노테이션도 함께 써야 한다. 그 이유는Reflection을 통한 객체 생성: 빈 객체를 생성하고 필드 값을 설정하기 위해 Java Reflection을 사용할.. 2024. 2. 14.
[springboot] JUnit 테스트에서 @Slf4j 사용하기 JUnit 테스트에서 @Slf4j 사용하려면 build.gradle 파일에 아래 내용을 추가해야 한다. testAnnotationProcessor 'org.projectlombok:lombok' // 테스트를 위한 세팅 @Slf4j testImplementation 'org.projectlombok:lombok' // 테스트를 위한 세팅 @Slf4j 그러면 정상적으로 로그를 사용할 수 있다.아래는 @Slf4j  사용한 예시다.package com.pnow.repository;import com.pnow.domain.Category;import com.pnow.domain.CategoryType;import lombok.extern.slf4j.Slf4j;import org.junit.jupiter.api... 2024. 2. 14.
반응형