전체 글 (134) 썸네일형 리스트형 [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 .. [Spring boot] Embedded Tomcat redis session clustering 서버 개발을 할때 여러 was에서 세션 정보를 공유해야할 경우가 있다. 이럴때 세션 저장소로 redis cache 를 많이 활용하게 되는데 Spring boot 내장 embedded tomcat에서는 어떻게 설정을 하면 되는지 확인해 본다. Tomcat cluster redis session 라이브러리는 아래 사이트에 가면 다운로드 받을 수 있다. https://github.com/ran-jit/tomcat-cluster-redis-session-manager/wiki 여러 버전이 있는데 제일 최근 버전인 4.0 버전을 사용해 보기로 한다. 다운로드 library maven project에 추가하기 위에서 다운로드 압축파일을 풀면 아래 파일들이 나온다. commons-pool2-2.6.2.jar jedi.. Embedded Redis 로 redis junit 작성하기 Backend 를 개발할때 Cache 서버로 Redis Memory Server를 많이 사용한다. 그렇다면 JUnit 테스트 코드 작성시에도 간단하게 Redis Server를 사용할 수 있을까? 아래 라이브러리 및 설정을 활용하여 JUnit시 test embedded redis를 활용할 수 있다. pom.xml org.springframework.boot spring-boot-starter-data-redis 2.7.4 it.ozimov embedded-redis 0.7.3 test 위 it.ozimov 의 상세 정보는 아래 릴리즈 사이트에 가서 살펴볼수 있다. https://github.com/ozimov/embedded-redis 라이브러리 다운로드 후 property 설정에 기본적인 테스트 Redi.. [Vue.js] Vue Cli 로 Vue3 시작하기 Vue3를 시작하기 전에 node.js가 설치되어 있어야 한다. NVM(Node Version Manager) 을 설치하면 node.js를 편리하게 설치, 관리 할수 있다. 다음 링크에 관련 내용을 작성해 두었다. https://kindloveit.tistory.com/106 node.js가 설치되었으면 Vue Cli(Command Line Interface)를 Global로 설치하도록 한다. $ npm install -g @vue/cli 참고로 Global로 설치를 하면 현재 Local이 아닌 시스템 전역 위치에 설치가 되는데 위치가 궁금할 때가 있다. Global로 설치시 아래 경로에서 설치가 된다. C:\Users\[MyUser]\AppData\Roaming\npm\node_modules 실제로 위.. 이전 1 2 3 4 5 6 7 8 ··· 17 다음