본문 바로가기

분류 전체보기222

[Javascript] (DFS) 깊이 우선 탐색 - 전위 순회, 중위 순회, 후위 순회 DFS : 깊이 우선 탐색 (한 방향으로 쭉 깊게 들어감) 재귀를 이해했다면 DFS를 이해할 차례다. DFS를 이해하기 위해 이진 트리의 순회를 먼저 해보자. 이진트리 순회 방식에는 3가지가 있다. 전위 순회 중위 순회 후위 순회 이름이 굉장히 구린데, 부모노드 (정점, vertex)의 순서가 앞에 있냐, 중간에 있냐, 뒤에 있냐 로 해석하면 이해가 된다. 코드로 설명하자. 전위 순회 function solution(n) { // 전위 순회 (부모 먼저 => 왼 오) function DFS(v) { if (v > 7) return; console.log(v); DFS(v * 2); DFS(v * 2 + 1); } DFS(n); } console.log(solution(1)); function soluti.. 2022. 11. 8.
[Javascript] (재귀) 이진수 만들기 [Javascript] (재귀) 이진수 만들기 어제 코테를 봤는데 재귀 문제가 2문제 나왔습니다. 부트캠프에서 공부할 때 구현 문제는 다 쉽게 푸는데 재귀 문제가 나왔을 때 처음으로 못 풀어서 공부했던 기억이 있는데요, 같은 문제가 코테에 나왔습니다. 기본 테스트 케이스는 다 맞췄지만 효율성 테스트에서 TLE가 떠서 결국 부분점수로 제출하고 끝을 냈습니다. 코테가 어렵기로 유명한 회사의 시험을 친것도 아닌데 당황하는 경험을 하니 부족함을 많이 느꼈습니다. 그래서 재귀와 재귀를 활용한 그래프 탐색을 정복하기로 결정했습니다. 프론트엔드 개발자로써 화면 구현에 지금 당장 알아야 하는 내용이 아닐지 모르지만 지난 네부캠 탈락 후기에 적었듯이 '코테'라는 관문 때문에 내가 원하는 교육이나 입사를 못.. 2022. 11. 8.
<이펙티브 엔지니어> - 에드먼드 라우 이펙티브 엔지니어 제목에서 알 수 있듯 "어떻게 하면 효율적으로, 효과적으로 일하는 엔지니어가 될것인가?"에 관한 책이다. 기억에 남는 이야기들 가장 기억에 남는 점은 학습에 집중하라는 이야기이다. 학습률에 투자하면 복리 효과처럼 학습속도가 평생에 걸쳐 누적되어 효과를 보게 되므로 학습률을 개선하는데 노력하는것이 가장 효과적인 활동이라는 이야기다. 네트워킹 모임에 꾸준히 참석한 이야기도 기억에 남는다. 저자는 네트워킹에 참석해 어색해 하던 사람에서 꾸준히 참석하고 노력하면서 네트워킹에 익숙해지고 덕분에 좋은 사람도 많이 만나는 사람으로 변하는 과정을 이야기한다. 나 또한 내 주변 친한 사람들을 제외하곤 잘 안만나는 사람이었다. 하지만 이 책을 읽고 나서 나름 최선을 다해 앞서나간 개발자분께 연락도 해보고.. 2022. 11. 7.
30년의 개발 경험을 이야기해주는 책 <개발자로 살아남기> - 박종천 책을 알게 된 경로 해당 책을 알게 된 계기는 "박종천"님의 세미나를 "직강"하는 영광을 누렸기에 알게 되었습니다! 구름 커밋이라는 행사에 오프라인으로 참석하여 3분의 시니어 개발자들의 강연을 들었는데요, 박종천님의 강연이 꽤나 인상 깊었고, 또한 책으로 더 자세한 이야기를 들을 수 있다는 말에 솔깃해 바로 책을 읽게 되었습니다. 사실 30년이라는 개발 경력이 있다보니 10년 단위로 3챕터로 내용이 나뉘어있었습니다. 그래서 저는 ... 첫 챕터인 "성장하는 10년" 부분과 마지막 공통부분인 이렇게 30년을 개발자로 커리어를 살면서 수립하게 된 "시간관리법"에 대한 부분, 그리고 마지막 부록인 "개발자 고민상담 119"부분을 중점적으로 읽었습니다. 이 책을 읽으며 많은 부분에서 공감도 되고 재미도 있게 읽.. 2022. 11. 3.
[React.js] useContext 찍먹, useFetch 구현, loading, error 상태 관리 useContext를 찍먹해봤습니다. 원티드 프리온보딩 과제 중 useContext API를 API와 연동하라는 요구사항이 있어 급하게 학습 => 사용해보았습니다. 시간이 많이 부족해 제대로 contextAPI를 사용하지 못해 많이 아쉽습니다. 그래도 찍먹에 의미를 두고 PR 내용을 블로그에 남깁니다. 이번 과제를 통해 useFetch로 로직 분리 하는 방법을 확실히 배웠습니다. 커스텀 훅을 만드는데 두려움 없는 수준이 된 것 같습니다. 앞으로 컴포넌트에서 로직을 뺄 수 있다면 꼭!!! 커스텀훅으로 빼야겠습니다. 커스텀 훅을 통해 component의 view단이 깔끔해지니 너무 마음에 들어서 앞으로 커스텀 훅을 애용할 것 같습니다. 또한, [isLoading, errors] 상태를 만들어 loading중.. 2022. 10. 31.
[React.js] axios instance.interceptor를 이용한 미들처리 interceptor interceptor 기능을 사용하면 response, request 등 axios을 활용한 통신 중간에 내가 지정한 처리를 하도록 만들수 있다. 전문용어로 미들웨어라고 부르면 이해가 빠르겠다. 이 interceptor 기능을 사용하면 아래 코드 중 가장 아래와 같이 req.headers.Authorization을 localStorage.getItem(&#39;token&#39;)을 하며 리퀘스트를 보내도록 만들 수 있다. 이렇게 하면 코드 상에서 중복되는 토큰 부분이 사라진다. 이 이외에도 인터셉터를 활용한 기능들이 많이 있다. 예를들면 이전 axios 포스팅에서 말했던 fetch문에서의 res와 axios의 res가 달라서 헷갈릴 때를 대비해 res를 res.data로 만들어서 .. 2022. 10. 29.
[React.js] 리팩토링 하며 생긴 질문 - axios 의 catch() 와 try-catch의 catch가 같은건가? 리팩토링 하면서 생긴 질문들 axios…..catch(error ⇒ console.error(error)) 에러처리를 할 때 axios의 프로미스객체가 rejected 될 때를 catch 하는 형태로 해주는걸 봤다. 이걸로 에러 처리가 전부 된다면 try-catch문은 필요가 없는 것일까? 찾아봐야겠다. https://stackabuse.com/handling-errors-with-axios/ 위 링크의 글을 보면 아래 두 코드에서 catch의 역할이 완전 똑같다는 걸 알 수 있다. 심지어 res, error 마저 같은 값을 나타낸다고 한다. export async function getTodoList(token: string | null) { try { const res = await http.get(.. 2022. 10. 28.
[Javascript] (프로그래머스 level 0) 연속된 수의 합 [Javascript] (프로그래머스 level 0) 연속된 수의 합 💡 구글에 Javascript 풀이가 많이 없거나, 배운 점이 있으면 포스팅합니다. 내 풀이 function solution(num, total) { const result = new Array(num).fill().map((_, i) => i); let subSum = result.reduce((acc, cur) => acc + cur); let left = 0; let right = num -1; while(true) { if (subSum === total) { return result.map((x) => x + left); } else if (subSum < total) { subSum = subSum - left + right.. 2022. 10. 28.
[Git] 희대의 난제 커밋 메시지 😅 리팩토링 to-do-app을 Refactoring 했습니다. 그런데 커밋메시지 남기는게 너무 어렵네요. 거기다 제 깃 히스토리를 보면 정말 마음에 안드는게 한 두가지가 아닙니다. 깃 로그 문제 첫번째, 깃 로그를 봐도 뭘 했는지 시멘틱하게 알아볼 수 없습니다. Refactoring을 했다는데 어떤 부분에 손을 댔는지 어떤 생각으로 했는지 왜 했는지 이런 이야기가 전혀 없고, 그냥 Refactoring을 했다고 적어뒀네요. 여기에다가 rebase까지 해버리니까 소스코드의 이곳 저곳을 다 조금씩 고쳤는데 이거 진짜 난장판이네요 😭 깃 관리를 할 때 cli와 VSCODE만으로는 내가 어떤 코드를 수정했는지, 제대로 된 형상관리가 쉽지 않습니다. 물론 신경쓰면 당연히 가능하겠지만 git-fork client 툴.. 2022. 10. 26.
[React.js] 제로초 웹게임 - 5. 가위바위보 (life Cycle, useEffect) 강의를 통해 배운 점 useEffect에 대해 알고 있었고, 사용법 또한 알고 있었습니다. 프로젝트에서 문제없이 사용했고, 항상 의도한 대로 사용되어 왔습니다. 하지만 강의에서 오류가 생기는걸 보았고, 나는 문제가 없는데 강의에선 왜 문제가 생겼지? 라는 의문이 생겼습니다. 공식문서를 뒤져보니 강의에서의 설명이 맞았고 (rendering될 때마다 useEffect 콜백이 실행이 되고 clean-up또한 실행이 된다.는 내용) 이게 지금도 이해는 안가지만 어쨋든 공식문서에 나와 있는 것처럼 이럼에도 불구하고 문제가 안생긴것은 디펜던시 배열에 빌드 시 자동으로 추가 될 수 있기 때문이라는 것도 배웠습니다. 강의를 보고 나서 오히려 더 이해가 안가는 상황입니다. 지금 진짜 ~~ 이해 안되는 상황인데 일단은 넘.. 2022. 10. 25.