내일배움캠프 WIL (2주차): 공부할 게 너무 많다.

Jiumn·2022년 11월 27일
0
post-thumbnail

이번 주 한 일

미니 프로젝트가 끝나고 새로운 팀이 배정된 후 한 주가 흘렀다.
이번 주에도 많은 일이 있었다...

  • 알고리즘과 자료구조의 늪에 빠지기 시작
  • udemy 파이썬 부트캠프 강의 수강 중
  • 스파르타에서 제공하는 자바스크립트 올인원 강좌와 파이썬 강좌 완료했으나 너무 넓고 얕게 알려줘서 도움이 될지는 미지수
  • 깃과 깃허브 사용법 강의를 들었으나 아직 실전 적용 여부는 미지수
  • 모던 자바스크립트 Deep Dive 책 1회독 중

Git, GitHub

간단 개념 정리

  1. 버전관리를 한다는 건 어떤 의미일까?
  • 프로젝트 상태가 변경되는 정보를 알고 있다는 것. Git 은 가장 널리 쓰이는 버전관리 도구 중에 하나로 commit 을 사용해서 버전이 달라지는 것을 관리한다.
  1. 작업내역 단위인 commit 에는 어떤 정보가 포함되어 있어야 잘 버전관리를 할 수 있을까?
  • commit id : commit 을 구분하기 위한 유일한 값.
  • 작업 일자 (날짜와 시간)
  • 작업한 사람(작성자 author)
  • 작업 내역 (commit 메시지)
  • 작업 내역의 순서 : 해당 commit 의 직전 commit 이 무엇인지 정보
  1. 지금까지 우리가 실습은 어떤 순서로 했었지?
  • 소스트리 설치, 깃허브와 연동, 로컬 저장소 생성(.git 폴더가 생성되면 git 프로젝트로 변환되었다는 의미), git 프로젝트 폴더에서 변경사항 생성, commit하기

git 초보자를 위한 작업 순서

  • 충돌을 피하기 위해서는 아래 순서를 따라주는 게 편해요. 같은 파일을 동시에 수정해버리면 충돌이 나니까 두 repo 의 상태를 똑같이 맞춰준 후에 변경작업을 해주는 거에요.
  1. 원격 repo 와 로컬 repo 의 상태를 똑같이 맞춰주기, 즉 로컬 repo 에 원격 repo 작업내역 가져오기 (pull)

  2. 로컬 repo 의 작업 내용을 저장하고 (commit)

  3. 원격 repo 에 로컬 repo 내용을 반영 (push)

  • 원격 repo 에 변경사항이 생겼다! 하면 먼저 pull 하고 로컬 repo 에서 작업하면 많은 경우 충돌을 피할 수 있어요.

Git 협업 시나리오

1단계. 누가 이 작업 할 것인지 정한다. - Issue
2단계. 각자 맡은 것을 작업한다. - Branch
3단계. 각자 작업을 프로젝트에 합친다. - merge
(경우에 따라). 작업한 내용을 리뷰하고 최종적으로 프로젝트에 반영한다. - PR 후 merge

브랜치 생성 작업 시 명명

새 브랜치 : 브랜치 이름을 적어주세요. 내가 잘 관리할 수 있게 적어주세요. 여기서는 feature/이슈번호_관리쉬운이름 형식으로 만들어줍시다.

feature/ 와 같이 작성해주면 sourcetree에 디렉토리가 생성돼서 편리하다.

브랜치를 나누는 방법은 알겠는데 내 로컬 저장소가 아니라 팀원들이랑 나누려면 어떻게 해야 할지 좀 더 연구가 필요할 듯 하다.

JavaScript

빈 배열을 검사하는 방법

Please write a function called lastElement which accepts a single array argument. The function should return the last element of the array (without removing the element). If the array is empty, the function should return null.

ex)
lastElement([3,5,7]) //7
lastElement([1]) //1
lastElement([]) //null

[나의 코드]

function lastElement(array) {
    if (array == []) { 			// 에러 발생
        return null
    }
    return array[array.length-1]
}

[모범 답안]

function lastElement(array) {
  	// 배열이 배열의 형태가 맞는지, 배열의 길이가 0인지 확인
    if (Array.isArray(array) && array.length === 0) { 	
        return null
    }
    return array[array.length-1]
}

빈 배열을 검사할 때 array == []가 안 되는 이유가 뭘까?
Stackoverflow에서 원인을 찾을 수 있었다.

[]는 빈 배열을 의미하지만, 결과적으로는 다른 배열(다른 메모리 주소를 가진 배열)이며, 따라서 값은 false로 반환되기 때문이다. 그러므로, []가 아니라 배열의 길이가 0인지 확인(array.length === 0)해야 한다.

참고 글: Javascript IF conditions "array === []" and "array.length === 0"

To-do list

  • 깃과 깃허브 팀원들과 스터티 (월요일)
  • 틈틈히 자바스크립트 기능 구현 (미니 프로젝트 대비)
profile
Back-End Wep Developer. 꾸준함이 능력이다.

0개의 댓글