언어34 Java8 Parallel Stream, 효율적으로 사용해야합니다. 람다 참고 https://www.popit.kr/java8-stream%EC%9D%98-parallel-%EC%B2%98%EB%A6%AC/ https://m.blog.naver.com/tmondev/220945933678 Java8에서 최대 변경사항은 람다라고 할 수 있습니다. 람다식을 효과적으로 사용할 수 있도록 기존 API에 람다를 대폭 적용하였으며, 그 대표적인 인터페이스가 Stream입니다. 스트림 인터페이스는 컬렉션을 파이프 식으로 처리하도록 하면서 고차함수로 그 구조를 추상화합니다. 스트림을 사용하면서, 여러 줄의 코드로 작업했던 로직을 간편하게 처리 할 수 있게 되고, 가독성 또한 높아졌습니다. 특히 Parallel Stream은 병렬연산을 쉽고 간단하게 처리해주니 정말 매력적으로 보입니다.하지.. 언어/JAVA 2024. 5. 7. 파이썬으로 구글 스프레드시트 편집 자동화하기 ( 가장 쉬운느낌 ) 본 글은 구글 스프레드시트를 파이썬을 이용해 편집하는 방법을 담은 문서이다.무릇 Google spreadsheet는 이미 상당히 대중화되어 정말 많이 쓰이고 있는 tool이다. 게다가 공유가 자유롭고 즉각적으로 편집하고 접근할 수 있기에, 바야흐로 개인이 Excel을 사서 쓸 필요 자체가 없어진(…) 시대가 되었다고 할 수 있겠다.필자 역시 이걸로 가계부도 쓰고, 일할 때도 사용하고 다양하게 쓰고 있었는데…문득 그런 생각을 했다. 조건에 따라 특정 셀을 자동으로 업데이트하는 스크립트를 만들 순 없을까? 예컨대 내 카드에서 돈이 나가면 해당 항목을 가계부에다가 새로운 row로 추가해준다던가 하는 기능을 원할 수도 있고… 다양한 상황에서 편리하게 쓰일 수 있을 것이다.해서 이를 파이썬과 구글 클.. 언어/Pyhton 2024. 4. 24. [파이썬] exe 파일 용량 줄이기 여러가지 글이 있어서 참고해서 해봤으나 .. 결과만 말하자면, conda 의 환경이 아닌 바닐라 환경으로 셋팅하면된다. conda navigate를 쓰고있기 때문에, 로컬에 conda가 깔린 상황이 아니다 ( 2.7버전 5년전에 깔린게 있는데 지움 ) conda에서 pyinstaller 를 쓰면 용량이 conda와 기타등등이 포함되어 800MB 로 된다. 로컬에 바닐라 환경으로 필요한 라이브러리만 install 해서, 130 mb 로 줄임 https://flytrap.tistory.com/entry/pyinstaller-%EC%9A%A9%EB%9F%89-%EC%A4%84%EC%9D%B4%EB%8A%94-%EB%B0%A9%EB%B2%95-230MB-36MB pyinstaller 용량 줄이는 방법 (230M.. 언어/Pyhton 2023. 7. 11. [파이썬] PyInstaller exe 파일 멀티 multi 파일 만들기, 용량 줄이기 https://www.zacoding.com/en/post/pyinstaller-create-multiple-executables/#fromHistory [PyInstaller] Create multiple exe's in one folder | ZA-Coding [PyInstaller] Create multiple exe's in one folder www.zacoding.com 위에 껄로 하면 잘 된다. 시행착오 생각보다 방법이 잘 안나와서 [cx_Freeze] 을 사용해서도 해봤다. https://noteforstudy.tistory.com/entry/Python-exe%ED%8C%8C%EC%9D%BC-%EB%A7%8C%EB%93%A4%EA%B8%B0-3-multiple-python-files [c.. 언어/Pyhton 2023. 7. 11. java 모던자바 람다 스트림 - 병렬 처리 테스트 배경 - 병렬 처리 가동시 정상 작동하는지 확인하기 위해 테스트 코드 작성 - 병렬로 1부터 n 까지 더했을시 동기화 문제가 발생하지 않고 정상작동하나 확인 코드는 아래에... 알게된 정보 1. 그냥 int 로 더하는 작업하면, 정상값이 나오지 않는다. atomicint로 사용해야 제대로 된 값이 나옴 2. parallel 사용시 메인쓰레드에서 돌아서, forkjoinpool 를 사용해야 한다고한다. 안쓰면 메인쓰레드만 사용해서 서버 죽을수있다는 경험을 전해들음 그래서, 다른 쓰레드로 동작하도록 하기 위해 forkjoinpool 을 사용한다. package io.swagger.service; import java.util.HashMap; import java.util.Map; import java.uti.. 언어/JAVA 2022. 8. 16. 자바 8 Stream API 과 주의사항 이 글은 자바 8 Stream API 를 아는 사람이 주의해야 할 것에 대해 쓰여진 글이지만 , 몰라도 상관없습니다. 이 글 읽어보면 대충 이런거구나 알 수 있으니깐요. Java 8 Stream API 을 배워야하는 이유로 "가독성/간편성" 과 "성능/공짜점심" 으로 보통 꼽습니다. * 가독성 코어 자바 1 2 3 4 5 6 7 8 9 10 11 private static int sumIterator(List list) { Iterator it = list.iterator(); int sum = 0; while (it.hasNext()) { int num = it.next(); if (num > 10) { sum += num; } } return sum; } Stream API 1 2 3 private .. 언어/JAVA 2022. 6. 29. 가비지컬렉션 GC heap dump 분석 조건 쿠버네티스 파드 메모리 증가로 어떤게 쓸데없이 메모리를 차지하는지 분석, 수정이 필요함 방법 가비지 컬렉션 찾는거 검색하니까, 대부분 jmap 으로 heapdump 생성을 하고있음 나도 마찬가지로 jmap heapdump 떠서 분석하려함 eclipse memory analyzer (MAT)를 실행하여 분석하려고 함 https://blog.naver.com/pcmola/222038466393 -> 정확한 분석이 안됨. 파드 메모리가 보통 5~6G 였는데 해당툴로 돌려보면 heap이 64Mb 로 나옴 ( heap이 아닌 다른데서 누수가 있거나, 해당 툴이 정확한 분석을 못한다고 둘중 하나로 판단 ) -> 우선 다른 툴로도 한번 실행해보기로함 -> jdk 에 기본설치된 visual VM 으로 돌려봄 ht.. 언어/JAVA 2021. 6. 3. json 변환시 urlencode 발생 해결방볍 Gson을 사용하여 json변환 작업시, = 문자가 \u003d로 변환되서 나오는 것을 목격 Map map = new HashMap(); map.put("id", "asd12sdnwe=="); Gson gson = new Gson(); String json = gson.toJson(map); asd12sdnwe\u003d 이런식으로 출력된다. 문제해결을 위해 구글링을 했더니 아래와 같이 gson 을 사용하면 유니코드로 변환되지않는다. Map map = new HashMap(); map.put("id", "asd12sdnwe=="); Gson gson = new GsonBuilder().disableHtmlEscaping().create(); String json = gson.toJson(map); ---.. 언어/JAVA 2021. 3. 17. [android] AMD CPU에서 android emulator 설치시 오류 안드로이드 스튜디오에서 에뮬레이터 설치 에러 환경 AMD 프로세스 android 스튜디오 [SC] DeleteService 성공 [SC] 4294967201 오류가 발생하여 StartService이(가) 실패했습니다. Android Emulator Hypervisor Driver for AMD Processors installation failed. To install Android Emulator Hypervisor Driver for AMD Processors follow the instructions found at: https://github.com/google/android-emulator-hypervisor-driver-for-amd-processors Done 참고 0391kjy.tistor.. 언어/Andorid 2020. 9. 25. [material design] 커스텀 버튼, edittext 적용하기 작성일_200731 조건 2015년쯤 안드로이드 개발하고 이후 쭉 안한 상황 과거 프로젝트에서 디자인 가져다 쓸라니까 에러가 많이 남 .. 목표 기본형식의 button ,edittext 말고 메테리얼디자인된거 가져다 쓰고싶음 ( 유료 디자인 사는게 맘편할수도 .. ) 예전 안드로이드개발시에는 디자인 별 라이브러리 설치해서 사용했던걸로 기억하는데 요새는 많이 바뀐듯하다 .. 매테리얼 디자인 초기에는 각각 다 직접 gradle에 참조했어야 됬었다.. 예전에 사용하던 프로젝트에서 gradle 버전 가지고 오면 요새꺼에는 다 안된다 .. material이 정식 버전이 나와서 이전버전들은 쓰기 힘든걸로 보인다. https://material.io/develop/android/components/buttons ht.. 언어/Andorid 2020. 7. 31. [material design] 커스텀 버튼, edittext 적용하기 작성일_200731 조건 2015년쯤 안드로이드 개발하고 이후 쭉 안한 상황 과거 프로젝트에서 디자인 가져다 쓸라니까 에러가 많이 남 .. 목표 기본형식의 button ,edittext 말고 메테리얼디자인된거 가져다 쓰고싶음 ( 유료 디자인 사는게 맘편할수도 .. ) 예전 안드로이드개발시에는 디자인 별 라이브러리 설치해서 사용했던걸로 기억하는데 요새는 많이 바뀐듯하다 .. 매테리얼 디자인 초기에는 각각 다 직접 gradle에 참조했어야 됬었다.. 예전에 사용하던 프로젝트에서 gradle 버전 가지고 오면 요새꺼에는 다 안된다 .. material이 정식 버전이 나와서 이전버전들은 쓰기 힘든걸로 보인다. https://material.io/develop/android/components/buttons ht.. 언어/Andorid 2020. 7. 31. 옵저버 패턴 참조 사이트 GOF java 디자인 패턴 https://stackoverflow.com/questions/1673841/examples-of-gof-design-patterns-in-javas-core-libraries/2707195#2707195 https://gdtbgl93.tistory.com/8 [디자인패턴] 옵저버 패턴 (Observer Pattern) - Java 내장 객체 사용 지난 시간에는 옵저버 패턴의 기본 개념과 구현하는 것에 대해서 알아보았습니다. 우리가 알아본 옵저버 패턴은 흔하게 사용하는 디자인 패턴 중에 하나입니다. 특히 이벤트 처리에 사용되는데 gdtbgl93.tistory.com https://jusungpark.tistory.com/8 디자인패턴 - 옵저버 패턴 (observer pat.. 언어/JAVA 2020. 7. 28. 이전 1 2 3 다음