질문하고 싶은 내용이 있다면 자유롭게 남겨주세요!
Jan 31, 2023 질문 리스트
() 타입스크립트 제대로 공부해보고싶은데 아무래도 공식문서가 짱인가요?
(-) 회원가입할때 비밀번호를 어떻게 입력하신건가요..?? 🧐
- 첫번째 시도: 비밀번호 Generator에서 준 비밀번호로 했음 ( 특수문자 )
- 두번째 시도: a12341234!
() 웹 성능 지표로 Google Lighthouse를 많이 이용하던데, 반복적으로 돌렸을 때도 점수가 계속 다르고, pc마다 점수편차도 크던데..유의미한 지표로 볼 수 있나요? 현업에선 웹 성능을 어떤 지표를 이용하나요? 💯
다른 이유 → LCP, FCP, … → 네트워크 통신..
- 브라우저 캐시
유의미한 지표 → 모니터링 (sentry 에러 트래킹),
datadog https://www.datadoghq.com/
툴을 사용하거나, 자체 서버 → 집계 → 인사이트 얻음
- web vital → 공식사이트 (적정 지표) LCP, .. mobile ~ ⇒ 마지노선
- alert 주는 서드파티, 자체적으로 제공하는 api (senty alert)
- slack LCP 1분 ⇒ https://web.dev/i18n/ko/lcp/
() 채용 지원할 때, 이력서랑 포트폴리오를 따로 받는 경우가 많은데, 이력서랑 포트폴리오의 차이가 뭔가요? 서류를 보실 때, 중점적으로 보시는 부분에 대해서도 궁금합니다!
이력서 (2 ~ 3장)
포트폴리오 차이점 → 이력서는 담백하게. 포트폴리오는 프로젝트 상세하게.
done
Jan 17, 2023 질문 리스트
() 비지니스 로직과 UI 로직 분리하고 있는데 확인 한 번 부탁드려용! (어려네용 ㅠ)
() 타입스크립트에서 useMemo를 사용하려고 할때 return 타입이 void라는 타입에러를 던져주는데 어떻게 쓸 수 있을까요??
() 전역 상태 관리에 사용되는 상태가 새로고침하면 사라지는데 새로고침에 대한 전역 상태 관리 처리하는 방법이 궁금합니다. (webStorage 외에는 생각나는게 없습니다 🥹)
- 서버를 두는 게 베스트 → 대체용, webStorage
()
- 리코일 관련
- 리코일이 메모리 이슈 문제가 있는 거로 알고있는데..치명적인 정도인가요??
- 메모리 이슈를 어떻게 대응해서 리코일을 사용하시나요??
- 현업에서 리코일을 사용할 때, 어떤 기준으로 전역에서 관리할지, 컴포넌트로 관리할지 결정하시나요??
회고
중간 회고를 각자 써봤는데, 회고를 어떻게 이용(?) 하는 게 좋을까요? 현업에선 어떤 식으로 회고가 진행되는지 궁금합니다!
- k → p와 t를 중점으로
- 에러 바운더리, suspense
Jan 12, 2023 질문 리스트
(수화) ESLint 설정했는데, 잘 설정한지 궁금합니다! 설정한 코드
(링크)
- 궁금한 포인트
- prettier, eslint가 충돌 나는지 궁금하네요
- js 규칙은 설정안했는데, js도 세팅하는 게 좋을까요?
- 몇몇 설정파일에 js가 있어요, 2개 정도?
- eslint 설정하는 확장자 넣기
- 세팅한 방법
- eslint/config 이용해서 세팅했어요
- 추가적으로,
- extends 에 prettier
- rules
- ignorePatterns
추가했습니다!
참고자료
(건오) - Input 만드세요
- 두 개 input이 비슷해 보여서 Input 컴포넌트를 만들어서 공통된 부분을 줄이려 했는데 props로 넘기는 값이 너무 많아서 Input 컴포넌트를 따로 생성해도 코드의 길이가 비슷합니다. 그래도 Input 컴포넌트를 만드는게 좋은 방법인가요?
props로 넘겨주면 데이터 타입도 문제..register는 react-hook-form 라이브러리
<input {...register('fullName', { required: '이름을 입력해 주세요.', validate: (value: string) => value === 'admin' ? 'admin으로 이름을 생성할 수 없습니다.' : true, })} type="text" autoComplete="off" placeholder="이름을 입력해 주세요." className="input input-bordered text-center" /> <input {...register('email', { required: '이메일을 입력해 주세요.', pattern: { value: /^[A-Za-z0-9+-_.]+@[A-Za-z]+\.com$|\.co.kr$|\.net$|\.kr$/, message: '정확한 이메일 주소를 넣어 주세요.', }, })} type="text" autoComplete="off" placeholder="이메일을 입력해 주세요." className="input input-bordered text-center" /> ----------------------Input 컴포넌트 만들었을 때,------------------------------- <Input inputName="이름" placeholder="이름을 입력해주세요" label="fullName" register={register} required validate={(value: string) => value === 'admin' ? 'admin으로 이름 생성 불가' : true } /> <Input inputName="이메일" placeholder="이메일을 입력해주세요" label="email" register={register} required patternvalue={{ value: /^[A-Za-z0-9+-_.]+@[A-Za-z]+\.com$/, message: '정확한 이메일 주소를 넣어주세요', }} />
- (명재)비지니스 로직을 UI 컴포넌트랑 같이 작성했는데 커스텀 훅으로 분리해서 작업해야 할면 좋을까요?(useAsync), 아니면 react-query를 사용하는 방법이 더 좋을까요?
- HIT github repo 참고 자료
- 비즈니스 로직은 대부분 hooks로 빼기!!
- (나영) suffix 고민해보셔도~
- (명재) 코드 컨벤션을 팀원들과 논의해서 만들어 봤는데 추가할 부분이나 제거해야 할 부분이 있을까요?
- HIT 코드 컨벤션 참고자료
(나영) 천천히 피드백 비동기 댓글
예전에 코드 스팰링 틀린거 알려주는 확장팩 말씀해주셨던거같은데 이름을 잊어버려서 😟 이름이 뭐였죠? (수화님 최고!) → 이겁니다! https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker
- (천욱) React의 React.StrictMode로 큰 다툼(?)이 있었습니다 (ㅋㅋ) 넣는게 좋을까요 빼는게 좋을까요?? (한수화 승)
- warning도 알려줌 (ex: key warning)
- 테일윈드는 정말 좋은것인가요? 익숙해지면 엄청 빠를 것 같다고는 생각하는데 지금은 키워드 찾는게 일이여서..ㅎㅎ tailwind Intellisense 확장팩 사용중이긴합니다.
- styled-component, tailwind, scss 이 세개가 혹시 성능 차이가 클까요??
- styled-component: js에 돌아가서 런타임 이슈 있을 수 있음
- scss : 번들링 과정 (scss → css)
- 테일윈드가 되게 길어도 한줄에 적히던데,,, 하나의 스트링이라서 그런건가요?
- 다들 동일함 → {``} 백틱 해보기?
Jan 6, 2023 질문 리스트
- 기획서
- 협업 방식
- 기술 스택 - daisyui
@1월 6일 질문 리스트
() 타입스크립트 공부하면서 해당 변수가 어떤 타입인지 쉽게 알 수 있는 방법이 있을 까요? ex) ChangeEvent<HTMLInputElement>
( ) tailwindCSS + emotion 함께쓸 때, 어떻게 구분/분리해서 쓰시나요?
- 디자인시스템 + tailwindCSS
vscode 확장프로그램
Name: Tailwind CSS IntelliSense
https://marketplace.visualstudio.com/items?itemName=bradlc.vscode-tailwindcss
Name: Tailwind Twin IntelliSense
https://marketplace.visualstudio.com/items?itemName=lightyen.tailwindcss-intellisense-twin
예시
<div class="text-XXX"></div> const Wrapper = styled.section( tw`relative w-full flex flex-col justify-center items-center`, ({ color }: { color: string }) => css` background-color: rgb(var(--color-${bplColor})); border-radius: 16px; text-align: center; ` );
디자인 시스템
/* eslint-disable */ module.exports = { presets: [require('@banksalad/bpl-web/tailwind.config')], theme: { extend: { zIndex: { 'max': '9999', }, } } };
문서 찾아서 공유드리기 (팁? 셋팅 팁)
(?) 뱅크샐러드 네이티브앱인가요??
네이티브 → 보안 기능 or 앱간의 데이터 패칭?
웹 → 시장검증이 필요한 기능은 웹~
웹뷰랑 비슷한건가용?
기술 스택
- 타입스크립트 (채택)
- 상태관리 →
recoil 채택
- tailwindCSS + emotion → 어디까지 나눠서 쓸지, 구체적으로 나누기
채택
Dec 22, 2022 질문 리스트
기술스택
- 같이 3일 써보고, 픽스할지/말지 결정해보기
팀프로젝트:
타입스크립트, StoryBook, CI / CD, Redux, CSS(라이브러리 선택), 테스팅(유닛 테스트, E2E 테스트?), nextjs, 상태관리(redux, recoil…) / 머리 깨질 예정
- 타입스크립트 (채택)
- (
nextjs) (천욱님에게 설득당함: 함께할 수 없음) →리액트를 잘 쓰는데 초점을 두자
- 최소목표) next.js 프레임워크 위에서 작업한다.
- 목표가 아닌 것이지만 하고 싶다면)
- SSR - 나중에 사용 권장
- next.js 제공 기능 사용
- 상태관리 →
recoil 채택
- recoil 단점: Dev tools 있지만 스냅샷인 단점→ 콘솔찍어서 해야함
- https://www.youtube.com/watch?v=0-UaleJZOw8&ab_channel=FEConfKorea 시청하고 오기
- CSS
- p4; tailwindCSS + emotion → 어디까지 나눠서 쓸지, 구체적으로 나누기
채택
- tailwindCSS셋팅 지연 가능성 있음
- css-in-js:
emotion
- 적용하고 싶은 기술 는 없을 듯..
다음주 수요일 이후 정할 것들
역할 분담
1.
규칙
- 늦잠 자지 않기
- 저격 금지
일정
1.
리팩토링때 해볼 것들
- 테스팅: 유닛 제안 → 리펙토링 할 때, 적용해보는걸로
- jest 제안
- describe - test (it)
- given - when - then
p4
; context (서드파티) → when 표현이 편함- 성공케이스 1개 + 실패케이스 2개 (시간이 있으면 더 많이)
- CI / CD
- storybook (후순위), E2E (화면의 여러 상태를) -
testing-library
+msw
- 혹시 시간 안되면 유닛 테스팅 요때
- data-fetching 도구:
react-query
,swr
(한수화) 프로젝트 때 테스팅을 해보고 싶은데, UI, 단위 테스트 등등..어떤 걸 우선순위로 하는 게 좋을까요? 이전 기수를 보셨을 때, 테스팅은 과한 욕심일까요..? ⇒ 위 질문 답변에서 해결
() 적절한 response가 필요하다고 하셨는데 console.error(error) 말고도 다른 적절한 response가 있을까요?

(한수화) 프론트 업무하시면서 cs 지식이 얼마나 중요한가요? 어느정도까지 알아야할까요?
- 네트워크 지식: Http 완벽가이드 (챕터1)
(한수화) 멘토님이 추천하는 개발책이 궁금합니다! 필수는 아닌? → 슬랙
오픈 채팅때 매니저님이 커피챗할 때, 어떤 이야기하면 좋다고 말씀하셧는데 뭐였나요 → 협업을 위한 태도..?
- 협업을 위한 태도
- (건오) 약속 잘지키기
- (별) 맡은 일 잘하기
- (천욱) 상대방 존중
- (명재) 고집부리지 않기 , 삐지지 않기
- (수화) 본인의 의견과 본인을 동일시 하지 않기?
- 의견이 묵살되어도 자책하지 않기?
- 단점: 오해. 생각이 다름 → 계속 싱크를 맞추는 회의 (스크럼)
- 질문 던지는 것
- 기록 (p4; 회고)
책임감 있는것 → 일정안에 하는 것
배려 Respect
커뮤니케이션 자주 해야함
- 팀 프로젝트를 준비하기 전 알아두면 좋은 꿀팁
- 역할 분배나 팀 프로젝트 규칙 설정
- 주제 선정 및 방향성
(천욱) 프론트엔드가 5명이면 역할분배를 어떤식으로 해야하나요..?
- 시나리오 대로
- 성공 path: golden path
- 엣지 케이스: 시나리오의 목표를 이룰 수 없는 케이스
- 로직 - usecase
- N분의 일
- 페이지 - 시안만드는 것 UI를 초반에 다같이 만들고
기능 스펙 - 로그인
- 유저는 로그인을 할 수 있다.
- 유저는 로그인을 안하면 XX 페이지로 간다.
- ..
- …
(박명재) 테스트 코드는 어떤식으로 작성하면 되는지 감이 안잡혀요!!! 괜찮은 예제가 없을까요? → 적당한 예시 찾아보기
Dec 9, 2022 질문 리스트
Store를 사용해서 상태 관리가 필요한 프로젝트인지 궁금해요.!! 물론 학습을 위해
vuex
, pinia
를 사용해보면 도움이 될 수 있지만 이런 고민 없이 무작정 사용하면 잘못 사용할 수 있는 경우가 발생하지 않을까 하는 고민이 들어요.
이전에 프로젝트를 진행하면서 Store에 모든 상태를 관리하는 방법을 적용했을때 의존성이 너무 많이 복잡해져서 프로젝트가 망한 경험이 있습니다. 그래서 지금 프로젝트를 진행하면서 최대한 의존성을 복잡하지 않게 만들고 싶다는 생각이 들었습니다.- 하지만
Vue
에서는 비지니스 로직은 어떻게 관리해야 하는지에 대해 궁금증이 생겼습니다.
- 만약 Store를 최대한 줄이고 컴포넌트에서 상태관리를 하게 된다면 UI 로직과 비지니스 로직은 어떻게 분리하면 좋을까요?
- 컴포넌트는 재사용 가능하고 UI(view) 관련된 로직을 작성하는 위치라고 생각이 듭니다. 그럼 비지니스 로직은 어디에 작성하면 좋을까요? (ex: 비동기 로직)
- 그럼 모든 비지니스 로직을 Store에서 관리해야 하나요? React의 경우 커스텀 Hook,
React Query
를 사용해서 분리할 수 있지만Vue
에서 비지니스 로직을 어떻게 관리하면 좋을까요?
- 처음 프로젝트를 설계하는 단계에서 의존성에 대한 고민을 하지 않게 된다면 편의성을 위해 스토어를 사용하게 되는 경우가 발생해서 이런 고민을 하게 되었습니다.
- 명재님 어제 cors 오류 질문
- 신기술을 배울 때 어떻게 학습하시는지 궁금합니다! (공식문서 → 영상자료, 스터디 등) (물론 사람마다 맞는 학습방법은 다르겠지만, 개인적으로 궁금해서 질문드립니다)
- (한수화, 박명재) 6주차 코드리뷰를 받지못했어요!
- 멘토님 취준하실때 알고리즘 공부는 어디까지 하셨나요?