//////
Search
🛠️

12월 29일 목요일 (코드 리뷰)

생성자
회의 유형
주간 회의

호준님 코드 리뷰

동작 주도개발(일단 여러분에게 요구되는 사항) => 그럼에도 불구하고 80점 짜리 코드는 되어야 한다.
"프로그래머에게 요구되는 것은 100점이 아닌 80~90점짜리 프로그램을 기한 내에 완성하는 일" - 나카지마 사토시
"아무리 급해도 항상 80점짜리 소프트웨어를 개발할 수 있는지가 중요하다" - 인프랩 이동욱
마틴이 클린코드에서 주장한 원칙 5개(solid)
SRP : 단일 책임 원칙(각 클래스(또는 모듈, 오브젝트)는 하나의 정보만 가지게 만들어야 한다)
OCP : 개방 폐쇠 원칙(확장에는 열려 있으며, 변경에는 닫혀 있어야 한다)
LSP : 리스코프 치환 원칙(인터페이스의 서브타이핑은 인터페이스에 정의된 형태를 최대한 유지)
ISP : 인터페이스 분리 원칙(인터페이스는 최소한으로 유지)
DIP : 의존 관계 역전 원칙(상위 레벨의 모듈이나 인터페이스가 서브 클래스나 타이핑에 영향을 받아서는 안된다)
클린소프트웨어 - 악취
경직성 : 프로그램 변경이 어렵다. 원하는 곳만 변경하면 장애가 난다.
취약성 : 프로그램 변경시 아무런 연관이 없는 부분에서 장애 발생
부동성 : 재사용할 수 있는 컴포넌트로 구분이 어려움
점착성 : 개발 환경이 비효율적
불필요한 복잡성 : 직접 효용이 없는 구조가 디자인에 포함
불필요한 반복 : 단일 추상 개념으로 통합할 수 있는 반복구조 포함
불투명성 : 직접 만든 사람이 아닌 다른 사람이 코드를 읽고 이해하기 힘들다
개발자들이 가장 많이 사용하는 개발 원칙
KISS : 최대한 단순함을 유지하라
DRY : 똑같은 기능, 코드를 반복하지 마라
YAGNI : 그 기능이 필요하기 전까지는 미리 만들지 마라
작은 효율성에 대해서는, 말하자면 97% 정도에 대해서는 잊어버려라. 섣부른 최적화는 모든 악의 근원이다. - 도널드 커누스
패스트캠퍼스 CTO님
1.
일단 동작하게 만든 다음 더 좋게 만들어라
2.
언제나 발견했을 때보다 깨끗하게 해놓고 캠핑장을 떠나라
3.
바퀴를 새로 발명하는 일의 좋은 점은 둥근 바퀴를 얻을 수 있다는 점입니다. (바퀴를 새로 만들지 말라.)

피드백

eslint 컴파일 에러 CR
윈도우와 맥북 개행 문제
폴더트리 : 재사용되는 컴포넌트는 따로 빼기(이게 안되면 10점 깎인다!)
common 폴더로 빼거나 아토믹 패턴
로딩 화면 슬며시 사라지게 해주기 (현재 스플래시 오류)
프로필 이미지 width값만 줘서 깨지는 문제
하트 미작동
무한 스크롤 작동
이동 링크 적용
여러 이미지 좌우 슬라이드 처리
/my_profile/null 뜨는 문제
다른 계정으로 /my_profile/hyepp 들어가면 위에는 본인 프로필/아래는 hyepp …
URL 구조가 적절치 않다. : 마이 프로필이니까 뒤에 다른 아이디가 들어가지 않아야 함
앨범형 클릭했을 때 이동 안 됨
완성도는 600 커밋이면 100% (대부분의 기능 구현)
우리 기능보다 더 잘 되어있는 게 300 중간치 (커밋 갯수보다는 구현이 덜 되어있고 열심히 한 거다 ㅠㅠ)
최소치는 60커밋 …
프로그램의 경직성
로그인 API base url 안 쓰는 점 -10점
API.jsx에 다 모아두기 (8팀 참고)
복잡성 낮추기. API를 이해하고 싶으면 이 폴더를 보면 된다. 그게 아니면 API를 어디서 처리하고 있는지 다 찾아봐야한다. (신입에게 이해하기 어려운 코드)
아토믹 패턴 : 굉장히 복잡해졌을 때 릴리즈가 세 번 이상 되었을 때 빛을 발하는 코드. 도입 자체로 가산점.
header
if else는 처음 봤다. 거의 switch문이나 삼항연산자로 달라지는 부분만 따로 렌더링되게 하거나 props로 변수를 만들어서 해당되는 페이지가 렌더링 됐을 때 보이게끔.
중괄호 생략 why? 아마 eslint
좋은 점 : 읽기 편하다
불편한 점 : 중복된 코드가 컴포넌트화되어있지 않아서 복잡해보임(nevigate 등)
중복된 코드가 보이면 안 된다. (이런 최적화는 동작 구현 후 나중에)
onClick={onClick} 핸들러 함수와 이름 구분 해야함! 내려주더라도 onClick={handleOnClick}
signup

월요일에 다시 코드리뷰.ᐟ.ᐟ.ᐟ.ᐟ.ᐟ.ᐟ

지금 코드 상으로 70점 더 리뷰 할수록 깎일 것이다
우선 동작이 되어야하는데 최적화를 먼저 하면 안된다 기능이 우선이다
한달에 끝낼 수 있으면 3주의 시간을 준다
리액트는 효율과 거리가 멀고, 견고함과 확장성에 초점이 맞추어져있다
취약성 : A 컴포넌트 코드 변경 → C 컴포넌트 오류 ㅎㅎ
리액트 프젝에서는 부동성 ** 중요하게 생각하심
하나의 컴포넌트에 재사용할 수 있는 코드가 있음에도 분리하지 않았다거나 common 폴더에 구분하지 않았으면 프젝 확장되었을 때 감당할 수 없다 중간에 뜯어고치는 건 힘들다
→ 모달 재사용 코드 분리하기 (은영)
내가 할당되지 않은 일이더라도 잘못된 부분이 보이면 발견하는 사람이 깨끗하게 해놓고 얘기하고 떠나는 거다~!
모듈 통일! 컴포넌트마다 때려넣지 말고~
월요일 코드 리뷰 요청 디엠 드리기 ** ⇒ 월요일 3-4시

해야할 일 검토

MyPofile.jsx, Nav.jsx에서 아톰을 사용하고 있는데,, 로컬스토리지 바로 읽지 못해서 문제가 자꾸 발생.. const account = JSON.parse(localStorage.getItem('account')) 이런식으로 바로 로컬스토리지 읽으면 해결되서,, 일단 이렇게 처리했는데 문제..!
공통 : 콘솔, 주석 정리
어플리케이션의 무언가…
스플래쉬 페이지 로직 다시 짜기(미경)
로딩 페이지 로직(미경) ⇒ 이거 지금 작업 + 확인은 다 했는데 get 해오는 페이지마다 넣어줘야해서 다른분들 메인 기능 수정 다 끝나시면 그때 다시 적용하겠습니당. 처음 홈 화면에 ‘검색하세요!’ 1초 나오는거 로딩페이지 설정안되서 그런거더라구요
404 페이지 뒤로가기 링크(미경)
회원가입
input require(풍윤)(6자 미만일때 아무알람이 뜨지않습니당!)
프로필 설정 : 계정 ID 한글 했을 때 .. .. 클라이언트에서 처리 (풍윤)
회원가입 disabled 버튼 (풍윤)
프로필이미지 overflow: hidden으로 감싸기
이메일 회원가입 → 회원가입 하면 프로필 설정이 나오는데 새로고침 하면 이메일 회원가입으로 다시 로드되는 문제(우선순위 최하)
초기 프로필 이미지(기본이미지) 설정 ⇒ 회원가입할 때 프로필 이미지를 설정하지 않으면 기본 이미지도 안떠요. 이유는 이미지 경로 때문인 것 같습니다..!(풍윤)
로그인
required, 실시간 유효성 검사 (혜빈)
이메일로 회원가입 ⇒ 회원가입
로그인 ⇒ 회원가입
로그인 직후 프로필/null (혜빈) 아톰 값을 바로 읽어오지 못해서 그랬던 것..! 바로 로컬스토리지 읽어오게하니까 해결은 되었지만 그러면 아톰 왜 씀..?
내 프로필
유저프로필 팔로우 버튼(혜빈)
share&chat 아이콘 선택 시 ~ 기능
팔로우 버튼 토글 팔로우 버튼을 따로 만들어서 api 통신하게끔 만들면 어떨까 싶운데.. 괜찮은 방법일까용..?ㅠ
프로필 수정 (혜빈)
판매중인 상품/게시글이 없을 때 뜨는 안내 (미경)
상품 등록 : 가격 숫자가 아닌 데이터를 넣으면 NaN → 먹통되는 문제 (미경)
상품 업로드/수정시 이미지 미리보기 처리를 fileReader로 변경 (미경)
상품 업로드시 링크 마이프로필로 수정 (미경)
상품 업로드 유효성 검사 추가 (미경) 유효성 검사가 생각보다 넘 ………ㅋㅋㅋㅋㅋ 이미지 진짜 열받네요 ㅎ
상품 삭제 후 새로고침 되지 않게 처리 (미경)
상품 수정 시 버튼 초기값 able 처리 (미경)
팔로우/ 팔로잉 링크 (풍윤)
앨범형 상세 페이지 - 보이는 이미지 overflow (혜빈)
무한 스크롤 프로필 페이지에도 적용 (혜빈)
다른 계정으로 /my_profile/hyepp 들어가면 위에는 본인 프로필/아래는 hyepp … URL 구조가 적절치 않다.(혜빈) → 마이프로필이니까 다른 계정을 뒤에 넣었을 때 권한이 없도록 하기
채팅 → 은영 먼저 하기
챗리스트 : Link 말고 다른 방식으로 페이지 이동, li 간격 조정 (은영)
챗리스트 : 프로필 가상요소 (은영)
챗룸 메세지창 : 글씨 입력되면 전송 버튼 활성화 (은영)
게시글 작성/수정
이미지 삭제 (은영) ⇒ 이미지 삭제 시 텍스트도 삭제됨
이미지 fileReader (은영)
업로드 버튼 비활성화 (은영)
홈 피드
더보기 클릭시 수정/삭제 모달이 아니라 유저프로필 계정으로 이동되는 문제 (미경)
프로필 이미지 동그랗게 하기 (미경)
포스트 카드 출력 레이아웃 다시 만들기 (미경)
팔로잉 없을 때 ‘유저를 검색해 팔로우 해보세요’ 화면 안뜸 ⇒ 해결했고 간단한 코드라서 로딩페이지랑 (둘다 홈 문제 때문에 하는 작업이라) 같이 PR 하겠습니다.
검색 페이지
로딩 느림(혜빈)
유저프로필로 이동(혜빈)
좋아요 기능 .. ^^ (은영… 다같이 .. 부탁해요)
기타
버튼 disabled (버튼안에 disabled 적고 삼항처리) → ProductEdit.jsx 참고
회원가입 버튼 (풍윤)
게시글 업로드 버튼 (은영)
Nav바 이동시 아이콘과 글씨색 변경 (혜빈)
nav 클릭 시 덜컥덜컥 거리는 현상
파비콘 (미경) - 시간되면 Nav 아이콘 디자인 정도 바꿔보고싶닷
폰트 적용 안되는 이슈
최종
공통 컴포넌트 폴더링 common
api 파일 분리
페이지나 기능 단위로 브랜치 파서 작업하기
콘솔, 주석 정리
onClick={onClick} 핸들러 함수와 이름 구분 해야함! 내려주더라도 onClick={handleOnClick}

마감 기한 : 일요일 저녁 (모여서 확인)

월요일 3-4시 호준님 코드리뷰