JIGGAG

6월 한달동안 로그

2020년 7월 4일

6/28 - 6/30

Node

  • 지난번에 nvm으로 다른 버전 설치 후 오류 발생
  • dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.64.dylib Referenced from: /usr/local/bin/node

문득

  • 나만 일하고 있는게 아니다
  • 다들 바쁘게 움직이고 있다
  • 그럼에도 나한테 주어진 무언가를 바쁘다는 이유로 다른 사람에게 부탁 아닌 부탁을 했다
  • 내가 좀 더 편해질 수는 있으나 누군가는 이를 위해 하려던 일을 잠시 미뤄야하는 것
  • 결국 나 밖에 생각하지 못한 일
  • 그리고 문득 이게 원래 안되는건가?
  • 의도가 어떠한지 상관은 없었다
  • 나에게 전달되는 메세지는 충분했다
  • 나는 왜 해보려하지 않았을까
  • 나혼자하는게 아니다
  • 이럴수록 천천히

6/21 - 6/27

ec2

  • 모듈 설치도 안되고
  • 그래서 빌드파일을 통째로 넣어버렸다...
  • 동작은 하는데 원하는 방향은 아니다
  • 내년에는 실제 운영 서버와 스케줄 서버를 구분해서 사용해볼까

고민

  • 짧고 길었던 고민의 시간
  • 지금 봐야할 것이 어디인가를 분명하게
  • 쉴때는 업무생각을 안해야하는데 할일을 미리 줄세워둔다
  • 함께 자라기를 다시 읽어보고싶다

기본

  • 알고 있다고 생각했다
  • 누군가 물어보니 대답을 어물쩡
  • 확실하게 대답을 할 수 없었다
  • 차이점을 알려줄 수 없었다
  • 기본이 부족했다

HTML

  • DOCTYPE
    • 작성된 문서 포맷을 위에 선언하여 웹 브라우저가 잘 그릴수 있도록
    • <!DOCTYPE html>
  • Cookie
    • 서버 + 클라
    • 선택적 영구
    • 브라우저 세션에서 선택적으로 접근 가능
    • http 통신 header에 자동 포함
  • localStorage
    • 클라
    • 영구적
    • 브라우저 전체 유지
  • sessionStorage
    • 클라
    • 휘발성
    • 해당 탭에만 적용
  • script
    • script: 일반적으로 html 파싱하다가 만나면 읽어버림
    • script async: 파싱과 병렬 호출 + 즉시 실행
    • script defer: 파싱과 병렬 호출 + 파싱 완료 후 실행 (body 이후 script와 동일)
  • 렌더링
    • html + css 파싱
    • script만나면 모든걸 멈추고 실행하므로 body 다음에 넣어서 화면을 다 그린 뒤 실행하도록
  • 반응형 vs 모바일 우선
    • 미디어 쿼리를 이용하여 웹 기준 반응형 사이트를 작성하는 방법
    • 모바일 미디어를 기준으로 우선 작성 후 다양한 크기에 대해 지원하는 방법

6/14 - 6/20

개발7년차 매니저1일차

  • 책을 읽고 있다
  • 개발을 7년이나 하지도 않았고 내 자신을 매니저하기도 벅차다
  • 그럼에도 팀원들과의 협업 또는 서로를 매니징해주면 되지 않을까
  • 서로를 위한 피드백

Angular

  • 자바랑 AngularJS로 처음 개발을 시작했다
  • 그리고 React, React Native로 넘어왔다
  • 그러면서 느꼈던 점은 AngularJS는 너무 어려웠고 무거웠다라는 것이다
  • 그것도 그럴것이 리액트는 라이브러리이고 앵귤러는 프레임워크라고 생각한다
  • 그럼 당연히 더 무거운거지
  • 그리고 내가 공부가 부족했다
  • 그래서 다시 찾아보기로했는데 9? 빠른 메이저 버전 업
  • 가장 큰 변화: AngularJS -> Angular
  • 이 변화로 내가 겪은 어려움들이 한순간에 해소될것같다
  • 무겁고 느린 속도와 높아보인 러닝커브는 기존에 AngularJS로 개발되어있던 레거시 코드를 이어받았기 때문
  • 이제 내가 선택할 수 있는 상황 => 그럼 어떤걸 해볼까

ec2

  • 무엇이 문제야
  • 모듈이 추가가 안된다 용량이 꽉찼나 메모리가 부족한가

반복문

  • 여러번의 반복문을 반복하다보면 결국 답에 도달할 수는 있다
  • 그러나 100만개의 데이터를 10번 반복한다면 오랜 시간이 필요하지 않을까
  • 그래서 최소한으로 줄이고자 최근에 작성했던 코드들을 되돌아보았다
  • 단순 포맷 변경을 위해 한바퀴, 키값을 뽑아내고자 또 한바퀴, 정렬 하려고 한바퀴 더...
  • 그렇게 돌고 돌던 코드를 한번 뜯어보았다
  • 한번은 꼭 필요한것 같아 한번 돌면서 모든걸 뽑아내자
  • 포맷 변경하면서 키값이 되는 값을 또 다른 필드로 정렬하면서 호출 => 키값으로 정렬된 포맷팅된 데이터를 꺼내왔다
  • 이게 과연 좋은건가? 보기 어려워지는건 아닐까

6/7 - 6/13

unmount

  • unmount되면서 이벤트 리스너가 삭제되어야하는데 이상하게 그 사이에 텀이 있음
  • 화면 이동으로 navigate 스택이 사라졌다고 생각되는데 이벤트 리스너가 작동함
  • 그 짧은 시간이 왜 있을까???

필요한 사람

  • 여기서 새로운걸 배우고 싶어하는 것보다 할 줄 아는 사람이 필요한 상황
  • 과연 나는 필요한 사람일까

최적화

  • Memoization만 하면 어느정도 될 거라 생각했다
  • 이게 큰 오판이였다
  • 도구일뿐
  • 기본적인것이 되어야한다
  • 아무리 프론트가 빨라서 눈에 보이지 않는다 하여도 최적화는 필요하다
  • 수많은 for문을 돌려서 해결하는건 가능하겠지만 이건 해결방안이 아니다
  • 알고리즘을 왜 공부하는 것일까
  • 정답을 내는건 할 수 있다 그러나 그것의 성능은 보장할 수 없다
  • 정답 !== 최상

6/1 - 6/6

의식의 흐름

  • 피드백을 받고 싶다 근데 없다 그래서 책을 본다
  • 책에서 스스로 피드백을 찾는다
  • 혼자서 한계가 있다
  • 업무 스트레스 + 사람 스트레스 이걸 모두 해결할 수 있는게
  • 동기부여
  • 그러다가도 이런 고민을 하는게 맞을까하는 의문이 생긴다
  • 어디다 물어보나 고민도 나눌 곳이 마땅치 않음
  • 스스로 경쟁력을 높여야한다

오픈

  • 숫자로 명확하게 보여줄 수 있어야한다
    • 이용자수
    • 수익
  • 기능 구현을 공개해야한다
    • 개발 능력
    • 코딩 스타일
  • 동기부여
    • 지금에 안주하지 않도록
    • 커뮤니티 + 개인 프로젝트 + 통장 잔고