전체 글 31

[42서울 5기 1차] 라피신 2주차 후기

화요일에는 러시 평가가 있었다. 예외처리가 다 되어있다고 생각해서 당당하게 내려갔으나, 당당하게 0점을 받고 왔다 ❓❗️ 역시, 코딩은 꼼꼼해야 됩니다. 여러분... 그래도 첫 팀플이어서 그런지 재밌게 했던 기억이 있어서 만족했었고, 카뎃님과 재밌는 시간도 보내고 왔다. 이제부터는 멘탈 싸움의 시작이다. 사실 나는 아직까지는 학교가 우선이었기에 0점에 그렇게 신경을 쓰지 않았다. 그렇지만 다른 동료분들은 0점에 신경을 쓰기 시작했고 스트레스를 받는 것 같아서 다시 해피 코딩의 전도사가 되었다. 🤗🤗 42 서울의 본과정 갈 수 있는 기준은 그 누구도 모르기 때문에 모든 것을 잘하고 싶던 사람들은 멘탈 관리를 잘해야 한다. 하지만, 결과가 무조건적으로 항상 잘 나올 수 없기 때문에 42 서울에서 다들 스트레..

기타/42서울 2021.10.11

[42서울 5기 1차] 라피신 1주차 후기

5기 1차 라피신에 참가하고, 어느 정도 여유가 생긴 지금 후기를 작성하려고 한다 😎 인터넷에 라피신 후기를 검색하면 정말 많은 글을 볼 수 있는데, 모두 라피신의 경험을 잃어버리고 싶지 않아서 작성하지 않을까 싶다. 노션을 주로 사용하기 때문에 티스토리 블로그에 오랜만에 들어오니 노션에 다시 가고 싶다. 여기 글 왤케 수치스럽죠 나는 서울에 있는 대학교에서 컴퓨터 전공을 하고 있고, 2학년 1학기를 마치고 군대에 갔다 왔다. 이런저런 활동을 찾아보던 중 42 서울이 있었고 재밌어 보여서 관심을 가지고 있었고 여러 번의 시도 끝에 5기 1차 라피신 신청에 성공했다. 5기 1차 라피신은 예상보다 많이 늦춰진 상태 1달정도 늦게 시작하게 되었다. 실제 라피신 기간은 9월 6일 ~ 10월 1일로 학교랑 아예 ..

기타/42서울 2021.10.11

4회

이 부분은 내가 정리를 했었으나, 슬랙에 공유해주셨던 다를 분 글이 너무 잘 나와있어 가져왔다. 출처 : https://velog.io/@danna-lee/우아한테크러닝-4기-나만의-노션-만들기feat.시니어봇-4차시 말로 설명하지 못한다면 설명한 걸 말로 설명하지 못 한다면 안다고 할 수 없을 것 같다. 아니다, 알 수 있기도 한데 말을 잘 안 해봐서 설명할 수 없는 것 같기도 하다. 자기가 안다고 생각되는 걸 일단 글로 막 써보고 글로 쓴 걸 읽어보면 분명 이상할 테니 다시 고쳐보고 다시 읽어보고 다시 고쳐보고 하면서 단단하게 만들어야 한다. 마치 꿈같은 상태. 일어나서 무슨 꿈이었는지 적어보려 하면 뭔지 기억이 나는 것 같은데 써보려면 듬성듬성 하고 아는 게 이런 상태로, 머릿속에 정리가 안 된 상..

3회

우아한 테크러닝4기_3회 (기존 숙제리뷰) 황윤서님 Google OAuth (FeedBack) 시간을 효과적으로 쓰는 학습 방법은 처음에 "자기가 무엇을 하는지에 대해 아는 것이다." 나중에 돌아봐서 이게 무엇이였지 라고 생각하는거보다는 처음에 잘 하고 다음에 볼 기회를 만들지 말자. Draft JS vs Slate JS (FeedBack) 설명할 때 윤서님의 맥락에서 설명하고 있다. 이건 팀 동료한테 공유할 때 쫓아올 수 없다. 설명시에 Draft에서의 목적이 있고 이거와 관련되게 얘기를 해주는게 좋다. 항상 상대는 모르는 상태이기 때문에 전제를 셋업해서 잘 얘기해놓고, 거기에 대해 본인이 노력한만큼 전달하는 기술이 필요하다. 무엇을 설명할 때는 무엇을 할 지를, 어떤 건지를 먼저 설명을 하고 코드를 ..

2회

우아한 테크러닝4기_2회 CRA가 유지 보수가 어려운 이유 ? 실무에서 하다보면 설정을 바꿀 일이 많다. 그럴 경우 eject를해서 설정해야 하는데, 이것 보다는 처음부터 하는게 편하다. FEEDBACK TO US Repository를 보면, 이런 저런건 잘 나와있지만 목표가 없다. README.md에서 중요한 것은 목표가 필요하다. 기획서라고도 볼 수 있고, 언제까지, 어떻게 만들 것인지 나타내는 게 좋다. 무엇을 만들지 모르는 상황에서 라이브러리를 도입한 것이 불분명하다. 지금까지 했던 것 중에서 이런 저런 목표를 가졌다면, 기술역량을 분석해보자. 이 기능은 만들어봤었고, 저 기능은 만들어보지 않았다면 그걸 먼저 도출하고, 만들어봤던 기능 중에서도 다르게 만들 수 있는건지 판단하자. 기술적 난제가 있..

1회

6월 1일(화요일) 우아한 테크러닝 4기 1회 우아한 형제들 김민태 리드님 (50분 진행, 10분 휴식) Senior가 왜 필요한가? Risk를 방어해줄 수 있는 역할이다. 기술 스택면이나, 지식에서 불필요한 시간 낭비를 줄여주는 역할이다. 고니가 동네 친구에게만 도박을 배웠다면..? 나를 이끌어주는 사람이 있다면 좋게 클 수 있지 않을까? 주로 시니어를 원하는 이유는 모르는, 보지 못하는 부분을 짚어주는 것이 시니어다. 실무적 코드란 무엇인가? 내가 지금 개발을 하는 이게 맞을까? 요구사항을 만족하는 코드가 실무적인 코드다. 재활용이 되는 아키텍쳐, 구조, 디자인 패턴이 있어야 실무적 코드이다. 협업을 한다는 것을 베이스로 두고, 가독성이 좋은 코드를 만드는 것이 실무적인 코드다. 배워보자는 의미에서기..

How does it React Hook re-rendering

medium을 요약하려고 한다. 문제가 되면 삭제하겠다. 결론적으로 React Hook은 Class Component가 Re-rendering 해주는 과정과 같다. 먼저 Class 형태의 Re-rendering 과정을 살펴보자. // extreamly simplified implementation OverReact = (function () { function render(Component) { const instance = new Component() instance.render() return instance } class Component { constructor(props) { this.props = props } setState(state) { this.state = state this.rend..

Web/React 2021.04.24

[Bellman-Ford's Algorithm] 벨만-포드 알고리즘

그래프에서 최단 거리를 구할 때 자주 쓰이는 알고리즘이다. 벨만-포드 알고리즘의 장점부터 먼저 알아보자. 1. 거리의 가중치가 음수여도 사용이 가능하다. 2. 음수 사이클 여부의 존재를 알 수 있다. 위의 두 가지만 봐도 벨만포드 알고리즘의 실질적 필요성을 느낄 수 있다. 왜냐면 전에 배운 다익스트라 알고리즘은 음의 가중치가 있으면 사용이 불가능했기 때문이다. 그럼 작동과정을 살펴보자. 작동 과정 1. 시작 노드부터 "노드와 연결된 모든 간선"을 탐방하면서 데이터를 갱신한다. 2. 그 다음 노드와 연결된 모든 간선을 탐방하면서 데이터를 갱신한다. 3. 그 다음 노드의 다음노드와 연결된 모든 간선을 탐방하면서 데이터를 갱신한다. 4. 반복한다. 되게 간단하다. 처음 노드에 연결되어있는 모든 간선을 확인하고..

[Dijkstra Algorithm] 다익스트라 알고리즘

그래프에서 최소 비용을 탐색하는 알고리즘으로는 다익스트라 알고리즘, 벨만 포드 알고리즘, 플로이드 와샬 알고리즘, SPFA 알고리즘 등이 있다. 이 글에서는 다익스트라 알고리즘에 대해 다룬다. 다익스트라 알고리즘은 정해진 노드에서 다른 모두의 노드까지 최소 비용을 구하는 알고리즘이다. 다익스트라는 Greedy하게 작동한다고 생각하자. 작동 과정 1. 정해진 노드가 들어가있는 모든 간선 중에서 제일 비용이 낮은 간선을 선택하여 다음 노드를 활성화 시킨다. 2. 정해진 노드와 다음 노드가 포함되어 있는 모든 간선 중에서 제일 비용이 낮은 간선을 선택하여 또다른 노드를 활성화 시킨다. 3. 이를 계속해서 반복한다. 다익스트라는 생각보다 간단하다. 단순하게 "활성화 되어 있는 간선 중 제일 비용이 낮은 간선"을..

[Dual-Pivot Quick Sort] 두 개의 피봇으로 퀵 정렬

JAVA 라이브러리의 (java.util.Array.sort)가 사용하는 알고리즘이다. 먼저 퀵 정렬에 대해서 모르면 이 글을 읽기전에 퀵 정렬의 개념을 공부하고 이 글을 읽는것을 추천한다. Arrays.sort가 구현된 모습은 블로그에서 얘기해 주셨다. Merge Sort는 시간 복잡도 O(N logN)을 가지지만, 실제로는 느린 모습을 보여 자주 쓰이지 않게 되었다. 사람들은 Sort알고리즘을 더 발전시킨 Dual-Pivot Quick Sort와 Tim Sort를 사용한다. Dual-Pivot Quick Sort는 삽입 정렬(Insertion Sort)와 Quick Sort를 합친 것이고, Tim Sort는 Insertion Sort와 Merge Sort를 합친 것이다. 그 전에 하나 확인하고 넘어가..