전체 글

Java, Spring 개발자 강하렴입니다.
CS/Algorithm

제곱근이 무엇인가? 소수 판별에 사용하는 이유 알아보기

소수란 무엇인가?  소수는 수학의 기본적인 개념이면서도 흥미로운 특성을 가진 숫자입니다. 1과 자기 자신 외에는 어떤 자연수로도 나누어떨어지지 않는 수를 소수라고 하는데요. 예를 들어, 7은 소수이지만 8은 2, 4로 나누어떨어지므로 소수가 아닙니다. 소수는 어떻게 판별할까?  소수를 판별하는 가장 단순한 방법은 주어진 숫자를 2부터 시작해서 차례대로 나누어 보는 것입니다. 하지만 이 방법은 숫자가 커질수록 계산량이 기하급수적으로 늘어나 매우 비효율적입니다. 제곱근을 이용한 소수 판별  소수 판별에 제곱근을 사용하는 핵심적인 이유는 계산 효율성을 높이기 위해서입니다. 그 이유를 설명하기 위해서는 제곱근의 특징을 이해해야 하는데요, 그 이유는 다음과 같습니다. 약수의 대칭성: 어떤 수를 두 개의 수로 나눌..

Project/Whistle(축구 매칭 웹 서비스)

Whistle, 휘슬 프로젝트 ERD 설명

휘슬 프로젝트 소개휘슬은 축구를 좋아하는 축구인들이 모여 팀을 형성하고 팀대팀 매칭을 하도록 도움을 주는 웹 서비스입니다.  휘슬의 단기적 목표는 유저간의 축구(또는 풋살) 매칭 서비스를 제공하고 중기적으로는 리그, 커뮤니티를 제공하며 장기적으로는 팀단위 축구 전산시스템을 제공하는 목표를 가지고 있습니다. ERD 소개 휘슬 프로젝트는 팀대팀 매칭을 메인으로하는 서비스 입니다. 따라서 서비스의 핵심인 '유저(User)'와 '팀(Team)' 그리고 '경기(Match)'를 가장 우선적으로 설계하여 구현했습니다.각 테이블의 연관 관계는 유저 -> 팀 (일대다), 유저 -> 매치 (일대다), 팀 -> 매치 (일대다) 입니다.각 테이블의 id(ex: user_id) 값은 PK이며 연관관계로 가져올 때 FK로 가져오..

Project/Whistle(축구 매칭 웹 서비스)

spring security apply() deprecated 이슈 트러블 슈팅

spring security apply() deprecated 이슈 트러블 슈팅 이번 트러블 슈팅은 스프링 시큐리티를 5에서 6.2로 마이그레이션하는 과정에서 발생한 이슈입니다. 이전 포스팅을 통해 스프링 시큐리티6가 체인 방식에서 람다식으로 바뀌었다고 소개했습니다. 이와 동시에 기존 방식인 체인방식에서 사용하던 메서드 일부가 다른 메소드로 대체되었는데요 대표척으로 apply()메서드 입니다. 저는 기존 코드에서 apply() 메서드를 커스터마이징한 JWT 필터를 적용하여 login 성공시에 암호화된 jwt 토큰을 반환하도록 구현하였는데요 스프링 시큐리티 6.2 버전에서는 apply() 메서드를 더이상 사용할 수 없게 되었습니다. 따라서 apply()메서드를 대체할 다른 메서드를 알아보았는데요, 그것은 ..

Project/Whistle(축구 매칭 웹 서비스)

Spring Security 마이그레이션 중 발생한 에러 해결

트러블 슈팅 개요spring boot 2.7.14에서 spring boot 3.2.3로 프로젝트 마이그레이션 진행 중 SecurityConfiguration에서'frameOptions()' is deprecated since version 6.1 and marked for removal에러가 발생했습니다.이 에러는 Spring Security 6 환경에서 'websecurityconfigureradapter'가 deprecated 되었기 때문인데 Spring 3.1.0 이상의 환경에서는 Spring Security 6.1.0 버전을 따라야 하며 기존 방식이었던 메서드 체인 방식에서 람다식을 통한 함수형으로 코딩해야합니다. 해결 방안 'frameOptions()' is deprecated since ver..

Kangharyeom
강하렴의 개발일지