Back38 Elasticsearch 활용한 검색 구현하기 - 1 (Docker로 Elasticsearch + Kibana 구축) 상황현재 프로젝트에서 이미 구축되어있는 엘라스틱 서치를 활용하여 검색 서비스를 제공하고 있다.내 업무는 구현된 엘라스틱서치에 데이터를 넣고, 제거하고, 불러오는 작업까지가 범위였다. 그러던 중에, 엘라스틱 서치가 무엇인지, 구현은 어떻게 하는지 궁금증이 생겼고직접 간단한 서비스를 구현해보고 싶어졌다.적용구현하기 앞서, 엘라스틱 서치에 대해 알아보자.✔️1. 엘라스틱 서치 (Elasticsearch) 란? 대용량 데이터를 실시간으로 검색하고 분석할 수 있는 검색 및 분석 엔진. RESTful API를 제공해주고, JSON 형식의 데이터를 저장하고 검색한다. 📌RDB로 검색시 느린 이유?만약 RDB를 사용해서 LIKE %검색어% 로 데이터를 검색한다면, 테이블의 데이터가 많을수록 결과 반환하기까지 오래걸린.. 2025. 11. 13. [Kotlin] 생성자 개념 정리 1. 생성자 종류- 코틀린에서의 생성자는 크게 두 종류로 나뉜다.1) 주 생성자 (Primary Constructor) 클래스 헤더에 선언되는 기본 생성자이다.매개변수에 var 또는 val을 사용하면 자동으로 클래스 프로퍼티가 생성된다.init 블록과 함께 초기화 로직을 작성할 수 있다.class Member(var name: String, var age: Int = 10) { init { println("Initialized with name=$name, age=$age") }} 2) 부 생성자 (Secondary Constructor) constructor 키워드를 사용하여 정의한다.주 생성자를 반드시 호출해야 한다.class Member(var name: String, va.. 2025. 1. 22. [Gradle] 내부망(폐쇄망, 오프라인)에서 Springboot gradle 빌드 상황종종 오프라인 환경(==망분리, 폐쇄망, 내부망, 인트라넷)에서 gradle 프로젝트를 빌드해야 하는 경우가 있다.하지만 Dependency를 받아오지 못하여 빌드에 실패하면 어떻게 처리할 수 있을까?이런 환경에서 프로젝트를 빌드하는 방법에 대해 작성해보겠다. 👀 내 로컬에는 이전에 온라인 환경에서 빌드할 때 로컬에 이미 생성된 cache가 있어서 오프라인 환경에서의 빌드가 전혀 문제가 되지 않았다. 하지만 함께 업무에 참여한 동료의 로컬에서는 빌드 시 문제가 생겼고, 추후에 나에게도 발생할 수 있는 이슈여서 정리해보려고 한다. Dependency를 가져오는 과정 1. 온라인 환경에서는 gradle.build나 pom.xml에 넣은 Dependency들은 원격 저장소(MavenCentral, Jce.. 2024. 8. 14. [JAVA][시큐어코딩] 적절하지 않은 난수 값 사용 상황프로젝트 마무리 단계에서 소스코드 보안약점 진단 실행 후, 수정이 필요한 사항이 생겼다.적절하지 않은 난수 값 사용에 대한 개념과 수정 방안에 대해 정리해보겠다. ✔️적절하지 않은 난수 값 사용 ???공격자가 예측 가능한 난수를 사용할 경우 다음 숫자를 예상하여 공격이 가능해지는 보안약점을 일컫는다.난수란 특정한 순서나 규칙을 가지지 않는 수를 뜻하는데, 난수 값을 결정하는 시드 (Seed) 값이 고정될 경우 예측 가능한 난수값이 생성된다고 한다. ✔️보안 대책JAVA의 java.lang.Math.random() 메소드 사용을 자제해야 한다.예측이 거의 불가능하게 암호학적으로 보호된 java.security.SecureRandom 클래스를 사용하는 것이 안전하다. ✔️보안 취약점 대응📌 [.. 2024. 8. 1. [JAVA][시큐어코딩] Null Pointer 역참조에 대응하기 상황 프로젝트 마무리 단계에서 소스코드 보안약점 진단 실행 후, 수정이 필요한 사항이 생겼다.Null Pointer 역참조에 대한 개념과 수정 방안에 대해 정리해보겠다. ✔️Null Pointer 역참조 ???널 포인터(Null Pointer) 역참조는 ‘일반적으로 그 객체가 널(Null)이 될 수 없다’라고 하는 가정을 위반했을 때 발생한다. 공격자가 의도적으로 널 포인터 역참조를 발생시키는 경우, 그 결과 발생하는 예외 상황을 이용하여 추후의 공격을 계획하는 데 사용될 수 있다.이 취약점으로 인해 의도치 않게 프로그램이 종료되는 경우가 생길 수 있으니 주의 깊게 다루어야 중요한 부분이다. 📌 이 게시글은 이전에 작성한 게시글 내에 있는 코드에서 Null Pointer 역참조가 발생할 수 있는 부.. 2024. 8. 1. [JPA, QueryDSL] 동적 정렬 OrderSpecifier 상황QueryDSL을 사용하여 목록을 조회하는 쿼리를 작성하던 중에 정렬 조건을 동적으로 처리해야 했다.QueryDSL로 정렬하는 정적, 동적 방법을 알아보고 정리해보겠다. 실행환경 및 버전QueryDSL: 5.0.0JDK : open JDK 11Spring Boot : 2.7.9 ✔️정적 정렬 // Sample.java의 Qclass가 생성되어 있다고 가정한다.public List findSampleList(String code) { return jpaQueryFactory.select( Projections.constructor(Sample.class, sample.no, .. 2024. 7. 31. 이전 1 2 3 4 ··· 7 다음