잔재미코딩, Dave Lee
주요 경력: 쿠팡 수석 개발 매니저/Principle Product Manager, 삼성전자 개발 매니저 (경력 약 15년)
학력: 고려대 일어일문 / 연세대 컴퓨터공학 석사 (완전 짬뽕)
주요 개발 이력: 삼성페이, 이커머스 검색 서비스, RTOS 컴파일러, Linux Kernel Patch for NAS
저서: 리눅스 커널 프로그래밍, 리눅스 운영 체제의 이해와 개발, 누구나 쓱 읽고 싹 이해하는 IT 핵심 기술, 왕초보를 위한 파이썬 프로그래밍 입문서
풀스택/데이터과학 관련 무료 자료를 공유하는 사이트입니다.
IT 학습에 도움이 되는 팁/ 짧은 무료 강의를 공유하고자, 조금씩 시작하고 있습니다~
최신 현업과 IT 강의를 병행하며, 8년째 꾸준히 견고한 풀스택과 데이터과학 강의를 만들고 있습니다.
Courses
Reviews
KMJ
·
[Renewal] Python Introduction and Basic Web Crawling Bootcamp [Fundamentals of Python, Web, and Data Understanding] (Updated)[Renewal] Python Introduction and Basic Web Crawling Bootcamp [Fundamentals of Python, Web, and Data Understanding] (Updated)김동현
·
Docker and the latest server technologies for full stack (Linux, nginx, AWS, HTTPS, and deployment) [Full Stack Part 3]Docker and the latest server technologies for full stack (Linux, nginx, AWS, HTTPS, and deployment) [Full Stack Part 3]장영환(예예)
·
Docker and the latest server technologies for full stack (Linux, nginx, AWS, HTTPS, and deployment) [Full Stack Part 3]Docker and the latest server technologies for full stack (Linux, nginx, AWS, HTTPS, and deployment) [Full Stack Part 3]32205083
·
First Python Backend FastAPI Bootcamp (From FastAPI to Async SQLAlchemy) [Full Stack Part1-2]First Python Backend FastAPI Bootcamp (From FastAPI to Async SQLAlchemy) [Full Stack Part1-2]- [Renewal] SQL and Database (MySQL) Bootcamp for Beginners [From Introduction to Utilization]
Posts
Q&A
안녕하세요 배포 관련 질문이 있습니다.
안녕하세요. 플라스크나 FastAPI 는 매우 간단합니다.기본적으로 Flask는 Spring처럼 강제된 디렉토리 구조가 없고, 개발자가 자유롭게 구조를 정할 수 있습니다. 제시해주신medel controller view static templates server.py 와 같은 구조도 Flask 앱으로 전환하여 배포하는 데 전혀 문제가 없습니다.다음과 같이 진행할 수 있습니다:requirements.txt 생성pip freeze > requirements.txt 명령어로 현재 사용 중인 패키지 목록을 기록해두면, 나중에 동일한 환경을 재현하거나 배포 환경에서 설치할 때 편리합니다.WSGI 파일 작성보통 wsgi.py 같은 파일을 만들어서 WSGI 서버(예: gunicorn)가 앱을 올바르게 임포트할 수 있도록 합니다.다만,from server.py import app 보다는from server import app 처럼 작성하는 것이 일반적입니다. 이 파일은 gunicorn이나 다른 WSGI 서버가 앱을 찾을 수 있도록 하는 역할을 합니다.Gunicorn 사용배포 환경에서 Flask 앱을 서비스할 때는 gunicorn을 많이 사용합니다. 예를 들어,gunicorn wsgi:app 와 같이 실행하여 앱을 구동할 수 있습니다.추가적으로 고려할 사항은:환경 변수 및 설정 관리개발, 테스트, 프로덕션 환경마다 다른 설정을 적용할 필요가 있으므로, config 파일이나 환경 변수를 활용하는 것이 좋습니다.애플리케이션 팩토리 패턴과 블루프린트프로젝트가 커지면 Flask의 애플리케이션 팩토리 패턴과 블루프린트를 사용하여 모듈화하는 것이 유지보수에 도움이 됩니다.요약하면, 기존 강의 구조를 그대로 유지하면서 Flask로 전환하여 배포하는 방법(즉, requirements.txt 생성, wsgi.py 작성, gunicorn으로 실행하는 방식)은 충분히 유효하며, 크게 부족한 부분은 없습니다. 참고로 도커 강의에서도 flask 와 FastAPI 로 도커로 간단히 배포하는 방법을 설명드리고 있어서 이 부분도 이후에 참고가 되실 것 같습니다. ~~~ 감사합니다.
- 0
- 1
- 46
Q&A
주피터 노트북 마우스 스크롤? 오류
안녕하세요. 어 글쎄요... 굉장히 특이한 현상인데요 ㅎㅎ 물론 저도 알기는 어렵긴 한데요. 혹시 괜찮으시면 마우스를 다른 것으로 바꾸시거나, 터치패드를 끄시고 마우스를 사용해보시는 것은 어떠실까요? 감사합니다.~
- 0
- 1
- 110
Q&A
'강의 준비를 위한 VSCode'에서 질문
안녕하세요. 답변 도우미입니다.넵 아나콘다 폴더로 바꾸시면 좋을 것 같습니다. 설정에서 바꾸는 것이 말씀하신대로 더 좋을 것 같고요.다음과 같은 방식으로 바꿀 수도 있어서 이 부분도 참고해보시면 좋을 것 같습니다. (다만 이 방식으로 바꿨을 때는 VS Code 오픈시마다 다른 인터프리터가 설정될 수도 있지 않을까 하는데 이 부분은 한번 확인해보셔도 좋을 것 같습니다.) VS Code에서 인터프리터 선택하기VS Code에서 파이썬 인터프리터를 설정하는 대표적인 방법은 다음 두 가지입니다.A. 상태 표시줄(Status Bar)에서 설정VS Code 하단 상태 표시줄 오른쪽에 있는 ‘Python’ 또는 ‘Interpreter’ 부분을 클릭합니다.설치되어 있는 파이썬 인터프리터 목록이 나타납니다.여기에서 Anaconda(또는 Miniconda) 환경을 선택합니다.B. 명령 팔레트(Command Palette)에서 설정Ctrl + Shift + P (macOS의 경우 Command + Shift + P)를 눌러 Command Palette를 열고,Python: Select Interpreter를 입력 후 선택합니다.표시되는 인터프리터 목록에서 Anaconda 환경(예: Python 3.x (Anaconda))을 선택합니다.감사합니다.
- 0
- 1
- 20
Q&A
주피터 노트북 서버 만들어보기_pymysql 설치관련
안녕하세요. 우선 불편을 드려 죄송합니다.확인해본 결과, 우분투(또는 데비안 계열) 환경에서 최근 파이썬 패키지 관리를 “시스템 파이썬”과 “사용자/가상환경 파이썬”으로 엄격히 구분하면서 나타나는 증상으로 보입니다. 즉, 시스템(루트) 파이썬 환경은 apt로 설치한 파이썬 패키지만 관리하도록 하고, pip를 통한 임의 설치는 원칙적으로 막아둔 상황입니다.급히 관련 자료 업데이트 다음과 같이 하였고, 이후 급한일들이 정리되면, 영상으로도 업데이트하겠습니다. 가장 간단한 방법은 공유드린 이북 자료인 04_docker_link.pdf 파일에 다음과 같이 업데이트하였는데요. 도커 생성시 /bin/bash -c "pip install pymysql && start-notebook.py" 를 뒤에 붙여주시면 좋을 것 같습니다.# 제공한 mysql_in_docker.ipynb 파일이 있는 디렉토리에서 실행 # 2025.02 업데이트 # 다음 도커 명령에 /bin/bash -c "pip install pymysql && start-notebook.py" 추가 # 사유 # 최근 우분투 시스템 환경에서는 시스템 파이썬에 대해 pip 명령어를 직접 실행하는 것이 제한되었습니다. # 따라서, 주피터 노트북상에서 pip 명령이 실행되지 않습니다. # 이를 우회하기 위해, 도커 컨테이너 내부에서 pymysql 패키지를 강제로 설치한 후 주피터 노트북을 실행하도록 명령어를 수정하였습니다. # # 추가된 /bin/bash -c "pip install pymysql && start-notebook.py" 에 대한 이해 # # 1. /bin/bash -c "..." # - 도커 컨테이너 내부에서 Bash 쉘을 실행하여, 큰따옴표 안에 있는 전체 명령어 문자열을 한 번에 처리합니다. # # 2. pip install pymysql # - pip를 사용하여 pymysql 패키지를 설치합니다. # - 이 명령은 우분투의 시스템 환경에서 pip 사용이 제한되는 문제를 해결하기 위해 컨테이너 내부에서 강제로 실행됩니다. # - 설치 성공 시 "Successfully installed pymysql-1.1.1" 등의 메시지가 출력되며, pymysql 라이브러리가 컨테이너에 추가됩니다. # # 3. && # - 앞의 pip 설치 명령이 성공적으로 완료되면, 그 다음 명령인 start-notebook.py를 실행하도록 합니다. # - 만약 pip 설치가 실패할 경우, 이후 명령은 실행되지 않아 주피터 노트북이 실행되지 않습니다. # # 4. start-notebook.py # - pip 설치 후, 주피터 노트북(또는 주피터 랩)을 시작하는 스크립트를 실행합니다. # - 이 명령은 컨테이너 내부에서 주피터 서버를 구동시켜 웹브라우저로 접속할 수 있도록 합니다. # # 전체적으로, 이 명령은 도커 컨테이너가 시작될 때 자동으로 pymysql 패키지를 설치하고, 이어서 주피터 노트북 환경을 띄워주는 역할을 합니다. docker run --rm -d -p 8888:8888 -v /home/ubuntu/2021_LEARN:/home/jovyan/work jupyter/datascience-notebook /bin/bash -c "pip install pymysql && start-notebook.py"결과 (로그 확인)ubuntu@ip-172-31-23-174:~$ docker logs 1bb9afe30a08 Collecting pymysql Downloading PyMySQL-1.1.1-py3-none-any.whl.metadata (4.4 kB) Downloading PyMySQL-1.1.1-py3-none-any.whl (44 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 45.0/45.0 kB 2.9 MB/s eta 0:00:00 Installing collected packages: pymysql Successfully installed pymysql-1.1.1 Entered start.sh with args: jupyter lab Running hooks in: /usr/local/bin/start-notebook.d as uid: 1000 gid: 100 이외에 참고로 다음과 같은 다양한 방안도 있어서 이 부분도 참고만 해보시면 좋을 것 같습니다. 해결 방법(권장) 가상환경(venv) 구성 후 pip install도커 컨테이너 내부에서 다음과 같이 진행:# venv 모듈 설치(혹시 안 깔려 있다면) sudo apt-get update sudo apt-get install python3-venv # 원하는 경로에 가상환경 생성 python3 -m venv myenv # 가상환경 활성화 source myenv/bin/activate # 이후 가상환경에서 pip 설치 pip install pymysql그리고 Jupyter Notebook을 실행할 때도 이 가상환경에서 실행하도록 설정해야 합니다.혹은 이미 실행 중인 Jupyter라면, 커널을 가상환경 파이썬으로 연결해주어야 합니다.pipx를 이용한 설치pipx도 내부적으로 가상환경을 생성해주는 방식이므로, “시스템 파이썬”을 건드리지 않고 패키지를 사용할 수 있습니다.예:sudo apt-get update sudo apt-get install pipx pipx install pymysql다만, 보통 파이썬 라이브러리를 개발용으로 설치할 때는 가상환경(venv)을 더 많이 사용하므로, 특별히 pipx를 선호하지 않는다면 1) 방법을 쓰는 경우가 많습니다.도커 이미지를 직접 빌드하여 사용만약 Dockerfile이 있다면, Dockerfile 내에서 pip install을 미리 수행해두면 컨테이너가 올라올 때마다 이미 필요한 패키지가 설치된 상태가 됩니다. 예를 들어:FROM python:3.9-slim # 또는 다른 base 이미지 RUN pip install pymysql # 이후 jupyter, 기타 설정...이렇게 하면 컨테이너가 뜨는 시점에는 이미 pymysql이 설치되어 있기 때문에 따로 설치할 필요가 없어집니다.apt를 통한 시스템 패키지 설치만약 배포판(ubuntu/debian) 리포지토리에 python3-pymysql 패키지가 존재한다면, 아래처럼 설치할 수도 있습니다.sudo apt-get update sudo apt-get install python3-pymysql하지만 리포지토리에 있는 버전이 오래되어 있거나 원하는 버전이 아닐 수도 있기 때문에, 보통은 1) 가상환경을 만들어서 최신 버전의 라이브러리를 pip로 설치하는 방법이 더 유연합니다.감사합니다.잔재미코딩 드림
- 0
- 1
- 56
Q&A
deprecated 경고는 어디서 확인할 수 있나요?
안녕하세요 답변도우미입니다. FastAPI에서 엔드포인트에 deprecated=True 옵션을 사용하면 OpenAPI 문서(예: Swagger UI, ReDoc)에는 해당 API가 더 이상 사용되지 않는다는 표시가 나타납니다.하지만, 이 옵션은 실제 HTTP 응답에 deprecation 관련 헤더나 메시지를 자동으로 포함시키지는 않습니다.즉, FastAPI는 deprecated 정보를 문서화 목적으로만 사용하며, 클라이언트에게 경고 메시지를 전달하려면 별도의 구현이 필요합니다.예를 들어, 다음과 같이 FastAPI 엔드포인트에서 직접 응답 헤더를 추가할 수 있습니다:from fastapi import FastAPI, Response app = FastAPI() @app.get("/old-endpoint", deprecated=True) def old_endpoint(response: Response): # HTTP 표준에 따른 Deprecation 및 Warning 헤더 추가 response.headers["Deprecation"] = "true" # 혹은 제거 예정일 등 구체적인 정보를 기입할 수 있음 response.headers["Warning"] = '299 - "Deprecated API, please use the new version"' return {"message": "This endpoint is deprecated"} 위와 같이 구현하면, /old-endpoint에 대한 응답에 Deprecation과 Warning 헤더가 포함되어 클라이언트에게 deprecated 상태를 알릴 수 있습니다.결론적으로, FastAPI의 deprecated=True는 문서화용으로만 사용되며, 응답에 해당 정보를 포함시키려면 개발자가 별도로 헤더나 응답 본문에 추가하는 로직을 구현해야 합니다. 감사합니다.
- 0
- 1
- 34
Q&A
sklearn v1.5.1
안녕하세요. 참고 내용을 공유해주신 것 같은데 감사합니다~
- 0
- 1
- 46
Q&A
강의 결과 질문 - SQLD, 데이터베이스 설계, 프로젝트 구축 하여 취업
안녕하세요. 잔재미코딩입니다.우선 12개를 구매하셨다니 좋게 봐주신 것 같아서, 감사합니다.일단 따라치는건 크게 의미가 없을 수 있습니다. 각 강의 내에서 수시로 문제를 내고, 직접 풀도록 가이드를 하고, 이후에 같이 풀어보는데요. 이렇게 작은 문제부터 스스로 해보셔야 하고요. 학습 후 AI 기술까지 활용하면, 보다 빠르게 개발도 가능할 거 같아요. 다음으로 물론 SQL 핵심 기술을 모두 정리한 것이기 때문에, SQLD 와 같은 자격증 준비에도 도움이 되고요. 다만, 각 자격증 시험은 당연히 자격증마다의 팁과 범위가 있으므로, 이런 부분에 대해서만 보완해주시면 될 것 같습니다.참고로, 현업에서는 SQLD, ADSP? 와 같은 자격증은 전혀 보지 않습니다. 현업에서 이러한 자격증을 가진 분들도 한번도 못봤고요. 아마 무슨 자격증이 있는지도 모를 수 있고, 왜 그런 자격증을 따는지 이해하기 어려워하실 수도 있어요. 심지어 저도 정보처리기사? 1급? 자격증이 있긴 한데, 오히려 없어보여서 이력서에 기재를 20년간 한적이 없습니다. 자격증 공부보다는 실제 역량을 쌓고, 이를 기반으로 다양한 개발이든 데이터 분석이든 결과물, 즉 포트폴리오를 많이 만들어보시는 것을 더 추천드립니다. 다음으로 SQL 강의에서 SQL 핵심 기술은 모두 다루고 있어요. 정규화 컨셉까지 다루고 있어서, 데이터베이스 활용에는 이 정도면 충분합니다. 다음으로 취업적 역량은 현재는 특정 세부 기술만 익혀서 취업하는 시기는 지나갔다고 보셔도 좋을 것 같아요. 이제는 다시 충분한 역량을 가지고 있는 개발자가 되어야 하는데요. 충분한 역량을 가지려면, 웹/앱 서비스 분야라고 한다면, 관련해서 필요한 핵심 세부 기능 (예: 프론트엔드, 백엔드, 도커, 등등) 은 먼저 정리를 해놓아야 하고요. 이후에 이를 기반으로 원하시는 취업에 강점을 가지는 기술 (예: 파이썬 기반 웹/앱 개발자, Javascript 기반 웹/앱 개발자, JAVA 기반 웹/앱 개발자, React/Next 기반 웹/앱 개발자등등) 을 시기에 맞추어 준비하시면 됩니다. 그리고 이를 기반으로 웹/앱 서비스를 직접 개발하셔서 여러개의 포트폴리오를 갖추는 것을 추천드립니다.가장 빠른 풀스택처럼 각 분야의 핵심 세부 기능을 가장 해당 분야를 구현하는데 빠르거나, 쉽거나, 아니면 해당 분야의 기본이 되는 기술을 기반으로 빠르게 정리를 한다면, 훨씬 빠르게 정리가 가능하고요. 이후 원하시는 특정 기능을 구현하는 기술 스택을 익힐 때에도 핵심 세부 기능을 정리하여서, 유사한 기능을 문법만 다르게 하면 구현이 가능하여, 빠르게 해당 기술 스택을 쌓을 수 있고요. 전반적인 기술을 모두 정리한 상태이므로, 그동안 컴퓨팅사고가 발달하여, 웹/앱 서비스 개발도 가능하고, 괜찮은 개발자가 될 수 있습니다. 또 포트폴리오 개발도, 가장 빠른 풀스택 기술이라면 굉장히 빠르게 구현이 가능하니, 특정 기능을 구현하는 기술 스택으로 특정 기능을 구현하고, 서비스 개발에 필요한 나머지 기술은 가장 빠른 풀스택 기술을 사용하면, 혼자서도 다양한 포트폴리오 개발이 가능합니다. 감사합니다.
- 0
- 1
- 44
Q&A
mysql 설치가 되지 않습니다.
안녕하세요. 답변 도우미입니다.우선 에러 메세지만으로는 명확하게 어디가 문제다 라고 파악하기는 어려운데요. 다음 사항들 의견을 드립니다.일단 너무 최신인 MySQL 9.2 보다는 8.0.41 버전을 설치해보시는 것을 추천드리고요. 혹시 사내 PC 라면 사내 보안 이슈로 설치가 안될 수 있어요. 개인 PC 로 설치를 해보시면 좋을 것 같고요. 개인 PC 에서도 로그인시 관리자 권한을 가진 사용자로 로그인 한 후, 설치 파일을 오른쪽 클릭 하셔서 나오는 메뉴 중, 관리자 권한으로 설치 파일을 실행해서 설치해보시면 좋을 것 같습니다.이외에도 예상치 못한 다양한 이슈가 있을 수 있는데, 그런 사항들을 정리해보았으니, 참고해보시면 좋을 것 같습니다. 에러 메시지 상으로는 MySQL 데이터베이스 초기화 단계에서 mysqld --initialize-insecure 명령이 실패하면서 데이터베이스 초기화가 완료되지 않은 것으로 보입니다. 이 문제는 여러 가지 원인으로 발생할 수 있으므로 아래의 점검 및 해결 방법을 순서대로 시도해 보시기 바랍니다.1. 관리자 권한으로 설치 진행문제: MySQL 설치 및 초기화 과정에서 필요한 권한이 부족할 경우 초기화에 실패할 수 있습니다.해결: 설치 파일(또는 MySQL Installer)을 관리자 권한으로 실행해 보세요.설치 아이콘을 오른쪽 클릭하고 “관리자 권한으로 실행”을 선택합니다.2. 이전 설치 잔재 확인 및 데이터 디렉터리 삭제문제: 제어판에서 MySQL을 제거했더라도, 데이터 파일이나 설정 파일(예: my.ini, 데이터 디렉터리)이 남아 있으면 재설치 시 충돌이 발생할 수 있습니다.해결:데이터 디렉터리 확인:보통 C:\ProgramData\MySQL\ 또는 MySQL이 설치된 경로 아래에 data 폴더가 있습니다.이 폴더에 이전 버전의 잔여 파일이 있다면, 백업 후 완전히 삭제해 주세요.설정 파일 확인:C:\ProgramData\MySQL\MySQL Server \ 또는 설치 경로 내의 my.ini 파일이 남아있을 수 있습니다.필요 없다면 삭제한 후 다시 설치해 보세요.3. 포트 충돌 확인문제: MySQL이 기본 포트(3306, 33060)를 사용 중인데, 다른 애플리케이션이 이미 해당 포트를 사용 중이면 서비스 시작에 실패할 수 있습니다.해결:포트 사용 확인:명령 프롬프트(관리자 권한)에서 netstat -a -n -o | findstr 3306 또는 findstr 33060 명령어로 해당 포트를 사용 중인 프로세스가 있는지 확인하세요.포트 변경:만약 다른 애플리케이션이 해당 포트를 사용 중이면, MySQL 설치 시 포트를 다른 번호로 변경하거나 해당 애플리케이션을 중지합니다.4. 기존 MySQL 서비스 확인 및 삭제문제: 이전 설치 시 생성된 MySQL 서비스가 남아 있으면 새로 생성하려는 서비스와 충돌할 수 있습니다.해결:services.msc를 열어 “MySQL” 또는 “MySQL92T”와 같은 서비스가 이미 존재하는지 확인합니다.기존 서비스가 있다면, 해당 서비스를 중지하고 삭제한 후 재설치를 진행합니다.서비스 삭제는 명령 프롬프트(관리자 권한)에서sc delete "서비스명"명령어를 사용하세요.5. 에러 로그 파일 확인문제: 초기화 실패의 구체적인 원인을 파악하기 위해서는 MySQL 에러 로그가 도움이 됩니다.해결:MySQL 데이터 디렉터리 내에 생성된 *.err 파일(예: 컴퓨터이름.err)을 확인하여 추가적인 오류 메시지나 힌트를 찾아보세요.에러 로그 내용에 따라 추가적인 조치가 필요할 수 있습니다.6. Antivirus 및 보안 소프트웨어 확인문제: 바이러스 백신이나 보안 소프트웨어가 MySQL의 실행 또는 파일 접근을 차단할 가능성이 있습니다.해결:설치 및 초기화 과정 중에 Antivirus 소프트웨어가 간섭하는지 확인해 보고, 일시적으로 비활성화한 후 다시 설치를 시도해 보세요.7. 수동 초기화 시도문제: 설치 도중 자동 초기화가 실패하는 경우, 수동으로 데이터베이스 초기화를 진행해 볼 수 있습니다.해결:명령 프롬프트(관리자 권한)에서 MySQL 설치 경로(예: C:\Program Files\MySQL\MySQL Server X.X\bin)로 이동합니다.아래 명령을 실행하여 초기화해 보세요.mysqld --initialize-insecure --console출력되는 메시지를 확인하여 어떤 오류가 발생하는지 파악합니다.8. 환경 변수 및 경로 설정 확인문제: 다른 MySQL 관련 환경 변수나 PATH 설정이 남아 있으면 충돌이 발생할 수 있습니다.해결:시스템 환경 변수에서 MySQL 관련 경로가 남아있는지 확인하고, 필요하다면 정리해 주세요.이상의 단계들을 차례로 확인하시고 문제를 해결해 보시기 바랍니다. 문제가 해결되어 강의 진행에 차질이 없기를 바랍니다.감사합니다.
- 0
- 3
- 151
Q&A
missingno 대체
안녕하세요. 공유? 해주시려고 쓰신 것 같은데, 좋은 팁 감사합니다.
- 0
- 1
- 61
Q&A
머신러닝 적용을 위한 Feature Engineering 작업1
안녕하세요. 답변 도우미입니다.동일 수업자료로 금일 테스트해보았을 때, 다음과 같이 정상적으로 출력이 됩니다.(사진)혹시 괜찮으시면, 수업자료를 다시 새로 다운받으셔서 한번 해보시는 것도 좋을 것 같고요. 보여주신 부분만으로만 봐서는 동일 코드인 것 같은데, 이전에 데이터가 이미 수정이 되어있어서 다른 데이터를 로드하여 이슈가 있을 수 있을 수도 있을 것 같습니다. 이런 부분은 아마 수업자료를 새로 다른 폴더에 다운받으셔서 그대로 실행해보시면서 기존 코드나 데이터와 어떤 부분이 이슈가 있는지 확인해보시는 것도 도움이 될 것 같습니다. 감사합니다.
- 0
- 2
- 51