[정슬기] sprint3#43
Hidden character warning
Conversation
…슬기-sprint2 [정슬기] sprint1, 2
… input에 id="email"추가, 이미지 경로 수정
…CSS 변수화, GA 추가, SNS 보안 속성 추가, README 파일명 수정
iamjaeholee
left a comment
There was a problem hiding this comment.
스프린트 미션3 수행하느라 수고하셨어요 🥇
js/services/, js/pages/ 로 폴더까지 나눠서 파일을 정리해주신 구조가 인상적이에요!
handleResponse 함수로 에러 처리 로직을 분리해주신 것도 좋고,
main.js에서 Article CRUD를 .then() 체이닝으로 순서대로 실행하신 방식도 깔끔해요 : -)
몇 가지 참고해주시면 좋을 부분을 파일별 코멘트로 남겨드릴게요!
js/services/ProductService.js
Outdated
| @@ -0,0 +1,98 @@ | |||
| const BASE_URL = "https://panda-market-api-crud.vercel.app"; | |||
There was a problem hiding this comment.
Product API는 이번 미션에서 axios를 활용하도록 요구하고 있었는데, fetch로 구현하셨어요.
axios를 한번 익혀두시면 더 넓은 경험이 될 것 같아요 : -)
js/services/ProductService.js
Outdated
| @@ -0,0 +1,98 @@ | |||
| const BASE_URL = "https://panda-market-api-crud.vercel.app"; | |||
|
|
|||
| async function handleResponse(response) { | |||
There was a problem hiding this comment.
BASE_URL과 handleResponse 함수가 ArticleService.js에도 동일하게 선언되어 있어요.
두 파일에서 같은 코드가 반복되면, URL이 바뀌거나 에러 처리 방식을 수정할 때 두 곳을 모두 수정해야 해요.
js/services/api.js 같은 공통 파일로 분리해서 import해서 쓰면 더 깔끔해질 것 같아요 : -)
handleResponse 추상화 아이디어를 공유 모듈로 발전시켜 보세요!
| `${BASE_URL}/articles?page=${page}&pageSize=${pageSize}&keyword=${keyword}`, | ||
| ) | ||
| .then(handleResponse) | ||
| .catch((error) => { |
There was a problem hiding this comment.
catch 블록에서 에러를 로그만 찍고 끝내면, 에러가 호출부까지 전달되지 않아요.
main.js에서 마지막에 .catch()를 달아 두셨지만, 이 경우엔 서비스 함수 안에서 에러가 "삼켜져서" 실제로 실행되지 않을 수 있어요.
에러를 로그한 뒤 다시 던져주시면 호출부에서도 처리할 수 있어요.
.catch((error) => {
console.error("getArticleList error:", error);
throw error; // ← 이렇게 re-throw 해주세요
});ProductService.js의 try/catch도 동일하게 적용해 주시면 좋을 것 같아요!
요구사항
공통
1,2차 미션 피드백
➡ 의 content에 device-width가 누락되어 있어
width=device-width, initial-scale=1.0로 수정
➡ rel="reset" → rel="stylesheet"로 변경하여 스타일 정상 적용
➡ .header에 position: sticky; top: 0; 적용하여 스크롤 시 상단 고정
➡ main.css에서 하드코딩된 색상값 제거
➡ :root에 정의된 CSS 변수로 통일
➡ index.html에도 GA 스크립트 추가하여 페이지 간 일관성 확보
➡ SNS 링크에 rel="noopener noreferrer" 추가
➡ READEME-basic-정슬기.md → README.md로 오타 수정
주요 변경사항
멘토에게
미션을 진행하면서 기능 구현에는 큰 문제는 없었지만,
코드를 더 효율적으로 구조화하고 관리하는 방법에 대해 고민하게 되었습니다.
추후 리팩토링 시 참고할 만한 구조 설계 방식이 있다면 알고 싶습니다.😊