오프라인 코드캠프 1일차 TIL

전은평·2023년 3월 14일
0

TIL

목록 보기
2/16

알고리즘

: 컴퓨터가 연산을 절차에 따라 처리하는 과정

: 프로그래머스에서 알고리즘 연습 및 테스트 예정

//1번째 계단에서 100번째 계단까지 최소 몇걸음이면 가는지?
//한걸음당 최대 2계단

let answer = 0;
const limit = 100;
for (let i = 1; i < limit; i = i + 2) {
  answer = answer + 1;
}

i 에 어떤 값을 할당할건지 명확하게 설정해야한다는 점과 반복문에 i 가 없이도 실행이 가능하다는 점을 배울 수 있었음

자바스크립트 배워야 하는 이유

: 무엇을 하든 웹페이지를 만들어야하는 필요성 / 수요가 많음

: 웹페이지를 만들기 위한 유일한 언어 ⇒ 자바스크립트 공부의 필요성!

  • Node.js 출현 계기
    : 자바스크립트 공부의 중요성은 크기 때문에 공부를 하는데, 이것을 웹페이지만 만드는 곳에 사용되는 것은 비효율적이라 판단 → 브라우저가 아닌 곳에서 자바스크립트를 실행시킬 수 있는 실행프로그램 Node.js가 출현

Node.js : Chrome V8 JavaScript 엔진으로 빌드 된 JavaScript 런타임(환경)

: 웹브라우저를 제외한 자바스크립트 언어가 구동가능한 환경, 자바스크립트의 런타임

: 웹브라우저를 사용하지 않고도 내 로컬 환경에서도 JS 언어 실행 가능

: 설치는 Node.js 홈페이지에서 가능 / 최신버전보다는 안정적인 버전으로 설치 권장

  • Node.js 설치가 잘 되었는지 확인하는 법

: node를 설치하면 npm도 자동으로 설치가 됨
  • Node.js 사용법

    ls : 현재 터미널이 위치해 있는 폴더 목록 조회
    cd 폴더명 : ‘change directory’ 해당 폴더로 이동 (directory는 폴더를 의미)

    mkdir: ‘make directory’ 폴더만들기

    탐색기에 폴더나 파일 우클릭후 종합터미널 열기 : 해당 js 파일로 터미널 이동

    node 실행파일명.js : node.js에서 소스코드 실행 가능 ⇒ 터미널 출력 (이때 해당 파일에 터미널이 위치해야함)

npm (npmjs.com)

: Node Package Manager로 Node.js 기반에서 실행될 수 있는 모듈(프로그램보다 작은 단위의 기능들)을 관리하는 관리자

: 개발자들이 자신이 만든 모듈, 라이브러리 등을 공유하기 위해 npm 사이트(공개 저장소)에 등록해 놓았고, 우리는 필요할 때 마다 이 모듈들을 가져와 사용함으로써 개발에 쓰이는 시간을 단축가능

  • 저장하는 법
    : npm publish
  • 가져오는 법
    : npm install or yarn add

yarn

: 페이스북이 npm이 느려서 직접 개발함
: npm과 같은 역할을 하는 JS 패키지 매니저

  • yarn install 하는 법 : npm을 이용해 yarn을 설치 : 기본 터미널 창에 sudo npm install -g yarn 명령어를 입력 후 yarn -v 을 입력해 잘 설치가 됐는지 확인

궁극적 학습목표

  1. 자바스크립트 및 고난도 알고리즘 풀이 능력
  2. Nest , Graphql 등 최신 기술스택활용
  3. 기초 미니프로젝트 포트폴리오(게시글 등록, 조회)
  4. 로그인, 결제기반 심화프로젝트 포트폴리오
  5. 배포(내가 만든 홈페이지를 세상에 공개) 를 위한 네트워크 및 CI/CD 배포자동화 능력
  6. 정답을 알아가는 것이 아닌 모르는 문제가 발생했을 때 남들보다 빠르게 검색을 통해 해결하는 방법을 배운다는 점에 초점 맞추기

기본기

  1. 영어타자 실력 늘리기
  2. 단축기 사용하기
  3. 코드 리딩 실력키우기
  4. WHY? 습관 들이기

백엔드 개발자 하는일

: 프로그램을 만드는 일(Node.js에서 실행)
: 백엔드 컴퓨터 내 백엔드 프로그램(서버) 안에 여러가지 함수(API) 생성 및 보유

: 해당 웹페이지에서 데이터 처리해서 데이터 베이스 컴퓨터(엑셀)에 정보 저장

why? 백엔드 API를 거쳐야하는지

: 안전하게 데이터를 검증하기 위해

: 에러/장애/오류 안나게 하기 위해

: 사고를 방지하기 위해

API

: 결국 함수와 같다고 이해하자

: API 스럽게 함수만들기!

  • 인증번호 API 만들기

    : 구현할 기능을 우선적으로 정리

    • 리팩토링

      : 같은 기능과 결과를 가져오는 코드를 다시 유지보수에 더 효율적으로 만드는 것

    • early exit 패턴 이용하기

      : 에러가 먼저 있는 것 추려내고 return으로 종료 후 아래는 정상인 경우 수행하는 방법

      : false인 경우 return을 통해 일찍이 종료시켜주는 것 ⇒ 유지보수에 용이

    • 퍼사드 패턴(Facade = 건물외곽)

      : 건물 내부 숨기기 방법을 통해 리팩토링하자!

      : 마찬가지로 다른 개발자들의 유지보수 편의를 위해 성외곽처럼 만들어 주자!

      : 기능별 함수를 선언하고 타 파일에 저장 후 실행 함수 파일에 불러와서 실제 실행 함수에는 각각의 기능별 함수만을 넣어주는 방법

  • 가로 알게된 github

    • 깃에 저장하기
      : 파일을 깃에 연결해야 연동이 됨
      - pwd(pring working directory): 현재 터미널이 위치한 곳 확인
      - ls -al : 숨겨진 폴더 및 내가 만든 폴더 확인 가능 (.git 폴더가 있어야 저장 가능)
      - git init 하면 .git폴더 만들어짐
      - .git은 상위/하위 폴더에 하나 이상 존재해선 안됨
      - 다음으로 github에서 레퍼지토리 만들고 주소 복사하고 연결해줘야함 git이랑
      - git remote -v : .git이 어느 레퍼지토리랑 연결되어있는지 확인
      - git remote add origin 레퍼지토리 주소 : 레퍼지토리 주소랑 연결
      - git remote -v로 다시 확인 가능
      - git status : 잘 트래킹 되고 있는지 연결 상태 확인
      - git add : 트래킹 안되고 있다면 연결 / 이때 초록문구는 대기공간에 존재하고 있다는 의미
      - 마지막으로 승인을 해야 업로드가 완료됨 (git commit -m ‘ 제목 이름 ‘)
      - 승인이 완료된 것 다시 레퍼지토리에 업로드 (git push origin master)
      : origin = 어떤 레포지터리에 연결할 것인지 작성
      : master = 어떤 브랜치에 연결할 것인지 작성
  • 추가로 사용한 매서드

    1. 글자 대체

      replace(바꿀 문자 , 어떤 문자로 바꿀건지)

      2 . 글자 추출

      substring(추출시작할 문자열 인덱스번호,추출 마지막 문자열 인데스번호 +1)
profile
`아는 만큼 보인다` 라는 명언을 좋아합니다. 많이 배워서 많은 걸 볼 수 있는 개발자가 되고 싶습니다.

0개의 댓글