본문 바로가기
  • 하고 싶은 일을 하자

개발26

작은 PR 규칙으로 코드 리뷰 효율 높이기 작은 PR 규칙 도입 배경 처음 술담화 개발팀에는 PR(Pull Request)에 대한 규칙이 없었다. 그래서 큰 프로젝트의 경우 하나의 PR로 올리는 경우도 있었다. 이 경우 방대한 코드 개발 양으로 코드 리뷰를 하기가 힘들었다. 코드 리뷰가 어려워지면 코드 퀄리티가 떨어지고, 버그가 발생할 가능성이 높아지는 등 단점이 많다. 이를 해결하기 위해 "작은 PR 규칙" 을 적용해보자는 목소리가 팀 내에 있었고, 실제로 도입해봤더니 많은 장점이 있었다. 작은 PR 규칙을 사용하는 방법 (git flow 기반으로 설명하겠다.) 1. develop에서 feature 브랜치를 만든다. 2. feature 브랜치에서 1번째 브랜치를 만들어 개발 완료 후 feature 브랜치에 첫번째 PR을 날린다. 3. 코드 리뷰.. 2022. 12. 1.
술담화 쇼핑몰 Form 에러 처리 변경하여 결제페이지 체류 시간 감소, 이탈률 감소 시키기 술담화 쇼핑몰(https://sooldamhwa.com/)에서 8월 말 선물하기 기능을 추가하면서 결제 페이지의 대대적인 디자인 변경이 있었다. 결제 페이지 쪽 개발을 하면서 기존 결제 기능에 개선하고 싶은 부분을 발견했다. 술담화에는 장바구니에 상품을 담아서 결제하거나, 제품을 바로 구매하는 경우 결제 페이지로 이동한다. 결제 페이지에서 배송지 확인 및 수정, 주문하는 상품 확인, 결제 방법 선택, 쿠폰 선택, 포인트 입력, 정보제공 동의를 한 뒤에 결제 버튼을 누르면 결제가 진행된다. 기존에는 결제 버튼은 항상 비활성화되어 있고, 결제에 필수인 항목인 결제 방법과 개인정보 제공 동의를 하면 결제 버튼이 활성화되어 결제를 할 수 있는 방식이었다. 이 방식은 유저가 어떤 항목이 필수로 입력해야 하는지 알.. 2022. 10. 10.
[코드숨 리액트 강의] 5주차 회고 - 비동기 코드에서 Thunk를 쓰는 이유 드디어 강의의 절반을 넘게 들었다! 8주차까지면 끝인데 벌써 5주차가 끝나다니 시간 참 빠르다. 이번주는 수요일 휴일이 있어서 여유가 있었다. redux와 비동기 fetch를 TDD로 개발하는 것을 배웠다. 지난번 첫 TDD를 개발해서 그런가 이번 과제는 처음 TDD를 접했을 때 보단 수월했다. 과제를 월요일부터 시작해서 제출하면 더 좋을 것 같다. 코드 리뷰를 좀 더 받는게 나에게 큰 도움이 될 것 같다. -> 내일부터 과제 해보자! Fetch 테스트 jest로 테스트하는 것은 런타임 때 테스트하는 것이 아니기 때문에 실제로 fetch 이후 response를 받아서 테스트가 진행되지는 않는다. useSelector.mockImplementation((selector) => selector({ categ.. 2022. 6. 6.
스프린트 회고와 퇴직연금 재테크, 신림스카이아파트 이번 스프린트 회고에서 글을 적은 양이 적었다. 이번에 쓸 때 ‘이번엔 그냥 간단하게 써볼까? 다른 사람들도 그러는 것 같던데.’ 라는 안일한 생각을 했었다. 다른 사람들의 쓴 양을 보니 내 회고록이 너무 짧았다. 다음번에는 좀 더 자세히 적어봐야겠다! eslint airbnb style guide를 적용하는데 import/extensions 에러가 났다. 근데 막상 extension을 적으면 ts에서 에러를 뿜는다. 아직 airbnb가 typescript는 완벽하지 않은걸까. 그래서 import/extension 하려고 찾다가 아래 방법을 적용했는데 (js, jsx, ts, tsx 일 경우에만 import/extension 에러 안뜨도록 하는 방법) https://stackoverflow.com/que.. 2022. 1. 4.
오스템 임플란트 직원의 1880억원 횡령과 강환국의 '1억 만드는 방법' 지난 금요일 회사 쉬는 날에 컴퓨터 포맷해서 오늘 오전에 약간 세팅하느라 시간이 걸렸다. 회사 동료분이 왜 포맷하냐고 물으셨는데, 차마 해킹당해서 메타마스크 지갑 털린 것 때문에 포맷했다고 말하기가 어려웠다. 그러면 자연스럽게 얼마 털렸냐고 물어볼거고, 내가 털린 금액 얘기하면 이야기가 커질 것 같아서. 다만 그분도 메타마스크 쓰시는 것 같던데 조심하라고 한 번 얘기는 드려야 할 것 같다. 아니 Setting Sync에 snippet 올렸는데 왜 다운로드했는데 없는 거야? 새로 다시 만들었는데 보니까 vscode에서 github 로그인하는 기능이 있던데 이걸 안 해서 그랬던 건가? node로 js를 실행할 수 있구나 마치 파이썬처럼 동작하는 코드를 만드는 것 같다. js면 당연히 브라우저에 올려야 실행된.. 2022. 1. 3.
"나는 LINE 개발자입니다"를 읽고 집 근처 도서관에 가서 책을 구경하는데 "나는 LINE 개발자입니다"라는 책이 눈에 띄었다. 다른 회사 개발자들의 삶은 어떨까 궁금해서 냉큼 빌려왔다. 라인에서 일하는 개발자들이 어떻게 개발자가 되었는지부터 라인에 입사하게 된 이유, 라인에서는 어떻게 일하는지 등의 이야기들이 있었다. 무엇보다 좋았던 건 나라는 개인과 지금 다니는 회사 모두에게 유익한 내용이라는 점이었다. 개발자 개인에게 좋은 내용을 먼저 소개하고, 회사에 도움이 되는 내용을 그다음에 소개하겠다. 더 많이 성장하고 싶은 주니어 개발자의 공부 팁 1. 개발에 대한 흥미 잃지 않기 개발자로 일하고 계신 분들은 대부분 개발을 좋아하신다. 하지만 좋아하는 정도에서는 차이가 있다고 생각한다. 개발자 분들 중에도 쉬는 시간에도 개발을 하고 새로 출.. 2021. 9. 12.
React에서 setInterval 제대로 쓰는 방법 React에서 setInterval을 사용하는 방법은 Vanila Javascript와는 다릅니다. 아래의 예시 코드를 보시죠. import { useState } from "react"; import "./styles.css"; export default function App() { const [number, setNumber] = useState(0); const loop = setInterval(() => { console.log("number", number); setNumber(number + 1); if (number === 10) clearInterval(loop); }, 1000); return number : {number}; } 10초를 센 뒤에 루프가 끝나는 코드로 동작할 것 같지만.. 2021. 7. 29.
머신 러닝 첫 걸음 이 글은 구글의 머신 러닝 단기 집중 과정을 참고로 작성하였습니다. (ML 문제로 표현하기, ML로 전환하기, 손실 줄이기) 링크 : https://developers.google.com/machine-learning/crash-course?hl=ko 머신 러닝 개요 머신 러닝 : 입력을 결합하여 새로운 데이터를 예측하는 방법을 기계가 학습하는 것을 의미합니다. 라벨(Label) : 예측하고자 하는 항목 예시) 사진에 표시된 동물의 종류(고양이, 강아지 등) 특성(Attribute) : 예측에 사용할 입력 변수 예시) 스팸 메일 감지할 때 사용할 수 있는 변수 이메일 텍스트 단어, 보내는 사람의 주소, 이메일 전송 시간 예(Instance) : 1. 라벨이 있는 Instance - 모델을 학습 시킬 때 .. 2020. 12. 15.