어제부로 첫 페어분과의 페어 프로그래밍을 마치고 오늘부터 다른 페어가 배정되었다. 이 분은 전 페어분과 성향이 달라서 페어 프로그래밍의 양상이 완전 달라지는 경험을 했다. 전에는 한 문제씩 번갈아가면서 네비게이터와 드라이버를 맡았는데, 이분은 코딩 경험이 있으셔서 네비게이터를 자청하셨다.
하루 내내 드라이버로 돌았는데, 결과물을 당장 만들어야 한다는 압박감이 없어서 그런지 페어분의 코드를 차분히 살펴볼 수 있었다. 그리고 머리가 더 잘 돌아갔다!ㅋㅋㅋ 덕분에 막힌 문제도 몇 개 풀어내는 등 코드 기여도가 높아서 오늘은 뿌듯한 마음으로 코플릿을 종료했다.
마음가짐의 문제일까, 부담감이 없는 상태를 유지하는 게 좋은 방법인 듯 하다.
지금 코드스테이츠 IM 19기 후기 공유회를 들으면서 블로그를 쓰고 있는데 '블로깅 쓰는 고정 시간을 정한다'는 말씀에 뜨끔했다ㅋㅋㅋ 한 번 쓰다보면 쓰고 싶어서 계속 눌러있게 되는데(코드로는 할 말이 없는데 블로그에서는 왜 이리 할 말이 많은지ㅋㅋㅋ) 사실 시간 활용 면에서 효율적이진 않았다. TIL은 성실성을 증명하기 위한 거구나..
DEVLOG는 코드스테이츠를 통해 진행하는 프로젝트 2개를 기록
- 스프린트를 직접 나누게 되기 때문에 스프린트 단위로 진행 사항과 고민을 해결했던 방법을 기록한다.
깃헙 : 1일 1커밋 노력 (성실성을 증명할 가장 쉬운 방법)
- 평일은 토이만 잘 풀어도 1일 1커밋 가능
- 주말에는 미니 프로젝트 (스프린트에서 어려웠다고 생각한 부분을 따로 진행하는 것)
프로젝트를 진행하는 과정 (2주, 4주)
1) 아이디어 모집, 팀 결성
2) 기획(SR) : 가장 중요한 단계. 구체적이고 자세하게- 프로젝트에 들어갈 큰 기능을 결정 - 어떤 기술 스택을 사용할지 결정 - 화면 Flow 그리기 - 스프린트(큰 기능을 마무리하는 3~4일 단위), 테스크(스프린트를 행동할 수 있는 2~3시간 단위)를 잘게 나누기
3) 개발
- 테스크를 작업 순서대로 배치하기 - 스프린트마다 마감 일정을 정하기 - 스프린트마다 배포하기 - 테스트와 디버깅하는 일정도 포함하기 - 컨디션 조절하기
4) 발표
팀장의 역할
- 프로젝트의 전체 맥락 파악 : SR 문서 자주 살펴보기
- 팀원들이 어느 위치에 있는지 파악 : 작업의 시작과 끝을 슬랙으로 알려달라고 하기
- 메신저로 소통하는 답답함 -> 이모지로 확인 표시!
훌륭한 팀원
- 본인이 무슨 작업을 하는지 알려주기 (소통!)
- 팀원들에게 도움을 적극적으로 요청하기
- 커뮤니케이션은 공통된 채팅방에서
- 백/프론트 간에도 코드리뷰 하기 : 타인의 코드를 읽는 연습을 하자
대량의 정보 처리가 반복문이었다면,
대량의 정보를 보관하고 관리하는 것은 배열
index는 0부터 시작
element의 조회, 추가/삭제, 복사, 분리 가능
let myArray = ['hello', 1, 'world'];
let myArrayArray = [[1,2], [3,4], [5,6]];
[ ]
안에 요소를 넣고 쉼표(comma),
로 구분한다.let myArray = ['hello', 1, 'world'];
myArray[0]
let myArray = ['hello', 1, 'world'];
myArray[0] = 'Hi'
let myArray = ['hello', 1, 'world'];
myArray.length
let myArray = ['hello', 1, 'world'];
typeof myArray // object로 출력되기 때문에 object와 구분하기 어려움
Array.isArray(myArray) // true
A가 대문자임에 주의할 것
let myArray = ['hello', 1, 'world'];
myArray.push(96) // 마지막에 element 추가
myArray = ['hello', 1, 'world', 96];
myArray.pop() // 마지막 element 삭제
myArray = ['hello', 1, 'world'];
myArray.unshift(96) // 첫번째에 element 추가
myArray = [96, 'hello', 1, 'world'];
myArray.shift() // 첫번째 element 삭제
myArray = ['hello', 1, 'world'];
console.table()을 이용해서 배열을 시각적(표)으로 확인할 수 있다.
slice() 관련 MDN
string.slice() : https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/String/slice
array.slice() : https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/slice
let str = "hello word i am dongoc";
str.slice(7) // 'ord i am dongoc' -> 7부터 마지막끼지 반환! <<<7 포함됨!!!!>>>
str.slcie(7,12) // 'ord i' -> 7부터 11까지 반환! <<<7 포함! 12 미포함!!>>>
let arr = ["hello", "word", "i", "am", "dongoc"];
arr.slice(1) // ["word", "i", "am", "dongoc"] -> 1부터 마지막끼지 반환! <<<1 포함됨!!!!>>>
arr.slcie(1,4) // ["word", "i", "am"] -> 1부터 3까지 반환! <<<1 포함! 4 미포함!!>>>
slice와 push(와 기타 계열이)가 배열로 반환되는지를 자꾸 헷깔린다.
String을 지정한 구분자를 이용하여 여러 개의 문자열로 나눔
let str = "hello word i am dongoc";
str.split(" ") // ["hello", "word", "i", "am", "dongoc"]
str.split() // ["hello word i am dongoc"]
두 개의 Array를 합쳐서 하나의 Array로 리턴
let arr1 = [1,2,3];
let arr2 = [5,6,7];
arr1.concat(arr2) // [1, 2, 3, 5, 6, 7]
배열의 모든 요소를 문자열로 변환하고 이어 붙여서 반환
let arr = [1,2,3];
arr.join() // "1,2,3"
arr.join("") // "123"
arr.join("-") // "1-2-3"
let arr = [1,2,3,"4","호"]
arr.toString() // '1,2,3,4,호'
join()
(괄호 안에 아무 것도 없음)과 toString()
은 같은 역할을 하는 듯? join()
이 더 활용도가 높아보인다. let myArray = ['hello', 1, 'world'];
myArray.indexOf('hello') // 0
myArray.indexOf(123) // -1
myArray.indexOf('hello') !== -1 // true
myArray.includes('hello') // true
function hasElemnet(arr, element) {
return myArray.indexOf(element) !== -1;
}
hasElement(myArray, 'hello') // true
let obj = {key1: value1, key2: value2}
{ }
중괄호(curly bracket)로 표시:
콜론(colon)으로 표시,
쉼표(comma)로 표시// 점 표기법(Dot notation)
let obj = {key: value};
obj.key; // value
// 괄호 표기법(Bracket notation)
let obj = {key: value};
obj['key']; // value
// 주의사항
obj.key === obj['key']
obj[key] !== obj['key']
// 새롭게 할당하기
let obj = {a: 1};
obj.a = 2;
obj; // {a: 2}
// 값 삭제하기
let obj = {a: 1, b: 2};
delete obj.a;
obj; // {b: 2}
let obj = {a: 1, b: 2};
'a' in obj; // true
참고한 블로그
객체 순회하기 : https://bit.ly/338oiA5
for in / for of : https://jsdev.kr/t/for-in-vs-for-of/2938
let obj = {a: 1, b: 2, c: 3, d: 4};
Object.keys(obj); // ['a', 'b', 'c', 'd'] 객체의 key값을 추출해 배열로 반환
Object.values(obj); // [1, 2, 3, 4] 객체의 value값을 추출해 배열로 반환
Object.entries(obj); // [['a', 1], ['b', 2], ['c', 3], ['d', 4]] 객체의 [key, value]를 배열로 반환
객체의 속성들을 반복하여 작업 수행
(key값에 접근할 수 있으나 value 값에 접근할 수는 없음)
let obj = {a: 1, b: 2, c: 3, d: 4};
for (var prop in obj) {
console.log(prop, obj[prop]);
} // a 1, b 2, c 3, d 4