개-발

엘라스틱 서치 ? 엘라스틱 서치는 검색만 하는가 ? 그러면 어디에 있는 데이터를 검색해 ? 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 연결 설정 후..
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';
BooleanBuilder package study.querydsl.dto; import lombok.Data; @Data public class MemberSearchCondition { //회원명, 팀명, 나이(ageGoe, ageLoe) private String username; private String teamName; private Integer ageGoe; private Integer ageLoe; } Request 받을 DTO Wrapper 클래스(Integer)를 사용한 이유는 값이 null일 수도 있기 때문이다. public List searchByBuilder(MemberSearchCondition condition) { BooleanBuilder builder = new Bool..
BooleanBuilder BooleanBuilder는 Predicate를 구현하는 구현체이고 Predicate는 where절의 파라미터 타입입니다. 따라서 BooleanBuilder를 이용해 조건절을 추가한 뒤 where절에 전달하면되고, 이 부분을 동적으로 구현할 수 있습니다. 현재 Entity는 필드 수가 워낙 적어 경우의 수가 몇 가지 나오지 않으니 한 번 모두 테스트해보도록 하겠습니다. @SpringBootTest @Transactional class PlayerTest { @Autowired EntityManager entityManager; private JPAQueryFactory queryFactory; @BeforeEach void setup() { Team tottenhamHotspu..
imSoo
'개-발' 카테고리의 글 목록 (11 Page)