모든 재귀함수 반복문은 while 또는 for 반복문으로 표현할 수 있다. 하지만 반복문이 너무 깊어지면 가독성이 안좋고 이해하기 어렵다.(현재는 재귀가 이해하기가 더 어렵지만 ..) 반복문을 작성하기는 쉬운데 재귀함수로 작성하는 것은 정말 어렵다. 코딩테스트 문제를 재귀함수로 작성한 풀이를 보며 연습해보자. 프로그래머스의 삼총사 문제를 푸는데 첫번째 트라이에는 삼중for문밖에 생각이 나지 않았다ㅎㅎ function solution(number) { let result = 0; const combination = (current, start) => { if (current.length === 3) { result += current.reduce((acc, cur) => acc + cur, 0) === 0..
fork해온 레포지토리는 기본적으로 잔디가 심어지지 않는다. 하지만 새로운 레포지토리를 만들어서 그동안 커밋된 기록을 fork해서 그대로 옮기고 잔디도 심을 수 있는 방법이 있다. 1. fork해야 할 레포지토리의 주소를 복사한다. 2. fork해야 할 레포지토리를 로컬에 bare clone한다. (옵션 --bare을 주어야 한다.) git clone --bare [포크해야 하는 레포지토리 주소] 3. 실제로 사용할 레포지토리(new-repo)를 만든다. 4. 새로 만든 실제로 사용할 레포지토리(new-repo)의 주소를 복사한다. 5. 2번에서 bare clone한 포크할 레포지토리의 디렉토리에 들어가서 새로 만든 레포지토리의 주소를 mirror-push한다. cd [포크해야 하는 레포지토리 이름] g..
🙌 KPT 회고1️⃣ 목표현재 내가 학습을 통해 이루고자 하는 것은 무엇인가?개발 배경지식 쌓기. 실력 기르기. 프론트엔드 개발자로 취직하기. 내 행보에 만족하기. 과제의 레퍼런스 코드를 보면 기분이 좋아질만큼 깔끔하다. 문맥별로 적절히 띄어쓰기가 있고 필요한 곳에만 주석이 있고 코드가 간결하다. 나도 그렇게 작성하고 싶다. 지금은 나중에 기억하기 위해 주석을 자주 달고 어떨 때 변수를 생성해서 사용할지, 데이터를 직접 전달할지 등의 기준이 명확하지 않다. 멘토님의 잠깐 사용하고 종료될 함수는 변수를 생성해서 사용해도 메모리 낭비가 크지 않을 것이라는 등의 설명이 도움이 된다.현재 바라는 목표를 모두 이루었다면 ‘나’는 어떻게 변해 있을까?개발자들의 언어를 알아듣고 소통이 가능할 것이다. 나의 코드를 효..
오늘 부트캠프 선배님이 선배적 참견 시점에서 주옥같은 조언들을 많이 해주셨다. 오늘은 이것을 기록해볼까 한다. 내가 가장 인상깊었고 새기고 싶은 말들이다. 1. 준비, 공부보다 많이 해야 할 것은 직접 써보는 것 이것은 정말 정말 중요한 조언이었다. 나도 개발자가 될 준비가 아니라, '공부'를 하고 있었다. 요즈음 코드스테이츠 학습 컨텐츠들의 양이 많아져서 이해하고 과제하는데 시간이 다 간다. 그래서 블로그 정리도 매일 하기에 조금씩 버거워져 갔고, 프로그래밍 이론 공부에만 집중했던 지난 5주였다. 하지만 개발자는 코드를 작성하고, 프로그램을 유지보수하고, 문제를 해결하는 일을 한다. 더 좋은 코드를 작성하기 위해 이론공부를 열심히 하고 있지만, 처음부터 작성할 줄을 모르면 효율좋은 방법을 알아봤자 어떻..
문제 Github Pages를 통해 배포에 성공을 했다. 그리고 git push를 통해 자동으로 재배포도 성공했다. 그런데 배포 페이지를 들어가면 내용이 업데이트가 안된다. 배포 히스토리를 보면 최근에 업데이트한 것이 Active가 되어있는데 배포 페이지를 들어가면 계속 처음 배포했던 버전이 뜬다. 아직 반영이 안되었나 싶어 일주일이 지나서 시도해도 그대로이다. 그런데 시크릿모드로 들어가면 배포 페이지가 잘 업데이트가 되어 있었다. 모바일로 들어가보아도 배포 페이지가 잘 업데이트가 되어 있다. 처음 버전의 배포 페이지를 들어갔었던 데스크탑과 맥북은 업데이트가 되지 않고 처음 버전이 떴다. 수정 결과를 확인하기가 어려웠다. 캐시 문제인 것 같아서 크롬의 사이트 데이터를 삭제해 주었다. 해결 크롬 설정 > ..
프로그래밍 패러다임 건물을 지을 때에 다양한 건축공법이 있다. 프로그래밍에도 어떻게 프로그램을 작성할 것인지 방법들이 여러 가지 있는데, 프로그래밍 패러다임이라고 부른다. 프로그래밍 패러다임에는 함수형 프로그래밍, 절차 지향 프로그래밍, 객체 지향 프로그래밍 등이 있다. 오늘은 객체 지향 프로그래밍에 대해서 알아보자. 객체 지향 프로그래밍 객체 지향 프로그래밍은 하나의 청사진을 만들고 그 청사진으로 객체를 만드는 방법이다. 이 때, 이 청사진을 클래스, 청사진으로 만든 객체들을 인스턴스객체 또는 인스턴스라고 부른다. function Monster(name, hp, att, xp) { this.name = name, this.hp = hp, this.att = att, this.xp = xp; } Mons..
🙌 KPT 회고 1️⃣ 목표 현재 내가 학습을 통해 이루고자 하는 것은 무엇인가? 자바스크립트 기초를 다지고 싶다. 그리고 꾸준히 공부하고 기록하는 습관을 기르고 싶다. 또한 ‘나’를 표현할 수 있는 포트폴리오를 만들고 연봉 3600이상으로 커리어를 시작하고 싶다. 5년 안에 해외기업에 취직하여 글로벌 경험을 해보고 사용자들이 사용하고 싶어하고 사용하기 쉬운 서비스에 기여하고 싶다. 현재 바라는 목표를 모두 이루었다면 ‘나’는 어떻게 변해 있을까? 에러를 찾는 속도가 빨라지고 왜 에러가 발생했는지 이해하고 기억할 수 있을 것이다. 다른 사람의 코드를 보고 배우거나 피드백을 해줄 수 있을 것이다. 초보자시절 궁금했던 점들을 떠올리며 내가 아는 지식을 초보자에게 알려줄 수 있을 것이다. 그리고 회사에서 어떤..
Git과 Github 몇 년 전까지만 해도, 한글이나 엑셀 큰 파일을 작업하다가 중간에 컴퓨터가 멈추거나 꺼지면 바로 좌절이었다. 다 날라갔기 때문이다. 또는 다른이름으로 저장을 해야하는데 실수로 저장을 눌러서 이전 데이터가 날아가 버린 적도 있다. 이럴 때 중간중간 저장이 가능하고 기록할 수 있고 과거의 시점에서 이전 데이터를 사용할 수 있도록 버전을 관리해주는 것이 git이다. Git은 프로젝트의 버전을 관리할 수 있게 하는 시스템이고, github는 버전관리를 한 프로젝트들을 관리하게 해주는 호스팅 서비스이다. Git은 버전관리시스템 중 하나로, 버전관리시스템은 Perforce, Apache Subversion, Plastic SCM 등이 있다. Git은 리눅스 커널을 개발한 리누즈 토발즈가 만든 ..
Module not found: Error: Can't resolve ~ ReactJS프로젝트 중 Javascript에서 Typescript로 옮겨가던 중 VSCode에 빨간줄이 없는데도 npm start를 하면 컴파일 에러가 났다. 구글링을 해보니 많은 사람들이 node_modules 폴더 package-lock.json 삭제하고 npm install 실행하여 package.json대로 노드모듈을 다시 다운받고 npm start 하면 해결이 된다고 하는데 여전히 에러 발생. 해결방법 타입스크립트를 사용할 때 tsconfig.json은 필수 파일이다. 타입스크립트를 설치하는 과정에서 npx create-react-app react-masterclass --template typescript 대신 npm ..
react-table 라이브러리를 사용해서 recoil atom 데이터를 테이블로 만들려고 한다. useSortBy로 정렬기능과, useGlobalFilter로 검색기능을 구현하는데 에러가 생겼다. 타입스크립트를 사용해서 생기는 에러였다. getSortByToggleProps 에러메세지: Property 'getSortByToggleProps' does not exist on type 'HeaderGroup setGlobalFilter 에러메세지: Property 'setGlobalFilter' does not exist on type 'TableInstance 해결방법 두 에러는 모두 react-table-config.d.ts파일을 생성함으로써 해결할 수 있다. npm i --save-dev @type..
패키지 리눅스 운영체제의 패키지와 패키지매니저는 상자 또는 압축파일과 같다. 압축파일에 프로그램, 프로그램 설치파일, 프로그램 설명서, 프로그램에 대한 정보를 담은 파일이 들어있다. 예를 들어 내가 A라는 프로그램을 설치하려고 하는데, A의 프로그램에 대한 정보를 담은 파일에 'B라는 파일도 설치되어 있어야 한다'라는 정보가 있으면 B도 같이 설치한다. 패키지매니저 패키지를 편리하게 사용하기 위해서 패키지매니저를 사용한다. 패키지매니저는 휴대폰의 앱스토어와 같다. 앱스토어를 들어가면 우리가 필요한 프로그램들을 '설치'버튼으로 동일한 방식으로 설치할 수 있다. 앱스토어가 없다면 인터넷에 필요한 프로그램을 검색해서 해당 사이트에서 내려받고, 버전이 업데이트되면 다시 접속해서 수동으로 해줘야 할 것이다. 또한..
Koans는 불교에서 유래된 단어로, 결론을 내리기 전에 이게 왜 맞는지 깊게 고민한다는 의미를 가지고 있다고 합니다. 답이 미리 제시되어 있기 때문에 고민 없이 풀면, 큰 어려움 없이 전부 다 풀 수 있습니다. 하지만 그게 왜 정답인지 깊게 고민해 보는 시간을 갖지 않는다면 충분히 성장하기 어려울 것입니다. Array.slice() 1단계 레벨까지 깊은 복사이고, 다음부터 얕은 복사가 된다. it("Array 메소드 slice를 확인합니다.", function () { const arr = ["peanut", "butter", "and", "jelly"]; expect(arr.slice(1)).to.deep.equal(["butter", "and", "jelly"]); expect(arr.slice(0..
- Total
- Today
- Yesterday
- 티스토리
- solo project
- 롯데월드 보조배터리
- 태릉 이자카야
- 회고
- 공릉맛집
- 태릉 꼬치
- 신불당 술집
- 을지로맛집
- 춘천닭갈비
- 이수 맛집
- 티스토리검색
- 공릉 카페
- 공릉 술집
- 공릉 이자카야
- 공릉 맛집
- 태릉맛집
- 맥 깃허브 데스크탑
- 깃허브 데스크탑 로그아웃
- sitemap
- 태릉삼겹살
- 태릉 술집
- 공릉 밀크티
- 춘천맛집
- 롯데월드 매직패스 프리미엄
- 공릉 꼬치
- Til
- 홍천 삼겹살
- 구글서치콘솔
- 롯데월드 키오스크
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |