[3팀 이정우] Chapter 2-1. 클린코드와 리팩토링 - #54
Open
JungWoo0203 wants to merge 2 commits into
Open
Conversation
Comment on lines
+12
to
+17
| new Product({ | ||
| id: "p1", | ||
| name: "버그 없애는 키보드", | ||
| price: 10000, | ||
| stock: 50, | ||
| }), |
Member
There was a problem hiding this comment.
오... price를 기존 originalPrice로 참조하고 price로 이러쿵저러쿵 할인가로 보여주는거군요. 괜찮은 방법이네요. 좋은 팁 얻어갑니다 👍
| const alertSvc = new AlertService(); | ||
| const scheduler = new PromoScheduler( | ||
| products, | ||
| alertSvc, |
Member
There was a problem hiding this comment.
내부 코드에서 alerSvc라고 쓰여있어서 어떤 변수인지 확인이 불가능해서 위로 올라와서 확인하게 되었는데 이러면 alertSvc를 alertService로 쓰는게 맞는걸까요, 아니면 이대로도 괜찮은걸까요? 👀 이런 부분 나중에 팀 컨벤션 수립할때 정해보면 좋겠네요!
| return candidates[Math.floor(Math.random() * candidates.length)]; | ||
| } | ||
|
|
||
| export default class PromoScheduler { |
Member
There was a problem hiding this comment.
setInterval과 setTimeout을 초기화하는 로직이 필요해보입니다!
|
저에겐 infra나 presenters 같은 폴더 구조가 낯설어서 그런지 되게 흥미롭습니다,,ㅎ 거기에 생소한 구조임에도 코드 파악이 쉬워서 좋았어요! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
배포링크
과제 체크포인트
기본과제
심화과제
과제 셀프회고
디코방에 다른분들이 공유해준 ai사용법을 토대로 리펙토링 진행. ex) 토스 컨벤션.mdc, ai에게 컨벤션 먹이기 등등..
→ 자료들과 ai만 믿고 리펙토링을 하면할수록 테스트코드를 통과하지 못하기 시작하고, 리펙토링은 커녕 이상한 소리만 늘어노음, 4시간동안 잘 달래도보고 해봤지만 결과는 그대로,,
아무리 자료가 좋고 ai가 뛰어나다고 하더라도, ai는 시킨 것을 잘 하는 것, 결국 시킨 사람이 자기가 시키는 것에 대해 잘 알아야하고,
이때부터 리펙토링을 어떻게 할지 고민을 열심히 함.
리펙토링에 앞서 구현된 기능들을 구분해봄.
리팩터링 아키텍처 초안
실제 파일을 바로 옮기기보다, 새로운 모듈을 만들고, 기존 코드에서 단계적으로 이관/교체 → 테스트 통과 확인 → 다음 단계 진행하는 스트랭글 패턴 방식으로 진행.
세부 모듈 설명
위 정보를 토대로 리펙토링을 진행할 때 ai에게 TODO를 만들어 달라고 한 뒤, TODO를 하나씩 만들때마다 코드를 확인하고 테스트를 돌려보는 방식으로 리펙토링 진행함.
확실히 이전에 ai를 자료와 ai의 성능에 기대어 리펙토링하는 것 보다 훨씬 더 빠르고 잘 만들어졌다. ai를 사용하더라도 그 사용 이유가 명확해야하고, TODO로 스케일을 나누어 개발하는 것이 좋았다.
과제를 하면서 내가 제일 신경 쓴 부분은 무엇인가요?
코드 안짜고 과제 통과하기!
과제를 다시 해보면 더 잘 할 수 있었겠다 아쉬운 점이 있다면 무엇인가요?
초반에 다른 분들이 공유주신 자료들과 ai의 성능에 기대어 개발만 했던 것에서 시간을 너무 많이 날려먹어 아쉽다.
리뷰 받고 싶은 내용이나 궁금한 것에 대한 질문 편하게 남겨주세요 :)
초반에 ai로 basic파일 던져주고 리펙토링해달라고 했는데 굉장히 많은 토큰을 잡아먹더라구요, 대용량 파일을 리펙토링하는데 토큰을 효율적으로 사용할 수 있는 방법이 뭐가 있을까요?
폴더 구조를 기능기반으로 분리해두었는데, 초반에 기능이 별로 없을 때에는 그렇게 좋지않는 폴더 구조인 것 같습니다. 프로젝트를 간단하게 만들때나 프로젝트를 키워나갈때 참고할만한 폴더 구조가 뭐가 있을까요?