FE RYAN
완벽하지 않으면 어때
FE RYAN
전체 방문자
오늘
어제

블로그 메뉴

  • 💾 깃허브 링크
  • 홈
  • 태그
  • 분류 전체보기 (151)
    • 개인프로젝트 (8)
      • 개인 포트폴리오 웹앱 (6)
      • 프론트엔드 기술면접 아카이빙 웹앱 (2)
    • 기록 (121)
      • 원티드 프리온보딩 인턴십 (0)
      • 코드스테이츠 프론트엔드 (75)
      • 생각들 (3)
      • Today I learned (32)
      • 회고 (9)
      • 리뷰 (1)
    • 개발 (17)
      • React (3)
      • Javascript (7)
      • CSS (1)
      • HTML (3)
      • HTTP (1)
      • 자료구조 (0)
      • 알고리즘 (2)
    • 코딩테스트 (2)
      • 백준 (2)
      • 프로그래머스 (0)
    • 디자인 (1)
      • UI & UX (1)
    • 수학 (0)
    • 자기계발 (0)

공지사항

인기 글

태그

  • 부트캠프
  • 자바스크립트
  • 코드스테이츠
  • 리액트
  • 타입스크립트
  • useMemo
  • 포트폴리오
  • 프론트엔드
  • 메인프로젝트
  • 신입개발자
  • Til
  • 자바스크립트 딥다이브
  • HTML
  • ES6
  • 원시타입
  • seb 39
  • 딥다이브
  • 회고
  • css
  • seb39

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
FE RYAN
기록/회고

23년 회고 - 현업 개발자로 보낸 첫 1년 돌아보기

23년 회고 - 현업 개발자로 보낸 첫 1년 돌아보기
기록/회고

23년 회고 - 현업 개발자로 보낸 첫 1년 돌아보기

2023. 12. 20. 16:32
728x90

1. 올 해 한 일들

1.1 자율주행 로봇 소프트웨어 조작 화면단 구현

첫번째 회사에서 1월부터 3월까지 일했고, Vue.js에서 Three.js 를 사용한 로봇 제어 솔루션의 화면단 구현 작업에 참여했었다. 짧은 기간 있었기 때문에 길게 적을 만한 건 없지만 간략하게 되돌아보자.
개발자로 첫 취업이었기 때문에 여러모로 미숙한 점이 많았다.
맥북으로만 개발해봤고 얄팍하게 리액트만 조금 다뤄보았는데 리눅스 환경에서 Vue.js 프로젝트를 하게 되어서 처음에 혼란스러웠다.
DOM, 브라우저 이벤트, 네트워크에 대한 이해가 많이 부족했음을 느꼈고, 자바스크립트 기본기 문제도 많이 느꼈다.

1.2 언리얼 기반 프로토타입 프로젝트 외주

두번째 회사로 극 초기 스타트업에서 일하게 되면서 신입~주니어 레벨에서 일반적으론 경험해보기는 힘든 다양한 일을 해볼 수 있었다.
처우 협상하러 간 날 내가 입사하고 맡게 될 외주 프로젝트의 고객사 미팅에 참여했다. 그리고 입사하자마자 프론트엔드 개발외엔 아무것도 아는게 없던 상태에서 언리얼 엔진 프로젝트를 받아 1달여간 고군분투하여 어찌저찌 완성해냈다.
이번에는 개발환경이 또 윈도우로 바뀌었다. 이제 맥, 윈도우, 리눅스 한번씩 다 써본듯..?!
키오스크 등에 들어갈 기능으로, 고객사 캐릭터가 NPC 역할을 하여 사람이 음성으로 질의하면 이 음성을 인식하고 텍스트로 변환해서 GPT한테 질문하고 GPT의 답변 텍스트를 다시 음성으로 변환해서 NPC 입 모양에 립싱크시켜서 캐릭터가 답변해주는 프로젝트였다.
웹 프론트 개발 외엔 사실상 아무것도 모르는거나 마찬가지에서 1달만에 참 우여곡절 끝에 구현했다. 그래도 별점 3개 줬더라, 생판 처음 해본 것 치곤 선방한 것 같기도..??

1.3 카페24 연동 웹 기반 3D 컨피규레이터+CMS 서비스 구현

하나라도 똑바로 해야하는게 맞다고 느꼈고, 회사에도 이를 피력했다. 그래서 다시 웹으로 돌아와 회사의 첫 자사 서비스 구현을 담당했다.
프론트단은 Vite+React 프로젝트로 3D 뷰어와 관리자 페이지로 2가지 웹앱을 만들었고, API 서버는 람다, DB는 다이나모디비, 정적 리소스 서빙은 S3+Cloudfront를 사용했다.
첫 회사에서 느꼈던 여러 기술 역량의 부족함을 채우는 것을 게을리하여 똑같은 문제가 여전히 반복됨을 느끼고 MVP 출시 이후 여러 반복되는 문제들을 해결하기 위한 공부를 시작했다.
혼자서 모든걸 진행하니 소통 비용으로 일정 딜레이, 감정 싸움 할 일은 없었지만 항상 혼자 무인도에 있는 것 같은 기분이었다.
그래도 어찌저찌 동기 찬스로 외부 피드백을 구하고 지피티와 코파일럿 덕분에 타임라인에서 크게 벗어나진 않게 출시는 했다.
언제 피벗되던지 실사용자 대응에 따라 바뀌게 될지 모르는 일이므로 MVP와 사랑에 빠지지 말라는 말을 되새기면서 아직 부족한데..무한 루프에 중간에 빠질뻔 했다가 벗어나기도 했다.
그리고 모델링 파일을 로컬에서 가져오다 AWS에서 가져오도록 처음 바꾼 순간 초기 로딩속도가 획기적으로 감소하는 걸 보면서 프론트단에서 최적화 고려 이전에 인프라 수준에서 먼저 올바르게 아키텍쳐를 구성하는 것의 중요성을 크게 느끼기도 했다. 물론 0년차 혼자서 만든게 과연 얼마나 올바른 방식인지는 모르지만 그래도 당시 내 나름의 최선은 다 했다.

2. 내년에도 이어갈 것

  • 2.1 포기하지 않는 마음
  • 2.2 채용 시장 동향 파악과 업무와 개인 공부에 반영하기
  • 2.3 우물 밖으로 나가기

입사하고 첫 프로젝트가 정말 아무것도 몰랐던 언리얼엔진 프로젝트였다. 물론 대부분 비쥬얼 스크립팅인 블루프린트 작업이었고 C++는 거의 1% 안되는 작업이었기 때문에 가능한 일이었긴 했으나 생판 모르는 분야 개발에, 플러그인 붙여서 한 구현이긴 했으나 인공지능과 음성인식 때문에 도대체 이걸 어찌 하나 싶었다.
게임 엔진 관련 개발로 개발분야를 바꿀 생각도 했으나, 위 프로젝트 이후로 아무리 T자형 인재를 넘어서 파이형 인재가 되야 한다고 하더라도 그건 커리어 중 후반 이야기지 주니어 단계에서는 하나라도 똑바로 할 수 있어야 다른 것도 소화해낼 수 있겠다고 느꼈다. 이 점을 대표님에게 이야기했고, 다시 웹으로 돌아왔다.
그래서 웹 기반의 3D 컨피규레이터 기획을 받아서 MVP 개발과 출시 후 유지 보수를 진행해왔다.

6월 한달간 천천히 카페24 API 연동을 테스트해보며 서비스를 구현하기 위해서 어떤 아키텍쳐로 어떤 요소들이 필요하고 어떤 기능을 가지며 서로 어떻게 데이터가 오고가야 할지 생각하고 테스트를 진행했다. 그리고 6월 말부터 9월 말까지 본격적으로 MVP 개발에 돌입했고, 마지막 앱 심사 단계에서 2번 반려되고 3번째에 통과되어 결국 정식 출시까지 진행되었다.

뭐 화성에 새로 올려 보낼 로켓 만드는 건 아니니깐, 더군다나 웹이면 이미 검색하면 많은 문제들은 이미 다 해결방법을 찾을 수 있는것들이고, AI 조력까지 있으니 그래도 포기하지만 않으면 답을 찾던가 우회해서 해결할 방법은 나오는 것 같다. 포기하지 않았기 때문에 긍정적인 사용 경험도 들어보고 서비스 도입 문의 인입도 받아보는 보람도 느낄 수 있었지 포기했으면 그저 반년동안 삽질하고 시간만 날린 속쓰린 경험으로 기억 속에 남았을 것이다.

2.2 채용 시장 동향 파악과 업무와 개인 공부에 반영하기

 

그럴싸한 제목에 비해 대단히 철저하게 해낸 건 않았지만, 대부분의 의사결정을 혼자서 내려야 했던 만큼 의사결정의 기준점으로 기술면접 단골 질문들과 내 도메인분야 채용공고에서 명시하는 자격요건과 우대사항을 참고하려고 노력했다.
기술스택 선정 시 가급적 근거가 합당한 이유가 있도록 하려고 했고, 이런저런 구현 과정에서 왜 이렇게 했고 어떤 점을 느꼈으며 어떤 식으로 개선할 수 있을 지 구현하며 생긴 이슈와 해결과정들을 기록해왔다.
물론 애초에 판단 근거를 내릴 실력 자체가 부족하므로 내가 생각한 게 틀렸거나 더 좋은 방법이 있을 것이기 때문에 계속해서 다시 점검해야 할 것들이지만..^^;;

2.3. 우물 밖으로 나가기

2.3.1. 외부 활동

혼자서만 개발하고 있으면 까딱 방심하면 우물안 개구리가 되는건 정말 한순간이지 싶다.
컨퍼런스나 외부에서 열리는 기술 교육에 참가하고 다른 참여자분들과 교류하면서 많이 배웠고 이래저래 즐거운 시간이 되었었다.
부트캠프 막바지 메인 프로젝트 시절 프론트 담당 멘토분으로 처음 뵙게 되어 지금까지 종종 뵙고, 뵐 때마다 항상 귀중한 도움 주신 준프 멘토님께도 정말 감사했다.
또 어디 물어볼 곳 없어 끙끙댈 때 자기 일 처럼 도와주고 QA 해준 동기들과 지인들도 정말 고마웠다.
내년에는 나도 미약하더라도 다른 사람들에게 도움이 될 실력과 인품을 더 갖추도록 노력해야지!

2.3.2. 아웃풋 만들기

꾸준하게 기술 블로깅을 이어왔다라면 참 좋았겠지만 못(안)했다.
대신 혼자서 MVP 개발했던 경험에서 느낀점들과 의사결정의 기준점을 잡기 위해 했던 시도들을 주제로 수료했던 부트캠프에서 주관하는 네트워킹 행사에서 연사로 나서서 처음으로 발표라는 걸 해봤다.
돌이켜보면 참 부족하고 부끄럽지만, 뭐 다음엔 더 잘 할 수 있겠지..ㅎㅎ
내년에는 다시 기술 블로깅도 본격적으로 이어가야겠다. 자체 블로그를 만드느니 뭐 하느니 고민 하지 말고 나중에 갈아타더라도 일단 올리자.

3. 문제점과 개선 시도들

3.1. 도파민 관리

3.1.1. 의지가 아닌 시스템으로 제한하기

  • 인터넷 사용 제한 : BlockSite, 넌얼마나쓰니 앱 사용
  • 소비습관 개선 : 배달 앱 삭제, 가계부 쓰기

SNS 등은 명확하게 내가 정해 둔 시간에만 이용하도록 크롬 브라우저에는 BlockSite 플러그인으로 접속 차단 설정을 해두었고, 핸드폰은 '넌얼마나쓰니' 앱으로 전화, 문자, 업무 메신저, 뱅킹 앱 등을 제외한 나머지를 차단 해두니 이 부분은 상당한 개선이 있었다.
물론 우회할 방법이야 다 있지만..그래도 과거의 내가 막아놨으면 막아둔 이유가 있겠지 해야지.
그런데 폰을 제한해버리니 가끔 모바일에서 브라우징 테스트 할 때 불편함이 있어서 이 부분을 어떻게 해야 할 지 생각을 좀 해보아야 할 것 같다.

3.1.2. 내가 되고자 하는 모습을 계속해서 스스로에게 상기시키기

혼술 안하기 처럼 시스템으로 제한할 수 없는 것들도 있다. 이런 것들은 결국 이게 내 인생에 도움이 되나, 내가 가고자 하는 방향성에 부합하는 행동인가 스스로 판단하고 행동하는 수 밖에 없다. 적어두었던 내가 되고자 하는 모습, 세운 목표를 매일 매일 다시 적던가, 눈에 띄는 곳에 두고 자각하도록 하려고 한다.

3.1.3. 목표, 습관의 진행도를 시각적으로 확인 가능하도록 만들기

정말 오늘은 이거 못하겠어 하고 싶은 날에도 그동안 해온 과정이 뚜렷이 보인다면 그럼에도 불구하고 해낼 수 있는 힘을 더 낼 수 있겠지.

3.2. 명확하고 현실적인 계획 수립과 실행

내가 정말로 의지가 박약하고 게을러서 모든걸 미루고 딴짓 한다기 보다는 일상이 체계적으로 시스템화 되어있지 않기 때문에 뭐부터, 무엇을 언제 해야 할지 해메는게 더 크다고 느꼈다.
'해야 하는데..'하는 것들의 리스트는 무한정으로 쌓여가는데 명확한 실행 계획이 없으니 이거 잠깐 하다 저거 잠깐 하다 하고 꾸준하게 이어지는 게 없지..!!

집에서 출근하기 전까지의 시간, 출근하고 퇴근할 때 까지의 업무 시간, 퇴근하고 자기 전까지의 시간 이 세가지는 매일 반복되는 것들이기 때문에 루틴화 할 것들은 루틴화하여 결정 피로를 줄이고 정말 현명한 선택이 필요할 때를 위해 머리에 부하를 줄이도록 개선할 필요성을 느꼈다.

3.2.1. 결정 피로 줄이기

    1. 도구에 위임하기
    1. 수집 영역 줄이기
    1. 루틴화
    1. 문서화를 위한 문서화 지양하기
    1. 학습관리 시스템화하기

이 부분은 아직 개선안 확정과 실행 후 피드백과 개선이 충분히 이루어지지 않았다.
새해 직전까지 이 글에 다시 업데이트하거나 1월 말에 별도 글로 작성해보아야겠다.
세컨드 브레인 그룹 위키

3.2.2. 쓰고 끝이 아닌 실제로 문제를 해결하는 회고 하기

일간, 주간: 5F 회고
  1. Facts : 나는 오늘 OOO을 해봤다. (사실)
  2. Feelings : 그래서 OOO한 느낌이 들었다. (느낌)
  3. Findings : 이를 통해 OOO의 교훈을 얻었다. (배운점)
  4. Future Action : 따라서 앞으로 OOO 을 할 것이다. (향후 계획)
  5. Feedback : 이후 어떻게 되었는지 공유한다. (추후 공유)

5F는 Facts(사실), Feelings(느낌), Findings(배운점), Future Action(앞으로의 계획), Feedback(추후 공유) 5가지 요소로 구성된다. 하루를 마무리하며 1~3번을 정리하고 4번을 다음날 또는 해당 주의 계획에 반영하는 일간 회고와 한 주를 마무리하며 5번과 4번을 다시금 확인하는 회고 루틴을 도입해볼 계획이다.

월간: KPT 회고
  1. KEEP(유지할 것)
  2. PROBLEM(문제점)
  3. TRY(개선 방안)

PARA 방법론 중 Area 섹션에서 관리하는 장기 목표의 진행상황을 월간 KPT 회고를 통해 체크해보려고 한다. KPT 회고란 Keep(유지할 것), Problem(문제점), Try(개선 방안) 3가지 항목으로 회고하는 방식을 말한다.

3.3. 학습 관리

3.3.1. 시차 복습

  • Box1 : 매일 복습
  • Box2 : 3일마다 복습 - 월 수 금
  • Box3 : 1주일마다 복습 - 일요일
  • Box4 : 1달마다 복습
  • Box5 : 장기 기억으로 넘어간 것으로 보고 주제별로 분류하여 아카이빙

복습하지 않으면 3일전에 배운 것도 20퍼센트도 기억나지 않고, 1주일 뒤면 새로운 내용이 되어버린다. 모딥다를 다시 읽기 시작하면서, 이렇게 고생해서 읽어놨는데 다시 까먹어버리면 너무 억울할 것 같아서 라이트너 박스 방식으로 시차 복습을 도입해보았다.
Anki 앱이 이 분야에서는 강력한 도구이지만 뭔가 아직 손에 익지 않아선지, 불편해서 우선은 가장 편한 툴인 노션으로 Box1, Box2, Box3, Box4, Box5 로 5가지 영역으로 분류한 칸반 형태로 일단 사용해보고 있다.

3.3.2. 아웃풋과 피드백

  • 공부한 것들, 업무에서 해결한 문제들(보안 문제 없게 추상화시켜서) 기술 블로깅 하기
  • 프레임워크, 라이브러리 질문 -> 깃헙 이슈탭, 해당 기술 공식 디코 채널, 포럼 등
  • 강의 듣다가 생긴 질문 -> 강의자가 운영하는 공식 소통 채널

기술 블로깅 빼고는 거의 다 하고 있긴 하니까, 이제는 일상에서 배우고 느낀 걸 계속해서 아웃풋으로 만들어내도록 해야겠다.

3.3.3. 업무와 학습 우선순위

개발을 잘 하는 습관(3단계로 개발하기)
소프트웨어의 개발 5단계

MVP 프로젝트 때부터 업무나 개인 프로젝트를 3단계로 개발하기 방법론과 개발 주기 5단계에 따라 우선순위를 나누어 수정 및 보완을 할 수 있도록 시도해보고 있다.

업무에 필요한 공부는 필요한 걸 필요할 때 배운다.
    1. 일단 돌아가게 만들기
      • 효율성 보단 일단 동작하는 걸 목표로
    1. 옳게 만들기
      • 예외처리, 에러핸들링, 중복제거
    1. 더 좋은 것으로 만들기
      • 퍼포먼스의 병목 찾기
      • 사용 리소스 줄이기

일단 돌아가게 만드는 1단계는 끝났고, 옳게 만드는 과정에 있는 현재로선 아래 문제점들에 대해서 최우선적으로 공부하고 적용하려고 한다.
1. 불필요한 state 와 재렌더링 방지 등 기본적인 리액트 훅 사용 문제 리팩토링
2. 타입스크립트 올바르게 사용하도록 수정
3. 보안 취약점 확인 및 보완

2단계가 끝났다라고 볼 수 있는 시점이 되어야 성능 최적화 위주로 배우고 적용할 수 있겠다고 생각한다. 지금 모든걸 한번에 다 고려하려고 하면 너무 머리가 아프다. 혼자 모든 코드베이스를 다 봐야 하기 때문에 최대한 한 번에 하나씩 실현 가능한 목표로 쪼개서 시도해야겠다고 생각했다. 다만 언제 피벗될지, 신규 서비스 개발로 넘어갈지 모르기 때문에 회사 상황에 따라 달라질 것 같다.

개인 학습 우선순위
  • 코테 준비는 매일 아침 시간대 - 매일매일 하기
  • FE 기술역량 준비는 우선순위에 따라서
      1. JS
      1. TS
      1. 네트워크
      1. 리액트
      1. Next

사실상 평일에 긁어모을 수 있는 시간은 4~5시간이므로 이것저것 기웃대지 않고 답답하더라도 우선순위대로 한 번에 하나씩 하려고 하고 있다. 어차피 당장 필요한 것은 업무 시간에 배우고 적용하고 있으니까 천천히 조바심 내지 말고 계속 나아가기..!

4. 생각들

4.1. 이끌거나, 따르거나, 떠나거나

사용인 입장에서 회사가 어쩌고 팀원이 저쩌고 불평불만 하는 건 참 쉽다. 하지만 내가 상대 입장이 된다면 어땠을까?
상황이 어쩌건 나는 내 최선을 다 하면 되고, 결국 할수 있는 건 그것 뿐이다. 뭐가 누구 때문에 어쩌고 저쩌고 시시비비 가리는데 시간과 감정 소모할 필요도 없고 그럴 시간도 없다.
근래에 좀 감정기복이 있었는데, 다시 다잡고 정진해야겠다.

4.2. 회사 밖의 나, 그리고 AI

빅테크 개발자도 아니고 정말 작은 곳에 있고 일단 내 개발실력부터 먼저 챙겨야 하는 입장에선 사실 발등에 붙은 불부터 끄고 생각해볼 주제이긴 하지만 계속해서 걱정이 되는 건 아직 어쩔 도리가 없다.

물론 AI에 대체되지 않는 실력을 계속 쌓아오던지, 대체되더라도 기본소득제 나올때 까진 살아남을 것 같긴 하지만, 개발자 딱지 뗀 나, 회사 딱지 뗀 나는 세상에 소구할 수 있는게 뭐가 있나?
자연어로 개발이 전부 가능해지는 때를 상정하면 또 기획이나 커뮤니케이션 역량도 갖춰야 할 것 같고.. 물론 내가 주니어인 동안에 일어날 일은 아닐 것 같지만.
어렵다. 이런 고민들을 충분히 답을 낼 수 있을 만큼 더 일찍 시작했다면 좋았겠지만 일찍 시작했다고 과연 달라졌을까? 내년 이맘때는 지금보다 좀 더 스스로 답을 찾을 수 있도록 해야겠다.

4.3 나만큼은 내 편이 되어주자

물론 직업인으로서는 스스로 높은 기준점을 세우고 이를 도달하기 위해 고군분투 해야 하고, 나의 성장을 위해서는 스스로에게 엄격해야 겠지만, 그래도 올 한 해 너무 고생 많았고 수고했다, 노력했구나하고 나만큼은 나에게 꼭 이야기 해줘야겠다.

728x90
저작자표시 비영리 변경금지 (새창열림)

'기록 > 회고' 카테고리의 다른 글

[코드스테이츠]SEB FE 39 Section 4 회고  (0) 2022.08.19
[코드스테이츠]SEB FE 39 Section 3 회고  (0) 2022.07.20
[코드스테이츠] SEB FE 39기 Section 2 회고  (0) 2022.06.22
[코드스테이츠] SEB FE 39기 Section 1 회고  (0) 2022.05.23
SEB FE 39기 3주차 회고  (0) 2022.05.15
  • 1. 올 해 한 일들
  • 1.1 자율주행 로봇 소프트웨어 조작 화면단 구현
  • 1.2 언리얼 기반 프로토타입 프로젝트 외주
  • 1.3 카페24 연동 웹 기반 3D 컨피규레이터+CMS 서비스 구현
  • 2. 내년에도 이어갈 것
  • 2.2 채용 시장 동향 파악과 업무와 개인 공부에 반영하기
  • 2.3. 우물 밖으로 나가기
  • 3. 문제점과 개선 시도들
  • 3.1. 도파민 관리
  • 3.2. 명확하고 현실적인 계획 수립과 실행
  • 3.3. 학습 관리
  • 4. 생각들
  • 4.1. 이끌거나, 따르거나, 떠나거나
  • 4.2. 회사 밖의 나, 그리고 AI
  • 4.3 나만큼은 내 편이 되어주자
'기록/회고' 카테고리의 다른 글
  • [코드스테이츠]SEB FE 39 Section 4 회고
  • [코드스테이츠]SEB FE 39 Section 3 회고
  • [코드스테이츠] SEB FE 39기 Section 2 회고
  • [코드스테이츠] SEB FE 39기 Section 1 회고
FE RYAN
FE RYAN

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.