본문 바로가기

전체 글

(596)
소프트웨어는 살아 숨쉬는 생태계이다! (feat. 객체 지향의 사실과 오해 - 조영호) # 설계가 중요해? 프로그래밍에 있어 기능 하나를 위해 코드를 짜는 건 어느정도 문법만 뗀 사람이면 가능하다. 하지만 기능을 짤 수 있다는 사실 자체가 곧 좋은 소프트웨어를 만든다는 의미는 아니다. 소프트웨어는 수 많은 객체들이 살아가고 동적으로 상호작용하는 하나의 생태계이다. 이 생태계가 잘 유지되고 매일 매일을 살아가기 위해서는 이 공동체를 떠받들고 있는 근본 구조가 잘 지지해주어야 한다. 이를 프로그래밍의 세계에서는 ‘설계’라고 부른다. 기능을 잘 만드는 개발자라고 해서 반드시 설계를 잘한다고는 말할 수 없다. 애초에 요구하는 역량 자체가 다르고 소프트웨어 개발에 있어 소속되어 있는 범주도 다르기 때문이다. # 소프트웨어 설계의 관점 3가지 객체지향 설계에는 크게 개념 관점(Conceptual Pe..
전세계 회사의 딥러닝 모델은 어떻게 운용(Serving)되고 있을까? 1. 쏘카 딥러닝 모델 Serving 간단 구축기 딥러닝 모델 Serving 간단 구축기 쏘카에서 개발한 딥러닝 기반 차량 파손 탐지 모델을 시스템에 반영하는 과정에 대해 작성한 글입니다. 딥러닝 기반 차량 파손 탐지 모델에 대한 내용이 궁금하시면 Semantic Segmentation을 활용한 tech.socarcorp.kr 쏘카에서는 차량 이미지를 이용하여 차량의 손상 여부를 판별하는 과정을 기존 수작업에서 자동화된 작업으로 파이프라인을 구축하였다. AWS 저장 서비스인 S3에서 차량 이미지 저장과 모델의 weight값을 저장을 담당하고 쏘카 사내 시스템과 모델간의 인터페이스는 AWS Queue 서비스인 SQS를 사용한다. 모델 Serving은 EKS cluster에서 Agent 형태로 진행하고 파이..
전세계 회사의 데이터 엔지니어는 무슨 일을 할까? 1. 쏘카 데이터 그룹 - 데이터 엔지니어링 팀이 하는 일 쏘카 데이터 그룹 - 데이터 엔지니어링 팀이 하는 일 안녕하세요. 데이터 엔지니어링 팀에서 이제 막 신입 1년차를 마친 하디입니다. 요즘 취업 준비하시는 분들에게 ‘데이터 엔지니어가 되려면 어떤 걸 준비해야 하나요?’라는 질문을 종종 받습 tech.socarcorp.kr 쏘카의 데이터 엔지니어링 팀은 전사 통합적인 데이터 저장소를 마련하고 여기에 쌓인 데이터를 지표, 시각화, 보고서의 형태로 타 부서에 제공한다. 이외에도 쌓인 데이터를 기반으로 백엔드 서비스 및 운영을 담당하고 GCP(Google Cloud Service)나 CI/CD 파이프라인 등 데이터를 유용하게 사용하기 위한 인프라 관리도 맡고 있다. 2. 브런치 작가 '마르코'님의 실리콘..
데이터 분석에서의 Narrative Failure ※ 이 글은 Narrative Failure in Data Analysis 를 읽고 번역 및 요약한 글입니다. (데이터 초보입니다. 더 자세하고 정확한 글을 읽고자 하시는 분은 링크로 들어가주세요!) 데이터 분석을 할 땐 내가 혹시 "Narrative Failure"를 경험하고 있진 않은지 점검해보자. "Narrative Failure" 란 데이터 분석 결과가 들려주는 이야기가 청중들에게 의문감과 혼란을 불러일으키는 상황을 말한다. 코미디 은행 강도 영화를 보고 있다고 가정해보자. 강도는 늦은 밤 시간 어두운 은행 안으로 잠입에 성공하였다. 하지만 너무 어두운 탓인지, 강도는 이리 치이고 저리 치이면서 관객들에게 웃음을 선사한다. 관객 중 하나가 문득 "미리 손전등을 가져갔으면 되는거 아냐?" 라고 말하..
공허함에 빠진 이들에게 - 전념(Dedicated) 전념(Dedicated), 나는 개인적으로 이 책이 삶이 공허한 사람들에게 큰 울림을 주는 책이라고 생각한다. 지금껏 우리가 중요하다고 여겨왔던 생각의 큰 틀을 바꿔주는 동시에,열심히 살고 바쁘게 살아가느라 하늘 한 번 쳐다보지 못하는 현대인들을 구원해줄 책이기 때문이다.  # 액체 근대 폴란드 철학자 지그문트 바우만은 근대 사회를 “액체 근대” 라고 불렀다. 바우만은 현대인들이 어느 한 가지 정체성, 장소, 공동체에 스스로 묶어두기를 원치 않으며, 그래서 마치 액체처럼 어떠한 형태의 미래에도 맞춰서 적응할 수 있는 유동적 상태에 머무른다고 말한다. 사람들이 어느 하나의 직업이나 역할, 생각이나 신념, 집단이나 기관에 매달려서 오랫동안 같은 형태로 머무르지 못하는 것처럼, 사회도 우리를 진득하게 품어주지..
데이터과학자가 전세계 사람들과 소통하고자 한다면.. 데이터과학자가 전세계 사람들과 소통하고자 한다면 "I trained a model. What is next?" 이 블로그를 읽어보자. 데이터로 트레이닝한 모델을 만들고 나서 어떤 작업을 해야하는지에 대한 좋은 지침글이다. 저자는 단지 모델을 만들고 "어떤 결과를 도출해 놓았다" 에서 끝나는 것이 아니라, 이 모델을 다른 사람들이 사용하기 편하게 만들고 어떤 문제를 어떤 방식으로 풀었는지를 타인과 공유하는 게 중요하다고 말한다. 간단한 목차는 아래와 같다. 1) GitHub public 계정에 업로드 2) 가독성 개선 3) 도움되는 README 작성 4) weights를 GitHub으로 공개하기 (2GB까진 무료) 5) Library화 하기 6) Google Colab Notebook을 제공하여 손쉬운 모..
개발자에 관한 글 모음 1. 개발자의 인성이 중요할까? => https://brunch.co.kr/@advisor/41 개발자의 인성이 중요할까? 개발자의 인성은 팀의 생산성에 영향을 얼마나 미칠까 | 예전에 지인과 개발자의 인성이 얼마나 중요한 요소일지에 관해서 이야기를 나눈 적이 있었다. 나는 예전에는 개발자의 인성은 크게 중 brunch.co.kr 2. 오픈소스를 함부로 사용하면 안되는 이유 => https://brunch.co.kr/@advisor/11
GCP(Google Cloud Platform)와 MLOps ※ 이 글은 "MLOps: Big Picture in GCP"를 참고하여 작성되었습니다. GCP(Google Cloud Platform)이란 아마존의 AWS, MS의 Azure와 같은 퍼플릭 클라우드 서비스이다. GCP에서는 단순히 저장 공간과 연산 능력을 제공하는 서비스 이외에도 Machine Learning을 위한 MLOps 인프라도 있는데, MLOps의 각 영역에 특화된 여러 개의 서비스는 다음과 같다. 1. GKE(Google Kubernetes Engine) Kubernetes를 한번 wrapping하여 사용자가 Kubernetes의 세세한 설정(how it works)을 신경쓰지 않고도 Kubernetes의 전반적인 동작(what it does)을 제어하는 서비스이다. 2. Kubeflow G..