분류 전체보기 367

[Network] Socket Programming

한양대학교 - 컴퓨터네트워크 수업을 듣고 정리한 내용입니다. 1. Socket이란 client process와 server process간의 통신이 application program이라면 개발자나 사용자 입장에선 OS내부를 건들이는건 아니다. 그냥 OS에서 제공하는 API를 사용할 뿐! 이처럼 process와 process간 통신에서 사용하는 API를 socket이라고 한다. 그리고 이 API는 OS에서 제공해주는 것이기 때문에 제공해주는 것들 '만' 사용할 수 있다. 2. Socket Type (protocol) 다른 관점에서 생각해보면, OS에는 application layer 아래의 layer들, 즉 transport layer부터 쭉 구현되어 있다. application layer 에서는 이 t..

[Clean Code] Chapter 02. 의미 있는 이름

Clean Code 클린 코드 - 로버트 C. 마틴 저 를 읽고, 해설 강의를 통해 보충 이해한 내용을 정리한 글입니다. 1. 의미가 분명한 이름 약 3개월 전, 나는 이런 코드가 포함된 '나쁜 코드'를 PR했고 INTERVAL1 = int(os.environ.get("INTERVAL1")) INTERVAL2 = int(os.environ.get("INTERVAL2")) ... ... ... if interval_flag == 1: logger.info("There is no messages to be processed yet or no instance to turn on") time.sleep(INTERVAL1) else: logger.info("wait for creating and setting t..

[Clean Code] Chapter 01. 깨끗한 코드

Clean Code 클린 코드 - 로버트 C. 마틴 저 를 읽고, 해설 강의를 통해 보충 이해한 내용을 정리한 글입니다. 기계가 실행할 정도로 상세하게 요구사항을 명시하는 작업, 바로 이것이 프로그래밍이다. 이렇게 명시한 결과가 바로 코드다. 1. Bad Code 1) 나쁜 코드란 성능이 나쁜 코드: 불필요한 연산이 들어가서 개선의 여지가 있는 코드 의미가 모호한 코드: 이해하기 어려운 코드나 네이밍과 그 내용이 다른 코드.. 등 여러 경우가 될 수 있음. 중복된 코드: 비슷한 내용인데 중복되는 코드들은 버그를 발생시킬 가능성이 매우 크다. 음...음..? 엥? 의미도 모르겠고, 이 코드는 또 중복이 되고, 포맷팅도 이상하고,.. 어쨌든 이런 느낌이 드는 코드들은 '나쁜 코드'다. 2) 나쁜 코드를 짜는..

[Git] git submodule

배경 여러 프로젝트(main project)에서 사용하는 공통 모듈(sub project)이 있을 때, main project와 sub project들은 어떻게 git으로 관리할 수 있을까? 이 sub project는 어느 repo에 저장이 되는 것이 좋을까? 이럴 때, sub project가 독립적인 Repo에서 버전관리 되고, 이 모듈을 사용할 프로젝트인 main project들에는 원하는 폴더에 이 sub project 들이 연결되어 있어서 사용할 수 있으면 좋을 것이다. 이런 기능 뿐만 아니라, sub project에 여러 버전이 있을 때, 특정 버전과 이를 사용할 main project의 디렉토리를 연결시켰다가, 또 다른 버전이 준비되었을 때, 손 쉽게 다른 버전으로 변경할 수 있다면 버전 관리..

[Lecture] Deploying Machine Learning Models in Production Week2 - 5. Batch Inference Scenarios, 6. Batch Processing with ETL

Batch Inference Scenarios 이번에는 Online inference가 아닌 Batch Inference에서의 model performance와 resoure requirements에 대해서 알아보았다. Batch Inference는 Prediction based on batch inference is when your ML model is used in a batch scoring job for a large number of data points where predictions are not required or not feasible to generate in real-time. 이런 경우에 사용된다. 그리고, Batch jobs for prediction are usually ge..

MLOps 2021.11.21

[Lecture] Deploying Machine Learning Models in Production Week2 - 3. Online Inference

머신러닝 모델을 만들면 Product에 모델을 배포하고, inference 요청에 대한 응답(모델의 예측값을 사용자에게 응답)을 할 수 있도록 모델 API를 제공해야 한다. 즉, model serving을 해야 한다. 어떤 식으로 모델을 배포할 수 있는지 소개하는 과정의 Week 2: Model Serving: Patterns and Infrastructure을 학습했고, 그중 3번째 주제인 Online Inference와 실습에 대해서 배운 것을 정리해 보았다. Online Inference inference방식으로는 batch inference와 online inference가 있다. batch inference는 말 그대로 데이터를 배치 단위로 인퍼런스 하는 것이다. 이러한 배치 단위의 작업들은 일..

MLOps 2021.11.21

[Lecture] Deploying Machine Learning Models in Production Week2 - 2. Scaling Infrastructure

머신러닝 모델을 만들면 Product에 모델을 배포하고, inference 요청에 대한 응답(모델의 예측값을 사용자에게 응답)을 할 수 있도록 모델 API를 제공해야 한다. 즉, model serving을 해야 한다. 어떤 식으로 모델을 배포하고 운영할 수 있는지 소개하는 과정의 Week 2: Model Serving: Patterns and Infrastructure - Scaling Infrastructure 내용에 대해서 배운 것을 정리해 보았다. Scaling Infrastructure Why Horizontal Over Vertical Scaling Benefit of elasticity: Shrink or growth no of nodes based on load, throughput, lat..

MLOps 2021.11.07

[소프트웨어 장인] 나의 커리어와 프로페셔널로서의 미래는 누구의 책임인가?

소프트웨어 장인 - 산드로 만쿠소 저 의 '4장. 소프트웨어 장인의 태도'를 읽고 정리함과 동시에, 나는 책에서 소개하고 있는 것들을 어떤 방식으로 하고 있는지, 깨달은 바는 무엇인지를 중간중간 적어보았다. 나의 커리어와 프로페셔널로서의 미래는 누구의 책임인가? SW 프로페셔널로 대우 받기를 원한다면 프로처럼 행동해야 한다. 그러기 위해서는 언제/무엇을/어떻게 배울 것인지 스스로 결정하고, 스스로의 발전에 돈과 시간을 투자해야 한다. 1. 내 커리어 주도적으로 이끌기 독서 특정 기술에 대한 서적: 현재의 업무에서 다음에 하고 싶은 업무로 옮겨가기 위해 필요한 특정 기술에 대해서 상세하게 또는 이용 방법을 급하게 알아야 할 때 필요하다. 그러나 배운 가치가 상당히 빨리 떨어진다. 새 버전의 기술이 릴리즈 ..