전체글 목록 103

(항해16일차) 220322 리액트 주특기 5일차

마지막 남은 기능 하나를 하루 종일 해결 못하고 있다. 오기가 생겨서 해결하고 자려고 버텼는데, 완성했다고 생각한 순간 새로고침을 하는 순간 실패란걸 알아버린 순간 힘이 빠져버린 순간 자야겠다. 실패 이유: 랜덤으로 채워지는 평점이다. 앞에서부터 랜덤으로 채워져야 한다. 실패한 방법 적어보기 ( ) 수정한 내용 적어보기 ( )

(항해15일차) 220321 리액트 주특기 4일차

정신없이 4일이 지나갔다. 컴포넌트들에게 둘러쌓여 정신없이 헤매다가 이제 조금씩 머릿속으로 들어오는 것 같다. 오늘은 라우터 부분의 강의까지 듣고 자려다가 반가운 친구가 말을 걸어 이야기를 나누다 보니 벌써 시간이 이렇게 됐다. 이야기의 주제는 컴포넌트였는데, 처음에는 웬 쥬커버그 이야기에서 시작하더니 마지막은 어떻게 좋은 컴포넌트를 짤 수 있을까? 로 이야기가 끝이 났다. 알고리즘 주간에 같은 조였던 성재님인데 그 때 도 그랬지만, 정말 깊이 있게 문제를 파고 드는 사람인 것 같다. (나와는 정 반대이다.) 그래서 이야기를 듣고 있으면 내가 생각하지 못했던 부분을 들을 수 있어서 고맙다. 오늘도 import와 export로 보는 컴포넌트의 관계, 컴포넌트가 왜 작아야 하는지?, 결국 마지막 컴포넌트는 ..

(항해99)의 2주차 (220314-220320) WIL

항해를 시작한지 2주가 지났다. 처음 항해를 시작할 때 보다 어깨도 좀 아프고 허리도 좀 아프다. 아직도 조난당했다는 느낌은 상당하지만, 이상하게 이 상황에 적응하고 있다. 적응하느라 몸이 좀 혹사당하는 듯 하다. 지난 금요일 부터는 알고리즘 주간이 끝나고 드디어 리액트를 배우는 주특기 주간이 시작되었다. 이제 이틀 지났는데 알고리즘 주간이 굉장히 옛날처럼 느껴진다. 처음 HTML, CSS, JavaScript를 거쳐서 알고리즘, 리액트까지 쉴 새 없이 새로운 것들이 들어오니 머리에 과부하가 왔는지 계속 집중이 안돼서 오늘은 좀 쉬엄쉬엄했다. 그래도 하루에 앉아 있는 시간이 긴 만큼 뭔가 얻는게 있긴 하다. 알고리즘만 해도 처음에는 식도 쓸 줄 몰라 버벅이던게 이제는 문제가 꽤 재밌게 느껴진다. 문제는 ..

(항해12일차) 220318 리액트 주특기 1일차

리액트, 말로만 듣던 리액트, 오늘 드디어 리액트 주특기 주차가 시작되었다. 첫 날은 발제와 주간계획, 강의자료 배포 등의 준비작업과 리액트 프로젝트를 위한 개발환경 구축으로 대부분의 시간을 보냈다. 처음 HTML로 코딩을 배우기 시작할 때도 그랬지만, 리액트 개발환경을 조성하는 일은 생각만큼 간단한 과정이 아니었다. 익숙하지 않은 VSC프로그램에서 작업을 하게 된 것도 큰 변화 중 하나였고, 첫 리액트 프로젝트를 만들기까지의 과정에 알아야 할 것들이 있었다. 우여곡절 끝에 로컬서버에 첫 리액트로고를 띄우고 웅장해진 마음도 잠시, 분명 에 들어있는 코드들이 지금까지와는 너무 다르게 생긴 것을 보면서 앞으로 또 완전히 백지에서 시작하겠다는 예감이 들었다. 주말까지 리액트 기초강의를 다 듣고 월요일부터 이번..

리액트의 가상돔, component, class

HTML은 트리구조의 dom이다. 리액트는 DOM을 잘게 쪼개서 여러개의 component로 만들어 웹을 구성한다. 리액트에서는 JSX문법을 사용하는데, JS안에 HTML이 포함되어 있는 형태이다. 어떤 구조의 웹에서는 변화가 생길 때마다 DOM에서 불필요한 연산이 많이 이루어져 성능이 떨어진다. 그래서 리액트에서는 메모리에서만 존재하는 가상DOM을 만들었다. 웹에서 어떤 동작을 하면 가상DOM에 변화가 반영되고 그 중 바뀐 부분만 실제 DOM으로 바꿔주는 방식이다. 여러개의 component로 구성되어 있기 때문에 update가 이루어진 component만 바꿔주는 것이다. component는 크게 두 가지 방식이 있다. class형과 function형으로 현재 리액트의 공식문서에는 함수형을 쓰도록 명..

Today I Learned 2022.03.20

(항해11일차) 220317 알고리즘 6일차

알고리즘 주차의 마지막날이다. 오늘은 알고리즘 테스트가 두 시간 가량 진행되었다. 실제 테스트가 어떻게 이뤄지는지는 모르지만 충분히 진이 빠지는 시간이었다. 특히 문제에서 주어진 분 단위, 시간 단위의 숫자를 계산하는 부분이 복잡하고, 계속 for 반복문을 사용하다보니 중간에 꼬이지 않기 위해 집중하는 것이 어려웠다. 처음 보는 문제를 시험장 환경에서 풀어보니 문제풀이를 꾸준히 해야겠다는 생각만 가득해졌다. 나름 시험이라고 긴장했는지 문제를 풀고 난 후 저녁시간은 평소보다 힘이 빠져서 공부도 하는둥 마는둥 풀어져버렸다. 그동안 친해졌던 알고리즘 스터디 조원들과의 마지막날이 아쉽기도 해 모여서 꽤 오랜시간 이야기도 나눴다. 열심히 하는 조원들을 잘 만나서 배운 점도 많고, 즐거운 분위기의 스터디가 될 수 ..

git 명령어 모음

https://hackmd.io/@oW_dDxdsRoSpl0M64Tfg2g/ByfwpNJ-K https://mi2mic.tistory.com/186 1. 처음 코드 업로드 (로컬에 cra 폴더 만들어서 업로드 하는 경우) cra폴더를 만든 후 깃헙에서 레포지토리 만들어서 그대로 복붙 후 터미널에 붙여넣기 git remote add origin https://github.com/Co-Ji/123.git git branch -M main git push -u origin main (처음 파일 만들어서 업로드 하는 경우 ) 초기화: git init 파일 더하기(add: 모두): git add . 확인: git status 히스토리 만들기("버전이름"): git commit -m "first commit" 깃헙..

(항해10일차) 220316 알고리즘 5일차

알고리즘 주간이 끝나간다. 오늘은 스터디에서 시간이 없어 풀지 못한 문제들을 풀고 남은 시간에는 풀었던 문제들을 다시 보면서 어떻게 풀어야 할지 생각해봤다. 처음 방법과 완전히 똑같은 것도 있었지만 어떤 문제들은 처음 방법보다 더 간단해지는 경우도 있었다. 문제푸는 방식과 관련해서 오늘 튜터님께 질문을 했다. 한 줄 짜리 압축시켜 놓은 답변과 for반복문이나 if함수를 사용한 긴 답변을 비교했을 때 답의 길이는 좋은 알고리즘 풀이와 크게 연관이 없다는 말씀을 들었다. 물론 시간복잡도가 단순한 짧은 풀이는 훌륭하지만 그렇지 않은 경우도 있고, 잘 쓰지 않는 내장함수를 가져다 쓰기도 하기 때문에 오히려 문제의 구조를 파악하는게 훨씬 중요하다. 하지만 내가 쓴 filter 보다 splite를 사용했을 때 시간..

반복에 사용하는 함수 ( while/do~while/for/array.foreach() )

1. while 조건이 참일 때 계속 반복한다. 조건이 거짓이면 넘어간다. statement를 여러개 사용하려면 { } 를 써야 한다. while (condition) {statement} 2. do~while 실행 먼저 되고 조건이 참인지 확인한다. (무조건 한 번은 실행됨) do{ statement} while (condition) 3. for for는 반복횟수를 정하는 경우에 사용한다. for(initialization; condition; final-expression) { statement } - initialization : 카운트할 변수 선언, let은 지역변수, var는 for문과 같은 범위 - condition: 매번 반복할 때마다의 조건, 참이면 statement를 반복, 거짓이면 다음..

Today I Learned 2022.03.16

(항해9일차) 220315 알고리즘 4일차

알고리즘 주차가 어느새 절반넘게 지나갔다. 오늘은 항해에서 준비하신 모의고사에 참여했다. 거창하게 모의고사라고 하기에는 한 문제였지만, 아무 정보도 없는 환경에서 혼자 문제를 푸는 것은 처음이었다. 지난 3일동안 열심히 문제를 풀어서 그런지 다행히 잘 해결한 것 같다. (물론 높은 난이도의 문제는 아니었을 것 같다.) 이렇게 한 번 문제를 풀어보니 알고리즘 문제에 접근하는 방법을 다시 고민하게 되었다. 요즘 조금 자신감이 생기면서, 다른 사람들의 풀이를 보고 더 짧은 코드를 짜고 싶었다. 하지만 어떻게 하면 정답으로 갈 수 있을지 풀이의 과정을 더 정확하게 고민하는게 우선인 것 같다. 이를테면 for를 사용한 반복문이나 if, else 대신 화살표함수, 삼항연산자, reduce, filter, 등등.. ..