
fs (File System):
path:
/ vs \)가 다르기 때문에, 플랫폼 간 호환성을 보장const dir = path.join(process.cwd(), `public/images/icons/${category}`);
process.cwd():
path.join():
/Users/username/project/public/images/icons/languages✅ 빅테크 포인트:
process.cwd()를 사용 → 배포 환경에서도 안전const files = fs.readdirSync(dir);
fs.readdirSync()
dir)의 모든 파일 이름을 배열로 반환 Sync는 동기적 처리 → 빌드 타임에만 실행되므로 성능 부담 없음 예시:
["javascript.svg", "python.svg", "java.svg"]
✅ 빅테크 포인트:
return files
.filter((file) => file.endsWith(".svg"))
.map((file) => `/images/icons/${category}/${file}`);
.filter()
.svg 확장자를 가진 파일만 추출 .DS_Store, .png)은 제외.map()
public 폴더는 Next.js에서 자동으로 루트(/)로 매핑되므로 이렇게 접근 가능결과 예시:
["/images/icons/languages/javascript.svg",
"/images/icons/languages/python.svg",
"/images/icons/languages/java.svg"]
✅ 빅테크 포인트:
filter → map 체이닝 활용 return files
.filter((file) => file.endsWith(".svg"))
.sort() // ✅ 파일 이름 정렬
.map((file) => `/images/icons/${category}/${file}`);