2025. 1. 4. 17:44ㆍ개발/🦉 뀨업
📕 우선 현 상황
✨ 뀨업 사이트 릴리즈했당 ✨
http://ec2-3-24-245-153.ap-southeast-2.compute.amazonaws.com
이화여자대학교 백준 랭킹 사이트 : 뀨업 Team 뀨엘 정은채 | 정소은 | 정희원 도움 : 박세은 | 최이경
ec2-3-24-245-153.ap-southeast-2.compute.amazonaws.com
에타랑 컴공 사담방, 네이버 카페 등등에 홍보도 했당 ✨
뀨업 인스타도 개설해서 개선 사항 계속 업데이트하고 있당 ✨
https://www.instagram.com/ewha_qup/
그 결과....
🔥🔥🔥 이화 백준 랭킹이 127위 -> 120위로 상승했다아 🔥🔥🔥
우와아아앙 🎉
3월 1일에 2차 릴리즈를 할 예정이고
그때까지 수정 사항을 정리해보았다
수정 사항
1. 에러 개선, 문의 사항 페이지
2. 뀨업 기여도 랭킹
3. JPA 혹은 MyBatis로 마이그레이션
- 지금은 JDBC로 하고 있어서 유지보수하기 쉽지 않아...
4. NoSQL 사용, 크롤링 로직 변경 통해서 최적화
- solved.ac 비공식 API 통해서 하루에 한번 업데이트 하는 바람에 푼 문제가 바로바로 업데이트되고 있지 않다...
우선 이번주에는 자잘자잘한 에러(로그가 너무 길게 나옴) 해결과 MyBatis 마이그레이션, 문제 업데이트 쪽을 손보기로 했다
1. NoSQL, 크롤링 로직 고민
💣 문제점
하루에 한번만 솔브닥에서 이화여대에서 안 푼 문제들을 크롤링해서 오기 때문에
사용자가 문제 풀어도 바로바로 업데이트가 되지 않음
[ 자정 업데이트 ]
현재 "이화여대생이 안 푼 문제" 업데이트 하는 방식
1. 솔브닥 비공식 API에서 전체 문제 긁어오기
2. 백준 크롤링해서 "이화여대생이 푼 문제" 리스트 생성
3. 전체 문제에서 이화여대생이 푼 문제 빼기
< 대안 >
1. 솔브닥에서 이화여대생이 안 푼 문제 긁어오는 API 사용하기
-> 문제점 : 백준에는 가입했으나 솔브닥에 가입하지 않은 학생 존재 (약 300명 정도)
➡ 데이터 크롤링 담당자 희원쒜의 판단에 전적으로 따르겠숴요...!
[ 푼 문제 바로바로 업데이트 ]
하루에 한 번, 자정에 업데이트하기 때문에 사용자가 푼 문제가 바로바로 업데이트되지 않는 문제가 발생
사용자가 Refresh할 때마다 자정에 업데이트하는 방식대로 하기에는 지연이 너무 심함(5분 이상 걸려...)
♻ 변경 로직
1. Refresh할 시에 간단 로그인(백준 핸들 입력)
2. 백준 핸들 기준으로 솔브닥 비공식 API 사용해서 해당 사용자가 푼 문제 긁어오기
3. 전체 DB와 해당 사용자가 푼 문제 비교해서 DB 업데이트
원래는 Redis를 포함시키려고 했는데 (Redis 멋있자나... 넣고 싶자나...)
해당 로직에는 Redis가 필요없을 것 같아 제외하기로 결정
다만 추후에 기여도 랭킹 생성할 때는 Redis 도입하게 될 듯!
< 걱정 >
해당 사용자가 푼 문제랑 전체 문제 DB 비교하는 과정이 얼마나 오래 걸릴지 모르겠다...
쿼리 짤 때 집합 로직 사용하면 좀 나으려나...?
2. MyBatis 마이그레이션
💣 문제점
현재 JDBC로 코드 짜서 클래스 하나하나 너무 길고 복잡함
MyBatis랑 JPA 중에서 어떤 걸 쓸까 고민...
1 ) 우리는 테이블 구조 자체는 굉장히 단순하지만 데이터 업데이트 과정에서 사용하는 쿼리들은 매우 복잡하다
2 ) 테이블 내 데이터의 변동이 객체지향적으로 이루어진다기 보다는 대부분 Problems라는 테이블 하나에서만 레코드의 삽입과 삭제가 발생한다
따라서 JPA의 ORM 기술이 크게 의미가 없어 보였고 복잡한 쿼리 사용에 적합한 MyBatis를 사용하기로 결정했다
3. 자잘자잘 에러 해결
왜 로그가 길게 나오는 거시냐...
모르게따...
해결해볼게에...
파이태앵💫
'개발 > 🦉 뀨업' 카테고리의 다른 글
🦉 뀨업 - 이화 백준 사이트 리팩토링 ( 6 ) - CORS가 또... (0) | 2025.03.01 |
---|---|
🦉 뀨업 - 이화 백준 사이트 리팩토링 ( 5 ) - CORS, 쿠키랑 싸우기 (0) | 2025.02.01 |
🦉 뀨업 - 이화 백준 사이트 리팩토링 ( 4 ) MyBatis Migration (0) | 2025.01.17 |
🦉 뀨업 - 이화 백준 사이트 리팩토링 ( 2 ) (0) | 2024.09.15 |
🦉 뀨업 - 이화 백준 사이트 리팩토링 ( 1 ) (0) | 2024.09.01 |