기초 팀 분석 과제 발표 및 KPT 정리
기초 팀 분석 과제의 마지막 날로, 분석 과제 발표가 있었다.
화면 공유 이슈가 있었지만, 발표 자체에는 크게 문제가 없었던 듯 하다.
다음으로 튜터님의 피드백이다.
- 서정욱 튜터님의 피드백
- PPT 분석하기에 앞서, EDA에 대한 설명이 있어, 이해하기 편했다.
- PPT 발표 목적과 프로젝트의 취지가 뭔지 정확하게 파악한 느낌을 받았다.
- 이커머스 산업에 대한 소개와 전환율의 중요성을 짚어준 것도 좋았다.
- 도출된 표를 노출시켜서 얻은 데이터를 직접적으로 보여줬다.
- 직접 시도하진 않았지만, 뻗어나갈 수 있는 가능성들을 체크한 부분도 좋았다.
- 다음에 프로젝트를 진행할 때, 이 가능성들을 직접 도출해보길 바란다.
- 마지막에 문제들을 해결할만한 아이디어들을 제시한 것도 좋았다.
- 실무에서 발표할 때는 코드는 생략하는 편이니, 굳이 넣지 않아도 된다.
KPT
Keep (유지할 것) 잘된 점, 긍정적인 요소앞으로도 지속해야 할 팀의 강점이나 효과적인 방식
Problem (문제점) 개선이 필요한 점, 아쉬웠던 부분팀의 비효율적인 과정, 예상보다 어려웠던 점
Try (시도할 것) 앞으로 개선하거나 새롭게 시도할 방법
Problem에서 도출된 문제를 해결하기 위한 구체적인 액션 플랜
- Keep
- 전체적인 의사결정이 빠른 시간안에 나와서, 남은 시간을 개인 공부에 활용할 수 있었다.
- 목표 설정을 뚜렷하게 하고 역할 분담이 잘 되었다.
- 팀원들과 중간 쿼리 결과를 공유하고, 쿼리를 개선 시키는 과정이 원활하게 이루어졌다.
- 전체적인 의사결정이 빠른 시간안에 나와서, 남은 시간을 개인 공부에 활용할 수 있었다.
- Problem
- 팀 발제 중 개인별 과제 준비 시작 단계에서 시도할 부분들을 명확히 정하지 않아,
개인공부 혹은 스터디 시간을 놓치는 점이 있었다. - 원활한 소통이 이루어 지지 않아, 역할 수행에 어려움을 느낀 부분이 있었고,
적극적인 의사표현이 부족하여, 다수의 의견이 취합되지는 못했다. - 가설 설정과 시각화 단계에 시간을 집중하지 못해 아쉬웠다.
- 팀 과제 발표시 오류가 발생하였다.
- 팀 발제 중 개인별 과제 준비 시작 단계에서 시도할 부분들을 명확히 정하지 않아,
- Try
- 주제 발제시, 팀원 모두 주제를 훑어보고, 각자 시도해 볼 범위를 대략적으로 정했으면 좋겠다.
- 과제 방향에 대한 구체적인 소통을 중요시하고, 소통의 양을 늘려가야겠다.
- 일정시간을 아이스브레이킹에 할애해서,
조금 더 편안한 토의 분위기를 조성하여 자유로운 의견교환의 장을 만들자. - 초반 플랜을 명확하게 짜서, 분석 방향과 시각화요소들을 고려해야겠다.
- 팀 과제 발표 전에 팀원들끼리 먼저 테스트를 진행한다.
- 주제 발제시, 팀원 모두 주제를 훑어보고, 각자 시도해 볼 범위를 대략적으로 정했으면 좋겠다.
74. SQL 코드카타 풀이
https://school.programmers.co.kr/learn/courses/30/lessons/157339
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
- 문제
- CAR_RENTAL_COMPANY_CAR 테이블과 CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블과 CAR_RENTAL_COMPANY_DISCOUNT_PLAN 테이블에서 자동차 종류가 '세단' 또는 'SUV' 인 자동차 중 2022년 11월 1일부터 2022년 11월 30일까지 대여 가능하고 30일간의 대여 금액이 50만원 이상 200만원 미만인 자동차에 대해서 자동차 ID, 자동차 종류, 대여 금액(컬럼명: FEE) 리스트를 출력하는 SQL문을 작성해주세요. 결과는 대여 금액을 기준으로 내림차순 정렬하고, 대여 금액이 같은 경우 자동차 종류를 기준으로 오름차순 정렬, 자동차 종류까지 같은 경우 자동차 ID를 기준으로 내림차순 정렬해주세요.
- 정답
SELECT final.car_id,
final.car_type,
ROUND(final.fee, 0) fee
FROM
(
SELECT ch.car_id,
ch.car_type,
CASE WHEN ch.car_type = p.car_type
THEN ch.daily_fee * 30 * (1-(p.discount_rate/100))
ELSE 0 END AS fee
FROM
(
SELECT car_type,
duration_type,
discount_rate
FROM car_rental_company_discount_plan
WHERE duration_type = '30일 이상'
) p
INNER JOIN
(
SELECT DISTINCT(c.car_id),
c.car_type,
c.daily_fee
FROM car_rental_company_rental_history h
LEFT JOIN
car_rental_company_car c
ON h.car_id = c.car_id
WHERE h.car_id NOT IN
(
SELECT car_id
FROM car_rental_company_rental_history
WHERE (start_date <= '2022-11-30' AND end_date >= '2022-11-01')
)
AND c.car_type IN ('세단','SUV')
) ch
ON p.car_type = ch.car_type
) final
WHERE final.fee BETWEEN 500000 AND 1999999
ORDER BY 3 DESC, 2, 1 DESC;
- 고전했던 부분
- 대여 가능한 차들을 분류해내는 것부터 어려움이 있었다.
부등호를 이용해서 11월에 대여 중이 아닌 자동차를 선택하려고 애쓰다가 실패하고,
11월에 대여중인 차를 제외시키는 방향으로 방법을 바꿨다. - 3개의 테이블을 조인하다보니 서브쿼리를 너무 많이 쓰게 되어서 이게 맞는 방향인가 싶었는데,
가독성만 높여서 쓴다면 오히려 더 잘 읽힐 수도 있겠다는 생각을 했다. - 할인율을 적용한 이용금액을 설정할 때, 숫자 뒤에 퍼센트도 포함되어있다고 생각하는 오차를 범했다.
백분율을 적용하고 난 뒤 정답에 성공했다. - 정리하니깐 별거 아닌 것 같지만, 어제 풀지 못한 쿼리를 오늘 다시시도 해서 풀었다.
앞으로의 쿼리는 미리 가이드라인을 그려놓고 구상하도록 하자.
- 대여 가능한 차들을 분류해내는 것부터 어려움이 있었다.
'TIL (Today I Learn)' 카테고리의 다른 글
TIL [내배캠] 11일차 (0) | 2025.03.04 |
---|---|
WIL [내배캠] 2주차 (0) | 2025.03.03 |
TIL [내배캠] 9일차 (0) | 2025.02.27 |
TIL [내배캠] 8일차 (0) | 2025.02.26 |
TIL [내배캠] 7일차 (0) | 2025.02.25 |