네이버 클라우드 캠프 25

NCP Search Engine Service to Local ELK

|  배경woosan 프로젝트에서 네이버 클라우드 플랫폼의 Search Engine Service를 사용해 elasticsearch를 사용했다. https://github.com/LuckyVickys/woosan-back/blob/main/Readme.assets/config/ELK.md woosan-back/Readme.assets/config/ELK.md at main · LuckyVickys/woosan-backContribute to LuckyVickys/woosan-back development by creating an account on GitHub.github.com교육과정을 수료하고 바우처 기간이 지나버렸기 때문에 프로젝트를 실행시키려면 다시 elasticsearch 클러스터를 만들어야 ..

elk 스택을 활용한 연관 검색, 연관 게시글 제안

|  데이터 동기화|  Logstash 기존 엔티티에 @Document 어노테이션 등을 추가해주었고,es 인덱스에서는 사용하지만 MySQL 테이블에서는 사용하지 않는 필드에 @Transient 어노테이션을 사용해 정의했다.  [네이버 클라우드 캠프] - elk 스택을 활용한 데이터베이스 연동 elk 스택을 활용한 데이터베이스 연동https://github.com/LuckyVickys/woosan-back|  도입 우산 프로젝트는 ElasticSearch를 사용해서 검색 기능을 구현했다.구현이 용이하도록 간단하고 쉽게 설계한 뒤, 네이버 클라우드 플랫폼 바우처가 있을 때99duuk.tistory.com |  인덱스 매핑기존 logstash 매핑만으로 연관된 데이터를 확인할 수 없기 때문에 Kibana에서 ..

elk 스택을 활용한 데이터베이스 연동

https://github.com/LuckyVickys/woosan-back|  도입 우산 프로젝트는 ElasticSearch를 사용해서 검색 기능을 구현했다.구현이 용이하도록 간단하고 쉽게 설계한 뒤, 네이버 클라우드 플랫폼 바우처가 있을 때 사용해볼 수 있는 것들을 최대한 사용하기를 목표했다. 기본적인 게시판의 기능을 구현한 이후, 검색 기능 구현을 시작했다.  NCP 에는 "다양한 형태의 데이터를 검색, 분석, 시각화할 수 있는 관리형 OpenSearch 및 Elasticsearch 서비스"인 Search Engine Service가 있고 이를 사용했다.     |  MySQL & Elasticsearch 연동 Pipeline |  Board Entity기존 엔티티에 @Document 어노테이션 등..

JPA에서 MyBatis로의 전환: 구조적 차이와 느낀 점

https://github.com/99duuk/woosan-JPA-to-MyBatis더보기 |  도입 우산 프로젝트에는 JPA를 사용했다.프로젝트 설계 단계에서부터 최대한 간단하게 ERD를 그리고, QueryDSL과 MyBatis의 사용은 배제했고, 쿼리 작성 없이 Spring data JPA로 기능을 구현했다.  굳이 전환할 필요는 없었지만 프로젝트를 되돌아보니, 코드를 작성하며 "이거 그냥 쿼리 쓰면 금방인데..." 라고 떠올렸던 순간이 퍽 많이 떠올랐다. 프로젝트를 마무리한 뒤, 내가 작성했던 기능을 JPA에서 MyBatis로 전환해보았고, 전환하면서 겪은 차이점과 느낀 점을 작성해본다.   |  구조적 차이ORM vs SQL 매퍼JPA는 객체-관계 매핑(ORM)을 사용하여 자바 엔티티 클래스를 데..

Projection을 사용한 명명 메서드: 성능 비교와 느낀 점

| 배경24년 05월 수행했던 비트캠프 3차 프로젝트에서 ORM에 관한 공부 없이 무작정 QueryDSL을 사용해 API를 만들었다. 연관관계도 제대로 이해하지 못하고 무작정 쿼리만 쓰다보니, 어떤 메서드에서는 프로젝션이 되고 어떤 메서드는 돌아가지도 않아서 급하게 프로젝션 적용하지 않고 새로 만들고 했다. 돌아보면 어떻게 작성해서 뭘 하려고 했던 건지도 헷깔릴 만큼 요상한 시도였다. 당시 명명 메서드는 별로야! 라는 이상한 편견에 휩싸여서 모든 조회를 쿼리단에서 처리하려고 아둥바둥 했는데, 당시에 조회에 필요한 테이블이 4~5개였고, 지나고 나서 보니 그게 "한방 쿼리" 비슷한 걸 시도했던 거였다. 그래서 이번엔 최대한 명명 메서드를 사용해서 프로젝션도 사용하고 깔끔하게 코드를 작성해보고 싶었다. 그래..

JWT & Redis

JWTjwt는 서버가 발급한 토큰을 사용자에게 넘겨주면 끝이다.서버는 발급한 토큰을 기억할 필요 없는 stateless 방식이다.(토큰을 발급하면 그 토큰에 필요한 정보가 포함되어 있어, 서버가 별도로 세션상 태를 저장하지 않아도 된다.) 서버는 토큰에 대한 내용을 기억할 필요 없이, 사용자가 발급 받은 토큰으로 요청하면 해당 토큰을 복호화하고그 결과에 따라 인가한다. 사용자 인증 (토큰 생성) -> 토큰 저장 (사용자) -> 요청 시 토큰 포함 (사용자) -> 토큰 검증 및 복호화 (서버가 유효성 검사하고 인가)  Refresh Token과 Access Token하지만 토큰을 탈취 당하면 서버 측에서 해당 사용자의 유효성을 확인할 방법이 없다.stateless한 방식이라 서버는 토큰에 대한 내용을 기억..

로드 밸런서 구성

웹 서비스의 가용성을 확보하기 위한 로드 밸런서를 구성1. 네트워크 로드밸런서2. 애플리케이션 로드밸런서 3. url 분기할 떄 쓸 로드밸런서  1. 네트워크 로드 밸런서 (Network Load Balancer, NLB)주요 기능 및 장점:고성능: 매우 높은 수준의 트래픽을 처리할 수 있으며, 지연 시간이 매우 낮습니다.단순한 트래픽 분산: 주로 TCP/UDP 레벨에서 트래픽을 분산합니다.고가용성: 대규모의 네트워크 트래픽을 효율적으로 처리하며, 장애 발생 시 빠르게 복구합니다.사용 사례:실시간 트래픽 처리: 실시간 게임, 금융 거래 시스템 등 매우 빠른 응답이 필요한 서비스에 적합합니다.고성능 요구: 높은 성능과 안정성이 요구되는 환경에서 사용됩니다.2. 애플리케이션 로드 밸런서 (Applicatio..