TIL

TIL

TIL(2019-12-16)

2 phase commit 출처: http://bit.ly/2rQUlij 특징 왼쪽의 Transaction Coordinator가 '요청 준비'를 물어보고 '준비'가 되었다는 신호가 오면, '실행'하고 '완료' 신호가 오는 형태 오른쪽의 Resource Managers들로부터 모두 만장일치로 '준비' 신호가 올 때 '실행'할 수 있음 그 말인 즉, 하나의 '준비' 신호도 오지 않을 때는 Transaction Manager는 무한 대기 상태에 빠질 수 있음 또 다른 부작용으로 Transaction Coordinator가 죽을 경우 새로 다시 띄운다고 하더라도 상태 값이 달라(죽기 전이 받은 신호와 새로 띄운 것의 신호 상태 값이 단절) 제대로 처리될 수 없음 그래서 등장한 것이 3 phase commit인..

TIL

TIL(2019-12-15)

ERC721 배포하기 klaytn docs의 스마트 컨트랙트를 설명하는 곳에서 쉽게 erc721을 배포하는 방법을 배울 수 있었습니다. 그 내용에서는 klaytn IDE를 이용하였는데요. 짧게 요약하면 다음과 같이 정리할 수 있을 것 같아요. klaytn wallet에서 EOA(Externally Owned Account) 계정을 하나 만들고요. Faucet을 이용하여 테스트에 이용할 5Klay을 받습니다. klayt IDE에 들어가 klaytn docs에 예제로 나와있는 erc721 샘플 컨트랙트를 복사합니다. 그리고 Compile 탭에 Start to compile을 누르고 Run 탭에서 좀 전에 만든 EOA계정을 등록합니다. 그리고 Deploy를 합니다. Deploy를 하게되면 Deployed Co..

TIL

Today's Dev Notes(2019-03-17)

Controller 내 gameService null값 에러 해결 기존 Reflection API를 써서 Custom하게 만든 Annotation 클래스를 가져와서 요청 메시지에 맞는 Method를 등록시켜두었습니다. 그래서 소켓 메시지로 어떠한 요청이 왔을 때 해당 key값을 찾고 그에 해당하는 Method를 호출하였습니다. 그런데 문제는 이 컨트롤러 안에 있는 GameService 를 주입시키려면 이 Controller도 빈이어야 한다는 것이죠. 물론 빈으로 등록하는 건 클래스 위에 @Component 만 설정해놓으면 되니 큰 문제가 아닙니다. 하지만 요청에 맞는 Method를 불러오고 그것을 invoke 할 때 빈으로 등록시켜놓은 객체를 들고와야 GameService 가 @Autowired 된 빈을..

TIL

Todays' Dev Notes(2018-03-16)

WebSocketSession Mock 테스트 내 중복 제거 기존에는 특정 테스트 클래스 내에 테스트 상황을 모두 가정해놓고 테스트를 진행하였습니다. 그렇다보니 여러 테스트 클래스에서 동시에 사용되는 부분이 있어 중복이 발생하였습니다. 그러한 부분을 제거하고자 하였습니다. BasicAuthAcceptanceTest 라는 클래스가 있습니다. 이 클래스의 역할은 스프링 테스트 서버를 가동시키고 특정 유저를 찾아 세션값 까지 넣는 역할을 합니다. 즉, 세션값으로 수행하는 로직이 있을 때 사용하는데요. 저는 BasicAuthAcceptanceTest 을 상속받는 클래스를 하나 더 만들어서 여기엔 WebSocketSession 에 대한 테스트 데이터를 미리 만들어서 중복을 해결하려고 합니다. public abst..

TIL

Todays' Dev Notes(2018-03-15)

생성자에 @Autowired 적용 private final List methodArgumentResolvers = new ArrayList(); @Autowired private UserHandlerMethodArgumentResolver userHandlerMethodArgumentResolver; @Autowired private GameRoomHandlerMethodArgumentResolver gameRoomHandlerMethodArgumentResolver; public ParameterBinder() { methodArgumentResolvers.add(new UserHandlerMethodArgumentResolver()); methodArgumentResolvers.add(new Game..

TIL

Todays' Dev Notes(2018-03-11)

오늘의 목표 parameter binding함수 리팩토링, HandlerMethodArgumentResolver 하나 더 만들기 어제 parameter binding하는 함수를 만들었는데요. 리팩토링은 진행은 하지 못하였습니다. 그래서 오늘 좀 더 깔끔하게 어떻게 구현할 수 있을까 고민하다가 다음과 같이 메서드를 분리하였습니다. public Object[] bind(Method method, MessageDto messageDto) throws Exception { Object[] args = new Object[method.getParameterCount()]; Class[] types = method.getParameterTypes(); for (int i = 0; i < args.length; i+..

Brad Lee
'TIL' 카테고리의 글 목록