저번 달 10월 28일. 정말 운이 좋게 Teo님이 사람인과 함께 주최하시는 TeoConf23에 당첨되어서 참여할 수 있었다.
입사하고 거진 반년이 되어가던 참에 뭔가 자극을 잃어가고 있었는데 좋은 기회가 되었다.
리뷰가 한달이 늦어졌지만 강연을 들으며 끄적였던 내용을 한 번 올려본다.
시간이 없어 다듬지 못하고 일단은 메모 그 내용 그대로 올려본다..ㅎ
“성당을 짖는 벽돌공”: 내가 떠올리는 목표는 무엇일까?
💡나의 생각
: 내가 떠올린 목표는 뭔가 거창한 ’신을 마주할 준비를 하는 중이다‘와 같은 느낌이었는데, 다시 생각해보니 무조건 거창한 것도 맞지는 않겠다연사자님: fe리드 개발자(3년차)
- 이분도 SI -> 서비스로 옮겨 가신 분
어? 나도 몇가진 정리해서 만들어 볼 수 있을 것 같은데?
내가 입사했을 때도 사내에서 쓰는 용어에 헷갈리고 이해 안되는게 있었는데 이걸 이번에 들어오는 신입분들에게 설명할 수 있는 ‘OJT문서’를 만든다면?
Q) 신규 도입에 대한 리더를 설득하는 방법은?
A) 그냥 좋으니 합시다가 아니라 설득할 요소를 정리해서 제안해야 한다.
나의 질문) 신규 도입에 대한 팀원의 의욕이 없다면 어떻게 설득하지?
A) 어렵다. 개인 커리어에 욕심이 없는 사람들은 분명 있다. 그러니 혼자라도 해라. 한다면 그건 내 커리어에 도움이 된다. 그리고 과정을 정리해라. 욕심이 없는 분들을 굳이 끌고 갈 필요 없다. 계속 같이 가지 않을 사람이라고 생각해라.
야근을 해서라도 도입하는 걸 불편해하지 마라. 이것이 내 미래 커리어에 도움이 된다.
Q) 다른 포지션과의 소통에 대해서 어떻게?
A) 바꾸는 설득과 얘기는 충분히 제안해라.
대화흐름 이끌고, 질문 던지기!
레버리지로 성장하는 개발자
> 오웬: 굿닥의 4년차 fe개발자
사전 설명: 말 그대로 form으로 사용자에게 입력받은 값을 처리하는 것
PO님이 내주신 미션: 영유아를 위한 사전 문진 기능을 개발해야 한다.
백엔드 개발자님의 의견: 3depth array object로 갑시다.
첫 접근) 데이터 스키마 변경이 가능할까요?
솔루션 2) 동료분의 피드백: useFieldArray훅의 사용
Recap: 직접 CRUD를 짜니 복잡했어서 라이브러리의 훅을 도입
Recap: useForm의 control이 중첩된 배열 오브젝트에서 안먹혔는데 필드별로 hook을 적용하여 개선
데이터 오염을 방지하기 위해 백과 프론트에서 모두 하는 것을 권장
문제1) 하나의 input만 바뀌어도 모두 검사하는 문제
- 해결 1) 마찬가지로 라이브러리를 분석해서 개선점 적용
- 해결 2) Zod의 적용: typescript의 스키마에 대한 체크 도구
- useForm과 궁합이 좋다는 커뮤니티 글이 많았음
=> zod resolver로 검사
문제2) 불변성 지키기
나도 최근에 했는데, param에 적용할 객체는 지키기 위해 원본에서 복사하고 새로운 키값 적용해서 UI/UX에 적용
MDN에서 1차원 배열에선 스프레드 연산자를 추천하지만 고차원에서는 다른 것을 사용할 것을 권장
Q) 왜 JSON.parse나 stringify로 복사하는 방법을 쓰지 않았나?
A) 논의 끝에 잘 된 라이브러리를 적용하는 것이 좋다는 결론이 나왔다.
- 다른 분의 추가 의견: parse나 stringify는 예전 방법이다. 요새는 structured clone(?) 방법이 좋다.
Q) 라이브러리의 전체 적용, 일부 사용, 미사용 상황에 따라 적용하는 것이 좋은가?
A) Yes, 모두 방법이 될 수 있다.
Q) 상황적으로 구조를 flat하게 할 수는 없었다.
A) 백엔드에 요청했던과 같이, 하려고 시도는 했으나 상황이 어려웠다.
- 추가 의견: 프론트에선 플랫하게 처리하고, 보내주기 전에 뎁스를 맞추면 되지 않았을까요?
> 발표자님도 생각 못한 부분인 듯 하다.
(오~ 좋은 생각인 듯 하다.)
표준은 아니다. 하지만 현재 공식문서에도 제안 단계까지 왔다.
| 단 하나뿐인 라이브러리 but 좋다!: TS-pattern 라이브러리
bff는? 배보다 배꼽이 크다.
Recap:
- 추상화를 통해 유연성 증가. 타입에 대한 매칭만으로 논리 연산을 줄임(e.g. nullable 체크 불필요해짐)
But, 언제나 간결하고 좋은 코드를 만들어주진 않는다.
- 어떤 문제를 해결할 수 있는지 깊은 고려 후 적용- 아무리 좋은 기술도 팀을 설득시키고 동의를 얻어야 한다.
+) 연사자님 의견: 복잡한 비즈니스 로직이나 JSON데이터를 다룰 때 효과적이라고 생각한다.
.json
으로 담아 전달코더(개발자) -> 엔지니어(문제 해결사)로 변모하자!
이런 conference에 처음 참여해보는 것이었는데 굉장히 재밌고, 또 유익했다.
특히나 고연차의 분들만 강연자로 참여하는 컨퍼런스가 아니라 나같은 저연차인 분들도 참여해서 자신의 경험을 들려주시니 공감도 되고, 앞으로 뭘 해야할지 조금 더 감을 잡을 수 있었던 것 같다.
게다가 요즘 디자인 시스템에 관련해서 관심을 가지고 작업을 진행하고자 했는데 이것과 관련된 이야기가 있어 또 좋았던 것 같다.
그리고ㅋㅋㅋ 마지막에 경품 추첨도 있었는데 이게 웬걸 당첨됐다.
원래 이런 당첨운은 없는 편인데다가 끝까지 안 나오길래 '에이 역시'하고, 마지막 룰렛 돌아가는 거 보는데 '음.. 대충봐도 내 닉네임은 아니네'한 순간.
당첨! SamJ
음??? 와.. 세상에 컨퍼런스 참여만으로도 좋았는데, 책까지 당첨? 너무 좋았다.
게다가 경품들이 앞서선 노트북 거치대나, usb허브였나? 대충 다 있는 것들인데다가 뭐 아무래도 책이 더 갖고 싶었었는데 딱 당첨이 가장 갖고 싶던 것으로 되니 행복
!
너무 속물인가..ㅎㅎ 그래도 좋은걸 어쩌겠다. 책이 배민꺼라서 고민됐는데 용기내서 테오님께 싸인도 받았다ㅋㅋㅋㅋ
마지막까지 완벽한 컨퍼런스. 근 시일 내에 또 한번 열리고, 그 때도 참여할 수 있었으면 좋겠다.
이왕이면 연사자로..?
그리고 테오님 영접ㅎㅎ 같이 사진도 찍고, 책에 사인도 받았다. 왠지 연예인 보는 너낌