로고 이미지

고정 헤더 영역

글 제목

메뉴 레이어

로고 이미지

메뉴 리스트

  • 홈
  • 태그
  • 방명록
  • 분류 전체보기 (80)
    • [TIL] (65)
    • [WIL] (0)
    • 면접준비 (2)
    • 설치 자료 (0)

검색 레이어

로고 이미지

검색 영역

컨텐츠 검색

분류 전체보기

  • [TIL] 2024.04.12 ~ 2024.04.15 elasticsearch, logstash 해결되지 않는 에러

    2024.04.15 by 재호링

  • [TIL] 2024.04.09 엘라스틱 서치 개념

    2024.04.10 by 재호링

  • [TIL] 2024.04.08 news.service 테스트코드 작성

    2024.04.09 by 재호링

  • [TIL] 2024.04.05 인기순 정렬과 스크래핑 데이터 중복처리

    2024.04.06 by 재호링

  • [TIL] 2024.04.05 axios, puppeteer를 활용한 웹스크래핑

    2024.04.05 by 재호링

  • [TIL] 2024.04.03 스크래핑 잘 안됨

    2024.04.03 by 재호링

  • [TIL] 2024.04.02 네트워크 패킷 분석

    2024.04.03 by 재호링

  • [TIL] 2024.04.01 스크래핑 데이터 저장

    2024.04.01 by 재호링

[TIL] 2024.04.12 ~ 2024.04.15 elasticsearch, logstash 해결되지 않는 에러

나는 aws elasticsearch 7.10 버전 도메인을 생성했다. 그런 후 logstash를 활용해 내가 저장해놓은 rds에 접근해서 데이터를 elasticsearch에 보내주려고 conf 파일을 만들어서 실행했다. 명령어로 실행시켜주면 오류가 뜬다 찾아보니 elasticsearch 7.10 버전과 logstash 8.13.2 버전은 호환이 안된다고한다. input 부분은 연결이 잘 되는데 output 부분을 전달할 때 호환성 오류가 떠서 버전을 낮춰줬다. elasticsearch와 버전이 맞는 logstash 7.1.0 버전을 활용해 돌려 보았지만 이번에는 jdbc 오류가 떴다. logstash의 setup.bat 파일을 뜯어보니 java_home 환경변수쪽이 다른걸 확인하여 환경변수를 OJAVA..

[TIL] 2024. 4. 15. 02:01

[TIL] 2024.04.09 엘라스틱 서치 개념

1. ElasticSearch 란? 아파치 루씬 기반의 검색 엔진이다. 자바로 개발되어 있으며 오픈 소스로 활용이 가능하다. 2. ElasticSearch 특징 분산 방식 페타바이트의 데이터 처리가 가능하다. 역색인(inverted index) 방식 키워드를 통해 문서를 찾아내는 방식이다. 아주 빠른 전체 텍스트 검색이 가능하다. 문서에 나타나는 모든 고유한 단어 목록을 만들고, 각 단어가 발생하는 모든 문서를 식별한다. 실시간에 가까운 검색 제공, 빠르다 해쉬테이블 방식이어서 검색시 O(1)의 효과를 낸다 RDB 같은 경우 O(n) 기타 기본 기능 - 리밸런싱 및 라우팅은 자동 수행, 복원력, 인덱스 수명 관리, 데이터 롤업 등 3. ElasticSearch 구조 인덱스(색인) ex. 고객 인덱스, 주..

[TIL] 2024. 4. 10. 01:33

[TIL] 2024.04.08 news.service 테스트코드 작성

100퍼센트를 채웠지만 만족되지 않는 100퍼센트다

[TIL] 2024. 4. 9. 03:14

[TIL] 2024.04.05 인기순 정렬과 스크래핑 데이터 중복처리

1. news 인기순 탭을 만들기 위한 생각 정리 레디스 sorted set을 활용한 인기순 정렬 - 이 방법은 인메모리 기반이기때문에 서버가 꺼지면 저장된 데이터가 사라진다. 장점은 엄청난 스피드라는 것 하나인데 이 장점을 사용하기 위해 주기적으로 레디스 스냅샷을 이용해 데이터를 백업하는 등의 방법을 사용하기에는 적합하지 않다고 판단. 조회수 기반의 인기순 정렬은 데이터베이스에 저장하여 사용하는 것이 좋을 것 같다. 2. 각각의 엔드포인트와 단일 엔드포인트에 대한 핸들링 고민 nestjs에서 각각의 덴드포인트를 활용할땐 가독성과 모듈화 및 유지보수하는데 장점이 있다 다만 중복된 코드를 사용해야하고, URL 충돌 가능성이 발생 가능하다는 단점도 존재한다. 단일엔드포인트를 적용한다면 코드 중복화와 URL ..

[TIL] 2024. 4. 6. 05:23

[TIL] 2024.04.05 axios, puppeteer를 활용한 웹스크래핑

스크래핑 성공했다. axios만으로 해결해보려고했는데 상세정보 페이지로 넘어가면 html 코드로 값을 받아오는 것이 아닌 json 형태로 추출된 데이터만 전해줘 파싱하기가 대단히 어렵다고 판단. 그래도 계속 해보려고 시도했지만 패킷을 분석해봐도 요청을 보내보아도 content의 정보를 가져오기가 너무 힘들었다. puppeteer를 활용해서 빠르게 다음 단계로 넘어가라는 조언을 받아 퍼펫티어를 이용해 데이터를 스크래핑해왔다. url을 스크래핑하는 코드는 axios만을 이용해 서비스의 부하를 줄였지만 content의 정보를 파싱할 수 없는 상세정보 페이지를 긁어올때는 자원소비가 많지만 puppeteer를 활용해 날먹했다.

[TIL] 2024. 4. 5. 03:34

[TIL] 2024.04.03 스크래핑 잘 안됨

기존에 사용하던 스크래핑 코드 async getHTML() { // const options = { // method: 'GET', // url: 'https://dddd.kr/footwear', // headers: { // accept: // 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7', // 'accept-language': // 'ko-KR,ko;q=0.9,en-US;q=0.8,en;q=0.7,zh-TW;q=0.6,zh;q=0.5', // 'cache-control': 'max-age=0', // ..

[TIL] 2024. 4. 3. 22:15

[TIL] 2024.04.02 네트워크 패킷 분석

오늘의 문제 puppeteer 대신 axios로 다시 스크래핑 하기 네트워크 패킷 분석하기 기존에 스크래핑을 진행하기로 한 사이트에서 네트워크 패킷 분석 후 API를 찾아야한다. 근데 내가 가져오려는 사이트는 API는 숨겨둬서 HTML 코드를 파싱해서 데이터 저장을 다시 해야한다. 상세 보기에 있는 정보를 가져올려면 URL이 필요하니 URL을 가져오고 나서 가져와야하낟. 그리고 조건이 있는데 내가 이용하는 페이지는 더 알아보기를 누른 후 스크롤을 더 내려줘야 정보가 로드되는 시스템이다

[TIL] 2024. 4. 3. 03:30

[TIL] 2024.04.01 스크래핑 데이터 저장

약 40개의 스크래핑 데이터를 가져와 저장했다. 데이터를 저장할 때 쓴 쿼리빌더다. 원래는 .save로 작업을 해뒀지만 쿼리 빌더를 사용한 이유는 DB 관계가 복잡해질 수록 기존 repository를 이용한 메서드들을 통한 CRUD 사용이 어려워지는 경우가 존재한다고한다. 예를 들자면 내가 작업하는 파트에 1:N 관계의 테이블 여러개 추가된다고 가정해보자. 지금 테이블과 N:1 관계를 맺는 엔티티가 추가되었을때 관련된 save() 메서드들이 오작동하게 되어 결국에 쿼리 빌더로 리팩토링 해야하는 경우가 생길 수 있어 후에 진행해야 할 쿼리빌더 리팩토링을 먼저 진행한 것이다. 쿼리빌더가 ORM의 강력한 장점이기도 하지만 너무 의존해서는 안된다. SQL을 명확히 이해하고 DB를 다루는 기본적인 능력을 길러야한..

[TIL] 2024. 4. 1. 22:37

추가 정보

인기글

최신글

페이징

이전
1 2 3 4 5 ··· 10
다음
TISTORY
재호링의 쌉꿀마코딩티비 © Magazine Lab
페이스북 트위터 인스타그램 유투브 메일

티스토리툴바