IT/Cloud 2023. 5. 11.
MSA - MSA 가 맞나요? (공부하는중 정리 없습니다. 그냥 자료)
이런게 좋은 자료이다. 딱 원하는 자료이다. MSA 이게 맞나요? MSA! 이것이 서비스가 맞나요? MSA! 이것이 서비스가 맞나요? 현장에서 MSA를 적용하면서 관련 Stakeholder에게 기존의 CBD와 SOA를 처음 현장에 적용할 때와 ... blog.naver.com ■ CBD/SOA/MSA의 기술 비교 3가지의 기술과 애플리케이션의 사상, 관련된 개념을 비교한 내용이다. 장단점은 정리한 곳이 워낙 많은데 어떤걸 MSA 로 해야 하는지 명확하게 적어둔 곳은 잘 없네. 왜 MSA로 해야 하는지 예를 들어 설명해 주고 있어서 캡쳐해 둔다. 주요 기술로는 API Gateway, 서비스 매쉬, 메시지큐, 서비스찾기, 장애, 로그 추적 핵심일듯 이 세 가지 기술은 모두 애플리케이션의 복잡도를 낮추고 유지..
IT/Cloud 2023. 5. 11.
MSA 마이크로 서비스의 상호작용 방식 - API 호출 방식
내부 공부용이다. 좋은 사이트 글을 보고 배우자. 업무 종류에 따라 어떠한 마이크로 서비스 간의 상호작용 방식이 좋을까요? 리니 LGCNSer 업무 종류에 따라 어떠한 마이크로 서비스 간의 상호작용 방식이 좋을까요? MSA 시스템 구축 프로젝트에서는 가장 먼저 하는 일이 As-Is 시스템을 분석한 후 마이크로 서비스를 ... blog.naver.com ■ 마이크로 서비스의 상호작용 방식 (서비스 내부 Orchestration 기준) ① API 호출 방식(동기) : 온라인 트랜잭션에서 사용하며, 하나의 트랜잭션으로 처리가 반드시 되어야 하는 업무에 사용함 (예) 주문서비스에서 주문 완료 후 결제서비스에서 결제가 반드시 성공되어야 하는 업무 ※ 고려사항 : ServiceB 성공 처리 이후 ServiceA 기..
IT/Cloud 2023. 5. 10.
클라우드 네이티브(Cloud Native) 공부 - 빙코파일럿
출처: Bing과의 대화, 2023. 5. 10. 클라우드 네이티브(Cloud Native)는 클라우드 컴퓨팅 모델을 사용하는 것을 전제로 설계된 시스템과 서비스를 의미합니다¹. 클라우드 네이티브는 클라우드 컴퓨팅 환경에서 현대적 애플리케이션을 구축, 배포 및 관리할 때의 소프트웨어 접근 방식입니다². 클라우드 네이티브 기술은 서비스 제공에 미치는 영향 없이 애플리케이션을 빠르게 자주 변경할 수 있도록 지원하여 혁신 역량과 경쟁력을 제공합니다². 클라우드 네이티브 접근 방식은 기업에 다양한 이점을 제공합니다. 예를 들어, 효율성 증가, 비용 절감 및 가용성 보장 등이 있습니다². 클라우드 네이티브 애플리케이션은 마이크로서비스라는 여러 개의 상호 의존적인 소규모 서비스로 구성된 소프트웨어 프로그램입니다²...
IT/Cloud 2023. 5. 10.
단일구조 에서 MSA로 전환하기 위한 6 원칙 - Six principles for refactoring a monolith to MSA
좀 거창한 주제이긴 하다. MSA 구조로 바꾸기 위한 6가지 원칙? https://microservices.io/post/refactoring/2020/07/28/six-principles-for-refactoring-to-microservices.html Decompose your monolith - Six principles for refactoring a monolith to microservices Virtual bootcamp: Distributed data patterns in a microservice architecture My virtual bootcamp, distributed data patterns in a microservice architecture, is now open for..
IT/파이썬 2023. 5. 9.
파이썬 슬라이스 join 을 이용해서 주소 문자열 만들기
join 메소드는 파이썬의 문자열 메소드 중 하나로, 문자열 리스트를 하나의 문자열로 결합하는 데 사용됩니다. join 메소드는 결합할 문자열 리스트를 인수로 받고, 각 문자열 사이에 호출한 문자열을 삽입하여 하나의 문자열로 반환합니다. 예를 들어 다음과 같은 코드를 실행하면: words = ['apple', 'banana', 'cherry'] result = ', '.join(words) print(result) 다음과 같은 결과가 나올 것입니다: apple, banana, cherry 이 코드는 words 리스트의 각 요소 사이에 ', ' 문자열을 삽입하여 하나의 문자열로 결합합니다. 그럼 이제 주소 배열로 저장된 내용을 주소 문자열로 만들어 보자. " ".join(address_list[2:-1])..
IT/파이썬 2023. 5. 5.
Django manage.py my_command - 커스텀 명령어 만들기
가끔 배치 파일로 처리할 필요가 있다. python manage.py runserver 처럼 간단하게 자기 명령어를 만들어서 수행할 필요가 있다. 아주 잘 정리되어 있는 글이 있다. https://windybay.net/post/28/ Django 커스텀 manage.py 명령어 만들기 장고 프로젝트에서 manage.py 를 이용해 프로젝트 관련 명령을 실행할 때가 있다. 등등 테스트용 서버를 띄우거나 … windybay.net 나도, 빙 코파일럿을 이용해서 초안을 더 작성해 봤다. 엑셀 파일 명을 받아서 DB 에 입력하는 예제를 만들어 달라고 요청하고 정리해봤다. Django에서는 사용자가 커스텀 manage.py 명령어를 만들 수 있습니다. 이를 위해서는 Django 앱 내에 management/co..
IT/파이썬 2023. 5. 5.
파이썬 - 지도, 주소, 위도, 경도 등 지도 라이브러리 - GeoPy
파이썬은 강력하다. 지도 관련된 서비스를 하려면 필수적으로 GeoPy 정도는 있어야 대부분 구현이 가능하다. 먼저 홈페이지 방문해서 예제를 보면서 파악하는 것이 급선무! https://geopy.readthedocs.io/en/stable/#module-geopy.geocoders Welcome to GeoPy’s documentation! — GeoPy 2.3.0 documentation Different services have different Terms of Use, quotas, pricing, geodatabases and so on. For example, Nominatim is free, but provides low request limits. If you need to make more..
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 깔기 싫거나, 외부에 나가면 그냥 여기에 들어가서 이렇게 쓰는 것이 낫겠다 ^-------------------^