Spring(22)
-
[IntelliJ] 사용중인 Port 프로세스 종료
에러내용Description:Web server failed to start. Port 8050 was already in use.Action:Identify and stop the process that's listening on port 8050 or configure this application to listen on another port. 1. 포트를 사용 중인 프로세스 확인lsof -i tcp:80502. 해당 PID 종료sudo kill -9 69673
2024.06.19 -
[SpringBoot] 테스트 환경 구축 - MockUser
설명해당 글은 https://hunstory.tistory.com/81 에 이어서 작성된 글입니다.테스트 동작시 User 모킹설정에 대한 글입니다. 구성1. SecurityContextFactory에서 사용할 MockUser 구성@Retention(RetentionPolicy.RUNTIME)@WithSecurityContext(factory = WithMockCustomUserSecurityContextFactory.class)public @interface WithCustomMockUser { long id() default 1L; String name() default "이상훈"; String email() default ""; String[] roles() default {"..
2024.04.09 -
[SpringBoot] 테스트 환경 구축(MySQL docker)
설명로컬 MySQL DB를 이용한 테스트환경 구축을 정리했습니다. Docker 구성1. Pull imagedocker pull --platform linux/amd64 mysql:8.0.28기술적으로는 문제(ARM에서 MySQL 실행)가 해결되지는 않지만 당분간은 platform을 amd로 사용해야한다.2. Docker rundocker volume create mysql_datadocker run --name mysql -itd \ -p 13306:3306 \ -e MYSQL_ROOT_PASSWORD=password \ -v mysql_data:/var/lib/mysql \ --restart unless-stopped \ mysql:8.0.28m1의 경우 해당 옵션 추가 -..
2024.03.22 -
FeignClient를 이용한 API 호출(HttpClient)
목차FeignClient란?Netflix에서 개발한 HttpClient 입니다. 원래는 Netflix 에서 자체적인 개발을 진행했지만 현재는 오픈 소스로 전환되어 SpringCloud 프레임 워크의 프로젝트 중 하나로 들어가 있습니다.마이크로서비스 아키텍처에서 서비스 간 통신을 쉽게 구현할 수 있도록 도와줍니다. 주로 REST API를 호출하는 클라이언트를 생성할 때 사용됩니다. 사용 방법1. 의존성 추가 org.springframework.cloud spring-cloud-starter-openfeign 2. @EnableFeignClient 추가FeignClient 어노테이션이 명시된 인터페이스를 찾아 자동으로 구현체를 구현해줍니다@SpringBootApplication@EnableFeig..
2024.03.13 -
Spring Security 의인증 관리
목차 전체적인 흐름 1. SecurityContextHolder 사용자 인증 정보인 Principal은 SecurityContextHolder -> SecurityContext -> Authentication 에 보관 Principal 정보는 AuthenticationProvider 인터페이스를 이용해 구성하여 사용한다. AuthenticationProvider: springframework.sercurity.authentication 2. JWT token 구성 extends AbstractAuthenticationToken 3.AuthenticationProvider 구성 인증 수행 JWT 기반일 경우: AccessToken, RefreshToken이 유효한지 검사 id, password 기반 인증..
2024.03.13 -
Spring AOP 정리
목차 Spring AOP(Aspect Oriented Programming) 란? 관점 지향 프로그래밍dmfh, 관심 사항에 대해서 공통적인 핵심 관점, 부가적인 관점 등으로 나누어서 그 관점을 모듈화 하는 것이다. 해당 모듈은 @Aspect 데코레이터로 적용하여 사용한다. 보통은 Config에서 Bean으로 등록하여 사용하지만, ComponentScan을 이용해 등록하기도 한다. 내부동작은 SpringCGLIB를 사용해 프록시 매서드를 만들어 적용. AOP 종류 공통 관심 사항(cross-cutting concern) 핵심 관심 사항(core concern) AOP가 필요한 상황 ex) 모든 메소드의 호출 시간을 측정하고 싶다면? 공통 관심 사항(cross-cutting concern) vs 핵심 관..
2024.03.12 -
@Resource, @Autowired, @Inject 차이점(feat. @Qualifier)
의존 객체 자동 주입(Automatic Dependency Injection) 스프링 설정파일에서 의존 객체 대상을 명시하지 않아도 스프링 컨테이너가 자동적으로 의존 대상 객체를 찾아 해당 객체에 필요한 의존성을 주입하는 것을 말한다 @Resource 찾는 순서 이름 -> 타입 -> @Qualifier -> 실패 특징 Java에서 지원하는 어노테이션 특정 프레임워크에 종속되어있지 않다. name 속성의 이름을 기준으로 찾습니다. 없으면 타입, 없으면@Qualifier 어노테이션의 유무를 찾아 그 어노테이션이 붙은 속성에 의존성을 주입한다. 구문을 꼭 xml 설정파일에 추가해야한다. 사용할 수 있는 위치 멤버변수 , setter 메소드 @Autowired 찾는 순서 타입 -> 이름 -> @Qualifier..
2021.10.18 -
Intellij 자동주석 템플릿
Ctrl + Alt + S 클릭(Setting) Live Templetes 원하는 종류의 Templete 추가 Templete text 작성 Edit Templete Variable 작성 Expression 칸에 Method 작성 Ctrl+J로 사용
2021.10.06