내 첫 회사를 퇴사한 지금 팀장의 입장과 팀원의 입장에서 이 글을 읽으며 많은 생각이 들었다. 0. 들어가며 이번 장은 궁극적으로 ‘책임지는 사람’의 시선으로 이야기를 진행한다. 1. 리더와 매니저 구글은 리더 역할을 두 가지로 구분해 생각한다. 관리자(manager)는 사람을 이끌고 테크 리드(tech lead)는 기술과 관련된 책임을 진다. 2. 우리에게 선장이란 선원이 아무리 많다 한들 선장이 없는 배는 그저 길을 잃은 조각배에 지나지 않다. 소프트웨어에서도 선장이 없다면 엔지니어들은 값진 시간을 허비한다. 3. 관리자와 테크 리드(혹은 둘 다) 모든 팀에서는 리더가 있지만 리더를 모셔오는 방법이 다를 수 있다. 팀에서 경험이 많은 팀원을 리더로 하거나 외부에서 리더를 모셔오기도 한다. 신생 팀의 ..
전체 글
흔한 컴공 출신 개발자입니다. 제가 경험하고 공부하고 아는 것을 적어둡니다.이번 장에서는 특정 ~~ 주의, ~~ 리즘뿐 아니라 다양한 관점에서 우리가 만드는 프로그램이 안전하고 누군가를 무의식적으로 공격하거나 배려하지 않는지에 대해 고민을 할 필요가 있다고 알려주고 있다. 실은 지금까지 프로그램을 만들면 학교 과제나 랩실의 연구 과제, 회사에서 특정 도메인에 대한 테스트 자동화 프로그램을 개발하였는데 이 부분에 대해서도 읽으며 고민을 할 수 있게 되었다. 0. 들어가며 다양한 계층의 사용자를 위한 제품을 설계할 때 엔지니어가 짊어져야 할 책임은 가볍지 않다. 아직 소프트웨어 엔지니어링 분야는 계속해서 개척 중이며 새롭기 때문에 사회적 약자나 다양한 문화관에 미치는 영향을 이해해가는 중이다. 우리는 성장해나가며 깨달은 부분에 대해서 다음 세대의 엔지니어들이 우리보다 나은 결정을 ..
지식 공유에 대한 문화가 없는 팀에서 대략 2년 동안 문화를 만들기 위해 노력을 해보았지만 실패하였다. 이제 2~3년 차 주니어 개발자가 파악하지 못한 이슈가 있었을 수도 있고 더 노력을 했어야 했을 수 도 있지만 결론은 문화를 만드는데 실패하였다. 이직을 앞둔 상황에서 이 장을 읽으며 다시 한번 지난 노력을 생각해보았다. 0. 들어가며 조직에는 각 분야에 대한 전문가들이 필요하다. 전문가는 문제에 대한 답을 스스로 도출할 수 있어야하고 다른 사람의 질문에 대해 답을 줄 수 있어야 한다. 지식 공유를 하기 위해서는 전문가와 더불어 지식을 전파할 메커니즘도 필요하다. 배움의 문화가 자리 잡혀 있어야 하고 이 배움의 문화가 자리잡기 위해서는 사람들에게 모르는 부분을 인정할 수 있도록 돕는 심리적 안전을 제공..
더 뒤에 어떤 내용이 나올지 모르겠지만 2장에서 내가 원하던 내용이 나왔다는 느낌을 받았다. 나도 코드 리뷰를 무서워하며 숨기려 했던 적이 있고 조금 안다고 해서 겸손보다 자만에 가까웠다. 2장의 내용은 이런 개발자들을 위한 내용이다. 1. 불안감 우리 주변 소프트웨어 엔지니어들에 대한 행동 관찰하면 이런 행동이 나타나는 경우가 있다. 코드를 숨긴다. 내가 만든 코드를 숨긴다. SCM히스토리를 제거하거나 숨길 수 있는지 찾아본다. 이 행동들은 불안감에서 비롯되었다. 내 작업물을 다른 사람들이 보고 판단하는 것을 두려워하는 인간의 본성에서 나왔을 것이라 예상한다. 사람은 누구나 비난보다는 칭찬을 받고 싶어 하는데 완성되기 이전의 작업물이라면 더욱 보여주기 불안해 할 수 있다. 문제는 이 불안감은 더 큰 문..
이직 전 책 한 권을 읽고 들어갈까 고민하던 중 요새 이 책이 그렇게 내용이 재미있고 유익하다길래 알라딘 ebook으로 사서 읽고 있다. 읽으면서 내가 느낀 내용을 각 챕터 별로 조금씩 정리를 하고자 한다. 프로그래밍? 소프트웨어 엔지니어링? 우리가 흔히 말하는 프로그래밍은 개발(development) 작업이고 소프트웨어 엔지니어링은 더 포괄적인 의미로 개발, 수정, 유지보수가 들어가 있다. 소프트웨어 엔지니어링은 더 이상 프로그래밍이 아닌 더욱 고차원의 개념이다. 수정과 유지보수는 더욱 고차원적인 개념에서 파생된 부분으로 프로그래밍과 소프트웨어 엔지니어링의 가장 큰 차이를 만들어주는 시간, (규모) 확장, 실전에서의 트레이드오프에서 비롯되었다. 시간이 프로그램에 영향을? 내가 작성을 하던, 하지 않았던..
웨비나를 보며 빠르게 정리한거라 두서 및 오타, 부정확한 단어 사용 있음 주의! 웨비나 제목 : 어느날 갑자기 찾아온 Datadog, DevOps 변화의 시작 주제 : gs리테일에서는 datadog을 실무에서 어떻게 사용하나 (이거 보고 당근마켓 영상도 보면 좋을듯!) agenda 1. intro 2. gs 리테일 서비스 소개 3. gs 리테일 datadog 적용 배경 및 활용 범위 4. 트러블 슈팅을 위한 datadog 실 활용사례 소개 with gs retail 5. qna gs 리테일 서비스 소개 오프라인 쇼핑(gs25, gs the fresh, 랄라블라) 온라인 o2o, o4o (더 팝, 나만의 냉장고, 와인25...) 온라인 커머스, 홈쇼핑 (gs shop, gs fresh, marketfor,..
내 코드 바꿔보기, 근데 함수형을 곁들인 시리즈 함수형 프로그래밍을 조금씩 이름만 듣고 검색만 해보다 이제 회사 코드에 적용을 해보고 있다. 틈틈이 기존 코드 스타일을 함수형 프로그래밍으로 바꾸는 방법을 올려보려고 한다. 간단하게. 최대한 간단하게 올리려고 한다. 시간이 된다면 함수형 프로그래밍의 패러다임과 구조를 정리해서 올려봐야겠다. 우선 다음 코드와 같이 Person이라는 클래스를 정의합니다. public class Person{ private String name; private int age; public Person(String name, int age){ this.name = name; this.age = age; } public int getAge(){ return this.age; } ..
아래 글과 이어집니다. https://developer-youn.tistory.com/72 Product에 Object Detection을 도입하고 싶은데 딥러닝은 하나도 모를때 읽으면 괜찮을만한 글(1) Introduction 필자도 딥러닝을 잘 알지는 못합니다. 근데 팀에서 딥러닝을 이용한 Object Detection을 도입하려고 했고 그때 겪었던 트러블슈팅, 지식들을 공유하고 특히 아무 지식이 없는 상태에서 도 developer-youn.tistory.com 1. 검출이 잘 되지 않습니다. 이제 뭘 더 해봐야 할까요? 자.. 이제 훈련은 다 했는데 생각만큼 검출이 잘 되지 않을 수 있습니다. 실은 이건 정답이 있는 게 아니라 어떻게든 원인을 분석해서 잘 돌파해야 합니다. 학습 데이터로 넣은 데이터..
어디까지나 순전히 제 생각임을 밝히며 틀린 내용일 수도 있습니다 이제 3년 차 개발자이면서 개발을 잘한다고 말할 수는 없는 상태에서 어디 가서 함부로 말하기 위험한 주제일 수도 있지만 개발에 대한 생각을 의식의 흐름대로 작성을 해보고자 한다. 정말 의식의 흐름대로 작성할 거라 갑자기 옆길로 샐 수 있는 점 미리 말한다. 1. 나는 지금 무엇을 개발하고 있지 학부생 때 교수님이 내준 과제, 프로젝트를 하거나 회사에서 제품에 대한 개발을 진행하거나 개인 프로젝트를 진행하는 등 개발자는 다양하지만 항상 개발을 하고 있다.(물론 Paper work가 많을 수 있다. 그저 애도를 표한다. 이 부분 또한 다루도록 한다.) 개인 프로젝트의 경우 본인이 원해서 하는 개발이니 넘어가도록 하자. 그렇다면 타인이 맡긴 개발..

0. 들어가며 https://www.youtube.com/watch?v=FAi7mTyKW60&list=PLQt_pzi-LLfo1sKDaFN1SOuDVP85OwK4M 역시 따라하면서 배우는게 최고다.. 1. Onboarding screen?? Onboarding이라는 뜻 자체가 처음 합류하기 위해 적응하는 과정을 의미한다. 아래 예시처럼 맨 처음 앱을 실행했을 때 요약해서 설명해주는 창을 많이 봤을텐데 그걸 Onboarding screen이라고 한다. 2. 여기서 배운 것들 introduction_screen 3.0.2 패키지 페이지간의 이동 3. 설명 Onboarding screen은 하드코딩할 수 있지만 쉽게 하기 위해 아래 패키지를 사용한다. https://pub.dev/packages/introdu..