머글끼니 프로젝트 회고 

잘했던 점

  • 개발 계획에 맞추어서 개발을 진행했습니다.
  • MLOPs를 경험할 수 있는 프로젝트였습니다.
  • 논리적인 구조를 이루기 위해 노력했고 어느정도 성공했습니다.
  • 모델 성능이 유의미하게 나왔습니다.

시도 했으나 잘 되지 않았던 것들

  • 하둡을 사용해서 데이터베이스를 구축하려 했지만 실패한 점이 아쉬움으로 남습니다.
  • 빠르게 서비스를 하고 피드백을 받아보려 했으나 조금 늦어졌습니다.

아쉬웠던 점들

  • 지역이 서울시로 한정된 부분이 아쉽습니다.
  • UI가 조금 부족한 것이 아쉽습니다.
  • Cold-Start 유저에게 더 다양한 추천을 하지 못한 것이 아쉽습니다.

개인 Wrap up 리포트

  • 이번 프로젝트에서 나의 목표는 무엇이었는가?
    1. 실제 유저들의 데이터 수집부터 추천, 서비스 배포를 통해 실제 환경에서 가능한 추천 시스템의 전체 사이클을 경험하는 것
    2. 유저에게 설명할 수 있는 추천 시스템을 만들기
  • 나는 내 학습목표를 달성하기 위해 무엇을 어떻게 했는가?유저에게 설명가능한 추천시스템을 만들기 위해 팀원들이 만들어준 모델 결과에 설명을 첨부하는 과정을 진행했습니다. 프로젝트 서빙까지의 시간 부족으로 nlp를 기반으로 한 유저 리뷰 데이터 감성 분석과 추천의 이유를 타당하게 설명하는 과정을 진행하지 못한 점이 아쉬움으로 남습니다.
  • 데이터 수집부터 모델 학습, 서비스 배포까지 모든 절차를 수행하기 위해서는 모델 외에도 데이터 수집, 웹 페이지 개발, 서비스 환경 구축이 필요했습니다. 이번 프로젝트에서 데이터 수집, 웹 페이지 개발, 서비스 환경 구축 개발을 주로 진행했습니다.
  • 전과 비교해서, 내가 새롭게 시도한 변화는 무엇이고, 어떤 효과가 있었는가?
  • 추천 모델 개발 외에 전체 서비스 배포를 주로 생각하며 개발했습니다. 추천 모델 학습 외에도 추천 시스템을 추천하기 위해서는 모델 추천 결과와 비슷하게 다양한 개발 과정을 경험했습니다.
  • 마주한 한계는 무엇이며, 아쉬웠던 점은 무엇인가?
  • 주어진 시간 안에 배포를 경험해보기 위해 웹 페이지와 서버 개발에 시간을 소비되어 스스로 고민했던 점들을 프로젝트에 적용하지 못한 점이 아쉬움으로 남습니다. 한정된 기간 안에 개발을 진행하기 위해서 타협했던 부분들이 아쉬움으로 남습니다.
  • 한계/교훈을 바탕으로 다음 프로젝트에서 스스로 새롭게 시도해볼 것은 무엇일까?
    1. 프로젝트에 적용된 airflow 실습과 실험
    2. 현재 데이터를 기반으로 추천 모델 공부

프로젝트 관련 링크

Git:  https://github.com/SeongJaeBae/Recommend_Serving_BoostCamp

 

GitHub - SeongJaeBae/Recommend_Serving_BoostCamp: level3_productserving-level3-recsys-04 created by GitHub Classroom

level3_productserving-level3-recsys-04 created by GitHub Classroom - GitHub - SeongJaeBae/Recommend_Serving_BoostCamp: level3_productserving-level3-recsys-04 created by GitHub Classroom

github.com

구글 슬라이드 :https://docs.google.com/presentation/d/1LzMaXzlGS6LU0P8DhYBDtIHtQy2xCXFV12woF-199yg/edit#slide=id.g20697d02fb6_0_1

 

최종프로젝트

안녕하세요 RecCar조의 발표자 황선태 입니다. 머글끼니 RECCAR조 RecSys - 04 RECCAR | 김성연 배성재 양승훈 조수연 홍재형 황선태

docs.google.com

Youtube : https://www.youtube.com/watch?v=x_vlYl8tzi4&feature=youtu.be 

 

랩업 리포트 : https://scythe-belly-899.notion.site/2207107097d24b9e81441b82c1bfb28b

 

랩업리포트 - 머글끼니

Wrap-Up Report, RecSys04 Team RECCAR

scythe-belly-899.notion.site

부스트캠프 4기 Recsys트랙 후일담

Recsys를 처음으로 접했고 데이터 분석, 추천 모델 등을 학습하며 성장할 수 있는 좋은 기회였다.

경연대회와 프로젝트, 그리고 멘토님과 모든 과정을 함께한 동료 캠퍼들

앞으로도 발전 할 수 있는 많은 자산을 얻은 기간이었다.

 

3번의 대회에서 꼴등, 2등, 2등을 하면서 많은 시행착오를 했고, 어떻게하면 모델 성능을 개선할 수 있을지도 알 수 있었다.

협업과정에서 Notion, Git 을 사용해서 수시로 내용을 공유하며 단기간에 성장할 수 있는 기회임에 틀림없었다.

 

매주 따로 진행하던 '아무거나 피어세션' , 주도적으로 기획했던 오프라인 모임, 블로그에 정리하기(2차 대회 후 프로젝트에 돌입하면서.... 잊어버렸다....ㅜㅜ) 등 개발자로서 긍정적인 변화를 하려고 많은 노력을 했다.

그 결과 내부에서 '소통대마왕상' 이라는 소소한 상도 수상하며 적극적으로 동료 캠퍼분들과 소통하려 했던 것이 보상을 받은 것 같았다.

개인정보 모자이크...

 

추천시스템이란 트랙은 CV,NLP 보다는 연구보다는 도메인에 맞는 활용이 중심이 되는 분야라는 생각이 든다.

덧붙여서 연관된 취업분야로는 데이터관련 직무를 뽑는 수 많은 기업들이 대상이 될 것 같다.

그래서 각 도메인에서 Feature Engineering했던 과정과 데이터 분석을 통해서 아이디어를 얻는 과정 등이 취업에서 직관적으로 도움이 많이 되는 것 같다. 또한 모델을 통해서 학습 과정에서 시계열, 통계형 데이터를 가지고 활용하는 법을 배울 수 있었다.

 

현재는부스트캠프를 끝내고 취업을 준비하면서 내가 부족했던 점과 필요한 점을 확인하고 보충하며 미래를 준비하고 있다. kaggle 대회를 준비하면서 이전 대회에서 진행했던 방법외에 다양한 변화들이 있느데 이 변화내용은 추후에 다시 정리해 보고자 한다.

https://www.kaggle.com/competitions/predict-student-performance-from-game-play

Movie Recommendation대회 회고

잘했던 점

  • 단순히 대회에서 순위를 올리는 것보단 더 깊이 이해를 하면서 실력을 증진하는 부분에 집중했습니다.
  • 베이스라인을 개선하거나, 논문을 읽고 모델을 구현해보는 등 기본에 충실한 방법으로 성과를 냈습니다.
  • 페어 코딩으로 서로 자세히 피드백을 나누며 코드를 이해하고 개선하는 방식을 이용해보았습니다.
  • 이전 대회에서의 경험을 바탕으로 보다 수월하게 Git Branch 전략을 사용했습니다.

시도 했으나 잘 되지 않았던 것들

  • 이번 대회에서는 강의와 미션을 깊이 이해하고 적용해보는 것이 목표였는데, 그것들로 성능 개선을 하지는 못했습니다.
  • 페어 코딩 등의 활동에 더 몰입하려다 보니 모든 팀원들 간에 개인 상황 공유가 원활하게 되지 않았습니다.
  • 기본에 충실하는 쪽으로 목표를 기울이다 보니, Movie Recommendation은 외부에 참고할 만한 자료가 매우 많은데도 불구하고 여러가지를 탐색하지 못했습니다.

아쉬웠던 점들

  • 팀원 간의 개인 상황 공유는 지난 대회에서도 아쉬운 점으로 삼았던 부분인데, 이번 대회에서도 크게 개선하지 못했습니다.
  • 대회가 반복되다 보니 체력적인 문제로 깊게 몰입하지 못했습니다.

개인 Wrap up 리포트

  • 이번 프로젝트에서 나의 목표는 무엇이었는가?

Kaggle에서 movie lens 데이터에 SOTA를 달성한 모델을 바탕으로 대회에서 성과를 내고자 했습니다. 추천 시스템 논문에서 주로 쓰이는 데이터였기 때문에 참고할 수 있는 최신 모델들이 많았기 때문입니다.

  • 나는 내 학습목표를 달성하기 위해 무엇을 어떻게 했는가?

최근 좋은 결과를 낸 모델들은 Auto Encoder 개념을 사용한 논문들이 많았습니다. 이를 이해하기 위해 Auto Encoder를 사용한 Auto Rec을 구현을 해보았습니다. 이후 EASE 모델, glocal-K 모델을 적용하며 효과적인 현 데이터에 효과적인 모델을 찾아보았습니다.

  • 나는 어떤 방식으로 모델을 개선했는가?

다양한 모델을 실험해보며 각 모델의 평균적인 성능을 먼저 확인했습니다. 평균적으로 가장 성능이 우수했던 EASE 모델 하이퍼파라미터 튜닝을 하여 모델 성능을 개선했습니다.

  • 전과 비교해서, 내가 새롭게 시도한 변화는 무엇이고, 어떤 효과가 있었는가?

팀원 한명과 함께 간단한 Auto Encoder 모델을 페어코딩으로 구현했습니다. 함께 코드를 작성하며 내가 작성하는 코드를 설명하는 과정과 팀원이 작성하는 코드를 이해하는 과정을 실시간으로 진행했습니다. 이를 통해 다른 사람이 이해하기 쉬운 코딩을 하는 법을 생각해보았습니다.

  • 마주한 한계는 무엇이며, 아쉬웠던 점은 무엇인가?

다양한 실험을 하면서 매번 성능 개선을 할 수 없다는 점을 알게 되었습니다. 실험마다 모델의 성능 개선 실패 이유를 고민하며 개인적인 추론을 통해 결론을 내었지만, 모든 실험의 정확한 실패 사유를 알지는 못한 점이 아쉬움으로 남습니다.

  • 한계/교훈을 바탕으로 다음 프로젝트에서 스스로 새롭게 시도해볼 것은 무엇일까?

다음 프로젝트는 아이디어, 평가 지표, 추천 결과물 등 모든 것이 정해지지 않았습니다. 이를 통해 사용자에게 유용한 추천은 무엇인지에 대해서 고민해보고 그 고민을 프로젝트에 녹여보고자 합니다.

개인 회고

앞으로 있을 최종 프로젝트에서 많은 것을 시도할 수 있도록 화이팅~!

 

대회 결과 및 참고 링크

대회 결과 : Public 2등 / Private 2등

Git repository : https://github.com/SeongJaeBae/Movie-Recommend-Project-BoostCamp

프로젝트 랩업 리포트 : https://www.notion.so/dbc500ef64ec4e0aad57198a5cfa4a49

 

6강 Temporal and Sequential Models

계절에 따라, 유행에 따라, 아니면 단순히 사용자의 취향 변화에 따라 얼마 전 유행했던 아이템의 인기가 금세 시들기도 하고, 또 반대로 뒤늦게 "역주행"을 하는 아이템이 생기기도 합니다. 그만큼 추천시스템에서 시간은 중요하게 작용하는 요소 중 한개입니다.

이번 강의에서는 추천 시스템에서 다루는 Temporal dynamics에 대해서 알아보는 시간을 갖도록 하겠습니다. 먼저 temporal dynamics가 실제로 사용된 케이스 스터디를 통해 temporal dynamics가 무엇이고 어떻게 모델링되는지 알아봅시다. 그리고 시간을 직접 반영하는 모델과 순서를 고려한 모델의 차이와 각 모델의 특징에 대해 살펴봅시다. \

 

FPMC (Factorized Personalized Markov Chains)

Markov property : 다음 상태는 그 직전의 상태에만 영향을 받음

-> 이렇게 되면 마지막거에서 이어지는 10개를 추천하는게 아니라 중간에서도 짤라서 추천하는 방식의 이번 대회와는 맞지 않는다. 따라서 다른 방향의 개선을 생각해 보아야한다.

1. Markov property를 사용하려면  이거로 5개추천하고 나머지 데이터 셋에서 제일 많이 보았던 장르 유형에서 Markov property 로 우선 되는 것들 중 봤던 영화 제외하고 상위 5개 추천해서 앙상블하는 거로 하면 좋지 않을까?

 

 

TransRec

이전 데이터 * 유저 데이터 => 다음 데이터

이것도 마지막 데이터를 기준으로 연속해서 추천해 주기 때문에 중간에서 짜른 데이터가 50%가 들어가는 평가지표에 적합하도록 변화가 필요하다.

 

7강 Temporal and Sequential Models(2)

6강에서 배운 Sequential Recommendations 내용에 이어, 이번 강의에서는 딥러닝을 사용한 Sequential Recommendation 모델에 대해 알아보는 시간을 갖도록 하겠습니다. 먼저 자연어처리 분야의 방법론과 Sequential Recommendation의 유사점과 Sequential Recommendation에 RNN을 사용한 모델에 대해 살펴봅니다. 그리고 Transformer를 Sequential Recommendation에 사용한 모델에 대해 리뷰합니다. 마지막으로 Self-supervised Learning 등의 방법론을 활용한 모델에 대해 살펴봅니다.

 

이 강의에서는 앞에서 생각했던 것과 같이 Fresshness 와 diversity를 어떻게 밸런스 있게 할 수 있을지를 RNN으로 전체 데이터를 고려하는 방향으로 제시한다. WHY? Markov property의 가정으로 인해 user의 사용 기록을 모두 반영 할 수 없기 때문이다.

-> RNN 으로 이전 데이터를 모두 고려

 

NARM

global session(전체 데이터) + local session (최근 데이터)

 

Transformer-based Sequential Recommendation

SASRec

 

S3-Rec (Self-Supervised Learning for Sequential Recommendation with Mutual Information Maximization)

추천 시스템의 데이터는 item sequence 뿐만 아니라 다양한 side-information을 포함하고 있으므로, 이를 효과적으로 활용하는 방법이 필요하다. Self-supervised learning을 활용하여 이러한 정보를 반영하는 효과적인 representation을 찾아보자.

 

Self-Supervised Learning

 - Self-supervised learning은 raw data로부터 representation을 학습하는 방법론

기본적으로 BERT4Rec의 구조와 유사하나, 총 4개의 auxiliary loss들을 활용하여 item-attribute, sequence-item, sequence-attribute, sequence-sequence 관계를 모델링함

 

Contrastive Learning

다양한 augmentation을 거쳐서 얻어진 augmented example들이 같은 example로부터 유래했는지를 비교-대조하면서 학습을 수행함

CL4SRec (Contrastive Learning for Sequential Recommendation)

Sequence를 augmentation한 뒤, contrastive learning을 통해 item representations 학습

 

오늘의 할일

Auto Encoder에 간단한 알고리즘을 적용해서 light하게 예측하는 모델을 구현해보고 참고할 논문을 찾아서 제출

1. auto encoder 간단 구현

AutoRec: Autoencoders Meet Collaborative Filtering

Collaborative Denoising Auto-Encoders for Top-N Recommender Systems

Variational Autoencoders for Collaborative Filtering

Ease 모델

https://arxiv.org/pdf/1905.03375.pdf

2.sas rec 논문 리뷰 - Self Attention + AE

3. movie rec 1M, 10M Sota 논문 훝어보면서 빠르게 주요한 요인 파악하기

4. 3번을 순차적으로 적용해보아서 결과 확인하기

개인 회고

.

DKT 대회 회고

Keep (잘한점)

  • Public Score와 Private Score 모두 2등으로 순위가 많이 바뀐 대회에서 robust한 모델 구축에 성공했습니다.
  • 완벽하진 못했지만 Git Branch 전략을 효과적으로 사용했습니다.
  • Boosting 기반, Sequential 기반 그리고 Graph 기반 다양한 모델을 시도 했습니다.
  • 모델 고도화 시간을 충분히 확보하여 순위를 올릴 수 있었습니다.

Problem(실수)

  • 유사한 Riiid 대회에서 수행한 딥러닝 전략들을 이용해 가시적인 성과를 내지 못했습니다.
  • 서로의 코드를 잘 이해해보자는 목표로 pair를 이루어 진행했는데 효과가 크지 못했습니다.
  • Git 이슈와 프로젝트 기반 개인 상황 공유를 시도했으나 끝에 가서는 조금 흐지부지 됐습니다.

Try (계획)

  • 추천 외부 대회가 있어 온전히 대회에 집중하지 못했습니다.
  • 논리적인 접근이 조금 부족했습니다.
  • 성과를 위해 너무 마음을 급하게 먹어 모델링에 온전히 몰입하지 못했습니다.
  • 딥러닝 모델을 low-level부터 구현해보지 못했습니다.

개인 Wrap up 리포트

  • 이번 프로젝트에서 나의 목표는 무엇이었는가?
  1. 협업 방식의 개선으로 6명의 인원이 효율적으로 프로젝트를 수행하며 팀의 모든 과정을 공유하고 싶습니다.
  2. 프로젝트를 수행하면서 데이터 엔지니어가 필요한 능력을 개발하고 싶습니다.
  3. 대회의 목적에 맞게 높은 순위를 기록하고 싶습니다.
  • 나는 내 학습목표를 달성하기 위해 무엇을 어떻게 했는가?

6명의 인원이 효율적으로 협업을 진행하기 위해 팀 내 Git flow branch 전략, Git project와 issue 를 기반으로 한 적극적인 공유, 2명이 짝을 이루어 하나의 실험 진행, 3~5일 단위로 실험 인수인계 등을 했습니다. 이를 통해 팀으로 같이 성장할 수 있는 협업을 경험했습니다. 저는 Git 관리를 통해 팀원 간 실험 내용을 확인할 수 있도록 진행했습니다.

부스팅 모델에서 Feature Engineering을 통해 평가 지표 점수를 올리는 일을 했습니다. 이 과정에서 XG, Cat, LGBM 모델의 성능 개선을 방법을 학습할 수 있었습니다.

높은 순위를 향해 많은 실험을 하였으며 최종적으로 1등을 달성하지는 못했지만 Public, Private 2등을 달성하며 순위 변동이 많이 발생했던 이번 대회에서 Robust한 모델을 개발했습니다.

  • 나는 어떤 방식으로 모델을 개선했는가?

부스팅 모델에 필요한 Feature Engineering을 진행했습니다. 유저와 아이템의 수준을 평가하기 위한 ELO Rating Feature, time 을 기준으로 한 문제 풀이 시간 Feature 생성 등 모델 성능 개선을 중점으로 실험했습니다.

그래프 모델에서 그래프에 사용되는 Feature를 새로 만든 지표들을 넣어보며 개선하려고 시도를 했습니다.

  • 전과 비교해서, 내가 새롭게 시도한 변화는 무엇이고, 어떤 효과가 있었는가?

Git을 활용한 적극적인 공유를 통해서 같이 성장하고 협업하고자 했습니다. Git flow branch 전략, Git Projects의 칸반 보드를 통한 일정 관리, Git Issues 기반 작업 진행을 진행하며 각자 팀원의 실험과 결과를 편하게 확인하는 것이 목표였습니다.이전보다 수월하게 Git을 사용해서 협업을 이루었고, 이를 통해서 실험 인수인계도 수월하게 진행할 수 있었습니다. 이러한 협업 전략이 Public, Private 2위의 결과를 얻을 수 있는 배경이 되었습니다.

  • 마주한 한계는 무엇이며, 아쉬웠던 점은 무엇인가?

Validation과 리더보드의 Public 점수의 차이를 보고 public, private의 편향이 있을 수 있다는 생각을 했지만 validation 점수가 잘나왔던 실험을 믿지 못했던 점이 아쉬움으로 남습니다.

또한, 라이브러리가 아닌 논문을 바탕으로 공유된 코드를 이번 대회에 맞게 적용해서 돌렸지만, 아쉽게도 좋은 성능을 달성하지 못 한 점이 아쉬움으로 남습니다.

  • 한계/교훈을 바탕으로 다음 프로젝트에서 스스로 새롭게 시도해볼 것은 무엇일까?

새로운 논문을 바탕으로 논문을 구현하거나 구현된 Git을 참고하여 다음 프로젝트에 적용해보고 그 모델의 성능을 대회 SOTA 수준으로 개선하는 것이 목표입니다.

 

개인 회고

대회를 마치기 2주 동안은 블로그에 정리하는 과정을 소홀히했다.

노션에 정리하거나 git을 사용하는 과정을 중시하다보니 블로그까지 신경을 쓰지 못한 점이 아쉬움으로 남는다.

현재 Moive Recommendation 대회가 앞으로 약 4주간 예정되어있다.또한 최종 프로젝트 역시 다가오고있다.

앞으로 예정되어있는 일들이 있는 거에 감사하며 다음 단계로 나아가기위해 했던 시도들을 정리하자.

 

대회 결과 및 참고 링크

대회 결과 

리더보드 auroc 순위
Public 0.8362 2위
Private 0.8549 최종 2위

git repository : https://github.com/SeongJaeBae/DKT-Project_BoostCamp

랩업 리포트 : https://scythe-belly-899.notion.site/2e827889040240cfad79c4879bc6c3ad

GKT

관련 블로그

 

그래프 활용한 노드 간 관계 분석기술로 고도화된 지식추적모델 GKT(Graph-Based Knowledge Tracing)

By 김정훈

medium.com

 

max_sequence list 최근 거로 제한 걸어서 batch 내 memory 소모 줄이기 -> uesr 마다 memory 사용 감소로 더 빠르게 학습 and 더 큰  batch 사이즈 학습 가능 + train set validation set을 합치고 마지막 거만 validation으로 넘겨서 모든 데이터를 학습에 활용 -> 기존에 돌렸던 log 와 비교해야 할 듯

그래프 모델에서 존재하는 max_sequencelist의 분포값을 확인했다. 어느 정도를 max로 생각해두고 상위 25퍼센트 or 600 선에서 정리해야 할 듯하다. 메모리가 너무 많이 들어서 batch size를 크게 하지 못하는현상이 맘에 안들어서 바꿔야할 듯

 

현재 batch size와 max_seq_len을 조절하여 1 epoch에 1시간 정도로 세팅을 해두었다.

오늘 15 epoch 정도로 돌려보고 상황을 체크해봐야 할 듯 하다.

 

+) 현재 이 모델은 predict를 진행할 때 해당하는 user의 문제가 3개 이상이어야 제대로 predict 결과값을 알려준다.

따라서 마지막 3개 값 정도를 추출해서 사용하였는데 이렇게 사용하는 것과 user를 random split 해서 유저의 전체 데이커 sequence를 넣었을 때와의 차이점도 확인해야 할 필요가 있어보인다.

리더보드와 validation 스코어를 세심하게 체크하면서 모델 실험을 진행해야 할 듯 하다.

 

+) 이렇게 커스텀을 할 수 있도록 선발대로서 많은 역할을 해준 승훈이와 재형이에게 박수를 치고 싶다

Tmux 

터미널을 켜두고 있지 않더라도 모델이 학습할 수 있도록 tmux를 사용해서 모델을 돌렸다.

 

tmux 세션 시작

$ tmux new -s [세션명]

 

현재 돌아가고 있는 세션 확인

$ tmux ls

실행중인 세션명을 통해서 접근 할 수 있다.

$ tmux attach -t [세션명]

 

출처 : TMUX 사용법

 

Tmux 사용법 - 중단없이 딥러닝 학습하는 방법 · ML감자

Tmux

pebpung.github.io

 

 

오늘의 회고

GKT 실험 세팅을 하기위해서 2일 정도 걸렸던 것 같다. 

CV,NLP 에서 사용하는 모델처럼 무겁다 보니깐 내가 원하는 양식으로 돌리기 위해서 체크하는 과정에서 시간이 불타서 사라졌다. 다행히도 원하는대로 돌릴 수 있게되어서 결과를 확인 할 수 있어서 다행이다.

중간 중간에 변성윤 마스터님께서 추천해주었던

'출근했더니 스크럼 마스터가 된 건에 관하여' 책을 읽었다. 전에 '함께 자라기' 를 읽으며 협업에 대해서 고민했던 것보다 디테일하게 스크럼 이론에 대해서 알려주어서 흥미롭게 보고있다. 보고 난 후 스크럼에대해서 정리를 해두어서 향후 부캠 최종 프로젝트에 적용해서 PM과 비슷한 스크럼 마스터 역할도 경험해 보면 좋을 것 같다.

서버가 돌아가는 동안에는 lightGCN 모델을 보면서 기존에 제공된  baseline graph 기반 모델은 어떻게 돌아가는지 확인해보고자 한다.

+) 각자 돌아가면서 모델을 학습하다보니 내가 했던 부분에 이어서 개발하는 캠퍼도 있고, 다른 캠퍼가 진행했던 진행사항에 내가 추가로 개발을 하기도 하는 경험이 신선하고 재미있어서 다행인 것 같다.

 

애자일 개발이 처음인 내가 출근했더니 스크럼 마스터가 된 건에 관하여

 

싸니까 믿으니까 인터파크도서

생년월일 1975 저자 신상재는 일본 기술서 번역가이자 ‘번역하는 개발자’ 유튜버다. 삼성SDS에서 소프트웨어 아키텍트로 활동하다가 애자일 코어 팀 ACT에 합류하였다. 기술보다는 사람이라는

book.interpark.com

 

 

+ Recent posts