분류 전체보기 155

[Spring Boot] 실시간검색어 구현하기

1. 요구사항 정리- 실시간 집계사용자가 검색 즉시 “인기 검색어” 점수에 반영- 조작 방지동일 IP(또는 로그인 유저)가 같은 키워드를 반복 검색해 점수를 부당하게 올리는 행위 차단 - 시간 가중치 적용최근 검색일수록 더 큰 가중치를 부여 - 시간대 보정새벽 시간대에는 보정값을 높여 점수를 낮게, 오후 시간대엔 보정값을 낮춰 점수를 높게 - 전체 검색량 보정평소 검색량(과거 일주일 등)이 많은 키워드는 보정값으로 점수를 낮춤 - 지속성 확보Redis 인메모리 휘발성 대비 RDBMS 백업위 내용으로 요구사항을 정리한 뒤 구현에 들어갔다. 2. 구현2-1. 새로운 로직 추가 (Trending)package com.example.footprint.trending.controller;import com.exa..

개인 서버 구축(9) - nginx 설정하고 SSL 인증서로 HTTPS 받기 [마지막]

1. Nginx 설치sudo apt updatesudo apt install -y nginxsudo systemctl status nginx- sudo apt update로 패키지 목록을 업데이트해준다.- sudo apt install -y nginx로 Nginx를 설치해 준다.- sudo systemctl status nginx로 서비스 상태를 조회한다. 초록색으로 활성화가 떴다고 조회되면 올바르게 설치된 것이다. sudo rm /etc/nginx/sites-enabled/default기본으로 들어있는 /etc/nginx/sites-enabled/default 파일을 지워준다.default 설정을 지우는 이유는 어차피 사용하지 않을 것이고, 기본값이 내가 따로 설정할 값과 충돌할 수 있기 때문에 지워줬..

[웹 프로젝트] 피드백 적용하기 5 - 프로젝트 목적에 맞는 디테일 설정

문제 정의피드백 5.여행인데 지도가 없네요.물론 사진으로 대체가 된다지만 개발자 입장에선 구글 맵 api라도 연동해서 지도를 달아두고..이동 경로 패스를 여행 패스와 싱크를 시켜주면 좋을 것 같아요.그리고.. 여행기록을 작성하였지만..0다녀온 나라 수0여행 횟수0여행 기간(일)최근 여행지아직 첫 여행을 떠나지 않았어요이라고 나오네요.여행 게임이라고 생각하고 어디에 갔는데 이 아이템을 획득했다. 그리고 이 아이템을 팔겠다.이런 프로세스라도 있으면 더 재미가 있지 않을까요?아니면 어떻게 하면 된다라는 예제라도 작성을 해두어야… 해결 방향여행기록 게시판, 카드 로직 통합- 기존에 별도로 구현된 여행기록 카드 로직을 제거하고, 사용자가 게시판에 글을 작성하면 해당 글의 데이터를 가져와 여행기록 카드에 노출되..

[웹 프로젝트] 피드백 적용하기 4 - JWT 토큰 관리 확인

문제 정의피드백 4.로그인후 창을 두개띄우고 로그아웃시 하나의 창은 채팅이 계속쳐지네요.개발자모드보니 로그아웃시에 쿠키가없어지던데 프론트에서 jwt토큰을 다루고있는건가요? 해결 방향토큰 검증 로직 추가- 로그아웃해도 기존 WebSocket 연결이 끊기지 않아, 다른 탭에서 여전히 채팅 메시지를 보낼 수 있었음 서버에서 WebSocket 세션을 즉시 종료하기 복잡하므로, 메시지 전송 시마다 클라이언트와 서버에서 JWT 유효성을 확인하도록 수정 구현 상세토큰 검증 로직 추가 탭 두 개로 채팅방을 켰다. 그 뒤 한쪽에서 로그아웃하고 한쪽에서는 채팅을 쳐봤다. 근데 채팅이 전송된다..그래서 다른 것도 테스트해 봤다. 게시글 작성버튼을 눌렀을 때 로그인이 안되어있다면 작성페이지로 넘어가지 않는다. 이 테스트..

[웹 프로젝트] 피드백 적용하기 3 - 메뉴별 UI 차별화

문제 정의피드백 3.만드느라 수고가 많으셨습니다.사이트를 둘러보니 디테일한 부분도 꽤 많아 보이는데 고생 많이 하셨겠네요!개선의 여지는 아래 분들이 많이 피드백주셨지만 지금 기능에서 디자인을 좀더 개선하면 많이 좋아질거 같습니다.어떤 UI 컴포넌트를 사용했는지 모르겠지만 bootstrap같은걸 쓰면 좀 더 깔끔해 질거 같습니다.UI 적으로는 항목은 다른데(최신글, 여행기록등등) UI가 다 비슷비슷해서 메뉴별 카테고리별로디자인 차별화를 주는것도 좋을거 같습니다.고생하셨어요. 좀 더 디벨롭해서 좋은 사이트 만들어주세요 해결 방향메뉴, 카테고리별 디자인 차별화- 주요 메뉴마다 스타일을 다르게 지정해 사용자가 컨텐츠 성격을 한눈에 구분할 수 있도록 함 구현 상세메뉴, 카테고리별 디자인 차별화현재 메인페이지는..

[웹 프로젝트] 피드백 적용하기 2 - 게시글 상세 페이지 연결 UX 개선

문제 정의피드백 2.멋집니다! 기능도 많이 구현되어있네요!제목만 클릭이 아니라 카드 클릭하면 상세로 넘어가면 편할거같아요 ㅎㅎ 해결 방향카드 클릭 UX 개선- 기존에는 게시글 제목을 클릭해야만 상세페이지로 이동했으나, 카드 전체를 클릭하면 상세페이지로 이동하도록 변경하여 편의성을 높임 구현 상세공지사항 게시판- 기존 빨간 박스 안을 클릭해야 게시글 상세 보기로 넘어갔다. 수정 후에는 초록색 박스 안을 클릭해도 넘어가도록 했다. navigate(`/posts/NOTICE/${post.id}${type && keyword ? `?type=${type}&keyword=${keyword}&sortOption=${sortOption}&pageNumber=${pageNumber}` : `?sortO..

[웹 프로젝트] 피드백 적용하기 1 - 추천, 정렬과 검색 필터 최적화

문제 정의피드백 1.여행 기록 추천순 정렬하면 추천이 같으면 최소한 최신순으로 정렬해주는게 어떨지?오래된 순으로 나열된거같은데 정렬 순서를 좀더 신경써야할거같음여행 동료모집 검색 조건이 매우 불편. 무슨 조건인지조차 모르겠음. 모집하는 작성자에 대한 필터링인지?모집 내용에 대한 필터링인지? 나이대로 테스트해보니 아마 작성자 조건인거같은데 그에 대한 설명 부족검색 조건 전체 초기화 하는 방법이 없음. 그냥 탭 눌러서 다시 진입해야함.유형의 경우 전체 동행이 다른 조건들이랑 중복 체크가 가능한데 이러면 무슨 의미가 있는지? 해결 방향추천순 정렬 로직 강화- 추천수 기준으로 내림차순 정렬하되, 동일한 추천 수를 가진 게시글은 작성일 기준으로 최신순으로 노출검색 조건 초기화(Reset) 버튼 추가- 동료 모집..

개인 서버 구축(8) - jenkins <-> github 연동하기

1. github jenkins 연결 (github 설정)깃허브에 들어가서 내 프로필을 눌러주면 메뉴가 뜬다. 여기서 [Settings]을 클릭한다. 제일아래 [Developer settings]를 클릭해 준다. [Personal access tokens] 탭에서 [Token (classic)]를 눌러준 뒤 [Generate new token (classic)] 버튼을 눌러준다. jenkins가 우리의 github repository에 접근할 수 있게 권한을 부여해 준다. 그 뒤 [Generate token] 버튼을 눌러주자. 토큰 발급 완료 2. github jenkins 연결 (jenkins 설정)젠킨스에 들어와서 [jenkins 관리] 탭에서 [Credentials]를 클릭해 준다. ..

개인 서버 구축(6) - 도메인 설정해보기 (Gabia)

이번에는 간단히 도메인을 연결해 볼 것이다. 1. 가비아 접속https://www.gabia.com/마음에 드는 도메인을 구매해 준 뒤 My가비아를 클릭해서 들어간다. 2. 설정도메인을 클릭해 준다. 구매한 도메인 우측의 관리 버튼을 눌러준다. 우측 하단에 보면 DNS 정보가 있다. 도메인 연결에서 설정 버튼을 눌러준다. 사용할 도메인을 체크하고 DNS 설정버튼을 클릭해 준다. 이제 레코드 두 개를 추가할 것이다. 값/위치에는 내 외부 IP를 넣어주고 호스트에는 @, www를 넣어준다. 그 뒤 저장을 눌러주자.@를 넣어주는 이유는 서브도메인 없이 루트 도메인을 가리킨다. 3. 예정이제 젠킨스를 설치하고 기본설정을 할 예정이다.

프로필사진

남건욱's 공부기록

반응형