모든 기록

2 / 20 페이지
Ansible

Ansible (5) - 변수 정의 위치와 Vault로 비밀 값 다루기

1. 개요 Ansible (2)에서는 play의 vars: 에 변수를 정의했다. 하지만 서버마다 다른 값, 그룹 전체에 같은 값, 실행할 때만 바꾸는 값을 모두 playbook 안에 적으면 playbook을 다른 곳에서 다시 쓰기 어렵다. Ansible은 변수를 inv…

·8분
Ansible

Ansible (4) - playbook으로 Nginx 설치, 설정, 제거하기

1. 개요 이전 글에서는 ad hoc 명령으로 Nginx를 설치하고 지웠다. 하지만 실제 웹 서버를 준비하려면 설치 뒤에 설정 파일을 넣고, 첫 화면 파일을 바꾸고, 서비스를 재시작하는 단계가 더 필요하다. 이 단계를 매번 명령으로 입력하면 순서를 빠뜨리기 쉽다. pl…

·7분
Logging

MDC와 OncePerRequestFilter로 요청마다 로그 ID 붙이기

1. 개요 공연 예매 서비스에서 여러 사용자가 같은 좌석을 동시에 예매하면, 서버 로그에는 여러 요청의 로그가 한데 섞여 찍힌다. 이때 "이 로그 한 줄이 어느 요청에서 나왔는가"를 알 수 없으면 동시성 문제를 추적하기 어렵다. 이 글에서는 요청마다 짧은 식별자(요청…

·10분
JAVA

JAVA (14-1) - record 클래스

1. 개요 JAVA (14)에서 값이 같은 객체를 같다고 판단하려면 equals() 와 hashCode() 를 함께 재정의해야 한다고 정리했다. 그런데 필드 몇 개를 담아 옮기기만 하는 클래스에도 생성자, getter, equals() , hashCode() , toS…

·11분
Test

AssertJ assertThat과 assertThatThrownBy로 테스트 검증하기

1. 개요 테스트는 "코드를 실행한 결과가 기대와 같은가"를 확인하는 작업이다. 이 확인 단계를 검증(assertion) 이라고 부르고, 검증이 틀리면 테스트가 실패한다. Java 테스트에서는 JUnit의 assertEquals 대신 AssertJ 의 assertTha…

·11분
Ansible

Ansible (2) - 변수, 반복, 템플릿, 조건, handler로 playbook 다듬기

1. 개요 이전 글에서는 디렉터리와 파일을 만드는 playbook으로 Ansible의 기본 흐름과 멱등성을 확인했다. 그런데 실제 playbook은 값이 서버마다 다르고, 같은 작업을 여러 번 반복하고, 상황에 따라 작업을 건너뛰어야 한다. 이 글에서는 그때 쓰는 다섯…

·9분
Ansible

Ansible (1) - Ansible이 하는 일과 첫 playbook 실행하기

1. 개요 서버 10대에 같은 패키지를 설치하고 같은 설정 파일을 넣어야 한다고 해 보자. 한 대씩 SSH로 접속해 명령을 입력하면 시간이 오래 걸리고, 중간에 한 대를 빠뜨리거나 명령을 잘못 입력하기 쉽다. Ansible 은 이런 작업을 playbook 이라는 파일에…

·10분