경로를 안전하게 만들고 텍스트 파일을 읽고 씁니다.
Path는 운영체제별 경로 차이를 처리하고 경로 결합, 존재 확인, 읽기와 쓰기를 제공합니다. with 블록을 사용하면 작업 중 오류가 나도 파일이 닫힙니다. 이 웹 실습의 파일은 실행마다 초기화되는 가상 파일 시스템에 저장됩니다.
첫 with가 두 줄을 쓰고 블록을 벗어나며 파일을 닫으면, 다음 with가 같은 파일을 읽어 줄마다 rstrip으로 줄바꿈을 지운 뒤 출력합니다. 파일 크기 35는 글자 수가 아니라 UTF-8 바이트 수라 한글 한 글자가 3바이트로 세어집니다. finally의 unlink(missing_ok=True)가 실습 파일을 지웁니다.
텍스트 인코딩을 명시하고 파일이 없거나 권한이 없는 경우의 OSError를 처리합니다. resolve 결과가 허용된 디렉터리 안인지 확인하면 경로 탈출을 막을 수 있습니다.
실제 서버에서는 업로드 파일명으로 직접 경로를 만들지 말고 크기 제한, 확장자와 실제 형식 검사, 무작위 저장 이름을 적용합니다.
현재 작업 디렉터리가 항상 프로젝트 루트라고 가정한 상대 경로는 실행 위치에 따라 실패합니다.
직접 바꿔보세요두 번째 학습 기록을 추가한 뒤 줄 단위로 읽어 출력하세요.
실행 버튼을 누르면 결과가 여기에 표시됩니다.