클론코딩 프로젝트-뉴닉
클론코딩 프로젝트-뉴닉
뉴닉 사이트 순서도 그려보기
뉴닉 ERD 그려보기
노션 페이지
[메인페이지 CRUD & 웹 크롤링]
- Jsoup 라이브러리 사용해서 웹 크롤링을 진행할 때 200 created가 뜨지만 DB에 저장되지 않는 현상
→ “웹 사이트/robots.txt” 페이지에 User-agent: * Disallow: 즉, 공식적으로 허용하지 않는다는 문서가 작성이 돼있어서 웹 크롤링이 막힌다는 것을 알게 되었습니다
→ allow가 되는 뉴스 웹사이트로 선정이 필요했습니다 - 네이버 뉴스 키워드를 검색하는 사이트를 메인 페이지로 잡고 진행해보았습니다. 기사 자료를 웹 크롤링 할 때 imageUrl 데이터 형식이
GIF 이미지의 실제 Base64 인코딩 바이너리 데이터로 나오면서 동일한 데이터로 받아지는 오류를 확인했습니다
→ HTML 구조를 뜯어봤을 때 태그값이 동일한 한 메인페이지 내에서 웹크롤링을 진행해야 하며 네이버 뉴스 검색창에서 검색한 category로 뉴스 리스트로 받게 되면 각 뉴스마다 태그 값이 다르기 때문에 오류가 발생한다는 점을 깨닫게 되었습니다
→ 1,2번을 반영해 모든 User에 대해 Allow 되는 곳 & 동일한 태그를 사용하는 메인페이지를
“서울 경제” 페이지로 선정하고 뉴스 웹크롤링을 진행하였습니다 - Sheduler 사용하면서 “api/crawl/run”을 1번 동작시킬 때 현재 날짜 시점으로 뉴스 기사들이 중복돼서 나온다는 점을 발견했습니다.
→ 기존 리스트에 포함된 title인지 비교해 없으면 uniqueTitles 분리하여 코드를 그대로 진행하고 있으면 DB에 저장하는 로직을 생략하도록 수정했습니다 - 메인페이지에서 이미지가 비어있는 뉴스기사는
continue;
로 나머지 로직 생략 후 For문으로 다시 돌아가도록 로직 추가
[React-Spring 통신, Jwt 토큰]
헤더에 토큰을 담아 보낼 때 서버측에서 config.addExposedHeader(“*”); 설정과 CORS 오리진 허용(포트 열어주기) 해야 한다는 것과
“Authorization”이라는 name으로 토큰을 value값을 보내주기 때문에 이 약속이 프론트단과 백엔드단 모두 숙지가 돼있어야 합니다.
헤더에 보낼 때는 인증이 필요한 api 요청마다 토큰을 직접 헤더에 담아 보내줘야 하기 때문에 이 과정이 프론트단에서 까다로운 과정임을 알게 되었습니다쿠키에 토큰을 저장하고 set-cookie로 전달하는 과정에서 undefined 되는 오류
→ 쿠키는 HTTPS를 통한 암호화된 연결을 사용하여 통신하는 안전한 방식을 사용해야 하는데 클라이언트 http에서 서버 https로 요청을 보내서 오류가 발생한 것임을 알게 되었습니다
→ https - https 통신할 때 배포환경을 맞춰주는 것이 가장 중요한 과정임을 깨닫게 되었습니다(프론트단 Vercel 배포 & 백엔단 AWS 배포)
→ 로그인 후 set-cookie 에 토큰 값이 잘 들어가는 것을 확인 할 수 있었습니다.
메인페이지 / 상세페이지
로그인/회원가입 페이지
마이페이지 / 프로필 조회
This post is licensed under CC BY 4.0 by the author.