전체 글 66

[도서리뷰] Release의 모든 것 (feat. 지속 가능한 SW를 위해)

프로젝트 팀은 너무나 자주 운영 상황에서 발생할 문제에 대비하는 대신 QA부서의 테스트를 통과하는 것을 목표로 삼는다. (..중략..) 하지만 테스트만으로는 소프트웨어가 현실에서 사용될 준비가 되었다고 증명하기에 충분하지 않다. - Release의 모든 것, p35 SW 개발자는 기능 요구사항과 QA 테스트에 집중하게 되는 것이 현실이다. 항상 시작할때는 Well Architected SW를 꿈꾸지만, 일정에 쫒기고, 다양한 사람들과 협업(싸움) 을 하다보면 어느새 일정에 맞추어 요구사항을 만족시키는 것이 1차 목표가 된다. 이를 단순히 개발자의 능력부족이나 시간과 비용의 문제로 치부해서는 안된다. 지속 가능한 SW를 위해서는 개발자의 뛰어난 개발능력 외에 많은 것들이 필요하다. 합리적인 Plan과 ..

도서리뷰 2023.12.25

[도서리뷰] 사라진 개발자들 (feat. 프로그래머의 시작)

문제를 가진 사람과 컴퓨터를 연결해 문제를 해결하도록 돕는 역할을 하는 사람이 등장한 것이다. 여섯 여성은 현대 컴퓨터 분야 최초의 직업 프로그래머였다 - 사라진 개발자들, p289 고백하자면 나는 사실 독서를 그리 즐기는 편은 아니다. 최근에 읽은 도서 목록을 살펴보면, 업무적으로 필요한 프로그래밍 기술서들이 대부분이다. 특히나 역사서는 아이에게 읽어준 책 외에 내가 원해서 읽은적이 언제인지 정확히 기억이 나지 않을 정도이다. 하지만 이 책은 상당히 흥미롭게 읽었다. 잊혀질 뻔한 여섯명의 여성 프로그래머의 이야기를 통해, 에니악의 탄생, 초기 프로그래머들의 생활과 그 시절 프로그래밍에 대해서 생생히 느낄수 있었다. 컴퓨터에 어느정도 관심이 있다면, 최초의 컴퓨터인 "에니악" 이라는 이름을 한번쯤은 들어..

도서리뷰 2023.09.22

pytorch EarlyStopping 적용하기

pytorch 에서 EarlyStopping 을 적용해 보자 EarlyStopping 이란? 아래 설명은 Keras에서 제공하는 EarlyStopping Class에 대한 설명이다. 즉, 모델의 학습중에 더이상의 성능향상이 없을 경우 중단하는 기능을 의미한다. Stop training when a monitored metric has stopped improving. pytorch 는 keras와 달리 기본적으로 제공하는 EarlyStopping 클래스가 없다. pytorch-light, pytorch-ignite 등에서 제공하는 패키지가 있긴하나, 기본 pytorch 와 간단하게 연동이 되지는 않는것 같다. 대체적으로 직접 EarlyStopping 클래스를 만들어서 사용하는 경우가 대다수인듯 하다. E..

IT/Machine Learning 2023.06.15

pytorch Classifier 튜토리얼 (feat. sklearn, digits, accuracy)

pytorch 로 classifier 모델을 만들어보자. Data Load sklearn 의 load_digits 함수를 사용해서 데이터를 로딩한다. train, test 데이터를 분리한다 train_loader 및 test tensor를 만든다. from sklearn import datasets from sklearn.model_selection import train_test_split from torch.utils.data import TensorDataset, DataLoader, random_split data = datasets.load_digits() x_train, x_test, y_train, y_test = train_test_split(data.data, data.target, te..

IT/Machine Learning 2023.06.15

Ray tune 를 사용해서 pytorch hyperparameter 최적화하기 (feat. diabetes)

Ray란? 홈페이지에는 아래와 같이 소개하고 있지만, 결국 AI 관련된 Python workload 를 좀더 간편하게 개발 할수 있도록 도와주는 프레임워크이다. Effortlessly scale your most complex workloads Ray is an open-source unified compute framework that makes it easy to scale AI and Python workloads — from reinforcement learning to deep learning to tuning, and model serving. Learn more about Ray’s rich set of libraries and integrations. 대표 기능을 살펴보면 아래와 같다. ..

IT/Machine Learning 2023.06.14

Pytorch Linear/MLP Regression 튜토리얼 (feat. sklearn diabetes datasets)

pytorch 로 sklearn 의 diabetes datasets 을 Regression 해보자. Linear와 MLP Regression 모델을 적용하며, 모델 외에 optimizer, loss function 등은 동일하게 사용하고자 했다. 공통함수 정의 sklearn 의 load_diabetes 함수를 사용해 데이터 Load 데이터 tensor 변환 from sklearn import datasets import pandas as pd import numpy as np import torch from torch import nn data = datasets.load_diabetes() x = torch.from_numpy(data.data).float() y = torch.from_numpy(d..

IT/Machine Learning 2023.06.13

[도서리뷰] 프로덕트 매니저는 무슨 일을 하고 있을까 (feat. 신입 프로덕트 매니저 가이드)

최고의 프로덕트 매니저가 될 필요는 없다. 지금 조직에서 필요로 하는 프로덕트 매니저가 되어야 한다 - "프로덕트 매니저는 무슨 일을 하고 있을까" 프로덕트 매니저의 업무를 명확하게 정의하는 것은 어렵다. 부모의 양육법이 아이의 기질과 주변 환경에 따라 달라지듯이 "프로덕트 매니저"에게 요구되는 역할은 프로덕트의 성격과 조직의 환경에 따라 다르다. 이 책에서는 최고의 "프로덕트 매니저"가 되기 위해 배워야 하는 기술목록을 알려주지는 않는다. 다만, 프로덕트 매니저가 해야 하는 일과 역할에 대한 설명과, 조직에서 필요로 하는 일이 무엇인지 찾을수 있는 방법에 대해서 알려준다. 책에 대해서 자세히 살펴보자 1장, 2장에서는 배경설명과 프로덕트 매니저에 대한 전반적인 소개를 한다. 프로덕트 개발의 기본적인 절..

도서리뷰 2023.02.26

kubecost의 Container Request Right Sizing Recommendation 기능 살펴보기

Kubecost의 강력한 기능중 하나인 "Container Request Right Sizing Recommendation" 기능에 대해서 살펴보자. 이 기능을 통해서 Container의 CPU, Memory 의 request, limit 값을 최적화 할수 있다. Container Request CPU, Memory Kubernetest Pod 는 Scheduling시에 Manifest에 작성된 Request CPU, Memory 만큼의 리소스가 여유있는 Worker Node를 찾ㄴ는다. 여기서 여유가 있다는 의미는 실제 사용율이 아닌 아래 값을 의미한다. (Worker Node의 Spec) - (해당 Worker Node에 배포된 Pod의 Reqeust CPU, Memory의 합) 즉, Containe..

IT/Kubernetes 2023.01.23

로그로 확인한 EKS autoscaler 동작

EKS 에서 필수로 설정하는 Cluster Autoscaler 의 동작을 자세히 살펴보자. 마땅한 소개문서가 없어서 출력되는 로그를 보면서 동작을 분석해봤다. Cluster Autoscaler Logs 확인 Cluster Autoscaler를 정상적으로 설치했다면 아래 명령어로 log를 확인할수 있다. $ kubectl logs -f --tail=100 -n kube-system deployment.apps/cluster-autoscaler 로그를 확인해보면, 10초마다 출력된다. 즉, 10초마다 Node의 상태를 확인하고 scale-up/down 을 판단하여 동작한다. 주기를 변경하고 싶다면, "--scan-interval" 옵션으로 변경 가능하다. (아래 help 참고) Logs 를 살펴보자 전체 로..

IT/Kubernetes 2022.11.13

jq 명령어 설치 및 사용방법 (feat. select, filter, json 필드 추가/삭제)

jq 란? 위 사진은 jq 홈페이지에서 캡처한 화면인데, 간단히 말해서 json 을 다루는 Tool 이다. Linux shell 에서 텍스트나 csv 파일을 다룰때, sed, awk 등을 사용하는데, 이처럼 json 포맷의 데이터를 다루기 편한 기능들을 모아놓은 utility 라고 생각하면 된다. Kubernetes나 AWS 등은 resource의 상태조회시 json 포맷으로 결과가 return 된다. 이러한 결과값 중에서 원하는 attrbute만 추출하거나, 필터링하거나, csv 포맷으로 변경하는 등의 작업을 jq 로 할 수 있다. jq 설치 (install) download 페이지를 참고한다. 기본 명령어 (apt-get install, brew install 등) 을 사용해서 설치한다. Window..

IT/Programming 2022.11.10
반응형