전체 글 (129) 썸네일형 리스트형 DBeaver Heap memory 늘리기 Database client tool로 DBeaver를 많이 사용하고 있는데 용량큰 Script 실행을 하거나 여러 작업을 많이 할 경우 java heap space 부족 메세지를 종종 보게 된다. 이럴 경우에는 Tool 실행시 vmarg를 넘겨주면 실행시 heap memory를 정해준 size만큼 설정하게 할 수 있다. 실행시 인자는 아래와 같이 줄 수 있다. -vmargs -Xms4096m (구동시 확보되는 최소 메모리) -vmargs -Xmx8192m (최대 사용 메모리) 아래는 윈도우 바로가기 아이콘에서 실행 명령어에 최소 구동 메모리 4096m을 설정한 모습이다. 현재 할당된 Heap memory 를 확인하려면 DBeaver -> window -> Preferences -> Genaral 에서 .. [Devops] Git stash 명령 사용하기 Git은 형상 관리 툴로서 가볍고 사용하기 편하고 빠르고 간단하다. 따라서 많은 Tools들이 있지만 Git이 많이 사랑 받는 이유가 될 것이다. Git 사용중에 수정한 내용에 대해서는 브랜치를 생성해서 commit, push를 대부분 때로는 실제 push 하기 전에 다른 브랜치나 코드를 확인해보고 현재 작업중인 부분을 이어가고 싶은 경우가 있다. 이럴때 stash 기능으로 임시로 변경분들을 넣고 뺄 수가 있다. Git status로 현재 변경 사항들을 우선 확인 한다. $ git status On branch implement-quartz-batch-20220924 Your branch is up to date with 'origin/implement-quartz-batch-20220924'. Chan.. [Postgresql] Synology Docker Postgresql 설치하기 시놀로지 720+ 도커 상에서 Postgresql 을 설치해보고 간단하게 데이터베이스, 스키마, 테이블을 만들어본다. 우선 시놀로지 도커 -> Registry 로 들어가서 postgres 로 검색하고 아래 이미지를 다운로드 받는다. 다운로드를 실행하고 완료되면 도커 -> Image 항목에 다운로드 목록에 보이게 된다. 이미지를 선택한 후 Launch를 수행해서 Container 를 만들어 본다. Network설정은 기본 bridge로 선택된 것 확인하고 다음으로 진행한다. 일반 설정은 그대로 가고 하단 Advanced Settings으로 들어간다. 초기 Launch 시 사용할 root 계정을 아래와 같이 입력해준다. 로컬 네트웍에서 시놀로지 도커 컨테이너에 접속할 Port를 지정해준다. 최종 설정 Sum.. [Linux] scp 명령으로 서버파일 업로드 다운로드 개발을 진행할 때 종종 배포 인스턴스에 들어가서 로그 파일 등을 다운로드 받거나 외부에서 파일을 올려야 하는 경우가 종종 있다. 물론 여러가지 서버 관리 Tool 을 사용해서 편하게 해당 동작을 할수도 있지만 간단한 Bash shell 만을 이용해서 linux scp 명령으로 서버 파일을 로컬 pc로 다운 또는 업로드를 할 수 있다. scp 기본 옵션 간단하게 bach shell에서 scp 옵션을 살펴보면 몇가지가 있다. $ scp /? usage: scp [-346BCpqrTv] [-c cipher] [-F ssh_config] [-i identity_file] [-J destination] [-l limit] [-o ssh_option] [-P port] [-S program] source ... t.. [Spring boot] Spring Redis Session Clustering 설정하기 Backend 개발 시 HA 구성이나 여러 유관 시스템 연동 시 세션 Clustering을 통해 정보를 공유해야할 경우가 생긴다. 이럴 경우에 Tomcat, Nginx, Jboss 등의 웹 서버 단에서 Sticky Session 설정을 할수도 있으나 Spring framework에서 제공하는 session redis 기능을 활용하면 수월하게 Session Clustering 환경을 구축 할 수 있다. Spring Session 기능은 아래 공식 문서에서 찾아볼 수 있다. https://docs.spring.io/spring-session/reference/index.html 중요한 부분은 언급되어 있는 아래 최소 사항 항목이다. Java 17+ 및 Spring 6.0.x 사항이 언급되어 있다. 나름 최신.. [Spring boot] RestTemplate 으로 http 통신하기 Spring 에서 제공하는 http client로는 대표적으로 RestTemplate이 있다. 이 RestTemplate으로 http 요청을 날리게되면 기본적으로 그때마다 connection을 맺고 응답을 받으면 끊게된다. Spring 에서 제공하는 RestTemplate은 직접 http 요청을 하는 역할을 수행하지않는다. 직접 수행하는 클래스를 한번 래핑한 어댑터 역할을 하는 클래스이다. 기본적으로는 jdk에서 제공하는 HttpUrlConnection 클래스를 이용한다. 기본적인 예제를 아래와 같이 만들어보고 간단한 Get 메소드를 호출해본다. 예제 #1 @Service public class HttpUtil { private final ObjectMapper objectMapper = new Obje.. [Spring boot] MultipartFile 파일 업로드 구현 Multipart 전송이란? 파일 업로드를 구현할 때, 클라이언트가 웹브라우저라면 폼을 통해서 파일을 등록해서 전송하게 된다. 이때 웹 브라우저가 보내는 HTTP 메시지는 Content-Type 속성이 multipart/form-data 로 지정되며, 정해진 형식에 따라 메시지를 인코딩하여 전송한다. 이를 처리하기 위한 서버는 멀티파트 메시지에 대해서 각 파트별로 분리하여 개별 파일의 정보를 얻게 된다. (From Wireframe) 이미지 파일을 전송한다고 해서 이메일에 첨부파일을 붙여 메일을 보내는 것처럼 png나 jpg 파일 자체가 전송되는 것이 아니다. 이미지 파일도 문자로 이뤄져 있기 때문에 이미지 파일을 스펙에 맞게 문자로 생성하여 HTTP request body에 담아 서버로 전송하는 것임... Java group key class로 stream groupingBy 사용하기 백엔드를 개발할때 DB 에서 GroupBy 를 할때가 있는데 간단한 GroupBy연산의 경우 Java 단에서 하면 DB부담을 줄여주고 효율적인 개발을 할 수 있다. java단에서 간단한 로직으로 grouping 을 할수 있으나 key가 여럿일 경우에는 다중 loop가 발생하게 된다. java 1.8의 stream + groupingBy기능을 활용하면 좀더 편하게 할수 있고 GroupingKey를 나타내는 class를 하나 사용하면 좀더 간결하게 groupingBy를 수행할 수 있다. Student 클래스 import lombok.Builder; import lombok.Getter; import lombok.Setter; @Builder @Getter @Setter public class Student .. 이전 1 2 3 4 5 6 7 ··· 17 다음