오늘 한 일

  • 간밤에 개발자의 탈을 쓴 QA 상현님이 갑자기 vms sign-up이 안 된다고 했다. 상황을 보니 진짜 안 된다. 처음에는 db 환경 문제인 줄 알았는데 나도 똑같은 상황을 만들어 돌려보니 안 됨. 응 db 아니야
  • 회원가입 페이지 자체는 내가 작업한 게 아니었지만, 회원가입 버튼을 누르면 뜨는 다이얼로그는 내가 작업한 거였다. 그리고 다이얼로그 UI와 다이얼로그를 오픈하는 방식 자체를 변경하면서, 페이지 컴포넌트가 가지고 있는 sign-up 관련 함수들을 건드린 것도 당근 나였다. 원인을 찾기도 전에 엄습하는 불안감
  • 원래 sign-up 관련 로직은 컴포넌트 내에서 단 하나의 함수 안에 전부 다 묶여서 들어가 있었다. 하지만 중간 어느 시점에 다이얼로그를 띄우고, 또 그 다이얼로그에서 입력하는 내용에 맞게 후속 조치가 이루어지는 등 적당한 처리가 필요했기 때문에 나는 그 함수를 여러 개로 쪼개 놓은 상황이었다.
  • 그런데 말입니다... vms에 회원가입을 할 때 휴대폰 번호를 넣으면 휴대폰으로 인증 코드가 발송되는데(이게 바로 내가 밴 당했던 그 절차), 이게 특정 조건 하에서 내부 직원이냐 아니냐를 판단할 수 있게끔 분기가 되어 있다. 하지만 바보 같은 나는 직원이 아닌 일반 유저를 가정하고서만 테스트를 진행했고 내부 직원인 경우는 생각을 안(?덜?) 했기 때문에, 직원인 경우에는 아무 코드도 넣어놓지 않아서 그 어떤 함수도 실행되지 않게끔 해 놓은 거였다. 응 db 아니고 너야 심지어 직원인 경우에 쓰려고 바로 아래 라인에 함수도 따로 만들어 놓은 상태였다...ㅠㅠ 함수를 만들었는데 왜 쓰지를 못하니
  • 이로써 긴급히 올린 pr에 추가된 코드는 단 한 줄뿐이었다. 코미디
  • 착잡한 마음으로 안도하며 잠든 후 일어난 아침에는 케이님과의 원온원이 있었고, 케이님이 사실은 이 글을 모두 읽고 계셨다는 엄청난 소식을 접했고, 주니어 각자에게 맞는 방식이 다 다를 수 있고 원한다면 sso 작업을 계속 하는 것도 괜찮다는 말씀을 들었다. 거기에 더해서 아직 잘은 모르지만 평소 관심 있었던 스벨트 공부+실습도 병행하기로 했다. 🥰
  • 원온원이 끝나자마자 승진님한테 허들을 신청했다. 처음에는 팀에서 sso를 어떻게 하기로 했는지를 조심스레 여쭤보며 시작했지만, 결과적으로는 '그럼 제가 할래요'가 되었다ㅋㅋㅋ
  • 결론: 신난다 신나 🥰

오늘 한 일

  • 본격적으로 다시 패스워드 리셋 페이지(라고 쓰고 모달을 띄운다) 작업에 착수했다. 사실 모달 자체는 다 만들어 놨었는데 이걸 띄우고 닫는 컨트롤을 스토어에서 관리했으면 하는 데서부터 Vue 3, Vuex, Pinia 공부가 시작되었던 것이었다... 대하소설급
  • 하는 김에 아주 큰 기능을 건드린 건 아니었지만 그러니까 리팩토링이지! 내가 보기 편한 형태로 리팩토링을 좀 하고, 다시 보면서 과거의 내가 왜 이런 식으로 코드를 넣었을까 싶은 부분은 다듬었다.
  • 피그마에 따르면 현재 모달은 로그인 페이지에서만 띄운다. 물론, 이것도 아직 SSO 기준으로 그루핑된 내용은 아니고 그냥 내가 디자인 정해진 게 없어서 다른 피그마 페이지에서 이거겠거니 하고 가져다 쓰는 거긴 한데, 아무튼 지금은 그렇다. 하지만 나중에는 회원가입 페이지에서도 모달을 띄울 수도 있고, 어쩌면 또 다른 페이지에서 띄울 수도 있는 노릇이다. 그래서 모달 컴포넌트를 아예 별도로 독립시켜서 로그인 페이지 바깥에 뜨게 만들었다.
  • 그리고 이 모달 컴포넌트와 이걸 띄우는 함수는 스토어에서 관리하게 했다. 아직 고칠 부분이 많이 보이는 아쉬운 상태에서 일단 pr을 날리고 리뷰를 받았다. 창현님께는 특별히 리뷰 재촉 드림ㅋㅋㅋ
  • 리뷰 받은 내용만 좀 더 반영하면 되겠다, 싶을 때쯤 지라 카드를 보러 들어갔는데 며칠 전에 이미 해결했다고 생각했던 이슈가 아직 남아 있는 것을 보았다. 그래서 카드를 처음 만든 Irfan님에게 댓글로 여쭤봤더니 여전히 해당 기능이 작동하지 않는다고 동영상까지(!) 첨부해서 보여주셨다. 어어 그럴 리가 없는데요...
  • 사건의 전말: 승진님께 Argo CD로 deploy 리스타트 하는 법을 배웠지만 나라는 사람은 그 방법만 알았을 뿐 메인에 새로운 기능을 머지한 후 리스타트 할 생각은 전혀 하지 않고 있었던 것이었다ㅋㅋ후... 내가 생각해도 나는 바보다. 그 탓에 QA 팀에서는 코드에 기능이 추가된 후 8일간이나 이걸 확인하지 못하고 있었던 것이었던......

오늘 배운 것

  • 모달을 띄울 때 뒷 배경을 dimmed 하게 만드는데 모달이 켜진 상태에서 그 배경을 클릭했을 때에도 모달이 꺼지도록 해야 한다. 하지만 일반적인 @click을 적용하면 모달 자체를 눌렀을 때에도 배경이 눌린 것마냥 꺼져 버린다. 이럴 때에는 @click.self를 적용하면 자식 컴포넌트가 아닌, 해당하는 컴포넌트 자체를 클릭했을 때에만 핸들러가 동작한다.
 

Event Handling | Vue.js

 

vuejs.org

오늘은

  • 나는 봄을 너무 타서 문제다. 컨디션 안 좋은 것만 생각하면 봄이 빨리 지나갔으면 좋겠지만 더운 건 더 싫어...ㅠㅠ
  • 승규님이 Vue 3+Vite+Piniar로 마이그레이션을 하셨다. 뭐 혹시 자잘한 오류나 이런 것들이 있으면 계속 잡아나가야 하겠지만 어쨌든 Vue 3의 세상이 오는구나...생긴 게 좀 리액트스럽다. 승규님이 pr 올려주실 때마다 어디가 달라졌는지 구경하기. approve도 처음 눌러보았다. approve 버튼이 따로 있을 줄 알았는데 리뷰 하겠다는 버튼을 먼저 눌러야 나오는 일종의 옵션으로 들어가 있었다. 생각보다 거창하지 않아서 왠지 실망
  • 근데 왠지는 모르겠지만 CSS가 좀 전체적으로 틀어진 느낌이었다. 내일 pr 하나가 마저 머지되고 나면 이것부터 손대야 할 것 같다.
  • 본의 아니게 오늘 또 뭔가 징징이와의 페어 프로그래밍 느낌이었다. 근데 나는 한 게 별로 없군.. 그리고 그 코드가 좋은 코드인지는 아직도 의심 중이다. pr에서 무슨 일이 나려나(두근)
  • 스몰톡 이벤트로 진행한 희순님 인터뷰 결과물을 오늘 드디어 제출했다. 원하던 영상이 아닌 서면 제출이었지만 그래도 너어무 뿌듯하고 후련하다. 줌 너어는 진짜아 나빴다아..

오늘은 개발일기라고 할 수 없음

  • 날씨가 정말 좋았다. 미세먼지도 없고, 해도 나고, 암튼 완-벽
  • 근데 마음이 뭐가 이렇게 복잡한지 싱숭생숭하고 내가 지금 뭘 하고 있는지도 잘 모르겠고
  • 산책을 하고 와도 뭐 그냥
  • 하루빨리 코로나가 지나가서 예전처럼 출근하면 좋겠다
  • 지금보다 몸을 움직이면 아무래도 활기가 생기지 않으려나
  • 그래서 운동을 열심히 했다

특이사항

  • 창현님이 창현님한테는 pr 리뷰 달라고 재촉해도 된다고 하셨다!! 이건 적어놔야 될 것 같아서ㅋㅋㅋ 내 마음 속에 박제
  • 수백만 명 중 한 명에게는 오늘도 감사 새삼

오늘 한 일

  • 어제 올린 pr은 approved 되긴 했는데 추가 작업이 필요한 상황이었다. 아침 스크럼 때 상황을 말씀 드리고 중간에 한 번 끊어서 머지를 해야 하는지 아니면 계속 작업을 하고 나서 완결(이라는 게 애초에 가능한지는...) 후에 한번에 머지를 해야 하는지를 여쭤보았다. 아직 배포 중인 서비스는 아니므로 한 번 끊고 가는 걸로 결론. 
  • 늦어도 내일까지는 끝내야 월요일부터 QA 팀에서 테스트할 수 있는데, 간단한 작업만 남아서 다행이라고 말씀하신 소연님께 나는 그저 웃어드렸다...😅  그...래야 할 텐데 말이죠
  • pr은 여느 때와 같이 머지했는데, 머지한 SSO 브랜치를 다시 pr을 날려서 메인에 머지해야 했다. 이론적으로는 알겠는데 메인 브랜치라고 하니까 알던 대로 하면 왠지 큰일날 것만 같고 내가 알던 그 pr 화면이 그 화면이 아닌 것 같고 막...
  • 그리고 메인 브랜치에는 git squash를 해야 했다. 메인에 머지할 땐 혼자 작업했으면 squash, 여럿이면 merge. 찾아보니 squash란 커밋 여러 개를 하나로 묶는 작업인데, 그런 명령어가 있는 건 아니었고 일종의 옵션이다. cli로 할 필요는 없었고 깃헙 pr 화면에 버튼이 있었다. 평소엔 고민 없이 그냥 누르던 Merge pull request 버튼의 옵션 중에 Squash and Merge를 선택하면 된다. 그러면 description을 새로 입력하는 창이 나오는데 디폴트 값으로 그동안 했던 커밋 메시지들이 전부 나온다. 지울 건 지우고 남길 건 남겨서 정리하고 진행하면 된다. 
  • 스몰톡 인터뷰...를 오늘 진행했는데 우리 조가 선정한 인터뷰 대상자는 TVA팀의 희순님이었다. 인터뷰 마감 날짜가 다가와서 하루 이틀 사이 일정을 잡고 질문 리스트 작성해서 희순님께 미리 전달하고 인터뷰를 했다.
  • 줌에서 녹화 테스트를 한 번 해보고 나서 시작했는데, 예상했던 것보다 인터뷰 시간이 길어지면서 무료 회의 시간인 40분이 되어버려서 방이 터져버렸다. 문제는, 그 전에 인터뷰 및 녹화는 무사히 마쳤지만 줌 시스템상 녹화를 하면 후처리 과정이 있어야 하는데 이건 회의실이 정상적으로 종료됐을 때나 그렇단다. 회의를 사람이 직접 종료하고 나야 컨버팅이 시작되고, 그 후 영상 파일로 남는 데까지도 시간이 조금 걸린다는 것 같았다. 여기저기 찾아보니 30분 정도 녹화하면 컨버팅 시간만 약 10분 정도..? 어디를 찾아봐도 파일이나 녹화 기록이 제대로 남은 곳이 없었다. 심지어 이런 식으로 날린 녹화 파일은 다시 찾을 수가 없단다ㅠㅠ 인터뷰 유쾌하고 재밌어서 영구보존감이었는데... 오늘 너무 슬펐다

오늘 배운 것

  • squash는 브랜치 머지할 때 pr에서도 진행할 수 있지만, 애초에 푸시하기 전에 squash 한 상태로 깔끔하게 만들어서 올릴 수도 있다.
 

Git squash로 여러 커밋을 하나로 만들기

Git squash를 사용하여 여러 커밋을 하나의 커밋으로 만드는 방법에 대해서 알아봅니다.

dev-yakuza.posstree.com

 

오늘 한 일

  • 장장 3시간 여에 걸친 누군가의 라이브 코딩 쇼 구경... 근데 나는 뷰린이인 주제에 훈수를 두었다?!
  • 그리고 자꾸만 늘어가는, 어제 날린 나의 pr에 대한 리뷰들을 실시간으로 확인했다. 근데 첫 번째 리뷰부터 잘 안 풀려..!?
  • 어제는 잠을 푹 잤는데도 머리가 안 도는지 자꾸만 같은 코드를 지웠다 썼다 하면서 바보 같은 짓을 계속했다. 그리고 이건 누군가가 라이브로 보았지
  • 그러다 너무 효율 안 나서 잠깐 파업하고 저녁 먹은 후 운동하고 다시 코딩을 시작했더니 너무 잘 되는데!? 운동이라 쓰고 마법이라 읽는다
  • 당장 달아주신 리뷰들은 어찌저찌 해결한 것 같은데 작업하다 다른 문제들을 발견했다. 음... 이건 내일 스크럼 때 자수하고 나서 생각해 봐야겠다

오늘 배운 것

  • 창현님이 리뷰에 참고하라고 달아주신 링크. vuex 공부할 때 분명 봤었는데 막상 내가 코드 짤 땐 생각도 안 나죠ㅠㅠ
 

Getters | Vuex

Getters Sometimes we may need to compute derived state based on store state, for example filtering through a list of items and counting them: computed: { doneTodosCount () { return this.$store.state.todos.filter(todo => todo.done).length } } If more than o

vuex.vuejs.org

오늘까지 한 일

  • 어제 드디어 딱 이번 베타 테스트 때 내놓을 만큼의 디자인 변경안이 나왔다. 소연님이 스코프를 많이 잘라 주셔서 사실상 로그인 페이지 딱 하나뿐이라 손이 아주 많이 가지는 않을 것 같았다. 틀만 잡고 세부사항은 차차 적용할 생각으로 일단 로그인 페이지 UI 변경 작업을 했다.
  • 디자인이 복잡하지 않아서 컴포넌트를 어떻게 구성하면 되겠다, 하는 건 금방 보였는데 문제는, 새로 만드는 게 아니라 이미 있는 걸 바꾼다는 점 그 자체였다. 아무것도 없는 상태에서 아예 다시 만드는 거였다면 차라리 편했을 텐데 파일이 많지 않을지라도 기존에 뭐가 있는 상태에서 변경하거나 수정하는 건 다소 까다롭다. 아예 필요 없는 파일 하나 지웠다가 빌드가 안 되고 막... pr 올린 후 실제로 그랬음 주의
  • 어제 저녁 7시 퇴근할 때까지 본가에 있다가 거기서 저녁까지 먹고 집에 올라왔다. 출근 생활 중이었다면 편도 2시간 여 걸리는 거리를 평일에 오갈 생각을 못했을 것이다. 재택이 좋은 이유! 그러나 집에 와서 운동하고 뭐 좀 하다가 정신 차려 보니 이미 3시였다. TIL 생략하고 그냥 잠
  • 3시에 자기 전에 pr을 올렸었는데, 일단 리뷰어로 우리 팀 개발자 세 분을 다 넣었다. 팀 배정 후 첫 pr이었다. 차마 pr 날린 직후에 링크를 공유할 순 없어서 아침 스크럼 도중에 올렸다. 그리고 빌드 안되는 거 걸림
  • pr merge 이후에 승진님이 argo CD로 dev 환경에 배포하는 방법을 알려주셨다. argo CD는 보기도 좋고 쓰기도 좋고 아무튼 너무 좋아 보인다. 문어(?) 너무 귀엽고..
  • 세부사항이 조금씩 변경되더라도 어쨌든 UI 변경안이 나왔으므로 나에게도 첫 Jira 카드가 배정되었다. 나도 이제 브랜치명 카드 넘버로 딸 수 있다! 카드가 배정되니 뭔가 진짜 잘 해야 될 것 같고, 귀찮게 할 사람이 출근을 이틀이나 안 한 통에 잠깐 무료할 뻔도 했지만 카드도 어차피 아직 한 개밖에 없는 거 하루종일 이것만 잡고 있게 됐다...!?앗 깃훅 어떡해!?

오늘 배운 것

  • 지금 사용하고 있는 건 Vue 2인데, 이건 올해 2.7 버전 출시 후 18개월 간의 LTS를 유지하고, 그 기간이 끝난 후에는 핵심적인 보안 관련을 제외하고는 모든 패치를 중단한다고 한다. 그렇다면 Vue 3로 넘어가는 것은 지금 당장이 아니더라도 어차피 불가피한 일인 것 같은데, Vue 3와 함께 사용할 수 있는 Vite(엄청 빨라서 그 이름도 vite, 불어 주의)라는 번들러 이름을 오늘 처음 주워듣게 되어서 뭔지 좀 찾아봤다.
 

Vite부터 시작하는 Vue 3 생활

한국시각 기준 19일 Vue의 최신 버전인 Vue 3가 공개되었다. 저장소링크 Vue 3는 이번에 용량 개선과 성능 향상을 위해 처음부터 다시 설계한 구조와, 트리 쉐이킹(라이브러리의 필요한 부분만 가져

ake.kr

오늘 한 일

  • 구글 로그인 버튼이 잘 나온다면 버튼을 렌더링 할 때 나오는 에러는 일단 두기로 했다. 기분 좋게 올리려는데 깃 에러가 발목을 잡았다. 아니, pull 다 했는데 왜 또 pull 하래ㅠㅠ 결국 로컬 디렉토리 자체를 날려버리고 작업을 다시 했다. 어차피 내가 작성한 코드 몇 줄 없었어...ㅎ...기억 잘 나...
  • PR 없이 그냥 올리기로 했었는데, 막상 처음부터 PR 올리는 법을 배워 놔서 그런지 PR 없이 머지하는 방법을 모르겠어서 그냥 하자니 걱정도 되고 다짜고짜 PR을 날렸다. 그랬더니 처음으로 케이님이 보는 것만으로도 심장 쿵쾅거리는 리뷰를 남겨주셨다. 어차피 한 컴포넌트 안에서만 사용할 파일인데 굳이 전역으로 등록해서 불러오고 있었다. 후다닥 고쳐서 다시 올렸다. 
  • 3시에는 PT mix가 있었다. 비록 영어로 진행되었고 듣기만 하는 입장이었지만, 한 번도 들어본 적 없던 ROAS 같은 마케팅 용어들도 알게 되고 재미있었다.
  • 온보딩 팀과의 싱크업이 있었다. 더 상세히 확정되어야 하겠지만, 양쪽에서 겹친다고 판단되는 작업들이 있어서 디자인 등을 공유하게 됐다. PO가 없었던 우리 팀 특성상 가이드 해주실 분이 있게 되면 좋을 것 같다.
  • 구글 로그인 때문에라도 회원가입을 하는 신규 유저에 대해서는 이메일 확인하는 절차가 필요하다고 판단되어, 흐름 상 회원가입 페이지와 정보 이용 동의 페이지 사이에 인증 코드 입력 페이지를 넣게 되었다.

오늘 배운 것

  • 로컬에서 작업할 때도 브랜치를 따로 따고, merge(pull?)는 최대한 자주 합시다.
  • ROAS가 뭘까요?
 

좋은 ROAS는 얼마일까요? (ROAS 계산법) - HelloDigital

궁극적으로 ROAS(Return On Ad Spend, 광고수익률)는 자사의 전반적인 ROI가 아니라 특정 광고의 효과를 측정하기 위함입니다. 그렇다면 ROAS와 ROI는 무엇이 다를까요? 지금 바로 헬로디지털 블로그에서

www.hellodigital.kr

 

+ Recent posts