분류 전체보기
-
20221115 TIL 자동화를 하자!TIL 2022. 11. 15. 12:56
트레이너님께서 과제를 하면서 날린 PR들을 머지해도 된다고 하신지 꽤 됐는데, 한땀한땀 author를 나로 설정해서 필터하고, PR에 들어가서 머지하고, 다시 나와서 다시 PR들어가서 머지하고, 하는 것이 너무나 귀찮았고, 시간이 부족해서 하지 않고 있었다. 하지만 PR을 머지하면 나의 깃헙 컨트리뷰션이 올라가기 때문에 내가 작성했던 과제들에 대한 PR을 머지를 하는 것이 매우 좋은 일인데, 약 5개의 레포지토리마다 날린 PR이 몇 십 개여서 너무나 귀찮아서 자동화할 방법이 없나 고민을 하던 중에 구글에 아무리 github merge all pr 이런식으로 검색을 해봐도 자동화할 수 있는 방법이 나오지가 않아서 한참 미뤄두고 있었다. 그런데 예전에 코드숨에서 어떤 리뷰어분께서 리뷰를 완료한 PR을 한 번..
-
20221114 TIL 백트래킹 알고리즘TIL 2022. 11. 14. 17:54
오늘은 N-Queen문제를 풀어봤다. https://school.programmers.co.kr/learn/courses/30/lessons/12952?language=java 뭔가 풀릴듯 말듯 풀리지 않은 채로 시간이 너무 많이 흘러서 일과 시간을 지키기 위해 일단 풀이를 찾아봤다. 풀이들이 모두 백트래킹 알고리즘이라는 용어를 사용하고 있었고, 이 문제를 풀려면 백트래킹 알고리즘을 먼저 이해해야 될 것 같아서 백트래킹 알고리즘에 대해 알아봤다. 백트래킹 알고리즘은 모든 가능한 경우의 수를 고려해서 문제를 푸는 방식이다. 가능한 솔루션이 여러 개일 때 그 모든 솔루션을 다 구하는 경우에 사용한다. N-Queen문제는 조건을 만족하는 가능한 모든 솔루션의 개수를 구해야하기 때문에 백트래킹 알고리즘을 사용할..
-
13주차 개념노트메가테라 2022. 11. 13. 23:30
useEffect 렌더링할 때 side effect를 발생시키기 위해 사용하는 리액트 훅이다. useEffect(() => { // effect return () => {//cleanup}; }, dependencies); 와 같이 사용하고, dependencies로 effect를 발생시킬 시점을 조절할 수 있다. useEffect(() => { }); 위와 같이 사용하면 렌더링이 될 때마다 useEffect 내부가 실행되고, useEffect(() => { }, []); 위와 같이 사용하면 컴포넌트가 나타났을 때 한 번 useEffect 내부가 실행되고, useEffect(() => { }, [value1, value2 ..]); 위와 같이 사용하면 컴포넌트가 나타났을 때, 그리고 value1, val..
-
20221113 TIL useEffectTIL 2022. 11. 13. 20:53
리액트에서 외부 API와 동기화를 할 때 useEffect를 사용한다. useEffect를 제대로 사용하려면 리액트 컴포넌트의 생명주기를 제대로 인지하고 있어야 하는 줄 알고 있었는데, 새로운 리액트 공식 문서를 보다가 생명주기보다 start/stop cycle에 초점을 두고 이해하는 것이 바람직하다는 것을 읽게 되었다. 일단은 생명주기도 명확히는 몰랐기 때문에 생명주기에 대해서도 알아보았다. 어떤 컴포넌트가 DOM에 처음 렌더링 되는 것을 마운팅이라고 한다. 그리고, 컴포넌트에 의해 생성된 DOM이 삭제되어 사라지는 것을 언마운팅이라고 한다. 그리고 마운팅과 언마운팅 사이에 props나 상태가 바뀌어 업데이트될 수 있다. 그리고 마운팅과 언마운팅, 업데이트 시에 어떤 코드를 실행시키고 싶다면 useEf..
-
20221112 TIL 악마는 정말로 디테일에 있었다TIL 2022. 11. 12. 13:35
이번 주 과제를 어제 테스트 커버리지 100%를 채우고 완성을 했다. 그런데 생각을 하다보니 내가 짰던 코드보다 조금 더 나은 로직이 있는 것 같아서 리팩토링을 하려고 에디터를 열었다. 그런데 내가 고려하지 않았던 부분들이 너무 많은 것을 이제야 확인했다. 일정 너비 이상 넘어가면 scroll이 돼야 하는데 scroll이 안되고, 계속 넘치고 있는 UI가 보여서 재빠르게 수정을 하고, 또 뭔가 잘못된 게 없나 조금 살펴보다가 잔액이 부족한데도 송금 내역이 작성되는 상황을 마주했다. 보내는 금액이 음수인 경우에 대한 예외 케이스는 처리를 했지만, 잔액이 부족할 때도 송금이 되는 상황은 막지 못했던 것이다. 실제 서비스가 아니어서 정말 다행이었지만, 만약 내가 짠 코드가 실제로 서비스되었다면 회사에 엄청난 ..
-
20221111 TIL 리액트는 언제 리렌더링을 할까?TIL 2022. 11. 11. 22:54
리액트를 사용할 때는 어떨 때 리액트가 리렌더링을 하는지 명확히 알고 있어야 우리가 원하는 UI를 제대로 만들 수 있다. 리액트에서는 props나 상태가 변경되었을 때 리렌더링이 일어난다. 그런데 '변경'을 리액트는 어떻게 인지할까? 리액트는 기존값과 현재 값을 Object.is()로 false인지 확인해서 변경이 되었는지 검사한다. Object.is()는 아래와 경우들에 true를 반환한다. 1. 두 값이 모두 undefined인 경우 2. 두 값이 모두 null인 경우 3. 두 값이 모두 true인 경우 4. 두 값이 모두 false인 경우 5. 두 값이 모두 문자들을 동일한 순서로 가진 동일한 길이의 문자열인 경우 6. 두 값이 모두 +0인 경우 7. 두 값이 모두 -0인 겅우 8. 두 값이 모두 ..
-
메가테라 12주차 주간회고회고 2022. 11. 11. 15:55
이번 주는 시간이 매우 빠르게 지나갔다. 해가 짧아져서인지 모르겠지만 이번 주는 시간이 매우 빠르게 흐른 느낌이 든다. 저번 주에 세웠던 액션 플랜이 많았던 만큼 먼저 액션 플랜을 잘 지켰는지 돌아보자. 1. 책을 주말 동안 최대한 읽어보기 이번 주는 리액트를 배우는 주간이라 따로 주어진 책은 없고, 리액트 공식 문서를 읽는 것이 목표였다. 리액트 공식 문서를 읽어봤던 적이 있고, 리액트를 써본 적이 있어서인지 주말 동안 많이 읽지는 못했지만 문서를 읽는 것 때문에 퀘스트 과제가 밀리지는 않았다. 2. 정보 습득을 조금 더 빠르게 하기 더 나은 코드를 작성하는 방법은 공식 문서 외에도 깃헙에서 검색해서 찾아보고 있다. 확실히 많은 코드 예시들을 보니 공식 문서만 보는 것보다는 더 빠르게 정보를 습득하고 ..
-
20221110 TIL 비동기는 소듕해TIL 2022. 11. 10. 23:20
말만 들어도 어렵던 비동기 개념을 처음 접한지 1년이 지난 지금 드디어 비동기가 두렵지 않고 소중해졌다. 비동기 개념이 없었다면 자바스크립트가 지금처럼 이렇게 많이 쓰이지 않았거나 웹사이트를 이용하면서 매우 답답함을 느끼고 있었을 것이다. 네트워크가 잘 안터져서 속도가 느린 답답함을 넘어 항상 그 이상의 답답함을 느끼고 있었을지도 모른다. 그 이유는 자바스크립트 런타임은 싱글 스레드라 한 번에 한 가지 일밖에 못하기 때문이다. 동기, 비동기라는 개념을 웹 공부를 하다보면 필수적으로 접하게 된다. 동기적이라는 것은 모든 게 순차적으로 진행된다는 것이다. 그런데 자바스크립트는 한 번에 한 가지 일밖에 못한다. 은행 창구에 직원이 한 명 밖에 없는데 나의 순번이 한참 남았는데 직원과 마주보고 있는 손님이 대출..