23.01.08 TIL (Day6)

신경연·2023년 1월 8일
0

Project_디붕

목록 보기
3/8
post-thumbnail

Project_디붕

Day-3 End (일단 마무리)

내일(월요일) 부터는 일정이 있어 오늘 마무리를 하기 위해 달렸다.

http://bestfarmer.shop

1) 페이지 화면


위에 대문이 있긴 한데 화면이 커서 기능이 잘 보이게 아래로 내려서 캡쳐를 했다.

1] 페이지 입장

set_price()

DB에 접속해 update 날짜를 확인
if 오늘과 일치
-> True : 아이템DB 불러오기
-> False : 전일 평균가 크롤링 (5초 정도 소요) + 아이템 DB만 불러오기

아이템 DB 데이터를 바탕으로 Javascript 내의 데이터에 저장.
데이터를 바탕으로 테이블들을 생성한다.

2] 영지 정보

save_user(), load_user()

처음 쓰는 사람이라면 영지 정보의 저장부터 시작한다.
이상한 데이터를 넣으려고 시도하면 return 하게끔 하였다.

영지 데이터를 호출하는 코드는 닉네임으로 했다.
닉네임만 입력하고 로드 하면 나머지 input에 데이터가 채워진다.

세이브나 로드나 둘다 입력하거나 받은 데이터가 즉시 오른쪽 테이블의 계산식에 적용된다.

3] 가격 정보

crawling(), modify()

여기서 하는 크롤링은 실시간 최저가를 가져온다.
판매 아이템은 최저가를 가져오는 것이 의미가 없기 때문에,
위쪽의 재료 아이템 테이블의 데이터만 가져온다.

최저가를 가져오면 매물이 몇개 존재하지 않는 허수의 가격이 몇개 나올 수 있다. 그런 데이터는 직접 수정이 가능하다.

최저가 크롤링과 수정을 하면, 그 즉시 오른쪽 테이블의 계산식에 들어간다.

4] 결과 테이블

set_factory(), color(number), save_crystal()

위의 모든 function 뒤에는 set_factory()가 붙고,
변동된 데이터를 바탕으로 즉시 테이블에 적용 시킨다.

수익별로 색상을 다르게 설정해 주는 함수도 만들었다.

크리스탈 가격의 경우 로스트아크 공식사이트에서 제공하고 있는 데이터가 아니기에 크롤링은 할 수 없었고, 이 사이트의 사용자가 입력을 해줄 때마다 크리스탈 가격을 수정해주는 방식으로 했다.
이것만 좀 해줘

2) 문제 상황

서버에 옮기면서 몇가지 잔잔한 문제가 나왔다.

1] 크롬

다른 기능 다 되는데 하나가 안되었다. 크롤링 관련이었다.
문제의 원인은 리눅스 서버에 크롬이 설치가 안되어 있다는 점이었다. 크롤링에 ChromeDriver를 사용하기 때문에 필요했다.

문제를 파악하고서는 해결은 어렵지 않았다.
git bash 명령을 통해 Chrome을 문제 없이 설치할 수 있었다.
ChromeDriver도 기존에 쓰고 있던 것 말고 Linux 용으로 바꿔줬다.

2] 리눅스 시간

이건 바로 지금 확인 한 것이다. 이 글을 작성하면서 날짜가 바뀌었는데, 위의 update 날짜와 분명 다른데 평균가 크롤링을 안해온다.

조금 살펴 보니 linux가 시간이 UTC로 설정 되어있다. 이글 작성을 완료하면 바로 고치러 가야겠다.

Project_디붕 END!!!

profile
반갑습니다

0개의 댓글