java4 ApplicationEventPublisher를 활용하여 서비스 강결합 문제 해결하기 ApplicationEventPublisher를 활용하여 트랜잭션 강결합 문제를 해결하는 방법을 알아보겠습니다. 프로젝트를 진행하다 보면 의도치 않게 서비스끼리 강결합되는 문제가 발생합니다. 아래 예시가 있습니다. UserService @Service @RequiredArgsConstructor @Transactional public class UserService { private final UserRepository userRepository; private final MailService mailService; public Long create(UserReqDto dto) { User user = userRepository.save(User.builder() .email(dto.getEmail()).. 2023. 1. 31. 유클리드 호제법으로 최대공약수 최소공배수 구하기 개념 2개의 자연수 a,b에서 a를 b로 나눈 나머지를 r이라 한다면 (단 a > b), a와 b의 최대공약수는 b와 r의 최대 공약수와 같다. 이 성질에 따라 b를 r로 나눈 나머지 r`를 구하고, 다시 r을 r`으로 나눈 나머지를 구하는 과정을 반복하여 나머지가 0이 되었을 때 나누는 수가 a와 b의 최대공약수이다. 최대공약수 // a > b 일 때, int gcd(int a, int b) { while (b > 0) { int tmp = a; a = b; b = tmp % b; } return a; } 반복문을 사용하여 위와 같이 표현할 수 있다. // a > b 일 때, int gcd(int a, int b) { if (a % b == 0) { return b; } return gcd(b, a%b.. 2022. 7. 17. Math 클래스 메서드 정리 오늘은 유용하게 사용되는 Math 클래스 메서드들을 정리하려한다. sqrt() 제곱근을 구한다. int num = 16; System.out.println(Math.sqrt(num)); /* double Math.sqrt(double) 출력 결과: 4.0 */ random() 0과 1사이의 실수값을 출력한다.(0 포함) System.out.println(Math.random()); /* double Math.random() 출력 결과: 0.11231300330818705 */ abs() 절대값을 구한다. double num = -15.5; System.out.println(Math.abs(num)); /* double Math.abs(double) 출력 결과: 15.5 */ ceil() 소숫점이 있을 때.. 2022. 7. 14. String 클래스 메서드 정리 String 클래스는 참조 타입으로 여러 메서드들을 내장하고 있다. charAt() 인덱스에 위치한 문자를 반환하는 메서드이다. String text = "abcdef"; System.out.println(text.charAt(2)); /* char string.charAt(int index) 출력 결과: c */ concat() 문자열을 뒤에 결합한다. String text = "abcdef"; System.out.println(text.concat("g")); /* String String.concat(String s); 출력 결과 : abcdefg */ contains() 문자열을 포함하고 있는지 확인한다. String text = "abcdef"; System.out.println(text.con.. 2022. 7. 14. 이전 1 다음