본문 바로가기

프로젝트

(77)
WebFlux vs SSEemitter 분석 먼저 결론 둘 다 비동기, 그러나 IO 작업에서 효율의 차이 발생 (논블로킹과 블로킹) SSEEmitter: 비동기 서블릿을 사용하지만, 내부적으로는 Java의 전통적인 블로킹 I/O API를 사용할 수 있다. 따라서 I/O 작업이 길어지면 해당 작업을 수행하는 쓰레드는 블로킹될 수 있다. WebFlux: 이벤트 루프와 논블로킹 I/O를 사용합니다. 이로 인해 적은 수의 쓰레드로도 높은 동시성을 처리할 수 있고, 복잡한 로직이나 큰 규모의 애플리케이션에서는 특히 더 효율적이다. 따라서 복잡한 로직이나 높은 동시성이 필요한 경우, WebFlux가 더 효율적으로 동작할 수 있다. SeeEmitter는 비동기지만 Blocking IO이다. WebFlux와 SseEmitter 모두 비동기 처리를 지원하지만, 둘..
[개발]셀레니움을 사용한 스크래핑 구현 ref : https://mollangpiu.tistory.com/362 https://velog.io/@rednada1486/Java-Selenium-활용-동적웹크롤링#️-2-selenium과-chromedriver-다운로드 셀레니움 Selenium은 웹 브라우저를 자동화하는 도구다. 주로 웹 앱 테스팅에 사용되지만, 스크래핑에도 널리 쓰인다. Java, Python 등 여러 언어를 지원하며, 복잡한 웹 페이지에서도 데이터를 추출할 수 있다. 실행 방식 Selenium 코드는 서버 측에서 실행된다. 이 코드는 웹 드라이버 API를 통해 웹 브라우저를 제어한다. 사용자의 로컬 머신에서 크롬을 직접 실행하는 것은 아니다. 크롬 드라이버 필요성 Selenium은 웹 드라이버 인터페이스를 사용해 브라우저를 제..
[ElasticSearch] 1. 도큐먼트와 인덱스 엘라스틱 스택 도서 1회차 사전 지식 엘라스틱 서치 엘라스틱 서치 = 검색엔진 + 데이터베이스 엘라스틱서치는 NoSQL과 유사하다고 생각하면 이해가 편할 것이다. 엘라스틱 서치는 인덱싱 시점에서 분석을 거쳐 단어 단위로 분해된다. 스코어링 : 유사도 점수 기반 스코어링을 통해 유사 검색어를 분류 가능 분산 시스템과 클러스터링 : 여러 엔진을 클러스터링, 하나가 다운되어도 여분의 기능이 동작 가능 DSL 쿼리 채용 : JOIN 쿼리가 사실상 어려움, 반정규화를 기본으로 함 인덱스가 불변하기에, 삭제 등 비용이 비싸다. 하지만 이는 빠른 검색을 위한 것으로, 대용량 데이터에 대해 빠른 검색과 집계를 제공한다는 장점과 trade-off 된 것이다. 키바나(Kibana) 엘라스틱 서치의 시각화 도구. UI를 담..
[ElasticSearch, Kibana] 개발 환경 세팅 서버는 EC2(Ubuntu 20.04) 우분투 위에 올림을 가정한다. Elastic Search 버전 및 설치 https://www.elastic.co/kr/support/matrix 해당 사이트에서 현재 OS와 맞는 버전을 선택하자. 본인은 7.11.x를 사용할 것이다. JDK 설치(7.x 버전 이상은 설치하지 않아도 괜찮다.)버전 확인 sudo apt update sudo apt install openjdk-11-jdk java -version Elasticsearch 7.11.x 설치 HTTPS를 위한 패키지 설치: sqlCopy code sudo apt-get update sudo apt-get install apt-transport-https ca-certificates wget Elastics..
[회고]중고 거래 플랫폼을 마무리하며 1. 프로젝트 기간과 역할 2023.08.21 ~ 10.06 팀장 및 발표, 백엔드 사용자 도메인 2. 내가 배운 것 Spring Security 인가 및 인증 처리의 이해, Filter 개념과 filterChain의 개념. 스프링 시큐리티의 경우 배우는데 꽤 난관이 있었다. 언뜻 개념 자체는 알고 있었지만, 인가와 인증 처리의 개념이 모호했기 때문에 기초부터 천천히 학습했던 것 같다. 이번 프로젝트에서는 CORS와 내가 만든 JwtFilter를 위주로 사용하였다. 기본적인 세션 방식 대신 서버의 효율성과 확장성을 고려하여 토큰 방식을 사용하였다. 로그인, 메인 화면 등 권한이 필요없는 사이트 외 토큰을 입력받을 수 있도록 하였다. JWT 사용자 관리를 JWT를 사용한 토큰 방식으로 인가를 진행하였다. ..