분류 전체보기 (963) 썸네일형 리스트형 도커 교과서(엘튼 스톤맨, 심효섭) - 20. 비동기 통신, 마무리 1. 비동기 메시징 동기적, 비동기적 통신 방식에 대한 설명은 생략한다. 비동기 메시징 방식을 이용하면 서버와 클라이언트 사이의 메시지 큐에 요청 또는 응답 내용을 저장하고 있으므로 혹시나 서버나 클라이언트에서 문제가 발생하더라도 통신 내용을 메시지 큐에 안전하게 저장해놓을 수 있다는 장점이 있다. 레디스 사용 실습 실습으로 레디스 컨테이너를 실행해본다. docker network create ch21 docker container run -d --name redis --network ch21 diamol/redis docker container logs redis --tail 1 메시지를 보내본다. 메시지큐는 일반적으로 최적화된 전용 통신 프로토콜을 갖고 따로 메시지에 가공을 하지 않는 형태이기 때문에.. [비공개] Weekly Report - 23/05/15~23/05/21, 1058일차 보호되어 있는 글입니다. 도커 교과서(엘튼 스톤맨, 심효섭) - 18. 리버스 프록시-1: nginx, 로드밸런싱, 라우팅과 SSL, Traefik 1. 프록시, 리버스 프록시 서버 보통 프록시 서버는 클라이언트단을 관리하는 의미인 것 같다. 내 컴퓨터에서 인터넷으로 요청을 하면 프록시가 적용된 네트워크에서 해당 요청을 가로채서 허용된 사이트인지 확인하거나 빠른 속도를 위해 접근하려는 사이트의 캐시를 제공하는 용도로 사용한다. 리버스 프록시 서버는 서버단을 관리하는 의미인 것 같다. 서버로 들어오거나 서버에서 나가는 모든 트래픽을 관리하면서 해당 트래픽이 어떤 애플리케이션에서 출발한 것인지 파악한다. 그리고 서버 내 애플리케이션의 응답 내용을 캐싱하였다가 적절하게 가공하여 클라이언트에게 전달하기도 한다. [리버스 프록시- 애플리케이션 컨테이너들간 상호 작용 그림 추가] 그림에서 리버스 프록시는 포트를 외부로 공개한 유일한 컨테이너가 된다. 이 덕분에.. 도커 교과서(엘튼 스톤맨, 심효섭) - 17. 로그 설정: fluentd, elasticsearch, kibana 1. 도커의 로깅 구성 도커는 표준 출력(stdout), 표준 오류(stderr) 스트림을 주시하면서 스트림을 통해서 출력되는 내용을 수집한다. 이런 표준 입출력들은 운영체제의 커널과 연결된 셸(터미널)로 입력받고, 표시해주는 것을 의미한다. 어쨌든 도커의 컨테이너는 이런 방식을 통해서 수집된다. 포어그라운드로 다음 컨테이너를 실행해보면 터미널에 표준 출력이 출력되는 것을 볼 수 있다. 5초마다 찍힌다. docker container run diamol/ch15-timecheck:3.0 따라서 애플리케이션이 표준 출력으로 로그를 출력한다면, 도커 컨테이너에서도 이를 감지하여 로그를 저장하거나 출력할 수 있게 된다. 포어그라운드로 실행되는 컨테이너뿐만 아니라 터미널 세션과 분리되어 데몬으로 작동하는 컨테이.. [TIL] JPA @ManyToMany 적용, 테이블 이름과 컬럼, 저장 처리 방식 1. 배경 예전에 JPA를 학습할 때, @ManyToMany는 사용하면 안된다고 배웠었다. 이것은 혹시나 나중에 두 엔티티간 매핑 테이블에 컬럼이 추가될 수도 있는데 @ManyToMany를 적용하면 컬럼 추가가 어렵기 때문이라고 배웠다. https://whitepro.tistory.com/413 그래서 한 번도 써보지 않았는데, 정말 순수하게 mapping만 필요한 경우이고 간단하게만 적용하면 되는 경우라 적용하게 되었다. 위 예시에서처럼 추가 정보가 필요한 경우 두 엔티티 중 하나의 테이블에 컬럼을 추가하면 된다고 생각이 들었다. 그리고 서비스가 크지 않고 향후에도 큰 영향도가 없다고 판단되어 일단 적용해보았다. 절대 권장할만한 방식은 아닌 것 같다. 그래도 일단 기록은 남긴다. 2. 실제 적용 예시 .. [TIL] 클래스 내 private 메서드 임시 테스트 @PostConstruct, Column 이름 예약어 escape 처리 1. 클래스 내 private 메서드 임시 테스트 테스트 코드를 남길 필요가 없거나, 테스트를 하기가 곤란한 경우 임시로 빠르게 테스트를 할 수 있는 방법으로 @PostConstruct를 이용할 수 있다. DB에 잘못된 데이터가 삽입될 수 있으므로 사용에 주의해야한다!! 위 그림처럼 Class내에 save... 메서드가 있고 이것을 임시 테스트하고 싶다면 @PostConstruct의 init() 메서드에 해당 메서드를 불러와서 실행하면 된다. 메서드에 들어가는 인자값들을 세팅해주고 세팅 과정에서 필요하다면 XxxRepository 같은 다른 클래스를 @Autowired로 주입받으면 된다. 이후 디버깅 모드로 breakpoints를 잡고 테스트해보면 파악이 힘든 에러나 동작 테스트를 임시로 해볼 수 있다... [TIL] git submodule, python setup.py와 pip, Docker CMD Bash shell 1. git submodule 개념과 기본 형식 git submodule로 프로젝트 내에 다른 repository를 삽입하여 따로 형상 관리를 할 수 있다. 관리 요소가 늘긴하지만 병렬적 작업이 가능할 것 같다. .gitmodules 파일을 만들고 아래 양식으로 내용을 써놓는다. [submodule ""] path = url = git@github.com:/.git branch = 또는 tag = 그리고 터미널에서 아래 명령어를 입력하면, 서브모듈이 .gitmodules에서 정의한 branch나 tag를 따라서 update 된다. git submodule update --remote 외부 모듈에서의 관리 외부 모듈에서 해당 모듈의 .py 파일들을 참조하여 사용할 수 있게된다. 외부 모듈 업데이트 시에 내.. [비공개] Weekly Report - 23/05/08~23/05/14, 1051일차 보호되어 있는 글입니다. 이전 1 ··· 28 29 30 31 32 33 34 ··· 121 다음