코딩/프로젝트

[PBL 부트캠프] 1주차

연 동 2024. 1. 21. 17:01

* PBL이란?

Problem-Based Learning, 문제기반학습이라고 한다.

PBL의 개념을 처음 만드신 Barrows & Mayots(1993)은 "문제를 활용하여 학습자 중심으로 학습을 진행하는 교수-학습 방법"이라고 이야기하고 있다.

 

이 글의 작성은 타코비 "매운타코"와 함께합니다. 다음엔 파타코사먹어야징

 

첫날 충격받아서 매일 블로그를 써야겠다 다짐했지만 매일의 진도가 정말 빠르고 이해하기 어려워 모든 수업이 끝나고 작성하기로 마음을 바꿨다.

이번 글에서는 첫 주차때 뭘 했는지 위주로 쓰고, 다음 글에서는 2주차때 뭘 했는지와 결과물, 3번째 글에서는 배운 것들에 대해 정리해보고자 한다!

1탄

https://blog.naver.com/trustyourself1/223316553530

 

0108 국민대학교 PBL교육

# PBL교육이란? PBL은 문제해결학습의 일종으로, 프로젝트를 기반으로 한 교수학습방법이다. # 일정...

blog.naver.com

 

 

# 일정

실제 회사를 다니는 것 처럼 9시부터 6시까지 진행된다.

9시부터 1시간은 스크럼 회의* 겸 강의를 진행하고 프로젝트를 진행하는 데 알아야 할 필수적인 지식들을 배운다.

(스크럼 회의 : 데일리 스크럼이란? 스크럼 방법론에서 쓰이는 용어로, 날마다하는 짧은 회의를 뜻한다. 매일 현재 상태를 업데이트하고 조율하는 것을 의미한다)

매일 10시에 대장님이 퀘스트를 올릴 것이며, 팀끼리 그 퀘스트를 매일 풀어나가는 것이 목표이다.

 

# 첫날 - MSA 및 광고 시스템의 이해

MSA 관련

MSA(Micro Service Architecture) 아키텍쳐는 기존 Monolithic 아키텍쳐의 문제점을 보완하기 위해 만들어졌다.

MSA 아키텍쳐는 하나의 큰 어플리케이션을 독립적인 기능 단계인 서비스 단위로 작게 분할해 여럿으로 만든 구조를 말한다.

- MSA의 장점?

    - 하나의 서비스를 여러 곳에서 재사용할 수 있다.

    - 하나의 서비스에 장애가 발생해도 다른 서비스에 끼치는 영향이 제한적이기 때문에 전체 서비스의 안정성이 높아진다. 

    - 각 서비스별로 유리한 개발 언어를 선택해 독립적으로 개발할 수 있다.

    - 각 서비스의 시스템 구조 파악 및 분석이 용이하다

 

- MSA의 단점?

    - 전체적인 설계 난이도가 높다.

    - 내부 시스템 서버 간 API통신이 필요하여 통신비용 및 지연 이슈가 발생한다.

    - 전체 서비스의 통합 테스트가 어렵다.

 

이외에도 효율적인 MSA 운영을 위해서 꼭 필요한 미들웨어는 무엇이 있을까요? / 어떻게 구현하는 게 신속 정확, 그리고 현황 파악을 할 수 있을 지 정리해 봅시다. 등 다양한 질문에 대한 답변을 정리했다.

 

광고 시스템 관련

광고를 위한 서버로는 크게 AD Server, Fraud Detection Server, Global AD Management Platform Server 등이 있다.

client에게 광고를 보여주기 위해 DB에서 광고 데이터를 가져오는 AD Server,

과도한 클릭(HIT) 등 올바르지 않은 유저의 활동 데이터를 수집해 분석 DB에 넘기는 Fraud Detection Server,

광고주로부터 광고를 받고, 분석 정보를 제공하는 GGlobal AD Management Platform Server에 대한 개념을 이해하고 노션에 정리하였다.

 

# 둘째날 - 마이크로함수화 (문장으로 바꾸기)

전날 발산으로 표출한 아이디어를 기능형 문장으로 만들고

기능형 문장은 → 세부 문장(시퀀스 다이어그램 : 선과 도형으로 이루어진 도식화된 그림)으로 다시 바꾸기

클래스 단위로 역할을 정의한다고 생각하면 된다.

Class ADServer = () =>{각종 메소드들}

클래스는 두루뭉실한 한 문장으로 시작하기, 메소드들은 모두 구체적인 문장들로, 클래스의 한 문장에 수렴해야 한다.

이후 계속 질문을 던지면서 최대한 구체적으로 모든 문장을 완성하면 된다.

 

# 셋째날 - 시퀀스 다이어그램 그리기

 

전날 마이크로함수화로 구체적으로 작성한 글을 시퀀스 다이어그램으로 만든다.

시퀀스 다이어그램

이것도 만들면서 정말 이해가 가지 않는 부분들이 많이 있었는데.. 어찌저찌 잘 했다!

012
생각만으로는 이해하기 어려워서 집에가서 직접 그려봤다!

이번 수업을 들으며 확실하게 느낀 점은, 나는 혼자서 생각만으로는 쉽게 이해하지 못하는 사람이구나를 깨달았다ㅋㅋㅋ 평소처럼 머릿속으로만 생각하고 다음날 갔으면 뒤죽박죽이 되어 정말 쉽지 않았을 텐데, 이렇게 직접 그려보면서 이해하니 확실히 효율이 더 좋아진 것 같다. 물론 아직 많이 부족하다😅

# 넷째날 - 그로스 해킹 및 데이터 정규화

먼저 다른 서비스를 분석하며 그 서비스에서 나타나는 데이터와 데이터들의 이동에 대해 알아내었다.

우리 팀은 광고가 주 수입원이 되는 서비스를 목표로 찾아보기로 해 모 뉴스 포털 사이트를 선정하고 그 포털에 나타나는 모든 광고들을 찾아보았다. 약 6개의 서로 다른 광고들이 있었는데, 전부 커서를 올려보고, 눌러보고, 상호작용을 해보는 등 사용자 관점에서 느낄 수 있는 모든 경험들을 체험해 보았다. 그 중 쿠팡의 광고가 정말 재밌었는데, 광고 위에 하나의 겹이 씌워져 있고 그걸 커서로 드래그해서 치우면 안에 들어있던 상품의 정보가 나왔다. 전부 드래그하면 그 상품 링크로 이동한다는 것도 정말 자연스럽게 광고 링크로 유도하는 것이 대단하다고 느꼈다.

 

# 다섯째날 - 데이터 정규화

전날 분석했던 모든 광고들이 어떻게 작동하는지에 대해 분석하였고, 그걸 토대로 ERD를 만드는 작업을 하였다.

ERD를 만드는 과정은 정말 쉽지 않았는데, 내가 한번도 다뤄본 적이 없어서 더더욱 그랬던 것 같다. 이전에 블로그를 만들었을 땐 비관계형 데이터베이스(NoSQL, MongoDB를 사용했었다!) 였던 터라 그냥 필요한 자료가 있으면 하나의 객체에 전부 때려박는 형식으로(반성합니다..) 만들었었다. 그래도 나름 ERD에 대해 이해한 점심시간 이후로는 속도가 붙어 정말 고차원적인 ERD를 만들었다!

이랬는데 요래됐음당ㅋㅋ

 

처음엔 정말 어려웠지만 다른 팀들이 하는 과정도 많이 지켜보고(도움을 많이 받았다), 팀원분들께 많이 물어봐 따라갈 수는 있게 된 것 같다. 오늘이 ERD 테이블을 처음으로 만져본 날이었음에도 불구하고 나름 잘 한 것 같아 만족스럽다.

문제 해결을 위한 고민을 정말 많이 해 화이트보드의 절반을 우리 메모로 채워둔 기염을 토하기도 했다. 잘 이해가 되지 않는 부분에 대해서는 데이터의 이동 과정을 하나하나 써보며 이해하기도 했고, 문제 해결을 위해 머릿속에 떠오르는 아무 생각들을 전부 적어두고 천천히 보기도 했다. 덕분에 머리가 정말 아팠다ㅋㅋㅋ

 

 

# 첫주차 후기

일주일 내내 집에 제시간에 들어가본 적이 없는 것 같다. 그럼에도 이해가 되지 않는 부분들이 많아 새벽까지 살펴보다 잠에 들었었다. 덕분에 매일 오가는 지하철에서 1시간 내내 자다 역에 도착해 비몽사몽 깬 상태로 뛰어나간 적이 많았다ㅋㅋ(심지어 마지막 날엔 한정류장 더 갔다)

그럴 정도로 이 수업이 정말 재미있었고, 코딩에 대한 나의 생각을 한 차원 높게 만들어 준 것 같아 매우 만족한다. 현직에 매우 오래 있으신 베테랑 대장님께서 해주시는 말씀들 덕분에 생각을 많이 할 수 있게 되었다. 또한 지난 방학때 만들었던 블로그에 대한 평가도 받았다는 점에서 정말 감사했다. 부족한 부분들이 많이 있음은 알고 있었는데, 직접 베테랑이 하나하나 지켜봐주시고, 이럴 땐 어떡할래? 등의 질문도 해주셔 많이 배웠다. 물론 그 배운 부분을 만들어 나가는 일이 쉽진 않겠지만..ㅋㅋㅋ

또한 프로그래밍을 하면서 에러가 발생한 부분들은 전부 캡쳐해서 해결한 과정을 전부 기록해보라는 말씀도 해주셨다. 그렇지 않으면 내 코드를 어디서 배껴왔는지, 남이 짜준 코드를 가져다놓고 '내가 했어요'라고 한 건지 알 수가 없다고.. 또한 그런 과정들을 모두 기록해야 내 기억에도 오래 남지 않겠나!!

 

 

암튼 이제는 2주차까지 모두 진행이 되었고 다시 야인이 되었다. 다음 주 떠나는 여행 전에 이 모든 것들을 정리하고 내껄로 만들어야 할텐데.. 시간이 너무 부족하다ㅠ

화이팅!

728x90

'코딩 > 프로젝트' 카테고리의 다른 글

npm WARN deprecated tar@2.2.2 에러  (0) 2024.03.21
광고 중개 서버 개발  (0) 2024.02.29
월간 신천팟  (3) 2024.01.15
월간신천팟(2)  (0) 2023.11.16
월간신천팟(1)  (1) 2023.11.16