2024.01.10 TIL - 알고리즘, 팀프로젝트 시작(영화검색 사이트)

Innes·2024년 1월 10일
0

TIL(Today I Learned)

목록 보기
35/147
post-thumbnail

📘 오늘의 공부

  • 알고리즘 Code Kata
  • 팀프로젝트 시작(목표 설정, 개발환경 세팅, 역할분담)

📝 알고리즘

  • 문제 : 배열의 평균값
  • 정수를 담고 있는 배열 arr의 평균값을 return하는 함수, solution을 완성해보세요.
  • 제한사항
    arr은 길이 1 이상, 100 이하인 배열입니다.
    arr의 원소는 -10,000 이상 10,000 이하인 정수입니다.
  • 풀이 : reduce()
function solution(arr) {
    let add = arr.reduce(function(arr,cur,idx,src){
        return arr + cur;
    })
    return add / arr.length;
}
  • 다른사람 풀이
  • 참고 1. reduce 함수를 화살표 함수로 축약
function average(array){
  return array.reduce((a,b) => a+b) / array.length;
}
  • 참고 2. Lv1에서 유사 문제 풀때 사용했던 방식 - for문
function average(array){
  //함수를 완성하세요
var sum = 0;
  for(var i = 0; i<array.length; i++){
    sum += array[i];
  }
  return sum/array.length;
}

  • 문제 : 자릿수 더하기
  • 문제 설명
    자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요.
    예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다.
  • 제한사항
    N의 범위 : 100,000,000 이하의 자연수
  • 다른사람 풀이
    참고 1. split(), reduce(), parseInt()
function solution(n){
    // 쉬운방법
    return (n+"").split("").reduce((acc, curr) => acc + parseInt(curr), 0)
}

참고 2. String(), split, reduce

var solution = n => String(n).split('').reduce((a,c)=>a+c*1, 0);

< 새로운 지식 >

  • 문자열 -> 숫자 형변환
  • split(), split(''), split(' ')의 차이
    • split() : 변화없이 그대로 반환(구분자 없음)
    • split('') : 글자 하나하나 (공백도 하나) 구분되어 반환
    • split(' ') : 공백 기준으로 구분되어 반환
    • (예시)
      let value = '나와 너 우리~';
      // value.split() : '나와 너 우리~'
      // value.split('') : '나,와, ,너, ,우,리,~'
      // value.split(' ') : '나와,너,우리~'
      (참고 : https://m.blog.naver.com/chsmanager/140201163643)
  • 풀이 꿀팁! (형변환의 우선순위 이용)
    • 문자열에 *1 하면 자동으로 숫자로 형변환 됨
    • 숫자에 + "" 하면 자동으로 문자열 형변환 됨

팀프로젝트 TMDB 시작

개발 목표 설정

  • TMDB API 한글로 변경
  • 페이지 이동을 활용한 영화 상세정보 페이지
  • localStorage를 활용한 상세정보 페이지 영화 리뷰 등록
  • 상황에 맞는 유효성 검사
  • 메인 화면 카드 정렬
  • 상세정보 페이지 수정 및 삭제

개발 환경 세팅

Git 저장소 설정 with 'git graph'

  • 프로젝트 Git Repository 생성 및 collaborator 지정
  • git clone으로 각자 로컬에 Repository 생성
  • git graph 활용해 dev 브랜치 및 팀원별 feature 브랜치 생성
  • pr 활용법 공유 및 학습

개발 환경 세팅 - 상세 과정

  • 팀원A의 개인 프로젝트를 기반으로 발전시켜나가는 팀 프로젝트를 진행하기로 결정
  • 팀장이 github repository 생성, 팀원들 collaborator 초대
  • 팀원들 모두 해당 repository git clone
  • repository에 팀원A가 본인 프로젝트 폴더를 복사해 넣음
  • 팀원들 모두 git pull
  • 팀원들 각자 브랜치 생성
    (하위 브랜치 이름 규칙 : feature/풀네임, 기능 등 - 이래야 나중에 헷갈리지 않음)
    • 여기서 팀원들의 git 환경, branch와의 연동 등의 오류 잡는데 오래 걸림
    • git switch DEV를 하면 local의 DEV로 이동하는것인가?
      DEV로 브랜치 이동 후 git switch -c 내브랜치, git push origin 내브랜치 하고 upstream으로 tracking까지 맞춰놨는데
      막상 git graph를 보면 DEV origin 에 생성된게 아니라 DEV에 생성돼있고 DEV origin 은 위에 있고...
      그래서 그냥 git graph에서 우클릭 create new branch로 생성했더니 쉽게 끝나긴 했다.

와이어 프레임


💡 협업 중 알게 된 새로운 지식



🐣 오늘의 느낀점

  • 팀이 바뀌니까 분위기도 새로워지는게 신기했다. 다행히도 이번 팀 역시 모두들 새롭게 배우고자 하는 열의가 뚜렷했고, 많이 알고 계시는 팀원분은 적극적으로 도와주려고 노력하시고, 함께 으쌰으쌰 하는 분위기라서 좋다. 내가 맡은 부분도 열심히 개발해서 내 몫을 다 해내는 이번 팀프로젝트가 되었으면 좋겠다.
profile
무서운 속도로 흡수하는 스폰지 개발자 🧽

0개의 댓글