소개
잔재미코딩, Dave Lee
주요 경력: 쿠팡 수석 개발 매니저/Principle Product Manager, 삼성전자 개발 매니저 (경력 약 15년)
학력: 고려대 일어일문 / 연세대 컴퓨터공학 석사 (완전 짬뽕)
주요 개발 이력: 삼성페이, 이커머스 검색 서비스, RTOS 컴파일러, Linux Kernel Patch for NAS
저서: 리눅스 커널 프로그래밍, 리눅스 운영 체제의 이해와 개발, 누구나 쓱 읽고 싹 이해하는 IT 핵심 기술, 왕초보를 위한 파이썬 프로그래밍 입문서
풀스택/데이터과학 관련 무료 자료를 공유하는 사이트입니다.
IT 학습에 도움이 되는 팁/ 짧은 무료 강의를 공유하고자, 조금씩 시작하고 있습니다~
최신 현업과 IT 강의를 병행하며, 8년째 꾸준히 견고한 풀스택과 데이터과학 강의를 만들고 있습니다.
강의
전체11로드맵
전체2수강평
- 최고 입니다.
changju lee
2024.04.17
1
게시글
질문&답변
2024.04.19
iplot, plotly 그래프 크기
안녕하세요. 답변 도우미입니다. 그래프의 세로 길이가 짧게 나오는 문제는 주로 그래프를 그리는 코드에 지정된 그래프 크기 설정에 의해 발생합니다. 그래프의 크기를 명시적으로 조정하려면, 시각화 라이브러리에서 제공하는 크기 조정 함수를 사용하셔야 합니다. 예를 들어, Plotly를 사용하여 그래프의 크기를 조정하려면, layout 객체를 생성하고, 그 안에 width 와 height 속성을 설정해야 합니다. Plotly의 iplot 함수 또는 plot 함수에 이 layout 객체를 인자로 전달하여 그래프의 크기를 조정할 수 있습니다. 예시코드는 다음과 같습니다. ```python import plotly.graph_objs as go from plotly.offline import iplot # 그래프 데이터 생성 data = [go.Heatmap( z=[[1, 20, 30], [20, 1, 60], [30, 60, 1]], x=['Monday', 'Tuesday', 'Wednesday'], y=['Morning', 'Afternoon', 'Evening'] )] # 그래프 레이아웃 설정 layout = go.Layout( title='Heatmap of turnover over the hour by day', width=800, # 그래프의 가로 크기 height=600 # 그래프의 세로 크기 ) # 그래프 객체 생성 fig = go.Figure(data=data, layout=layout) # 그래프 그리기 iplot(fig) ``` 위 코드에서 width 와 height 를 자신의 데이터와 환경에 맞게 조정하여 그래프의 크기를 바꿀 수 있습니다. Plotly는 그래프의 크기를 픽셀 단위로 지정합니다. iplot 함수의 경우의 예시는 다음과 같습니다. 아래 코드는 판다스 데이터프레임의 iplot 메소드를 사용하여 히트맵의 크기를 설정하는 예시입니다 ```python import cufflinks as cf import pandas as pd # Cufflinks를 오프라인 모드로 설정 cf.set_config_file(offline=True) # 데이터프레임 생성 df = pd.DataFrame({ 'A': [1, 2, 3, 4], 'B': [30, 35, 40, 45], 'C': [50, 55, 60, 65], 'D': [70, 75, 80, 85] }) # iplot으로 히트맵 그리기 df.iplot(kind='heatmap', colorscale='reds', layout=go.Layout(width=800, height=500)) ``` 위의 예제에서 df.iplot 호출 시 kind 매개변수를 'heatmap'으로 설정하고, layout 매개변수 내에 그래프의 width 와 height 를 지정하여 크기를 조절할 수 있습니다. colorscale 매개변수는 히트맵의 색상 범위를 설정하는데 사용됩니다. 감사합니다.
- 0
- 1
- 24
질문&답변
2024.04.19
try , except 문 관련 질문 있어요
안녕하세요. 답변 도우미입니다. 주어진 코드는 pandas 라이브러리를 이용하여 CSV 파일에서 특정 컬럼들만 선택하여 데이터프레임을 만드는 과정을 보여줍니다. 그리고 예외 처리를 통해 만약 'Country_Region'이라는 컬럼이 없을 경우 'Country/Region'이라는 컬럼을 찾아서 그 컬럼의 이름을 'Country_Region'으로 바꾸어주는 로직을 포함하고 있습니다. 하지만 제시하신 실무 상황에서 'Country_Region' 컬럼의 이름이 다양한 방식으로 입력될 수 있기 때문에, 여러 다른 가능성을 고려한 코드를 작성해야 합니다. 예외 처리를 사용해서는 모든 경우의 수를 다룰 수 없습니다. 대신 컬럼 이름에 대한 검사와 변환을 일반화하는 로직을 작성해야 합니다. 예를 들어, 'Country-Region', 'Country.Region' 등과 같은 다양한 변형이 있을 수 있으므로, 다음과 같은 코드를 작성할 수 있습니다: ```python import pandas as pd doc = pd.read _csv(PATH + filename, encoding='utf-8-sig') # 1. csv 파일 읽기 # 기대하는 컬럼명 expected_column = 'Country_Region' # 현재 데이터프레임의 컬럼명을 확인하고, 기대하는 형식으로 변경하기 for col in doc.columns: if col.replace('-', '_').replace('/', '_').replace('.', '_') == expected_column: doc.rename(columns={col: expected_column}, inplace=True) break try: doc = doc[[expected_column, 'Confirmed']] # 2. 특정 컬럼만 선택해서 데이터프레임 만들기 except KeyError as e: print(f"Error: {e}. The expected column is not found in the dataframe.") ``` 위 코드는 각 컬럼명에 대해 문자 '-', '/', '.' 을 '_' 로 치환하고 기대하는 컬럼명 'Country_Region'과 일치하는지 확인합니다. 만약 일치한다면 해당 컬럼의 이름을 변경하고, 그 후 원하는 컬럼만 선택합니다. 'KeyError'를 사용하는 예외 처리는 만약 'Country_Region' 컬럼이 존재하지 않을 때 발생할 수 있는 에러를 처리하기 위해 사용됩니다. 실제 실무에서는 데이터에 따라 이러한 변환 로직을 더 추가하거나 조정해야 할 수도 있습니다. 감사합니다. 잔재미코딩 드림
- 0
- 1
- 23
질문&답변
2024.04.19
질문있습니다.
안녕하세요. 답변 도우미입니다. 우선, MaterialApp 의 theme 속성에서 primarySwatch 를 Colors.blue 로 설정해서, 이 설정이 앱바의 배경색에 영향을 줄 수는 있는데요. 테마가 각 위젯에 간접적으로 영향을 주다보니, 플랫폼별로 경우에 따라 기대와 다르게 되는 경우가 있습니다. 그래서 앱바의 배경색을 명시적으로 조정하려면, AppBar 의 backgroundColor 속성을 직접 지정하시면 좋을 것 같습니다. 다음으로, 텍스트가 가운데로 정렬되는 것은 AppBar 위젯이 기본적으로 타이틀을 중앙에 배치하는 스타일을 가지고 있기 때문입니다. 이 동작은 플랫폼별 스타일 가이드에 따라 다를 수 있으며, Android에서는 기본적으로 왼쪽 정렬, iOS에서는 중앙 정렬이 기본값입니다. 만약 정렬을 변경하고 싶으시다면, AppBar 의 centerTitle 속성을 true 또는 false 로 설정하시면 됩니다. 예를 들어, Scaffold 의 배경색을 변경하고 싶다면 Scaffold 의 backgroundColor 속성을 설정하시면 됩니다. 앱바의 색상을 변경하고자 하시면 다음과 같이 AppBar 의 backgroundColor 속성을 사용하시면 됩니다. ```dart appBar: AppBar( backgroundColor: Colors.red , // 원하는 색상으로 변경 title: Text('FunCoding'), ), ``` 정렬과 관련해서는 AppBar 의 기본 동작을 바꾸고 싶지 않다면 그대로 두시면 됩니다. 그렇지 않고 수동으로 조절하고 싶다면 centerTitle 속성을 추가하여 조정하실 수 있습니다. ```dart appBar: AppBar( title: Text('FunCoding'), centerTitle: true, // 중앙 정렬 활성화 ), ``` 이렇게 명시적인 변경을 적용하시는 것이 보다 플랫폼별 예상치 못한 케이스를 막을 수는 있습니다. 감사합니다.
- 0
- 1
- 21
질문&답변
2024.04.17
/singup api 구현 에러
안녕하세요. 답변 도우미입니다. 어떤 에러 메세지인지를 알면 좀더 유의미한 답변을 드릴 수 있을 것 같은데요. bcrypt 등 관련 라이브러리가 설치되어 있는지 우선 또 확인해보시면 좋을 것 같습니다. 또 다음과 같이 전반적으로 고려해볼만한 부분에 대해 의견을 드립니다. bcrypt 라이브러리 문제 : 사용 중인 bcrypt 라이브러리가 최신 버전이 맞는지 확인해보세요. 때때로 라이브러리 버전에 따라 호환성 문제가 발생할 수 있습니다. 비밀번호 길이 제한 : bcrypt는 최대 길이가 있는 입력만을 받아들입니다. 일반적으로 길이가 72자를 넘는 입력은 무시됩니다. 입력 비밀번호의 길이가 이를 초과하지는 않는지 확인해주세요. 서버 리소스 문제 : bcrypt는 상당한 계산 리소스를 요구합니다. 서버의 CPU 또는 메모리 자원이 부족할 경우, 이 과정에서 문제가 발생할 수 있습니다. 서버의 리소스 사용 상황을 확인해 보세요. 오류 로그 분석 : 서버의 로그를 확인하여 bcrypt 변환 과정에서 어떤 오류 메시지가 출력되는지 확인해보세요. 이 메시지는 문제의 원인을 파악하는 데 매우 중요합니다. 코드 검토 : 비밀번호 해시를 생성하고 데이터베이스에 저장하는 코드 부분을 다시 한 번 검토해 보세요. 비동기 처리가 올바르게 구현되었는지, 예외 처리가 적절히 되어 있는지 확인이 필요합니다. 감사합니다.
- 0
- 1
- 44
질문&답변
2024.04.17
강의 노트를 보고 싶은데 어디서 봐야되요.
안녕하세요. 강의자료는 다음 챕터에서 다운 가능하고, 별도 권한 필요하신 부분은 해당 챕터에서 역시 설명을 상세히 해놓았습니다. 강의 자료 [꼭 들어주세요!!!~] 혹시 다운로드 방법을 모르신다면, 강의에서 커리큘럼을 클릭 하신 후, 해당 자료가 있는 챕터의 구름 아이콘을 클릭 하시면 됩니다. 혹시 다운로드에 어려움을 겪으신다면, 관련 부분은 인프런측 인터페이스이어서, 우측 하단 인프런 채팅 아이콘을 클릭하여 인프런측에 물어보셔도 바로 도움을 받으실 수 있으실꺼예요. 감사합니다.
- 0
- 1
- 56