IT/Software 2023. 5. 5.
오픈 소스 소프트웨어 라이선스 내용 정리해보자
공개 소프트웨어 가이드라인이라는 나라에서 주는 아주 좋은 자료가 있어 다운받아 보다가 몇가지만 기록해둘려고, https://www.oss.kr/oss_guide/show/c05f6485-b8bd-49fd-9f35-58a0ec079235 공개 소프트웨어 연구개발(R&D) 실무 가이드라인 배포 - 공개SW 포털 공개 소프트웨어 연구개발(R&D) 실무 가이드라인 배포 □ 과학기술정보통신부(장관 이종호, 이하 ‘과기정통부’)는 공개 소프트웨어 방식의 연구개발을 확산시키기 위해 ‘공개... www.oss.kr 상용화, 공개 해야 되니 마니 등등 라이선스가 이것 저것 말이 많길래 오픈 소스 소프트웨어(OSS) 라이선스를 허용적, 약한 카피레프트, 강한 카피레프트 (I), 강한 카피레프트 (II)의 네 가지 범주로 ..
IT/파이썬 2023. 5. 4.
Python - UnicodeDecodeError: 'cp949' 에러 해결 방법
UnicodeDecodeError: 'cp949' 에러는 파일을 읽을 때 발생할 수 있는 문제입니다. 이 문제를 해결하는 방법으로는 파일을 열 때 인코딩을 지정해주는 것이 있습니다. open('파일경로', 'rt', encoding='UTF8') 와 같이 파일을 열어주면 왠만하면 다 해결이 됩니다. *) 실제 파일 인코딩에 맞추어서 사용하면 됩니다. 다른 방법으로는 텍스트 파일을 메모장으로 열어서 다른 이름으로 저장하고 인코딩을 ANSI로 저장하는 것도 있습니다. 이 외에도 인코딩 값을 변경해서 시도하거나 파일을 직접 열어 공백이 있는지 확인하고 공백을 제거하는 방법도 있습니다.
IT/파이썬 2023. 5. 4.
Django ORM - aggregation sum 결과가 0 인 결과 배제하기
Django ORM - aggregation sum 결과가 0 인 결과 배제하기 생각해보면 아주 쉽지만 안될지 될지 몰라서 그냥 해봤는데 되네 sum, avg, count 등을 수행한 결과가 0인 경우에 결과 값에서 빼고 싶다면 그냥 exclude 를 이용하면 된다. result_groupby_product_thismonth = ( target_summaryproductcount.values("product_name") .annotate(sum_count=Sum("count")) .values("product_name", "sum_count") .exclude(sum_count=0) ) 상품명으로 Group by 해서 sum을 구했는데, Sum 값이 0면 결과값에서 빼는 코드 참고용입니다. :) http..
IT/Cloud 2023. 5. 4.
Django 서버리스 서비스 제공 - Zappa, Lambda on AWS 초안 작성중
AWS, Lambda, Django, Zappa 의 기술로 장고 프로젝트를 서버리스로 서비스를 제공할 수 있을 것 같다. Zappa는 AWS의 서버리스 컴퓨팅 서비스인 Lambda에 Django 앱을 배포하는 데 사용할 수 있는 도구입니다. 이 글에서는 Zappa를 사용하여 Django 프로젝트를 API Gateway + Lambda를 활용한 서버리스 아키텍쳐로 배포하는 방법에 대해 설명합니다. AWS, Lambda, Django, Zappa의 기술을 사용하면 장고 프로젝트를 서버리스로 서비스 제공이 가능합니다. Zappa 배포 방법은 다음과 같습니다: AWS IAM 계정 생성 /.aws/credentials 파일 작성 virtual environment 생성 pip를 이용해서 Zappa 모듈 설치 쉘에..
IT/파이썬 2023. 5. 3.
Django ORM - Group by 사용해서 Count, Sum, Avg 구하기
Django ORM으로 Group by 필드 구현하는 방법은 아래 글을 이길 수가 없어요. 완전 잘 써놓으셔서 들어가서 읽고 감탄만 하시길!! 정리해 보면, 1. 먼저 Group by 할 필드를 정해서 values에 넣고 .values("필드") 2. 함수를 불러서 쓰고 .annotate(Count(), Sum(), Avg(), ...) 3. 보여줄 필드를 다시 정리하고 .values("필드", "필드", ...) 즉, values 를 2번 불러 쓰면 된다. [Django] ORM으로 Aggregation 함수와 Group by 사용 [Django] ORM으로 Aggregation 함수와 Group by 사용 쿼리에서 aggregation함수(count(), max(), first() 등등) 와 필요한 ..
IT/GitHub 2023. 5. 2.
Github 저장소 주소를 .dev 로 바꾸면 온라인 에디팅 개발 사이트로 변신
이건 머지, github.com 에서 github.dev 로 변경해 버리면 그냥 그 Repo 가 온라인 에디팅 가능한 VSCode 환경으로 변경된다. 아주 신기하네 예제로 내 github 에 들어가 보았다. 예제를 위해 아주 간단한 지킬 페이지가 있는 Repo 로 접속했다. > https://github.com/bjnhur/landing 그런데 주소에 .com 부분은 .dev 로 바꾸면 짠 아래처럼 웹 온라인 에디팅이 가능한 페이지로 변신 와 이런 로컬에 툴 깔 필요도 없이 아주 간단하게 소스 에디팅이 가능하다. VS Code 깔기 싫거나, 외부에 나가면 그냥 여기에 들어가서 이렇게 쓰는 것이 낫겠다 ^-------------------^
IT/Web 2023. 5. 2.
CSS HTML - Progressbar 로딩바 구현 예제 소개
로딩바나 프로그레스바를 찾아보면 다양한 소스가 나오긴 한다. 일단 내가 써본 예제를 킵!! 많아봐야 똥이다. 내가 골라둔 걸 일단 저장해두고 활용하는 것이 짱!! https://codepen.io/artboardartisan/pen/VLzKVN Loading Bar A quick and simple loading bar that provides the illusion of a working progress bar.... codepen.io 아주 간단하게 잘 정리된 예제입니다. 역시 능력자들이 많어요! HTML로 프로세스바(Process Bar) 만들어주기 (progress bar css) (tistory.com) HTML로 프로세스바(Process Bar) 만들어주기 (progress bar css) 웹..
IT/Web 2023. 5. 2.
Billboard.js 차트 라이브러리 - 도넛 차트 예제
웹페이지에서 차트를 만들어주는 많은 JS 라이브러리가 많이 있지만 한국 기업인 네이버에서 후원해주는 빌보드 차트를 써보기로 이전에 쓴글이 있긴하네. 2023.04.28 - [IT/Web] - Billboard.js 무료 네이버 차트 라이브러리 써보기 Billboard.js 무료 네이버 차트 라이브러리 써보기 billboard.js는 D3 기반의 자바스크립트 차트 라이브러리입니다. 아주 간단하게 차트를 만들 수 있습니다. billboard.js의 홈페이지에서는 사용법이 잘 정리되어 있습니다 1. 또한, 다양한 예제들도 참 wiznxt.tistory.com 그중에서 일단 도넛 모양의 차트를 만들어 보기로 하고, 결과 화면은 이렇게 ㅋ 그냥 소스를 남겨둔다. 라벨인가 텍스트인가 도넛 내부에 있는 라벨 색상은 ..
IT/Web 2023. 5. 2.
CSS gradient - 색깔 서서히 바뀌는 패턴을 구하고 싶을때
GRADIENT BACKGROUND COLORS 의 패턴을 만들고 싶다면 아래 페이지로 방문해 보세요. 사실 디자이너가 아니니깐 보고 고르는게 최고!! https://www.eggradients.com/gradient/waiters-service Waiter's Service - Eggradients Waiter's Service: #98DE5B > #08E1AE CSS codes: background-color: #08e1ae; background-image: linear-gradient(315deg, #08e1ae 0%, #98de5b 74%); Best Gradients www.eggradients.com 맘에 드는 초록색 패턴을 하나 골라봤다.
IT/파이썬 2023. 5. 1.
Django - SQL group by 를 ORM 에서 구현하기
group by는 SQL에서 데이터를 그룹화하는 구문입니다. 장고 ORM에서는 values() 메소드를 사용하여 group by의 대상이 되는 컬럼을 지정할 수 있습니다. 이후 annotate() 함수로 집계된 데이터에서 집계 함수를 실행할 수 있습니다. 예를 들어, 다음과 같은 쿼리는 장고 ORM으로 다음과 같이 표현할 수 있습니다. # SQL SELECT name, COUNT(*) FROM test GROUP BY name; # Django ORM queryset = Test.objects.values('name').annotate(count=Count('*')) 위의 예제에서 values('name')은 GROUP BY name과 동일한 역할을 합니다. 이후 annotate(count=Count('..
IT/파이썬 2023. 5. 1.
Django - ORM aggregation 함수 설명과 예
앞서 살펴본 Group by 하는 결과에 많이 사용되는 집계함수에 대해서도 잠깐 살펴보자. annotate() 구문 안에서 자주 사용되는 aggregation funcion 은 아래 처럼 몇가지를 사용할 수 있다. 장고 ORM에서 사용할 수 있는 주요 집계 함수는 다음과 같습니다. Avg: 평균을 계산합니다. Count: 개수를 계산합니다. Max: 최대값을 계산합니다. Min: 최소값을 계산합니다. Sum: 합계를 계산합니다. 예제로 알아보면 가장 쉽다. 앞서 살펴본 동일한 Test 모델과 값이 있다고 가정한다. 2023.05.01 - [IT/파이썬] - Django - SQL group by 를 ORM 에서 구현하기 Django - SQL group by 를 ORM 에서 구현하기 group by는 S..
IT/Software 2023. 5. 1.
빙 코파일럿 - ChatGPT 로 코드 노가다 수고 덜어보기
같은 패턴의 코드를 복제해서 생성해 내고 싶은데, 이거 손으로 하기 귀찮아서 Bing Copilot (빙 코파일럿) 한테 시켜 봤다. 기본 코드는 아래와 같다. if(bt0.val==1) { tsw x0,1 x0.bco=1055 x0.pco=65535 } else { tsw x0,0 x0.bco=65535 x0.pco=0 } 이걸 인덱스만 바꿔서 16개 만들어 달라고 해봤더니, 이놈이 스마트 하게도 for loop 로 만들어 주었다. for (int i = 0; i
IT/파이썬 2023. 4. 28.
Django - Rest-framework API 서버 구현 with Django Ninja
Django Ninja의 주요 장점으로는 다음과 같은 것들이 있습니다 홈페이지에 많은 정보가 있겠죠? 일단은 방문 필수!! https://django-ninja.rest-framework.com/ Django Ninja Django Ninja - Fast Django REST Framework Django Ninja is a web framework for building APIs with Django and Python 3.6+ type hints. Key features: Easy: Designed to be easy to use and intuitive. FAST execution: Very high performance thanks to Pydantic and a django-ninja.rest-..