소개
잔재미코딩, Dave Lee
주요 경력: 쿠팡 수석 개발 매니저/Principle Product Manager, 삼성전자 개발 매니저 (경력 약 15년)
학력: 고려대 일어일문 / 연세대 컴퓨터공학 석사 (완전 짬뽕)
주요 개발 이력: 삼성페이, 이커머스 검색 서비스, RTOS 컴파일러, Linux Kernel Patch for NAS
저서: 리눅스 커널 프로그래밍, 리눅스 운영 체제의 이해와 개발, 누구나 쓱 읽고 싹 이해하는 IT 핵심 기술, 왕초보를 위한 파이썬 프로그래밍 입문서
풀스택/데이터과학 관련 무료 자료를 공유하는 사이트입니다.
IT 학습에 도움이 되는 팁/ 짧은 무료 강의를 공유하고자, 조금씩 시작하고 있습니다~
최신 현업과 IT 강의를 병행하며, 8년째 꾸준히 견고한 풀스택과 데이터과학 강의를 만들고 있습니다.
강의
전체11로드맵
전체2수강평
- 짧은 시간에 기본을 익힐 수 있는 강의였습니다.
yeonhong.min
2024.05.15
1
게시글
질문&답변
2024.05.18
JOIN문과 서브쿼리 작성 관련
안녕하세요. 답변 도우미입니다. 서브쿼리는 제약사항이 많아서, 모든 JOIN 을 서브쿼리로 바꾸기에는 무리가 있는 케이스도 있습니다. 제약사항이 많다보니 궁리를 많이 해야할 수도 있고요. 꼭 모든 쿼리를 서브쿼리로 작성할 필요는 없긴합니다. 이보다는 문제에 중점을 두어 결국 문제를 해결할 수 있는 쿼리를 어떤 식으로든 작성할 수 있는 역량이 가장 최우선으로 이해가 됩니다. 감사합니다.
- 0
- 1
- 19
질문&답변
2024.05.18
주피터 노트북 NEW 생성에서 파이썬이 안보입니다.
안녕하세요. 답변 도우미입니다. Notebook 메뉴가 주피터 노트북 파일 생성 메뉴입니다. 수시로 프로그램 버전이 올라감에 따라 UI 가 조금씩 달라질 수 있어서요. 하지만 해당 UI 도 결국 사용자가 이해할 수 있고, 바로 사용할 수 있게끔 UI 로 표현하는 것도 맞긴 해서요. 주피터 노트북 파일 생성이라는 표현이 Notebook 으로 간결히 표현된 것입니다. 감사합니다.
- 0
- 1
- 24
질문&답변
2024.05.18
100vw 관련 질문
안녕하세요 답변 도우미입니다. 100vw 를 사용하여 너비를 설정했음에도 불구하고 페이지 양쪽에 흰색 테두리가 생기는 이유는 보통 body 태그에 기본적으로 적용된 마진 때문입니다. 이 문제를 해결하기 위해 body 태그의 기본 마진을 제거해야 합니다. 다음은 이 문제를 해결하는 방법에 대한 설명입니다: ### 1. 100vw 의 의미 - vw 는 뷰포트 너비(Viewport Width)의 약자로, 뷰포트의 너비를 기준으로 단위를 설정합니다. - 100vw 는 뷰포트 너비의 100%를 의미합니다. 즉, 화면의 전체 너비를 차지해야 합니다. ### 2. 기본 마진 문제 - HTML의 기본 스타일시트는 body 태그에 기본 마진을 적용합니다. - 이 기본 마진 때문에 100vw 로 설정된 요소가 실제로 화면 전체를 채우지 못하고 양쪽에 여백이 생기게 됩니다. ### 3. 해결 방법 body 태그의 기본 마진을 제거하면 됩니다. CSS에서 body 태그의 마진을 0으로 설정하여 이 문제를 해결할 수 있습니다. #### 예제 다음은 body 태그의 기본 마진을 제거하고, 100vw 를 적용하여 화면 전체를 채우는 방법에 대한 예제입니다: ```html Full Width Example body { margin: 0; } .full-width { width: 100vw; height: 100vh; background-color: lightblue; } ``` 위 예제에서는 body 의 마진을 0으로 설정하여 기본 여백을 제거했습니다. 그리고 .full-width 클래스를 사용하여 div 요소의 너비를 100vw 로 설정하였습니다. 이렇게 하면 div 가 화면의 전체 너비를 차지하게 됩니다. 감사합니다.
- 0
- 1
- 16
질문&답변
2024.05.16
크롤링 데이터를 웹으로 보여주고 싶습니다.
안녕하세요. 답변 도우미입니다. 크롤링한 JSON 데이터를 스프링 또는 스프링부트 웹 애플리케이션에서 화면에 표현하려면, 여러 가지 방안이 있을 수는 있을 것 같습니다. 그 중 한가지 방안에 대해 큰 그림으로 의견드리면, 프로그래밍 언어가 다르기 때문에, 파일로 JSON 데이터를 저장한 후, 스프링등에서 해당 데이터를 읽어와서 스프링을 통해 읽어들인 후, 웹페이지등에서는 Javascript 등을 통해서 스프링 API 를 호출해서, 해당 데이터를 화면에 표시할 수 있을 것 같습니다. 스프링이나 Javascript 등은 본 강의 범위를 넘어서는 부분이기도 하고, 답변으로 설명하기에는 방대한 문법등이 필요할 것 같아서, 이렇게 큰 그림으로만 의견드리고요. 파이썬에서 JSON 데이터로 저장하는 부분은 다음과 같은 방식이면 가능할 것 같습니다. ### JSON 데이터 크롤링 우선, JSON 데이터를 크롤링합니다. 예를 들어, Python의 requests 와 BeautifulSoup 라이브러리를 사용하여 데이터를 크롤링한 후 JSON 형태로 저장할 수 있습니다. ```python import requests from bs4 import BeautifulSoup import json url = ' https://example.com/data ' response = requests.get(url) soup = BeautifulSoup(response.content, 'html.parser') # 필요한 데이터를 추출하여 JSON 형태로 저장 data = {'key': 'value'} # 예시 데이터 with open('data.json', 'w') as json_file: json.dump(data, json_file) ``` 감사합니다. 잔재미코딩 드림
- 0
- 1
- 29
질문&답변
2024.05.14
주피터 노트북 201_REGRESSION_BIKE_SHARING_MODELS 중 질문
안녕하세요. 답변 도우미입니다. 회귀 모델에서 음수 예측값이 나오는 이유와 로그 변환의 필요성에 대해 설명드리겠습니다. 이유 1: 모델의 특성 LinearRegression과 같은 선형 회귀 모델은 종속 변수(y 값)에 대해 선형 관계를 가정합니다. 즉, 모델은 (y = \beta_0 + \beta_1 x_1 + \beta_2 x_2 + \ldots + \beta_n x_n) 형태의 예측을 수행합니다. 이 때, 독립 변수(x 값)들의 조합에 따라 예측값(y 값)이 음수가 될 수 있습니다. 이유 2: 타겟 변수의 분포 자전거 대여 수(count) 데이터는 보통 0 이상의 값을 가집니다. 그러나 모델이 이를 고려하지 않고 회귀 직선을 적합시키면, 일부 경우에서 음수 값이 예측될 수 있습니다. 이는 특히 데이터의 분포가 비대칭적이거나 정규 분포가 아닐 때 더 두드러집니다. 로그 변환의 이유 로그 변환은 종속 변수의 분포를 정규화하는 데 도움이 됩니다. 로그 변환을 통해 데이터의 분포를 보다 정규 분포에 가깝게 만들 수 있습니다. 이렇게 하면 모델이 예측하는 값이 음수가 될 확률이 줄어듭니다. 로그 변환을 적용하면 다음과 같은 효과를 기대할 수 있습니다: 정규화 : 로그 변환은 오른쪽으로 치우친 분포를 보다 대칭적인 분포로 만들어줍니다. 변동성 감소 : 큰 값들의 변동성을 줄여주어 모델이 더 안정적으로 예측할 수 있게 합니다. 모델의 성능 향상 : 회귀 모델의 가정(예: 선형성)을 더 잘 만족시켜 모델의 성능을 향상시킬 수 있습니다. 실습 예제 다음은 로그 변환을 적용하여 LinearRegression 모델을 사용하는 예제입니다: import numpy as np import pandas as pd from sklearn.linear_model import LinearRegression # 예시 데이터 로드 # df_train, df_test는 자전거 대여 데이터를 포함하는 데이터프레임입니다. df_train = pd.read_csv('train.csv') df_test = pd.read_csv('test.csv') ml_columns = ['feature1', 'feature2', 'feature3'] # 적절한 피처로 변경하세요. # 입력 변수와 타겟 변수 설정 X_train = df_train[ml_columns].copy() y_train = np.log1p(df_train['count']).copy() # 로그 변환 적용 X_test = df_test[ml_columns].copy() # 모델 학습 및 예측 LiRe = LinearRegression() LiRe_model = LiRe.fit(X_train, y_train) y_pred_log = LiRe_model.predict(X_test) # 로그 변환된 값을 원래 스케일로 복원 y_pred = np.expm1(y_pred_log) print(y_pred) 이와 같이 로그 변환을 통해 예측값을 처리하면 음수 값이 나오는 것을 방지할 수 있으며, 모델의 예측 성능도 향상시킬 수 있습니다. 감사합니다.
- 0
- 1
- 29