전체 글

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..

Algorithm/problem solving

Today's Algorithm(2019-03-20)

baekjoon1110. 더하기 사이클 오늘은 좀 쉬운 문제를 풀어보았습니다. 백준의 '단계별로 문제풀기' 라는 코너에 특정 영역에 딱 하나 1를 풀지 않아 '완료' 표시되지 않은 것이 눈에 좀 걸려서요. 이와 같은 문제를 풀다보면 String으로 문제를 푸는 것이 좋을까, Int로 문제를 푸는 것이 더 좋을까 생각하곤 하는데요. 저 같은 경우 이번 문제에서 String으로 풀었습니다. 그런데 다 풀고나니 이 문제는 Int로 해도 괜찮겠더라구요. 그 이유는 다음과 같습니다. 여기에서 속도는 큰 문제되지 않았지만 int를 String으로 바꾸고 하는 과정에서 성능에서 불리한 점이 분명 있습니다. 새로운 숫자를 만드는 방식이 기존 수의 가장 오른쪽 수와 각 자리의 수를 더한 수의 가장 오른쪽 수 합치는 것이..

Algorithm/problem solving

Today's Algorithm(2019-03-18)

Today's Algorithm(2019-03-18) baekjoon1932. 정수 삼각형 이전에 프로그래머스에서 풀어봤던 문제인데요. 그때 제가 다른 사람의 풀이를 참고해서 풀었던 것으로 기억해서 다시 한번 풀어보게 되었습니다. 이 문제에서 핵심은 '최대값을 어떻게 구할까'인데요. 전에 풀었을 때 재귀로 풀었다가 시간초과가 발생한 기억이 있습니다. 이에 대한 해법은 '다이나믹 프로그래밍'입니다. 쉽게 말하면 그 전까지 값들을 모두 메모해두었다가 다음 계산할 때 사용하는 것입니다. 그럼 어떤 것을 메모할까요? 삼각형을 유심히 보면 제일 앞, 제일 뒤를 제외한 그 사이 숫자는 바로 윗줄의 왼쪽 또는 오른쪽에서 오는 수를 받게 됩니다. 이때 최대값을 받기 위해선 둘 중 큰 수를 받아야겠죠. 그것을 착안하면 ..

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 된 빈을..

Algorithm/problem solving

Today's Algorithm(2019-03-17)

Today's Algorithm(2019-03-17) baekjoon1931. 회의실배정 처음 이 문제를 이해할 때 잘못 이해한 부분이 있었는데요. 단, 회의는 한번 시작하면 중간에 중단될 수 없으며 한 회의가 끝나는 것과 동시에 다음 회의가 시작될 수 있다. 회의의 시작시간과 끝나는 시간이 같을 수도 있다. 문제를 푸는데 이것이 가르키는 의미는 다음과 같습니다. 4시에 시작해서 4시에 끝나는 것도 하나의 회의의 개수로 취급한다 단, 3 5 가 있고 4 4가 있을 때 3 5을 취급하려면 4 4는 무시해야한다. 즉, 회의가 한번 시작하면 중단할 수 없기 때문에 안된다는 것입니다. 그렇지만 3 4가 있고 4 4가 있을 때는 2개의 회의를 취급하겠죠!! 문제에서 주어진 예시에서 1 4와 5 7과 같이 1씩 간..

Brad Lee
Brad's blog