freeCodeCamp
튜토리얼freeCodeCamp/freeCodeCamp
freeCodeCamp 오픈 소스 프로그래밍 학습 플랫폼, 무료로 프로그래밍과 수학을 배우세요.
개요
freeCodeCamp은 기부로 운영되는 비영리 프로그래밍 학습 플랫폼으로, 웹 개발부터 데이터 과학까지 전체 과정을 제공합니다. 인터랙티브 챌린지, 실전 프로젝트 및 자격 인증 시험을 포함하며, 커뮤니티 주도로 운영되어 수십만 명이 기술 업계에 진출하는 데 도움을 주었습니다.
README 미리보기
[](https://www.freecodecamp.org/)\n\n[](https://www.firsttimersonly.com/)\n[](https://discord.gg/PRyKn3Vbay)\n[](https://insights.linuxfoundation.org/project/freecodecamp/repository/freecodecamp-freecodecamp)\n\n## freeCodeCamp.org's open-source codebase and curriculum\n\n[freeCodeCamp.org](https://www.freecodecamp.org) is a friendly community where you can learn to code for free. It is run by a [donor-supported 501(c)(3) charity](https://www.freecodecamp.org/donate) to help millions of busy adults transition into tech. Our community has already helped more than 100,000 people get their first developer job.\n\nOur full-stack web development and machine learning curriculum is completely free and self-paced. We have thousands of interactive coding challenges to help you expand your skills.\n\n## Table of Contents\n\n- [Certifications](#certifications)\n- [The Learning Platform](#the-learning-platform)\n- [Reporting Bugs and Issues](#reporting-bugs-and-issues)\n- [Reporting Security Issues and Responsible Disclosure](#reporting-security-issues-and-responsible-disclosure)\n- [Contributing](#contributing)\n- [Platform, Build and Deployment Status](#platform-build-and-deployment-status)\n- [License](#license)\n\n### Certifications\n\nfreeCodeCamp.org offers several free developer certifications that make up the [Full-Stack Developer Curriculum](https://www.freecodecamp.org/learn/full-stack-developer-v9/):\n\n- [Responsive Web Design](https://www.freecodecamp.org/learn/responsive-web-design-v9/)\n- [JavaScript](https://www.freecodecamp.org/learn/javascript-v9/)\n- [Front-End Development Libraries](https://www.freecodecamp.org/learn/front-end-development-libraries-v9/)\n- [Python](https://www.freecodecamp.org/learn/python-v9/)\n- [Relational Databases](https://www.freecodecamp.org/learn/relational-databases-v9/)\n- [Back-End Development and APIs](https://www.freecodecamp.org/learn/back-end-development-and-apis-v9/)\n\nEach of these certifications involves completing interac
FAQ (5)
문제 해결The check in that step expects the idiomatic negated form, `not isinstance(dictionary, dict)`, rather than an explicit comparison to `False`.
Two things are going on:
1. **The automated test matches a specific pattern.** Step-by-step validators like this typically scan your code (often with a regex) for the construct taught in the instructions — in this case, `not isinstance(...)`. Even though `isinstance(dictionary, dict) == False` is functionally correct, it doesn't match the expected pattern, so the step fails.
2. **`== False` is redundant and unpythonic.** `isinstance()` already returns a real `bool`, so comparing it to `False` adds nothing. PEP 8 (and linters, e.g., flake8 rule E712) recommend negating directly:
```python
if not isinstance(dictionary, dict):
raise TypeError("...") # whatever message the step requires
```
Swap your condition for the `not isinstance(...)` form, keep the rest of the block (the `TypeError` with the exact message the step specifies), and the step should pass.
Step 9 테스트는 현재 조건에서 not isinstance(dictionary, dict)를 사용할 것으로 예상합니다. Boolean 결과를 False와 비교하는 것은 논리적으로 동등하지만, 허용되는 테스트 패턴과 일치하지 않습니다. 조건을 다음과 같이 변경하세요:
if not isinstance(dictionary, dict):
print(f'Invalid format: expected a dictionary at position {index}.')
is_invalid = True
이렇게 하면 동일하게 dictionary가 아닌 값을 감지하고 Step 9 테스트를 통과합니다. 동등한 타입 검사 표현식도 허용하도록 커리큘럼 수정이 제안되었습니다.
문제 해결Python에서 input()을 정수로 변환할 때 발생하는 "IndexError: string index out of range" 및 ValueError를 수정하는 방법
Python 시퀀스는 0부터 인덱싱됩니다. "hello world"는 인덱스 0부터 10까지 11개의 문자를 가지고 있으며, 인덱스 11은 이미 끝을 벗어난 것이므로 greet[11]은 IndexError: string index out of range를 발생시킵니다. 마지막 문자에는 greet[-1]을, 그 인덱스에는 len(greet) - 1을 사용하세요.
또한 input()은 항상 문자열을 반환합니다. 이 오류는 문자나 빈 값을 입력하는 경우처럼 해당 문자열을 int()로 변환할 수 없을 때만 발생합니다. try/except로 처리하세요:
greet = "hello world"
print(greet[10]) # d
print(greet[-1]) # d
try:
number = int(input("Enter a number: "))
except ValueError:
print("Please enter a valid integer!")문제 해결freeCodeCamp Implement a Stack 테스트에서 함수가 LIFO를 따르는데도 argument 또는 collection-order 테스트가 실패하는 경우 어떻게 수정해야 하나요?
테스트는 스택 연산을 독립 함수로 호출합니다. initStack()이 반환하는 스택 객체는 첫 번째 인수로 전달되며, push는 새 요소를 두 번째 인수로도 받습니다. 항목은 stack.collection에 저장하며, 배열의 마지막 요소가 스택의 맨 위로 간주됩니다.
구현 예시:
function initStack() {
return { collection: [] };
}
function push(stack, element) {
stack.collection.push(element);
}
function pop(stack) {
return stack.collection.pop();
}
function peek(stack) {
return stack.collection[stack.collection.length - 1];
}
function isEmpty(stack) {
return stack.collection.length === 0;
}
function clear(stack) {
stack.collection.length = 0;
}
push(stack, 'first')와 push(stack, 'second')를 실행한 후에는 테스트에서 stack.collection이 ['first', 'second']와 같을 것으로 기대합니다. unshift()/shift()를 사용해 인덱스 0에서 항목을 추가하거나 제거하지 마세요. 원래 사용자 스토리에는 이러한 호출 규칙과 컬렉션 순서 요구 사항이 누락되어 있었으며, 풀 리퀘스트에서 지침을 업데이트합니다.
문제 해결왜 freeCodeCamp 백엔드 과정 컨테이너가 bash '$\r': command not found 오류와 함께 'Preparing the course'에서 멈춰 있나요?
이 오류는 Windows(WSL 외부)에서 리포지토리를 클론할 때 Windows 스타일의 CRLF(\r) 줄 바꿈 문자가 ./bash/sourcerer.sh와 ./bash/.bashrc에 추가되어 발생합니다. 리포지토리 파일 자체는 LF 줄 바꿈을 사용하므로, 이는 로컬 Git 설정 문제입니다. 해결 방법:
1. Git이 줄 바꿈을 변환하지 않도록 설정한 후 리포지토리를 다시 클론합니다:
git config --global core.autocrlf false그런 다음
back-end-development-and-apis 디렉터리를 삭제하고 다시 클론합니다.
2. 또는 컨테이너 안에서 해당 파일의 캐리지 리턴을 제거합니다:
sed -i 's/\r$//' ./bash/sourcerer.sh ./bash/.bashrc
sed -n 'l' ./bash/sourcerer.sh로 보이지 않는 문자를 확인할 수 있습니다. 줄 바꿈을 수정한 후 freeCodeCamp: Run Course 명령을 다시 실행하면 코스가 정상적으로 로드됩니다. Windows에서 개발하는 경우 WSL 안에서 작업하면 이 문제를 완전히 피할 수 있습니다.
informational웹사이트의 브레드크럼은 사이트 계층 구조를 기반으로 하나요, 아니면 사용자의 탐색 기록을 기반으로 하나요?
freeCodeCamp 레슨의 브레드크럼은 사용자의 실제 이동 경로가 아니라 사이트 계층 구조에서 페이지의 위치를 나타냅니다. 예를 들어, Home / Electronics / Phones / Smartphone XYZ는 해당 페이지들이 사이트 구조의 상위 섹션임을 의미하며, 검색을 통해 직접 도착한 사용자에게도 동일한 경로가 표시되어야 합니다. 브레드크럼 링크를 반드시 "이전에 방문한 페이지"라고 설명해서는 안 됩니다. 실제 이동한 경로를 추적하는 히스토리 기반 브레드크럼은 별도의 덜 일반적인 패턴이며, 그에 맞게 명시적으로 표시해야 합니다. 주 내비게이션 링크는 중첩된 카테고리로 가는 바로 가기일 수 있으므로 최상위 계층 수준에만 해당할 필요는 없습니다. W3C ARIA 브레드크럼 패턴을 따르고, 계층적 경로에 <nav aria-label="Breadcrumb">와 같은 전용 <nav> 요소를 사용하세요.