2주차 WIL (2025.01.13~2025.01.17)
[이번주에 한 실습]
1) 타사의 K-Digital Training 교육 커리큘럼 분석
2) 스파르타코딩클럽 ' 개발 왕초보 탈출! 웹개발 종합반' 강의 수강 및 개선안 도출
강의 사이트 : https://spartacodingclub.kr/product/46
코딩이 처음이어도 쉽게 배우는 웹개발 A to Z | 스파르타코딩클럽
코딩이 처음이어도 쉽고 재밌게 나만의 웹사이트를 만들어봐요!
spartacodingclub.kr
👍좋았던 점
🔥강의가 너무 재밌었다.
강의 커리큘럼을 보고 많이 의심을 했는데, 강의 내용이 알차고 좋았다. 진짜 재미있게 들었다.
만약 웹에 대한 용어를 어렴풋이 들어본 전공생이라면 이 강의를 충분히 이해하고 재미있게 수강할 수 있을 것이다.
커리큘럼 로드맵을 내가 직접 만들어 봤는데, 아래와 같다. 강의 수는 54강으로 많지만 일주일에 1시간만 투자하면 웹 개발부터 실습까지 끝낼 수 있다. 라고는 하지만 강의 시간만 일주일에 1시간이지 복습하고 과제하고 적용하려면 당연히 시간은 조금 더 든다. 그래도 일단 이목을 끌 수 있는 "일주일 1시간, 웹 개발부터 배포까지 끝내는 커리큘럼" 이라고 지었다.
사이트 배포도 했다. 아래 링크의 README.md을 확인하면 배포된 사이트를 볼 수 있다.
GitHub - HwangHyeonseok/teamsprta-web_dev_comprehensive: [팀스파르타] (왕초보) 웹개발 종합반 커리큘럼
GitHub - HwangHyeonseok/teamsprta-web_dev_comprehensive: [팀스파르타] (왕초보) 웹개발 종합반 커리큘럼
[팀스파르타] (왕초보) 웹개발 종합반 커리큘럼. Contribute to HwangHyeonseok/teamsprta-web_dev_comprehensive development by creating an account on GitHub.
github.com
🔥교육 프로그램의 개선점을 찾기 위해 다양한 방법을 시도했다.
너무 강의를 재미있게 들었고 이해도 쏙쏙 되고.. 무엇보다 초보자를 위해 신경 쓴 점이 많았다. 백틱(`)의 키보드 위치도 설명해주고 어려운 IT 용어를 실생활과 최대한 연결하여 쉽게 설명 해준 점도 인상 깊었다. (HTTP와 같은 프로토콜은 여러가지 요청(똑똑똑..)의 방법 중 하나라는 점이고 HTTPS는 S가 Security로 요청을 주고 받을 때 뭘 요청하고 뭘 주는지 볼 수 없다 -> 보안이 강화된 방식)
디테일까지 신경을 쓴 것이 보여서 이 강좌의 흠점을 찾기가 어려웠다.
54강이 되는 강의를 모두 들은 시점에서 남은 분석 시간은 하루도 되지 않아 시간도 적었다. 하지만, "그냥" 이렇게 하면 좋을 것 같습니다. 라고 이야기하긴 싫었다. 입장을 바꿔 내가 팀스파르타 교육 PM의 파트장이라면 누군가가 "그냥 이렇게 하면 뭔가 좋을 것 같지 않습니까?" 라는 말은 좋은 아이디어 일 수 있겠지만 회사(모여서 이윤을 창출해야 하는 집단)의 경우 아이디어를 행하는데 비용(Cost)이 들 것이다. 비용(Cost)을 투자하면서 해야 하는 근거와 이유를 설명해주면 조금 더 설득력이 있다고 생각했다.
또한, 아이디어만을 요구했다면 그냥 아이디어 공모전을 했으면 됐을 것이고 ChatGPT가 훨씬 더 아이디어를 잘 짜줄 것이라고 생각했다.
다른 수강생의 목소리를 들어 봐야겠다고 생각했다.
원래는 블로그 리뷰를 크롤링하려고 했으나 데이터가 생각보다 적었다. 따라서 빠르게 다른 것을 찾아보았고 우연히 보았던 부트텐트 사이트에서 HRD 후기를 1회차부터 30회차까지 볼 수 있었다.
시간이 24시간도 남지 않은 상황에서 크롤링 코드를 완성하려면 3시간은 족히 걸릴 것 같은데 시간을 아껴야했다.
왜 3시간이냐면.. 코드를 짜는데, 리뷰가 많은 경우 '더보기' 버튼을 클릭해야 해서 코드량이 늘어났다. 또 회차별로 리뷰가 선택되면 그 회차의 리뷰가 보이도록 <select> 을 이용하여 구현해서 코드량이 늘어났다.
크롤링을 하기 위한 옵션은 2가지였다.
크롤링을 하기 위한 옵션 | 장점 | 단점 |
selenium 으로 웹 크롤링 | - 크롤링 코드가 완성되면 손이 편하다. 그냥 프로그램만 돌리면 된다. | - 웹 크롤링 코드를 구현하는데 족히 3시간은 걸릴 것이다. |
javascript 로 일일이 크롤링 | - 데이터를 다 가져오는데 20분이면 된다. | - 개발자 도구를 켜서 1회차부터 30회차까지 일일이 js 조각코드를 실행시켜 리뷰 데이터를 가져온다. -> 손이 아프고 귀찮다. |
최종적으로 아래와 같은 방법으로 HRD-NET 리뷰 데이터를 수집했다.
1. 부트텐트 사이트에서 HRD 후기 원하는 회차 선택 (만약 HRD 후기 더 보기 버튼이 있다면 클릭해야 한다.)
2. [F12] 개발자 도구 > [console] 에서 아래 javascript 조각 코드 입력
// 클래스가 'pr-2'인 모든 요소 선택
const elements = document.querySelectorAll('.pr-2');
// 요소들의 텍스트만 추출해서 배열로 저장
const texts = Array.from(elements).map(element => element.textContent.trim());
// 결과 출력
console.log(texts);
3. 1~2을 반복하여 리뷰들을 1회차부터 30회차까지 복사한다.
4. 데이터 분석을 진행한다.
-> 그런데, 학습 데이터를 다운 받아서 모델을 모두 학습시키는 것은 또 시간이 오래 걸리는 일이다.
-> GPT가 알려준 snunlp/KR-FinBert-SC 모델과 nlpai-lab/korean-sentiment-analysis 모델도 결과가 잘 도출되지 않았다.
-> 그래서 GPT에게 리뷰 데이터를 주고 리뷰에서 insight를 도출하려고 했으나 유료GPT 버전임에도 불구하고 잘 알려주지 않았다.
그래서 perlexity을 사용했고 여기에 데이터를 첨부한 결과 잘 기억하고 통계도 잘 내주어서 이 것을 활용하였다.
5. 시각화 자료를 뽑았다.
시각화 자료로는 python으로 리뷰 키워드의 빈도수를 워드클라우드로 뽑고 긍정, 부정 리뷰의 빈도수를 막대 그래프로 뽑았다.
> 워드클라우드 중 '수', '다.' 와 같은 표현들은 미리 전처리를 했다.
6. 자료를 바탕으로 insight를 도출했다. 그리고 아이디어를 제시했다.
> insight를 도출하다가 상충되는 부분이 있는 경우 한 스텝 더 들어가서 도출했다.
예를 들어 교육생이 만족을 느낀 부분 중 빈도가 가장 높은 것이 '이해하기 쉽다' 였는데, 만족하지 못한 것의 빈도가 가장 높은 것은 반대로 '어렵다' 라는 것이었다.
여기서 '이해하기 쉽다' 라고 응답한 계층과 '어렵다' 라고 응답한 계층을 추가적으로 분석해본 결과 '이해하기 쉽다' 라고 응답한 측은 개발 경험이 조금이라도 있었던 계층이었고 어렵다라는 측은 개발이 처음이라 강의 이름에 있는 '왕초보'를 보고 들어와서 쉬운 내용을 다룰 것 같았는데 어렵다는 의견이었다.
결과적으로 제한된 시간과 수강생 리뷰나 어떤 데이터가 주어지지 않은 상황에서 빠르게 효율적인 방법을 시도하기 위해 노력한 점이 좋았다.
🔥조금 더 디테일하게 '초보자' 입장에서 생각하기
"그럼 당신의 생각은 없는건가요?" 라고 의문을 제기한다면, 교내 튜터링 튜터 경험과 어린 아이들을 가르쳤던 짬밥을 최대한 활용하여 '초보자' 입장에서 생각해보았다. 그 결과 아래와 같은 의견을 제시할 수 있었다.
1) 아마 초보자라면 웹 페이지 UI가 바뀌었을 때 적응도도 현저히 떨어질 것이고 이런 막히는 부분들이 교육생의 흥미를 잃게 하는 원인이 될 수 있다.
2) 5주차 숙제에서 addDoc의 파라미터 형태가 바뀌어 '초보자' 입장에서는 많은 어려움을 겪었을 것이다.
이런 문법을 겪어본 사람이야 이해할 수 있겠지만, 아마 초보자 입장에서는 일단 배운 내용 안에서만 충실하게 숙제(실습) 요소가 주어지고 결과물을 통해 성취를 주는 것이 우선이라 생각했고 이런 부분에 대해 의견을 제시했다.
// 강의 내용
let doc = {
'image':image,
'title':title,
'content':content,
'date':date
};
await addDoc(collection(db, "albums"), doc);
// 숙제 내용
const docRef = await addDoc(collection(db, "foods"), {
// 각각 담은 변수를 컬렉션 필드에 title, comment, image에 각각 넣어주세요.
'image' : image,
'title' : title,
'star' : star,
'comment' : comment
});
3) UI 적인 부분도 의견을 제시했다.
위 이미지는 언제부터 강의가 수강 가능할까?
정답은 1월 20일부터이다.
사람에 따라서 1월 19일까지만 들을 수 있는건가? 1월 19일부터 들을 수 있는건가? 이렇게 헷갈릴 수 있는 여지가 많은 Emoji이다.
그래서 달력 표시로 이모지를 수정하고, 조금 더 명확하게 설명할 필요가 있다고 생각했다.
그래서 아래와 같은 솔루션을 제시했다.
권장일자라면, ⚠️ 2월 5일(일) → 📅 2월 5일(일)까지 수강 권장
강의오픈일자라면, ⚠️ 2월 5일(일) → 📅 2월 5일(일)부터 수강 가능 / 📅 2월 5일(일) ~
🔥그래도 끝까지 완성은 했다.
최대한 시각적인 자료를 활용해서 완성하고 설명되지 않은 부분은 발표로 커버하였다.
제한된 시간 안에 일을 시작과 끝을 본 점은 좋았다.
생각해볼 점 / 개선이 필요한 점
🔥시간 관리가 어려웠다.
이번 주차는 유독 시간 관리가 어려웠다. 이것 저것 욕심이 많았던 것도 있지만 PPT를 충분히 완성하지 못했던 점이 아쉬웠다.
내 아쉬움을 유튜브 알고리즘이 읽었을까? 효율성을 올리고 싶은 내 마음을 정확하게 유튜브가 캐치했다.
발표 후 유튜브 알고리즘에 MAKE 라는 툴로 코드를 짜지 않고 크롤링 할 수 있는 것이 떴다. 영상을 보고 적용할 수 있는 부분은 바로 적용해서 효율성을 높이는 연습을 해봐야겠다.
https://youtu.be/OcvvLAgUUaM?si=o13NzfP4lc0V2qUH
🔥데이터 분석에 대한 전문적인 지식 부족
데이터 분석에 대한 전문적인 지식이 부족한 것도 아쉬웠다.
스파르타코딩클럽의 데이터 분석 종합반을 들어서 실력을 높이고 싶다. 매니저님께 월요일날 달려가서 조심스럽게 부탁드려야겠다.
https://spartacodingclub.kr/product/49
데이터 분석 종합반 | 스파르타코딩클럽
데이터 기반 사고는 물론, 코딩을 통한 분석 스킬까지 갖출 수 있습니다.
spartacodingclub.kr
내가 아쉬웠던 부분 중 통계 내면의 진짜 문제 정의를 깊이 하지 못한 부분이 아쉬웠는데, 데이터 분석에 대한 지식이 쌓이게 되면 상관 분석을 통해 이 아쉬움을 더 개선할 수 있을 것이라고 생각한다.
또한 교육운영파트 리더님께서 데이터 문해력 이라는 책을 추천해주셨는데 이 책을 사서 읽어보아야겠다.
🔥PPT 마스터 템플릿 구축
사실 매니저님께서 PPT를 꾸미는 것보단 노션이나 내용이 더 중요하다고 했지만 보기 좋은 떡이 먹기도 좋다고 PPT 디자인이 잘 되어 있으면 뭔가 준비가 되어 있는 느낌을 받는 것은 사실이다.
빠르게 내용을 적용할 수 있는 마스터 PPT 템플릿을 구축해야겠다. 내가 일일이 만드는 것은 해야 할 것이 많은 상황에서 우선순위로 두기 어려울 것 같고, 마스터 PPT 템플릿을 유료로 돈을 주고 사더라도 구해야겠다.