소개
잔재미코딩, Dave Lee
주요 경력: 쿠팡 수석 개발 매니저/Principle Product Manager, 삼성전자 개발 매니저 (경력 약 15년)
학력: 고려대 일어일문 / 연세대 컴퓨터공학 석사 (완전 짬뽕)
주요 개발 이력: 삼성페이, 이커머스 검색 서비스, RTOS 컴파일러, Linux Kernel Patch for NAS
저서: 리눅스 커널 프로그래밍, 리눅스 운영 체제의 이해와 개발, 누구나 쓱 읽고 싹 이해하는 IT 핵심 기술, 왕초보를 위한 파이썬 프로그래밍 입문서
풀스택/데이터과학 관련 무료 자료를 공유하는 사이트입니다.
IT 학습에 도움이 되는 팁/ 짧은 무료 강의를 공유하고자, 조금씩 시작하고 있습니다~
최신 현업과 IT 강의를 병행하며, 8년째 꾸준히 견고한 풀스택과 데이터과학 강의를 만들고 있습니다.
강의
로드맵
전체 3수강평
- 처음하는 MongoDB(몽고DB) 와 NoSQL(빅데이터) 데이터베이스 부트캠프 [입문부터 활용까지] (업데이트)
- 파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)
- [2024 리뉴얼] 처음하는 SQL과 데이터베이스(MySQL) 부트캠프 [입문부터 활용까지]
- 풀스택을 위한 도커와 최신 서버 기술(리눅스, nginx, AWS, HTTPS, flask 배포) [풀스택 Part3]
- 처음하는 파이썬 백엔드 FastAPI 부트캠프 (FastAPI부터 비동기 SQLAlchemy까지) [풀스택 Part1-2]
게시글
질문&답변
터미널에서 uvicorn명령어 칠때 자동완성
안녕하세요. 답변 도우미입니다.사실 ㅎㅎ 왜 자동완성이 되는지 정확히 기억이 나지는 않는데요. 아마도 맥 환경에서 items2 터미널 프로그램에 oh-my-zsh 를 설치해서 그런 것 같아요. 관련 가이드는 다음 블로그가 조금 깔끔하게 나와있는 것 같고요.https://medium.com/harrythegreat/oh-my-zsh-iterm2%EB%A1%9C-%ED%84%B0%EB%AF%B8%EB%84%90%EC%9D%84-%EB%8D%94-%EA%B0%95%EB%A0%A5%ED%95%98%EA%B2%8C-a105f2c01bec 따로도 다음과 같이 가이드 참고해보셔도 좋을 것 같습니다.1. iTerm2 설치iTerm2 다운로드iTerm2 공식 사이트에서 최신 버전을 다운로드하여 설치합니다.설정 확인iTerm2를 실행하면, 기본적으로 macOS에서 설정된 기본 Shell을 사용합니다.이후 zsh를 기본 Shell로 설정할 것이므로, 추가적으로 iTerm2에서 특별한 설정을 하지 않아도 됩니다. (iTerm2 > Preferences > Profiles > General 탭에서 “Command:” 항목이 “Login shell”로 설정되어 있는지 확인)2. zsh 기본 셸로 설정macOS Catalina(10.15) 이후부터는 기본 셸이 zsh로 설정되어 있지만, 혹시 아래와 같이 확인해 볼 수 있습니다.zsh 설치 여부 확인which zsh일반적으로 /bin/zsh 혹은 Homebrew를 통해 /usr/local/bin/zsh(Intel Mac) 또는 /opt/homebrew/bin/zsh(Apple Silicon Mac)에 설치되어 있을 수 있습니다.zsh가 설치되어 있지 않으면, Homebrew로 설치할 수 있습니다:brew install zsh기본 셸을 zsh로 설정chsh -s /bin/zsh(Apple Silicon 환경에서 Homebrew 설치 경로가 다를 경우 /opt/homebrew/bin/zsh 등을 사용) 셸 재시작 혹은 iTerm2 다시 실행 후, 다음으로 진행합니다.3. oh-my-zsh 설치oh-my-zsh는 zsh 환경을 좀 더 편리하고 강력하게 만들어주는 프레임워크입니다.oh-my-zsh 설치 스크립트 실행sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"설치가 완료되면, ~/.zshrc 파일이 자동 생성되며, oh-my-zsh 설정이 적용됩니다.설치 확인터미널(혹은 iTerm2)을 재실행하면 oh-my-zsh의 기본 테마(“robbyrussell” 등)가 적용된 상태일 것입니다.echo $ZSH 명령어로 oh-my-zsh 설치 경로(기본적으로 ~/.oh-my-zsh)를 확인할 수 있습니다.4. zsh 명령어 자동완성(autosuggestion) 설정zsh에서 명령어 히스토리를 기반으로 “자동으로” 제안해주는 기능을 사용할 수 있습니다. 이를 위해 가장 많이 사용되는 플러그인이 zsh-autosuggestions입니다.4.1 Homebrew 또는 Git으로 zsh-autosuggestions 설치방법 1) Homebrew로 설치brew install zsh-autosuggestions설치가 완료되면, 보통 다음 경로에 플러그인이 위치합니다.Intel Mac: /usr/local/share/zsh-autosuggestionsApple Silicon Mac: /opt/homebrew/share/zsh-autosuggestions방법 2) Git으로 설치git clone https://github.com/zsh-users/zsh-autosuggestions \ $ZSH_CUSTOM/plugins/zsh-autosuggestions$ZSH_CUSTOM 변수에 기본적으로 ~/.oh-my-zsh/custom가 설정되어 있으므로, 그 안에 플러그인이 클론됩니다.4.2 oh-my-zsh 플러그인 활성화.zshrc 수정편집기(vi, nano 등)로 ~/.zshrc를 열고, plugins=(...) 섹션 안에 zsh-autosuggestions를 추가합니다.plugins=( git zsh-autosuggestions # ... 다른 플러그인 ... )플러그인 로드 확인만약 Homebrew 경로가/opt/homebrew/share/zsh-autosuggestions처럼 oh-my-zsh가 자동으로 인식하지 못하는 경로에 있다면, 아래처럼.zshrc끝부분에 별도의fpath설정을 추가할 수도 있습니다.# Apple Silicon 예시 fpath+=( /opt/homebrew/share/zsh-autosuggestions )보통은 oh-my-zsh가 $ZSH_CUSTOM/plugins/zsh-autosuggestions에 설치되어 있는 플러그인을 자동으로 불러옵니다.설정 적용설정 파일을 다시 읽어들여 적용합니다.source ~/.zshrc새로운 터미널 세션(iTerm2 새 창)을 열거나, 해당 명령어를 실행한 후부터는 자동완성 제안이 표시됩니다.4.3 자동완성 텍스트 컬러 변경(옵션)자동완성으로 표시되는 제안 텍스트는 다소 흐리게(연한 회색 등) 표시되는 경우가 많습니다..zshrc에서 아래 변수를 설정해 색상을 조절할 수 있습니다:# 예: 연한 회색으로 제안 표시 ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE='fg=8'혹은 다른 색상을 원하면 fg=yellow, fg=cyan 등으로 조절이 가능합니다.5. 추천 추가 플러그인: zsh-syntax-highlighting명령어 자동완성 외에도, 명령어 구문을 실시간으로 하이라이팅 해주는 플러그인도 많이 사용됩니다.설치 (Git으로 설치 예시)git clone https://github.com/zsh-users/zsh-syntax-highlighting.git \ $ZSH_CUSTOM/plugins/zsh-syntax-highlighting.zshrc 수정plugins=( git zsh-autosuggestions zsh-syntax-highlighting )zsh-syntax-highlighting는 마지막에 로드되도록 배치하는 것이 좋습니다. (다른 플러그인 로드 후에)설정 적용source ~/.zshrc명령어를 입력할 때, 유효한 명령어는 녹색, 잘못된 구문은 빨간색 등으로 하이라이팅 되는 것을 확인할 수 있습니다.6. 마무리: 사용 예시터미널(또는 iTerm2)에 brew i까지만 입력하면, 과거에 입력한 명령어(예: brew install python)가 옅은 회색 텍스트로 자동 제안됩니다.오른쪽 화살표(→) 키나 Ctrl + F 등을 눌러 제안된 명령어를 한 번에 완성할 수 있습니다.zsh-syntax-highlighting을 설치한 경우, 명령어를 입력할 때마다 구문에 따라 색상이 바뀌어 가독성이 높아집니다.요약iTerm2 설치 및 실행zsh를 기본 셸로 설정 (Catalina 이상은 기본적으로 zsh)oh-my-zsh 설치 (자동 설정 편리)zsh-autosuggestions(자동완성 플러그인) 설치 및 ~/.zshrc에서 활성화(옵션) zsh-syntax-highlighting(구문 하이라이팅) 설치.zshrc를 수정 후 source ~/.zshrc로 설정 적용이 과정을 모두 거치면, iTerm2에서 oh-my-zsh를 사용하며, 히스토리 기반 자동완성, 구문 하이라이팅 등의 편리한 기능을 이용할 수 있게 됩니다. 감사합니다. 요즘은 cursor 에디터도 많이 쓰는데 터미널까지 자동완성이 설정안해도 자동지원해주는지는 잘 모르겠지만, cursor 에디터도 한번 활용해보셔도 좋을 것 같습니다.
- 0
- 1
- 22
질문&답변
def에서 print와 return의 차이점이 뭘까요?
안녕하세요! 답변 도우미입니다. 함수에서 print와 return의 차이에 대해 보다 상세히 이해하도록 다음과 같은 가이드를 작성하여 공유드립니다.1. print와 return의 역할 차이(1) print의 역할:화면에 값을 출력하는 역할을 합니다.즉, 함수를 호출했을 때, 그 함수 내부에서 계산된 결과를 즉시 콘솔에 보여주는 것이 목적입니다.하지만 print는 값을 반환하지 않기 때문에 함수 밖에서 이 값을 활용할 수 없습니다.(2) return의 역할:값을 함수 바깥으로 돌려주는 역할을 합니다.이렇게 반환된 값은 함수 외부에서 저장하거나, 다른 연산에 활용할 수 있습니다.return은 "이 값이 함수의 결과다"라고 명시하는 것이며, 화면에 출력하는 기능은 없습니다.2. 코드로 이해하기질문에서 제시된 두 코드의 동작을 자세히 살펴봅시다.(1) return 사용 시def cal(a, b, c): if c == '+': return a + b elif c == '*': return a * b else: return 0 data = cal(2, 3, "*") # cal 함수는 결과로 6을 반환 print(data) # print는 6을 화면에 출력cal(2, 3, "*")가 실행되면, 함수 내부에서 2 * 3 = 6이 계산되고, 이 값이 return으로 반환됩니다.반환된 값 6은 data 변수에 저장됩니다.마지막으로, print(data)가 실행되면서 data에 저장된 6을 화면에 출력합니다. 결과:6(2) print 사용 시def cal(a, b, c): if c == '+': print(a + b) # 값을 출력만 하고 반환하지 않음 elif c == '*': print(a * b) # 값을 출력만 하고 반환하지 않음 else: print(0) # 값을 출력만 하고 반환하지 않음 data = cal(2, 3, "*") # cal 함수는 아무것도 반환하지 않음 print(data) # data는 None이므로 None을 출력cal(2, 3, "*")가 실행되면, 함수 내부에서 print(a * b)가 실행되어 6이 화면에 출력됩니다.하지만, 함수는 return이 없으므로 결과를 반환하지 않습니다. 이때 파이썬 함수는 기본적으로 None을 반환합니다.따라서 data 변수에는 None이 저장됩니다.마지막으로, print(data)가 실행되면서 None이 화면에 출력됩니다. 결과:6 None3. return과 print의 핵심 차이구분returnprint기능값을 함수 외부로 반환화면에 값을 출력값 저장 가능 여부반환된 값을 변수에 저장 가능화면 출력 후 값은 사라짐다른 연산 활용 여부반환된 값으로 추가 연산 가능출력된 값은 추가 연산 불가예시 결과data = cal(2, 3, "*") → data = 6data = cal(2, 3, "*") → data = None4. 언제 return을 쓰고, 언제 print를 쓸까요?return을 사용: 데이터를 저장하거나 또는 다른 계산에 활용해야 할 때 사용합니다. 예: 계산기, 데이터 처리 함수 등.print를 사용: 값을 단순히 화면에 보여주기 위해 사용합니다. 예: 디버깅, 상태 확인 등.5. 정리return은 함수의 결과를 외부로 돌려줘서 다른 코드에서 재사용할 수 있게 합니다. print는 단순히 결과를 화면에 보여줄 뿐, 데이터 활용이 불가능합니다.함수의 결과를 재사용하려면 항상 return을 사용하세요!감사합니다. 잔재미코딩 드림 😊
- 0
- 1
- 23
질문&답변
중급 연습문제 25번
안녕하세요. 답변 도우미입니다. 문의가 두개 인것 같아요. 각각에 대해 참고해보시면 좋을 만한 부분을 작성하여 공유드립니다.하나도 행이 안나오는 문제1. 조인 순서와 조건 확인연결되는 테이블들은 아래와 같은 구조를 가집니다:category → film_category (카테고리와 영화 연결)film_category → film (영화 상세 정보)film → inventory (재고 연결)inventory → store (스토어 연결)store → staff (스태프 정보)staff → payment (결제 정보)이 연결 구조에서 하나의 조인이라도 조건에 맞는 데이터가 없다면 전체 결과가 비게 됩니다.2. 에러 원인 확인(1) 테이블 간 데이터 누락 가능성특정 테이블들 간의 매칭이 정확히 이루어지지 않을 가능성이 있습니다. 예를 들어:inventory와 store 간 연결에서, 특정 store_id가 없을 수 있음.staff와 payment 간 연결에서, 특정 스태프의 결제 데이터가 없을 수 있음.이는 주어진 조인 조건들이 INNER JOIN을 사용하는데, 조건을 만족하지 못하는 경우 해당 데이터가 필터링되기 때문입니다.(2) 데이터 정확성 점검각 테이블에서 연결 기준이 되는 열에 적절한 데이터가 있는지 확인해야 합니다. 예를 들어:inventory.film_id와 film.film_id의 데이터가 매칭되는지 확인.payment.staff_id가 staff.staff_id에 모두 존재하는지 확인.3. 해결 방안(1) 각 테이블의 데이터 점검아래와 같은 방식으로 각 조인 간의 데이터가 잘 연결되는지 확인합니다:-- Step 1: category와 film_category 간 연결 확인 SELECT * FROM category C JOIN film_category FC ON C.category_id = FC.category_id LIMIT 10; -- Step 2: film_category와 film 간 연결 확인 SELECT * FROM film_category FC JOIN film F ON FC.film_id = F.film_id LIMIT 10; -- Step 3: inventory와 film 간 연결 확인 SELECT * FROM inventory I JOIN film F ON I.film_id = F.film_id LIMIT 10; -- Step 4: payment와 staff 간 연결 확인 SELECT * FROM payment P JOIN staff STA ON P.staff_id = STA.staff_id LIMIT 10;이 과정을 통해 어느 조인에서 데이터가 없어서 결과가 반환되지 않는지 확인할 수 있습니다.(2) LEFT JOIN으로 데이터 누락 확인INNER JOIN 대신 LEFT JOIN을 사용하면 누락된 데이터를 확인할 수 있습니다:SELECT C.name AS category_name, P.amount FROM category C LEFT JOIN film_category FC ON C.category_id = FC.category_id LEFT JOIN film F ON FC.film_id = F.film_id LEFT JOIN inventory I ON F.film_id = I.film_id LEFT JOIN store STO ON I.store_id = STO.store_id LEFT JOIN staff STA ON STO.store_id = STA.store_id LEFT JOIN payment P ON STA.staff_id = P.staff_id WHERE P.amount IS NULL -- 누락된 데이터 확인 LIMIT 10;(3) 최종 쿼리 수정조건부로 LEFT JOIN을 검토하고, 중복 열 문제를 피하기 위해 필요한 열만 SELECT 및 GROUP BY에 명시적으로 기입하세요:CREATE OR REPLACE VIEW top5_genres AS SELECT C.name AS Genre, SUM(P.amount) AS Total_Sales FROM category C JOIN film_category FC ON C.category_id = FC.category_id JOIN film F ON FC.film_id = F.film_id JOIN inventory I ON F.film_id = I.film_id JOIN store STO ON I.store_id = STO.store_id JOIN staff STA ON STO.store_id = STA.store_id JOIN payment P ON STA.staff_id = P.staff_id GROUP BY C.name ORDER BY SUM(P.amount) DESC LIMIT 5;4. 추가적인 점검 사항데이터 무결성: sakila 데이터베이스는 샘플 데이터베이스로, 특정 데이터가 누락되었을 가능성이 있습니다.결과 확인: 각 조인 단계에서 LIMIT를 사용해 중간 결과를 확인하여 문제의 원인을 좁힙니다.에러 코드 문제에러 코드 1060: Duplicate column name 'category_id'여러 테이블을 조인할 때 동일한 이름의 열(category_id)이 두 개 이상의 테이블에 존재하는 경우 발생할 수 있습니다.이는 SELECT 문의 *를 사용할 때 중복된 열 이름을 구별할 수 없기 때문입니다.결과 행이 반환되지 않음조인 조건이 적절하지 않거나 테이블 간 연결 기준이 충족되지 않을 때 발생할 수 있습니다.데이터가 누락되었거나, 조건이 정확히 일치하지 않는 문제가 있을 수 있습니다.원인:중복된 열 이름category_id 같은 중복 열 이름이 SELECT 시 충돌을 일으킴.조인 결과에 명시적으로 별칭을 지정하지 않으면 시스템은 어떤 category_id를 반환할지 결정하지 못합니다.조인 조건의 문제INNER JOIN을 사용할 경우 조건이 맞는 행만 반환합니다. 조건이 맞는 데이터가 없는 경우 결과가 빈 상태로 반환됩니다.테이블 간에 연결 고리가 되는 키 값이 실제 데이터에서 존재하지 않을 수도 있습니다.해결책:SELECT 절에 명시적 컬럼 지정SELECT a.column_name1, b.column_name2, a.category_id AS a_category_id, b.category_id AS b_category_id FROM table_a a INNER JOIN table_b b ON a.category_id = b.category_id;* 대신 사용할 열을 명시적으로 지정하고, 필요한 경우 별칭(AS)을 추가합니다.데이터 확인 및 조인 조건 점검데이터가 정확히 매칭되는지 확인하세요:SELECT * FROM table_a WHERE category_id IS NOT NULL; SELECT * FROM table_b WHERE category_id IS NOT NULL;두 테이블 간의 연결 키(category_id)에 데이터가 정확히 존재하고 일치하는지 점검합니다.LEFT JOIN 사용 (필요 시)데이터 누락 가능성을 확인하기 위해 LEFT JOIN을 사용해 보세요:SELECT a.*, b.* FROM table_a a LEFT JOIN table_b b ON a.category_id = b.category_id;이렇게 하면 table_a의 모든 데이터와 매칭되지 않은 table_b 데이터를 확인할 수 있습니다.감사합니다.
- 0
- 1
- 30
질문&답변
sql 설치 문제
안녕하세요. 답변 도우미입니다.정확히는 알기 어렵지만, 왠지 회사 PC 에서 작업을 하시거나, 아니면 어떤 권한이 제한된 사용자 ID 로 작업을 하신 것이 아닌가 싶어요. 그래서 설치 폴더등에 어떤 권한이 없어서 에러가 난것으로 추측이 됩니다. 한번 다음 내용도 참고해보셔도 좋고요. 아예 다른 PC 에서 설치를 해보시는 것도 추천드립니다. Database initialization failed 에러는 여러 원인으로 발생할 수 있으며, 특히 exit code -1073741819 오류는 MySQL이 초기화하는 과정에서 프로세스가 강제 종료되었음을 나타냅니다. 몇 가지 해결 방법을 안내드리겠습니다.1. 권한 문제 확인: - MySQL 설치 폴더와 데이터 폴더에 대한 충분한 접근 권한이 있는지 확인합니다. - MySQL이 설치된 폴더(예: C:\Program Files\MySQL\MySQL Server 9.1), 데이터 폴더(기본적으로 C:\ProgramData\MySQL\MySQL Server 9.1\data)에 대해 관리자 권한으로 설정되어야 합니다. - 특히, NT AUTHORITY\NetworkService 계정에 대한 권한을 설정해주어야 합니다.2. 비정상 종료 코드 확인 (-1073741819): - 이 오류 코드는 주로 Visual C++ Redistributable 패키지가 누락되었거나 손상된 경우 발생할 수 있습니다. MySQL Server는 Visual C++ 라이브러리에 의존하는 경우가 많습니다. - MySQL 9.1 버전에 필요한 Microsoft Visual C++ Redistributable 패키지를 설치합니다. 일반적으로 [Microsoft Visual C++ 2015-2022 Redistributable](https://aka.ms/vs/17/release/vc_redist.x64.exe) 버전을 설치하면 문제가 해결될 수 있습니다.3. Windows Event Viewer 로그 확인: - 윈도우 이벤트 뷰어 (Event Viewer)를 열고, Windows Logs -> Application 항목을 확인하여 MySQL과 관련된 추가 오류 로그가 있는지 확인해 보세요. 여기서 발생 원인에 대한 더 상세한 정보를 얻을 수 있습니다.4. my.ini 설정 확인: - my.ini 설정 파일에 문제가 있을 수 있습니다. 특히, 특정 설정이 OS나 환경과 충돌을 일으킬 수 있습니다. 예를 들어, lower_case_table_names=1 설정이 원인이 될 수 있으니 일단 해당 설정을 제거한 후 다시 시도해 보세요. - 또한, --initialize-insecure 옵션 대신 --initialize 옵션을 시도해 보거나, --console 옵션을 제거하고 실행해 보는 것도 방법입니다.5. MySQL 이전 버전 사용 시도: - MySQL 9.1이 현재 사용하는 환경과 호환성 문제가 있을 수 있습니다. MySQL 8.x 또는 MySQL 5.7과 같은 안정적인 버전을 설치해 보시는 것도 방법입니다.위의 방법들을 하나씩 시도해 보신 후에도 문제가 지속된다면, 추가 로그를 바탕으로 더 상세히 확인해 보도록 하겠습니다.감사합니다. 잔재미코딩 드림
- 0
- 2
- 164
질문&답변
서브쿼리를 JOIN으로 바꾸기
안녕하세요. 답변 도우미입니다.현재 JOIN 쿼리에서 WHERE 조건이 잘못되어 원하는 결과가 나오지 않고 있습니다.기존 WHERE 절 조건에서는 fc.category_id > (c.name = 'Comedy')로 되어 있는데, 이 조건은 SQL에서 논리적으로 잘못된 방식입니다. (c.name = 'Comedy')는 불리언 값으로 처리되어, 모든 category_id에 대해 불리언 비교가 이루어지기 때문에 올바른 필터링이 되지 않습니다.해결 방법JOIN을 사용하면서, Comedy라는 이름을 가진 category_id보다 큰 category_id만 선택하려면, 먼저 Comedy의 category_id를 가져와서 그 값보다 큰 category_id를 필터링해야 합니다. 이를 위해서는 서브쿼리로 Comedy의 category_id를 가져와 직접 비교하는 방식을 사용해야 합니다.수정된 쿼리 예시아래와 같이 Comedy의 category_id를 구하는 서브쿼리를 WHERE 절에서 활용하면 원하는 결과를 얻을 수 있습니다.SELECT fc.category_id, COUNT(*) AS film_count FROM film_category fc JOIN category c ON fc.category_id = c.category_id WHERE fc.category_id > ( SELECT category_id FROM category WHERE name = 'Comedy' ) GROUP BY fc.category_id;쿼리 설명JOIN을 통해 film_category 테이블과 category 테이블을 연결합니다.WHERE 조건에서 fc.category_id가 Comedy의 category_id보다 큰 항목만 선택하도록 합니다.GROUP BY로 category_id 별 COUNT를 수행하여 결과를 집계합니다.예상 결과위와 같은 쿼리를 실행하면 Comedy 카테고리보다 큰 category_id에 해당하는 영화 개수(film_count)를 정확히 얻을 수 있습니다.감사합니다. 잔재미코딩 드림
- 0
- 1
- 39
질문&답변
skill
안녕하세요. 우선 불편을 드려 죄송합니다. AI 가 자동 답변을 하여서, 제가 새로운 문의가 있는지를 놓쳤습니다.해당 데이터도 수업자료 다운로드에 업로드하였습니다. 관련 데이터를 다운받으시면 sakila 데이터베이스 SQL 파일들을 확인하실 수 있으실꺼예요.추가로 다음 강의를 다시 한번만 확인해보시면 파일이 두개 있습니다. 하나는 스키마를 만드는 파일이고, 또다른 하나는 해당 스키마에 데이터를 넣는 파일입니다. 화면 상으로 보았을 때, 왠지 스키마만 만드신 것 같아요. 새로 다운받으신 자료와 함께 다음 영상 후반부를 꼭 한번만 봐주시면서 따라해보시면 바로 정상동작하실 것 같습니다.MySQL Workbench 기본 사용법과 데이터 셋업 가이드혹시 관련하여 또다른 문제가 있다면, dream@fun-coding.org 로 알려주시면 또 바로 가이드드리겠습니다. 감사합니다.
- 0
- 3
- 92
질문&답변
특별한 형태의 javascript배열에서
안녕하세요. 답변 도우미입니다.코드에서 console.log(data3[0][0]); 부분이 예상한 결과를 출력하지 않는 원인은 JavaScript에서 배열 또는 객체가 정의된 후 특정 위치의 데이터에 접근할 때 일반적으로 데이터가 제대로 초기화되지 않았거나 해당 위치에 값이 없을 때 발생할 수 있는 문제입니다. 이 경우 원인으로 다음 사항들을 확인해 볼 수 있습니다.1. 초기화 확인만약 data3의 [0][0] 위치에 데이터가 정확하게 할당되지 않았다면, console.log로 접근 시 아무런 결과가 출력되지 않거나 에러가 발생할 수 있습니다. 하지만 [0][1], [0][2]는 정상적으로 접근이 되므로, 배열을 선언하고 초기화하는 과정에 문제가 있을 가능성이 큽니다.2. 개발 환경 캐시 이슈코드를 실행하는 개발 환경(예: 브라우저 콘솔, IDE 콘솔 등)에서 캐시가 문제가 될 때 특정 값이 누락될 수 있습니다. 이 경우, 환경의 캐시나 버퍼링 문제가 원인이 될 수 있으며, 캐시를 지우고 다시 실행해보는 것도 하나의 방법입니다.3. 구조적인 문제위 코드에서 data3[0][0]에 접근 시 아무런 결과가 나타나지 않는 경우, 일부 JavaScript 엔진에서 발생하는 버그일 수도 있으며, 콘솔이 결과를 누락하는 경우도 드물게 발생합니다. 이런 경우 다른 콘솔로 확인해보는 것도 도움이 됩니다.문제 해결 방법코드 실행 전 캐시와 실행 환경을 초기화합니다.console.log(data3); 또는 console.log(data3[0]);와 같은 방식으로 배열 전체 또는 부분을 출력하여 구조를 한 번 더 확인합니다.예시아래 코드를 통해 배열이 정상적으로 초기화된 상태인지 확인할 수 있습니다.const data3 = [ [1, 2, 3], [4, 5, 6], ]; console.log(data3); // 배열 전체 확인 console.log(data3[0]); // 첫 번째 배열 요소 확인 console.log(data3[0][0]); // 첫 번째 배열의 첫 번째 요소 확인이렇게 확인하면 data3[0][0]가 1로 출력되는지 확인할 수 있습니다.감사합니다. 잔재미코딩 드림
- 0
- 1
- 41
질문&답변
자료공유를 받으려고 하는데 에러가 납니다.
안녕하세요. 우선 불편을 드려 죄송합니다.메일 드리고 권한드렸습니다. 혹시 이슈 있으시면 dream@fun-coding.org 로 가볍게 이야기해주시면 또 이야기드리겠습니다.감사합니다.
- 0
- 1
- 43
질문&답변
섹션 8 flask 다양한 기능: 다양한 데코레이터 before_first_request 문의
안녕하세요. 답변 도우미입니다.이번 기회에 해당 영상도 새로 찍어서 업데이트하였고, 자료도 새로 다시 업데이트하여 업로드하였습니다.관련 자료와 영상을 보시면 보다 선명히 이해하실 수 있으실 것 같습니다.그래도 이슈가 있으시면 dream@fun-coding.org 로 메일로 가볍게 이야기해주시면 또 설명 드리겠습니다.감사합니다.
- 0
- 3
- 99
질문&답변
섹션 8 flask 다양한 기능: 다양한 데코레이터 before_first_request 문의
안녕하세요. 답변 도우미입니다.말씀하신 부분 다시 확인해보니, 제가 드린 자료에 이미 상세히 버전별 가이드를 넣어놓았습니다. 수업자료에서 다음 강의시 함께 보시는 다음 주피터노트북 파일에 상세히 추가 설명과 예제를 넣어놓았습니다.7_flask_others.ipynb괜찮으시면 해당 자료를 꼭 확인해보시면 좋을 것 같습니다. 그래도 이슈가 있으시면 dream@fun-coding.org 로 메일로 가볍게 이야기해주시면 또 설명 드리겠습니다. 감사합니다.
- 0
- 3
- 99