docker를 Windows 10에서 사용하면서 docker 명령어가 응답이 없고 작업 관리자의 Disk가 활성 시간이 100%가 되는 경우가 있다. 대부분의 Docker container를 여러 개 띄워서 메모리를 많이 사용하는 경우 메모리 사용률이 설정된 값을 넘어서 disk로 메모리 사용이 대체되는 경우이다. 메모리를 얼마나 사용하고 있는지 확인하려면 다음 명령어를 사용한다. docker stats docker setting의 메모리 설정을 container가 사용한 총 합보다 높게 설정하면 된다. 추가로 이런 경우 docker를 종료하고 재시작한 후 container를 실행하면 대강 다음과 같은 에러가 발생하는 경우가 있다. ERROR: for worker Cannot start service w..
개인 공부용으로 windows 10 pro의 Docker 설치 기준임 Docker desktop community 2.3.0 버전, Spring Cluod Data Flow 2.2.0.RELEASE 기준 https://dataflow.spring.io/docs/installation/local/docker/ Spring Cloud Data Flow는 사용하려면 다음과 같은 제품이 있어야 한다고 한다. Spring Cloud Data Flow Server Spring Cloud Skipper Server MySQL Apache Kafka Prometheus Grafana 해당 Docker Compose File을 다운로드하고 해당 디렉터리에서 docker-compose up 명령을 실행한다. (주의! co..
https://docs.docker.com/compose/ 개요 Docker compose는 여러 개의 container를 정의하고 실행하기 위한 도구이다. compose를 사용하면 yaml 파일을 사용해서 서비스를 구성할 수 있다. compose는 모든 환경 (production, staging, development, test, CI workflow)에서 동작한다. compose 사용은 기본적으로 3단계 프로세스이다. 모든 환경에서 재생산할 수 있게 Dockerfile을 정의 격리된 환경에서 함께 실행할 수 있도록 docker-compose.yml로 앱을 구성하는 서비스를 정의 docker-compose up 명령으로 전체 앱을 시작 docker-compose.yml의 모양은 다음과 같다. versi..
SonarQube 7.9.1 기준으로 작성함 개인 공부용으로 사용하는 것이라 windows 기준으로 설명함 SonarQube는 코드에서 버그, 취약점 및 code smell을 감지하는 자동 code review tool이다. 기존 workflow와 통합하여 프로젝트 branches와 pull request 간 지속적인 코드 검사를 가능하게 한다. https://www.sonarqube.org/ Community, Developer, Enterprise, Data Center 4종류가 있고 이 중 Community 에디션이 free & opensource이다. 현재 25개 언어를 대상으로 code review를 할 수 있다. SonarQube 설치하기 (Docker 기준) SonarQube만 사용하면 로컬..
Spring Boot 2.1.6.RELEASE , Spring Data JDBC 1.0.9.RELEASE 기준 작성된 글 Spring Data JDBC는 Data Jpa가 가진 단점(? 또는 복잡성?)을 해결하기 위해 나온 라이브러리이다. https://www.slideshare.net/SpringCentral/the-new-kid-on-the-block-spring-data-jdbc Data Jpa가 domain mapping과 repository 연계만큼은 편하기 때문에 쓰고 있지만 사실 대다수의 기능을 잘 쓰지 않는다. 딱 거기까지만 쓰기 좋고 관계형 DB를 Java Object로 맵핑하기 위한 다양한 방법들은 복잡하고 영속성이라던가 그밖에 제공하는 다양한 개념들도 그렇게 까지 깊이 있게 쓰지 않았..
개인 공부하는 관점에서 사용하는 것을 정리한 내용이기 때문에 실무랑 상관없는 내용입니다. Docker network 소개 Docker를 설치하면 host의 network interface에 docker0이 추가된다. (리눅스는 ifconfig로 확인, 윈도우는 ipconfig로 확인) docker0은 컨테이너와 통신하기 위한 가상 ethernet bridge이고 L2 통신 기반이라고 한다. 컨테이너를 만들면 컨테이너 내부에 eth0이란 이름으로 pair interface가 생성이 되고 host의 docker0에 vethX~ 이름의 bridge가 생성이 되어 연결된다. 우분투의 경우 brctl 명령어로 bridge를 확인할 수 있다. brctl show docker0 또는 ip 명령어로도 확인할 수 있다...
JDK의 버전별 변경 사항은 이곳을 참고하세요. Spec Java SE 12 Platform JSR (386)에 정의된 바와 같이 JSR 386 구현이 목표 실제 Spec은 Final Release Specification 문서를 참고해야 함 Final Release Specification Feature summary 전체 JEP Feature 목록은 OpenJDK의 JDK 12 문서로 확인할 수 있다. Component Feature core-libs / java.lang.invoke JVM Constants API specification / language Switch Expressions (Preview) Switch Expressions (Preview) 해당 기능은 preview 기능이기 때..
ServletContext와 ApplicationContext의 연동 filter를 설명하기 전 기본적인 설명 servlet은 ServletContext를 사용한다. java.servlet.Filter는 javax.servlet-api나 tomcat-embed-core를 사용하면 제공되는 servlet filter interface이다. spring은 ApplicationContext를 사용한다. servlet에서 spring을 사용하기 위해선 servlet의 ServletContext에 spring의 ApplicationContext를 연동해야 한다. Spring은 ApplicationContext를 servlet에서 사용하기 위한 ServletWebServerApplicationContext를 제공하..
Spring framework 5.1.6.RELEASE 기준으로 작성함 RestTemplate log 보기 RestTemplate의 응답을 확인하고자 하는 경우 아래처럼 로그를 추가하면 된다. logging.level.org.springframework.web.client=DEBUG 이 경우 body정보를 log로 남기게 되는데 다만 전제 조건이 있다. RestTemplate은 callback을 2가지 유형으로 처리를 한다. RequestCallback 설명 AcceptHeaderRequestCallback AcceptHeader를 만드는 Callback HttpEntityRequestCallback RequestBody를 만드는 Callback AcceptHeaderRequestCallback을 확장하..
eclipse의 AsciiDoctor Editor를 사용하면서 설정한 내용임 asciidoc 문서 작성을 위해 프로젝트를 설정하면서 예제 소스를 include 하기 위해 다음과 같이 설정하였다. org.asciidoctor asciidoctor-maven-plugin ${asciidoctor.maven.plugin.version} org.springframework.restdocs spring-restdocs-asciidoctor ${spring-restdocs.version} asciidoc-to-html prepare-package process-asciidoc html5 coderay true src/main/resources/static ${java.version} ${spring-restdocs..