반응형

til 12

[TIL] 210924 오늘 공부는 스터디( 메모리 구조 - 스택,힙 / 자바스크립트의 비동기 처리 과정)

입사 동료분과 스터디를 했다. 이벤트 루프를 주제로 공부하다가, 비동기 처리 과정을 좀 더 자세히 공부하면 좋겠다고 생각했다. 뿐만 아니라 useRef로 만들어진 객체가 힙에 저장되어 같은 주소값을 참조하여 렌더링에 영향을 받지 않는다고 했다. 힙이 무엇인지 알려면 먼저 메모리 구조를 공부해야 할 것 같다. 끝나고 웹팩하고 바벨 정복하러 가야한다. 바쁘다 바빠 개린이 😎 메모리의 구조 프로그램이 실행되려면 메모리에 먼저 로드 되어야 함. 프로그램에서 사용되는 변수를 저장할 메모리가 필요하다. 운영체제는 프로그램을 위해 메모리 공간을 할당해주고, 운영체제가 제공하는 메모리는 총 4가지 영역이다. 1. 코드(code) : 실행할 프로그램의 코드가 저장되는 영역, CPU는 코드 영역에 저장된 명령어를 하나씩 ..

개발일지/TIL 2021.09.25

[TIL] 210923 오늘 공부는 디바운싱, 쓰로틀링

추석연휴가 끝났다. 역시나 오늘도 크런치모드로 열일하는 회사다ㅎㅎ 신입 나부랭이라 언제나 하는일은 작고 귀엽지만, 폭풍 구글링으로 버텨내고 있다. 디바운싱과 쓰로틀링 요것은 항해때 무한 스크롤을 하려고 lodash 라이브러리를 쓰면서 겉핥기로 했었던 것인데, 현업코드에서 디바운싱을 만나게 되었다. 꼭 라이브러리를 쓰지 않아도, 무한 스크롤을 구현하거나 검색창을 구현하지 않아도 성능을 위해 쓴다. 🌼 디바운싱: 연이어 호출되는 함수들 중 마지막 함수(또는 제일 처음)만 호출하도록 하는 것 - 검색어 개발에서 많이 쓰임 - 만약 검색어 개발하는데 쓰로틀링을 쓴다면? 이상한(미완성된) 검색어에도 무조건 일정 시간마다 호출되기 때문에 서버에 부하를 줄 수 있으니 디바운싱을 쓴다. - 꼭 검색어 개발에만 쓰이는것..

개발일지/TIL 2021.09.24

[TIL] 2109017 오늘 공부는 sessionStorage

세션 스토리지! 들어보기만 했지 사용할일이 있을까 했는데 오늘 써보게 되었다. 쿠키 / 웹스토리지(로컬,세션 스토리지)와의 차이를 먼저 알고 넘어가면 좋을 것 같다. 쿠키는 매 http요청마다 api 호출이 되어 서버에 부담이 된다고 한다. 웹 스토리지는 쿠키의 단점을 보완해서 만든 기술로, 서버가 아닌 클라이언트에 정보를 저장한다. 서버를 건드리지 않음! 보통 자동 로그인은 로컬 스토리지에 저장하고, 비 로그인한 장바구니는 세션 스토리지에 저장한다고 한다.(오호) 로컬 스토리지랑 쿠키에만 뭘 담아봤는데 세션 스토리지에 담게되다니, 어려울줄 알았는데 사용법이 로컬 스토리지랑 똑같다. 다만 로컬 스토리지와 약간의 차이점이 있다. 탭별로 값을 다르게 두고 싶어서 크롬에 탭 아이디가 있는지 검색하다가 세션 스..

개발일지/TIL 2021.09.17

[TIL] 2109015 오늘 공부는 useLayoutEffect, git push -force

useLayoutEffect라는 훅이 있다. 처음 듣는 훅이었는데 꽤나 유용한 것 같아서 공부해보았다. useLayoutEffect DOM이 변경되고 나서 동기적으로 실행된다. 즉 브라우저가 화면을 그리기 전에 실행된다. 컴포넌트들이 렌더되고 paint가 된다. 스크롤 위치를 얻어오거나, DOM 엘리먼트 스타일을 조작할 때 사용하면 깜빡임이 없어서 그 때 쓰기 유용하다. 즉 최초 state값이 있는데, 이 값에 따라 렌더링 되어야하는 상황일때 useEffect는 최초 state값을 먼저 보여주고, re-render 되기 때문에 화면 깜빡임이 있다. 이때 useLayoutEffect를 쓰면 깜빡임이 없다. 좋은 예시가 있어서 가져왔다. 미세한 깜빡임의 차이가 있다. useLayoutEffect 을 사용할 ..

개발일지/TIL 2021.09.15

[TIL] 2109010 오늘 공부는 null 병합 연산자, OAuth 2.0

null 병합 연산자 (nullish coalescing operator) ?? 물음표 두개짜리 코드를 봤다. 널 병합 연산자라고 한다. a ?? b 는 a가 null도 아니고 undefined도 아니면 a , 그 외의 경우는 b 인 것 즉 ?? 없이 표현하면 아래와 같다. a !== null && a !== undefined ? a : b; 좋은 예시를 가져왔다. let firstName = null; let lastName = null; let nickName = "바이올렛"; // null이나 undefined가 아닌 첫 번째 피연산자 alert(firstName ?? lastName ?? nickName ?? "익명의 사용자"); // 바이올렛 firstName이 null이기 때문에 lastNam..

개발일지/TIL 2021.09.11

[TIL] 210909 오늘 공부는 반응형, 미디어 쿼리

아주 단순한 에러 알럿 페이지의 반응형을 구현했다. 예전에 반응형 구현했을 때, styled-component를 사용해서 구현했던 적이 있었는데, styled-component가 쓰기 편하긴 한데 아래로 죽죽 코드를 길게 만들어서 컴포넌트가 너무 길어졌던 기억이 있다. 그래서 이번에는 css파일을 별도로 만들었다. 다행히 태블릿과 웹에서 레이아웃에서 큰 차이는 없는 페이지여서 오래 걸리지는 않았는데, 여튼 미디어 쿼리를 오랜만에 써봤다. 다만 break-point를 몇 px로 잡느냐가 헷갈렸는데 통상 태블릿은 768px, 모바일은 300~400px 사이대를 브레이크 포인트로 잡아서 진행했었다. 이번에도 그렇게 해야하나? 하고 디자인을 봤는데 굳이 그렇게 나눌 필요 없을 것 같았다. 이미지 사이즈가 568..

개발일지/TIL 2021.09.10

[TIL] 210908 오늘 공부는 풀리퀘스트, react-modal

오늘은 리액트 모달창 위에 리액트 모달창을 올리는 걸 하려고 했다. 안되길래 찾아보니까 multiple modal은 안된다는 글들이 많고, 무슨 라이브러리를 또 설치해야한다고 해서 바닐라 자바스크립트로 팝업창을 구현하다가 안될리가 없는 것 같아서 z-index를 주어봤다ㅠ 그래도 안되길래 안되나 했는데 overlay (모달창 배경)에 z-index를 주니까 모달1 위로 모달2가 올라왔다. 오.. 모달 2개가 되는구나. 찾아보니까 모달에 z-index 줄 때, content 뿐만 아니라 overlay에도 z-index를 줘야 위로 올라온다고 했다. 결론, react-modal 라이브러리 모달 2개 됨 (3개도 될까,,?) pull request가 무엇인지, 어떻게 쓰는지에 대해 알게되었다. pull req..

개발일지/TIL 2021.09.08

[TIL] 210906 오늘 공부는 this, ~~~

저번주는 체력 제로였다.ㅠ 백신에 생리통 같이오고 장염증상까지 와서 주말에 앉아있질 못했었다. ㅠㅠ 어어어어아ㅡ아악 이번주도 고통의 연장선이지만 열심히 버티고 있다..ㅠㅠㅠ 흐 할수있다~~~~ 나레기야 죽지말자 this 현업 코드에서 this와 직접적으로 마주칠 일이 생기게 되었다... 두근... 코어 자바스크립트야 내게 힘을 주련 파라미터를 넘겨서 넘겨서 할 필요 없이 리스터에 있는 콜백함수에서 this를 찍으면 콜백함수를 호출한 놈이 this가 된다는 것을.... 다만 역시 콜백함수로는 애로우 펑션을 쓸 수 없었다. arrow function은 this는 상위 환경의 this를 계승하기 때문에 bind 도 안먹는다 걍 정적으로 가지고 태어난 놈이라 일반 함수를 써주었다. 그리하여 리스너의 호출하는 놈..

개발일지/TIL 2021.09.07

[TIL] 210827 오늘 공부는 어떤 기능을 하기 위해...

이번주는 TIL을 쓴 적이 별로 없었다. 왜냐하면 이번주도 또 멘탈이 바사삭 되었기 때문이다. 맨날 멘탈이 바사삭 나는 것 같아 보이지만 이번주는 특히 누가 밟은 쿠크다스 같았다ㅋㅋㅋ 부정적인 기운들을 계속 TIL에 담는 것같아 속상해서 블로그에 들어오기 싫었다ㅠㅠ 근데 이상하게 어제 이후로 독기가 더 오르는 느낌이다,, 역시 나는 나를 채찍질 해 가면서 힘을 얻나보다ㅠ 항해에서 모집하는 로켓단 1기도 신청했다. C#으로 게임을 개발한다고 하는데 재밌을 것 같다 여튼 오늘은 어떤 특정 기능을 구현하는 과정에 대한 것을 써보고자 한다. 수첩을 캡처해서 올리고 싶은데 회사 코드의 내용이라 올리기는 애매해서 그냥 대충 글로 정리해보고자 한다. 1) 코드를 읽는다. (물론 남이 짠 코드라 1도 모르는 상태임) ..

개발일지/TIL 2021.08.27

[TIL] 210820 오늘 공부는 input 오류 해결 및 css flex 속성

드디어 금요일이다~~~~ 무야호~! 어제는 재택을 했는데, 재택이 더 피곤해서(?) 뻗었다. 혼자 하려니 더 힘들고 막막했음...흑흑... 병아리 신입... 지금도 졸리긴 하지만, 오늘 배운것을 꼭 쓰고 가려고 노트북을 다시 켰다!!!! 매일매일 배우는 것은 너무 많지만 짧게 간략하게만 기록의 느낌으로 쓰고 자야겠다. 다 하고 주말에는 앞으로 같이 입사한 동료분과 cs개념(computer science) 스터디를 하기로 했다. 책 한권 사서 읽어가는 느낌으로 아침마다 가볍게 진행해보고자 한다. 그래서 주말에는 어떤 책으로 공부하면 좋을지 찾아봐야겠다. 1) You provided a `value` prop to a form field without an `onChange` handler. This wil..

개발일지/TIL 2021.08.22