트러블슈팅

문제 상황public class OAuth2LoginSecurityConfig { private final UserRepository userRepository; private final OAuthService oAuthService; //-> 여기서 ...}@Servicepublic interface OAuthService {} //GoogleOAuthService, KakaoOAuthService가 구현 오류 발생Parameter 1 of constructor in com.memo.login.oauth.CustomOAuthService required a bean of type 'com.memo.login.oauth.OAuthService' that could not be found.인터..
이전 포스팅에서 좋아요 동시 요청에서 데드락이 걸린 것에 대해 분석해 보았다.원인 요약좋아요를 저장하는 과정에서 like 테이블에 board 외래키가 있었고, 외래키로 인해 board의 레코드가 잠김(slock).정확히는 mysql에서는 인덱스 락인데 편의상 레코드 락이라고 하겠다.트랜잭션1: 좋아요 추가(board id = 1 레코드 slock)트랜잭션2: 좋아요 추가(board id = 1 레코드 slock)트랜잭션1: board id = 1 레코드 좋아요 수 update(xlock 획득하기 위해 대기)트랜잭션2: board id = 1 레코드 좋아요 수 update(xlock 획득하기 위해 대기)이 상황이라면 좋아요를 누르는 동시에 해당 게시물을 수정하는 일이 생긴다면 이때도 데드락 발생 가능Loc..
배경Mysql 8.0, Spring Boot 3, java 17 사용학교 게시판에 좋아요 기능이 있는데, 트래픽이 많아질 경우 좋아요 동시성 문제를 생각해 보게 되었다.유저 3개를 만들고 포스트맨의 collection을 활용해서 테스트를 해보았다.결과는 둘다 200 OK가 떳다.이는 포스트맨의 방식이 Delay가 아무리 줄어도 동기 방식이기 때문에 병렬로 동시에 보내는 요청이 아니고 순차적인 요청이었기 때문이었다. 그래서 원시적인 방법으로 curl로 테스트 해보기로 했다.터미널에 각 유저에 대한 요청 3개를 동시에 보냈다.curl --location --request POST 'http://localhost:9090/api/board/like?board_id=1' \--header 'Authorizati..
문제 상황study 엔티티에 studyStatus 속성에 디폴트 값으로 TODO 로 설정하려고 아래와 같이 설정해주었다 @ColumnDefault("TODO") @Enumerated(EnumType.STRING) private StudyStatus studyStatus = StudyStatus.TODO; //강의 상태 근데 아래와 같은 오류 발생Error executing DDL "create table study (likes integer default 0, progress integer default 0, study_id integer not null auto_increment, study_order integer, user_id integer, create_at datetime(6)..
상황Dockerfile의 base image가 다운이 안되는 상황에서 나온 에러이전에는 이런 에러가 뜨면 그냥 수동으로 `docker pull ubuntu:latest` 이미지를 pull 해서 해결했었다.근데 생각해보면 ubuntu:lastest는 docker hub에 있는 퍼블릭 이미지인데 base 이미지로 사용하면 에러가 난다는게 이상했다. 공식 문서에서도 docker Hub에 등록된 퍼블릭 이미지를 로컬 이미지에 없어도 base 이미지로 사용할 수 있다고 하는데 왜 안되는가.. 해서 구글링을 해봤다. 원인`~/.docker/config.json` 파일이 문제였다.credsStore -> credStore로 변경해주니 잘 해결되었다.참고자료https://stackoverflow.com/question..
문제Docker 이미지를 github action에서 생성 후 자동으로 Docker Hub에 올리도록 자동화를 하였다.그리고 Ec2에서 이미지를 pull하려니까 접근 권한 거부 에러가 떳다. 해결`/var/run/docker.sock` 에 권한을 부여해주면된다.sudo chmod 666 /var/run/docker.sock 이미지가 잘 받아와지는걸 확인할 수 있다.
충돌난 상황featrue/signup-test-api 브랜치에서 로컬에서 작업후 커밋remot에서 featrue/signup-test-api 브랜치의 내용이 변경이후 로컬에서 pull을 하려니까 위 사진과 같이 pull이 되지 않았다. 새로운 커밋을 남기지 않고 pull 할 수 있는 방법인 `rebase` 를 사용해서 문제 해결. 해결 과정git pull 에서 에러가 난 브랜치에서 아래 명령어 실행해서 원격에 수정된 최신 코드를 로컬의 `ref/remotes/origin/{branch_name}`에 받아온다.git fetch 아래 명령을 실행해서 원격 코드 위에 다시 로컬 코드들을 순서대로 쌓는다(커밋)git rebase origin/{branch_name}
오류@Transactionalpublic Files savefiles(FileUploadDTO file, MultipartFile newFile, Member member) throws Exception { if (member == null) { throw new BusinessException(CustomErrorCode.ACCESS_DENIED); } Files files = fileHandler.parseFileInfo(file, newFile, member); if (files == null) { //파일이 없을 경우: 클라이언트 측에서 파일 데이터가 없을 경우 throw new BusinessException(CustomErrorCode.NO..
원인docker hub에 로그인이 되지 않을 경우user name과 docker hub 로그인된 ID가 일치하지 않을 경우 나의 경우 1번이였던거 같다.해결먼저 아래 명령어로 docker 로그인 진행 docker login 그러면 아래 사진 같이 뜰 것이다. 로그인 성공~ 로그인 후 프로젝트 이미지 허브에 올리기
hapBday
'트러블슈팅' 카테고리의 글 목록