나홀로 젭이다.

 

 

1. 어려웠던 부분 : 오늘은 내일 발표를 위해 여러가지 테스트를 해보았다. 우리가 아직 생각하지 않았던 부분이 동시성제어 문제였는데, 분명히 터질거라고 예상은 하고 있었다. 먼저 아래와 같은 실험을 해봤다.

1. 한 방에 4명이 맥시멈이다. 일단 3명을 입장시켜 놓고 나머지 1자리를 두고 3명이 동시에 입장해보기. 

 - 이 실험은 다행히 문제없이 통과되었다.

2. 방을 3-4개 만들어 놓고 동시에 시작해보기

- 오! 터졌다 ^^! 어떤 방은 시작이되고 어떤 방은 제대로 시작이 되지 않는다. 웹소켓에  게임의 기본설정 정보를 gameStartSet이라는 Repository에 저장하고 있는데 그부분에서 터지는 것 같다! 

일단 여러 자료를 통해 동시성제어엔 비관적락과 낙관적락이 있다는 것은 알았고, 우린 이 정보를 Redis에 저장하고 있기 때문에 Redis에서 동시성제어 하는 법을 열심히 구글링해 보았다.

 

구글링을 통해 첫번째로 아래의 방법을 시도했다.

1. @EnableTransactionManagement 을 붙이고 Redisconfig 파일에 아래 코드 추가하기 -> 실패 ! 여전히 오류 발생

    @Bean
    public PlatformTransactionManager transactionManager() {
        return new JpaTransactionManager();
    }

위 방법 참고자료 : https://wildeveloperetrain.tistory.com/137

 

2. SessionCallBack 사용 - 이부분 코드는 팀원분한테 있어서 나중에 업로드 할 예정

결과적으로 위 콘솔에 뜬 에러는 사라지긴 했지만, 여전히 게임 동시시작에 문제가 있고, 몇 번의 테스트 후 서버가 먹통이 되고 다운되어 버렸다. 

 

어떻게 수정해야할지 아직 잡히지 않아서 더 공부하고 적용해 봐야할 것 같다.

 

2. 느낀 점 : 거의다 끝났다고 생각했지만, 역시나 끝은 없다. 너무 어렵다 ㅎㅎㅎ 하하핳 !! 

 

3. 새로 알게 된 내용 : 지난번에 팀원분이 CI/CD 테스트를 여러번 하셨던 적이 있는데 그때도 서버가 다운되어 버리는 문제가 있었다. 이번에도 여러번 테스트를하니 서버가 그냥 먹통이 되어버렸다. 이럴때 해결 방법 ! 일단 AWS에 가서 먹통이 되어버린 인스턴스를 중지시킨다. 그리고 다시 새로운 인스턴스를 생성하고 생성중이 뜨면 다시 중지시키고 원래 먹통이라 중지시켰던 인스턴스를 다시 재부팅한다. 신기하게도 먹힘... ! 원래 협업에선 이렇게 안할텐데 제대로된 방법을 모르겠다  ㅎ... 

 

4. 셀프칭찬 (오늘 잘한 일) : 팀원들과 같이 동시성제어에 관련된 비관적락 낙관적락 트랜잭션 등에 관한 공부를했다. 어제부터 집안일 때문에 중간 중간 집중이 되지 않았지만, 최대한 팀원들한테 티 안내고 피해주지 않으려고 정말 많이 노력했다 ! 프로젝트가 끝나면 바로 고모가 좋아하셨던 꽃을 사서 인사드리러 가야지! 이효리가 한 말중에 그런 말이 있다. 다른사람은 몰라도 나 자신은 내가 노력한 걸 알아주면 된다고. 잘 하고 있어! 끝까지 잘 하자 ! 

 

5. 내일 할 일 : 중간 회고 발표 / 피드백 정리하기


[오늘 공부한 부분] 

 

+ Recent posts