2020/11(4)
-
[자바] 멀티쓰레드 병렬처리 - stream 방식 ExecutorService, Future 방식
(1) ExecutorService, Future, callable 자바 1.5 버전의 ExecutorService와 callable를 사용한 예시 newSingleThreadExecutor로 하였는데 newFixedThreadPool(숫자) 방식으로 하면 쓰레드 개수를 지정할 수 있다. ExecutorService executorService = Executors.newSingleThreadExecutor(); Set callables = new HashSet(); //리스트, 맵등 반복문으로 작업할 콜렉션 for(String key : map.keySet()) { callables.add(() -> { //원하는 동작 수행 return "result"; }); } //callables 들이 병렬처리된..
2020.11.24 -
[git] Xcode pbxproj merge conflict 해결방법
xcode의 최상위 프로젝트 관리 패키지인 .pbxproj의 경우 git 병합시 어떻게 병합할 것인가에 대해 난감한 경우가 많다. 혼자 작업을 하더라도 브랜치를 별도로 분기하여 병합할때 해당 패키지가 충돌이 나는 경우, 병합관련 사항을 기재한 .gitattributes 파일을 git에 추가하면 해결이 가능하다. $ vi .gitattributes 해당 파일에 *.pbxproj binary merge=union 내용을 추가후 저장.
2020.11.19 -
[센치한브이로그] 좋은 선생님을 만난다는 것
우리는 평생을 살면서 누군가에게 무언가의 가르침을 받습니다. 그것이 꼭 학교나 학원으로 규정짓지 않더라도 살면서 단 한번도 배우지 않은 적은 없습니다. 하지만, 시간이 흐를수록 시간이 없어서(바빠서) 필요성이 없어서 나는 알만큼 다 알아서, 살면서 도움이 되지 않아서라는 이유로 배움을 멀리하곤 합니다. 안녕하세요, 센치한개발자입니다. 오랜만에 동영상없는 브이로그입니다. 요즘 다시 또 방송을 못(안)하고 있는 이유가 제가 가르침을 드리는 시간보다 가르침을 받는 시간에 더 할애를 하고 있다는 변명으로 덮어질 수 있을지 모르겠습니다. 최근에 재개한 방송댄스 학원에 다니면서 안무를 익히고 그것에 빠져 사느라 다른 것들을 다 내려놓게 되었습니다. 에이 무슨 춤하나 추는데 다른 일을 못해~ 라고 하실 분도 계실수 ..
2020.11.06 -
[알고리즘] 5. 카데인(Kadane) 알고리즘 : 최대부분합 구하기
[ 1, -3, -1, 2] 와 같은 수의 나열 "수열"이 있다고 가정했을때 각 수들을 더했을때 가장 큰 수가 나오는 연속된 부분을 찾는 알고리즘을 카데인 알고리즘이라고 한다. 수열 알고리즘의 기초에 해당하는 문제로, 오래전 중등부 경시대회 문제로도 많이 출제되었다고 한다. 풀이의 핵심은, 1. 요소를 하나씩 더하기 2. 더한 값을 변수에 저장 3. 더한 값이 그 마지막 저장해놓은 변수값보다 크면 변수를 대입 이다. 자바 코드로 보자면, int[] nums = {1,-3, -1, 2}; public static int maxSubArray(int[] nums) { //배열길이가 1일떄는 더할것이 없으므로 0번지 그대로 반환 if(nums.length == 1) { return nums[0]; } //해당..
2020.11.04