프로젝트 시작하기
Chapter1. 프로젝트 GIthub
1.개발 프로젝트 Github 리포지토리에 꼭 필요한 요소를 이해한다.
2.칸반이 무엇인지 이해한다.
3.칸반 원칙과 실천 방안에 대해서 이해한다.
4.Github Project, 이슈, 마일스톤 기능을 이용하여 칸반 보드를 제작할 수 있다.
5.칸반 보드로 업무 시각화를 할 수 있다.
Chapter2. 프로젝트 Git flow
6.Git으로 브랜치를 다루는 방법에 대해 이해한다.
7.브랜칭 전략 중 간소화된 Coz’ Git flow에 대해서 이해하고 적용한다.
8.Pull Request와 간단한 코드 리뷰 하는 방법에 대해서 이해한다.
9.Git을 다루다가 어려움에 처했을 때, 어떻게 대처하는지에 이해한다.
Chapter3. 프레임워크 선택 및 설치 (FE) / Chapter4. 프레임워크 선택 및 설치 (BE)
10.프로젝트를 위한 프론트엔드/백엔드 개발환경을 정의하고 학습한다.
11.스스로 리포지토리 제작부터 프레임워크 설치까지 할 수 있다.
1.README.md, .gitignore, LICENSE가 필요하다. README는 소개 페이지처럼 사용하며 gitignore는 포함되지 않아야 할 파일들을 기록하면 git에서 처리되며 LICENSE는 해당 코드의 LICENSE를 나타낸다.
2.업무의 병목 현상과 리소스 낭비를 해결하는 업무 관리 방법으로 레포지토리 프로젝트탭에서 보는 방식을 board로 하면 된다.
3.칸반 원칙은 아래와 같다.
-업무 시각화
-진행 중인 업무 제한
-흐름 관리
-명확한 프로세스 정책
-피드백 루프 구현
-협력적인 개선, 실험적인 발전
4.이슈를 만든 후 마일스톤에 배정하고 해당 기능들을 프로젝트에 추가해 칸반형태로 볼 수 있다.
5.칸반보드에 4번 내용을 잘 추가하면 칸반형태로 볼 수 있다..
6.브랜치는 아래와 같이 변경할 수 있다.
-feature라는 브랜치를 새로 생성하는 경우, -c를 붙인다.
git switch -c feature
-기존에 있던 main 브랜치로 HEAD를 변경하려면, -c를 붙이지 않는다.
git switch main
git push origin xx //xx로 보내기
git pull origin xx //xx에서 땡겨오기?
git branch -d xx //xx를 삭제하기
git branch -D xx //xx가 저장되지 않아도 강제삭제하기
7.main, dev, feature/작업이름 3가지로 구분하며 main은 실제 사용가능, dev는 개발중, feture는 기능개발, 리팩토링, 문서작성 등을 위한 브랜치로 나눠서 사용한다.
8.브랜치를 확인 후 깃허브에서 PR을 xx -> dev로 보낸다.
코드 리뷰는 PR을 남긴 상태에서 머지하지 않고 있는 상황에 가능한 것 같다.
9.Git을 스터디원들과 2시간가량 만져봤는데 제일 좋은 방법은 각자의 구역을 정확하게 정해서 충돌이 날 여지를 없애는 것이고 만약 문제가 생겼다면 병합하는 과정에서 수동으로 정리해주는 방식을 사용하고 push, pull 등이 잘 작동하지 않는다면 clone을 브랜치에서 새로 해온 후 지금의 파일을 덮어씌운 다음 add .부터 다시 시작해본다.
10.개발환경은 임시로 아래와 같이 정했다.
필수 정의 요소
1.Node.js
2.Node.js 패키지 매니저
3.버전 관리 시스템 / 형상 관리 시스템 + 원격 리포지토리 서비스
4.프론트엔드 프레임워크(라이브러리)
5.CSS 프레임워크(라이브러리)
6.CSS 네이밍 컨벤션
7.Create React App
8.린터
1.LTS
2.npm
3.Git과 Github
4.React 18?
5.Styled-Components
6.BEM?
7.Create React App
8.prettier
------------------------------------------
부가적 정의 요소
1.HTTP 요청
2.상태 관리
3.TypeScript
4.번들러
5.테스트 프레임워크
1.Fetch API & isomorphic-fetch
2.Redux(하나인 경우) / 미사용
3.TypeScript 미사용
4.webpack / parcel
5.Jest 미사용(비권장)
11.스스로 제작, 설치까지 가능하지만 가이드라인을 보고 따라해서 가능했다.
굳이 이 기능을 외워야 하나 싶기도 한게 프레임워크 명령어들은 검색을 통해 바로 알 수 있기 때문에 깃 명령어에 대한 암기가 더중요할 것 같다.
---------------------------------- 아래부터는 오늘자 알고리즘 학습 ----------------------------------
CT(1).값을 받아올 때 여러 테스트케이스가 주어져 있으면 테스트 케이스의 구간을 따로 저장해 input 값에서 그 구간만 사용하는 방식 또는 테스트 케이스의 문장 또는 배열 자체를 배열에 push해서 하나씩 빼서 쓰는 방식을 사용할 수 있다. 아래는 사용 코드다.
let arr = [] //값들을 저장할 배열
let now = 0 // 초기 시작 idx값 = 0
while(input[now+1] !== undefined){ // idx(now)+1의 input값이 없다는 말은 입력이 더 없다는 의미이므로 while문 종료
arr.push(input.slice(now+1 , now + input[now]+1)) //arr에 해당 배열 추가
now = now + input[now]+1 //now값 초기화
}
CT(2).에러가 났을 경우 참조오류라면 코드 내에 문제가 있을 가능성이 가장 크기 때문에 코드를 먼저 확인해봐야 한다. 중요 코드중 하나에 주석을 제거하지 않고 돌린 다음 문제 해결을 위해 이것저것 검색해보다가 참조오류라는 내용을 보고 제출한 내용을 잘 읽어보니 테스트용과 백준에서 받아오는 코드가 달라 주석처리했던 부분을 그냥 제출한 실수였다.
CT(3).파스칼삼각형, 주석, 내부삼각형배열 등 조합을 이용한 규칙일 경우 dp와 BigInt를 이용해 팩토리얼을 구현하면 빠른 연산을 할 수 있다.
CT(4).문제를 해결할 때 가장 행렬등의 범위일 경우 0과 인접하는 부분에 대한 처리를 주의해야한다. let e =(c%b ? c%b : b) // 이 코드는 1~n까지의 값을 받아야 하는 경우인데 행렬의 번호값을 받기 위해 나머지를 받을 경우 나머지가 0인 경우 해당값을 할당받게 해야한다.