앞서 ELK가 어떤 것인지 모르면 [ https://soobysu.tistory.com/87 ] 읽고 시작 -아래 내용은 설정에 대한 간단한 설명이다. 귀찮으면 1번에서 - > 6번으로 가면 설치완료 1. docker-elk 설치 1. 해당 디렉토리에 docker-elk 를 받는다. git clone https://github.com/deviantony/docker-elk.git cd docker-elk 2. Elasticsearch 설정 X-pack 플러그인은 Security 관련 부분이다. license 부분을 basic 으로 수정해주자
엘라스틱 서치 ? 엘라스틱 서치는 검색만 하는가 ? 그러면 어디에 있는 데이터를 검색해 ? rdb에서 가져와서 하는가 ? 엘라스틱서치안에서 데이터가 저장 된다면 rdb를 대체 할 수 있는건가 ? Elasticsearch는 Apache Lucene(아파치 루씬) 기반의 java 오픈소스 분산 검색 엔진이다. "데이터 저장소"가 아니라 MySQL같은 데이터베이스를 대체할 수 없습니다. 방대한 양의 데이터를 신속하고 거의 실시간으로 저장,검색,분석할 수 있다. RDB를 베이스로 하고 검색에 필요한 부분만 엘라스틱서치로 진행한다. 대체 할 수 없는 이유엔 이러한 이유가 있다. 트랜잭션 지원 X 스키마리스(schemaless) : 이미 생성된 데이터의 타입을 변경하는것은 어렵다. 데이터 일관성 : 데이터의 일관성..
given() Mock 객체인 -> productService .getProduct 메서드에 "12315" 를 넣으면 .willReturn( 응답값 ) perform() RESTAPI TEST를 할 수 있는 환경을 만들어준다. >> get - get요청 / post , get , put , delete 어떤 Http통신을 할지 정의를 해줌 - builder구조를 사용한다 ( . 을사용하여 옵션 사용 ) - andExpect() 기대하는 값이 나왔는지 체크해볼 수 있는 메소드 - jsonPath() 기대하는 json값이 나왔는지 - exists() [현재 값이 있는지 판단] -andDo(print()) 위에서 테스트 한 내용을 프린트 verify() 해당 객체의 메소드가 실행 되었는지 체크 값을 Json..
TDD (Test-Driven-Development) 방법론 테스트를 먼저 설계하고 구축하여 통과할 수 있는 코드를 짜는것 장점 코드의 안정성을 높일 수 있음 (기능을 추가하거나 변경하는 과정에서 발생할 수 있는 상황들을 줄일 수 있음) 해당 코드가 작성된 목적을 명확하게 표현 할 수 있음 통합 테스트 통합 테스트는 여러 기능을 조합하여 전체 비즈니스 로직이 제대로 동작하는지 확인하는 것을 의미 통한 테스트의 경우, @Spring BootTest를 사용하여 진행 @SpringBootTest는 @SpringBootApplication을 찾아가서 모든 Bean을 로드하게 됨 이 방법을 대규모 프로젝트에서 사용할 경우, 테스트를 실행할 때마다 모든 빈을 스캔하고 로드하는 작업이 반복되어 매번 무거운 작업을 수..
GET: 멱등성과 안전성이 모두 있다. POST: 멱등성과 안전성이 모두 없다. PUT, DELETE: 멱등성은 있지만 안전성은 없다. PATCH: 멱등성과 안전성이 없다. 멱등성 이란 ? 멱등성은 같은 요청을 여러 번 보내도 같은 결과가 나오는 특성을 말한다. - Post 요청의 경우 같은값을 요청시 항상 새로운 리소스가 생성 되기 때문에 멱등성이 없다고 할 수 있다. *보기엔 응답값이 같아도 실제로는 리소스가 추가 되기 때문에 안정성과 멱등성이 없다. - Get 요청의 경우 같은값으로 조회시 항상 같은 응답값이 나온다. - Put 요청의 경우 클라이언트가 리소스 A 를 PUT 메서드로 업데이트하면 해당 리소스는 변경되어 A'로 대체된다. 이후에 같은 요청을 다시 보내더라도, 서버는 이전과 동일한 리소..
https://www.naver.com 이 URL의 정보는 Protocol : https url : www.naver.com port : 443 이때 따로 포트를 선언하지 않는다면 브라우저에서 기본으로 설정된 값을 이용해 요청한다. HTTP - 80 / HTTPS - 443 주소(URL) 입력 www.naver.com < DNS주소(Domain Name System) DNS서버에 DNS질의를 보내면 DNS서버가 IP주소를 준다. 해당 IP를 가지고 TCP 연결을 시도한다. 왜 TCP ? 브라우저를 사용한다는것은 HTTP 통신을 하는것인데 HTTP통신은 TCP통신을 기반으로 하기 때문이다. 4. HTTP Request 를 WAS(Web Application Server) 서버에 보낸다 TCP 연결 설정 후..
Redis에 Object 를 저장 하기 위해서는 Serializer를 통해 직렬화해주어야한다. Object Mapper를 통해 > json으로 변환해서 저장 시켜주어야 한다. Spring에서는 Spring Data Redis 라이브러리를 이용하여 Redis에 접근할 수 있다. 이때 Redis를 접근할 수 있는 프레임워크로 Lettuce, Jedis가 있다. Lettuce는 별도의 설정 없이 이용할 수 있고, Jedis는 별도의 의존성 추가가 필요하다. 🛠️ Code 더보기 @Configuration public class RedisConfig { @Value("${spring.data.redis.host}") private String redisHost; @Value("${spring.data.redis..
postgresql bash 로 접속후 로그인 까지 완료 해준다. docker exec -it 도커네임 psql -U postgres -W postgres postgres select * from pg_tables; 일반적으로 이렇게 조회를 생각했었는데 이러면 시스템 테이블까지 조회가 됏었다. 생성된 테이블만 조회를 하려면 데이터테이블을 제외 해주고 조회를 한다. SELECT schemaname, tablename FROM pg_catalog.pg_tables WHERE schemaname != 'pg_catalog' AND schemaname != 'information_schema';