2023-01-12

turnaroundwoo·2023년 1월 16일
0

알고리즘

for(let i = 0; i < 5; i = i +1) {
  console.log("안녕하세요?")
}
  • [증감식] 반복문의 실행 범위를 조절할 수 있다
  • [break] 원하는 구간에서 반복문 종료 = 반복문 자체를 종료시키는 것
for (let i = 0; i < 5; i++) {
  if (i === 2) {
    break;
  }
  console.log(i)
}

// 0
// 1
  • [continue] 해당 구간의 반복문을 실행하지 않음. = 해당 반복만 생략을 해주는 것
  • i 가 2가 되면 반복문 종료됨
  • 비즈니스 로직과 알고리즘 문제에서 많이 사용됨 -> 반복문

  • 객체를 사용할 때는 for -in문 사용할 것을 권장

  • forEach는 메서드이기 때문에 사용 범위가 ‘배열’에만 가능하다.

  • 함수의 인자들을 전달하는 함수 = [콜백함수]

  • while문을 작성할 떄 조건식을 먼저 작성하게 되면 무한루프에 빠지게 된다.

  • MAP / FILTER / SORT

  • SLICE / SUBSTRING / SPLIT / JOIN / REDUCE

  • 알고리즘 문제를 풀 때 “수도코드”를 이용하는 습관 만들기

const obj = {
  name: 'otter',
  age: 30
};
const str = 'abcde';
  console.log(str)

for(let data of str) {
  console.log(data)
}

// 'abcde'

// 'a'
// 'b'
// 'c'
// 'd'
// 'e'

const arr = ['a', 'b', 'c']; {

for(let i = 0; i < arr.length; i++) {
  console.log(arr[i])
  }
}

// 'a'
// 'b'
// 'c'
let answer = 0; // 로봇이 움직인 횟수
let current = 1; // 로봇의 현재 위치

while (current !== 100) {
  current++;
  answer++;
}

answer;

// 98
// 99
  • 특정 문자열 세기 (24번 문제 - 반복문 연습)
function countLetter(str) {
  let count = 0;
  for (let i = 0; i < str.length; i++) {
    if (str[i] === 'a' || str[i] === 'A') {
      count++;
    }
  }
  return count;
}

countLetter("I am from Korea")                         // 2
countLetter("A day without laughter is a day wasted.") // 6

4일차 오프라인 수업

- 서버 안에 API를 만들어 보자


  • 24시간 동안 켜놓은 채 누군가의 접속을 기다린다.
  • 포스트맨 혹은 브라우저 등의 접속을 기다리는 것
  • 백엔드 컴퓨터에는 이런 접속을 기다리는 Api가 있다.
  • Api는 함수일 뿐이고 정확히는 포스트맨과 브라우저의 접속을 기다림
  • 데이터를 받아올 때는 백엔드 컴퓨터에 요청하여 받아옴
  • 프론트엔드 컴퓨터 또한 브라우저의 접속을 기다림
  • 주소창에 주소를 쓰는 것을 기다리는 것
  • 브라우저의 접속을 받아 Html, css, js를 던져준다(프론트)
  • 데이터베이스 컴퓨터 또한 접속을 기다림
  • 백엔드 컴퓨터의 접속을 기다림(데이터베이스 컴퓨터)
  • 누군가의 접속을 기다리기 위해서는 포트가 필요하다.
  • 포트는 0~65535까지 존재함. 그 중에서 하나를 골라 사용할 수 있음
  • 데이터베이스 프로그램마다 기본 포트들이 다 다르다
  • 프론트엔드는 보통 3000정도로 포트 설정해놓고 쓰는 편
  • 서버라는 것은 프로그램을 가리키는 것
  • ‘프로그램’, ‘컴퓨터’라는 단어는 생략 가능하다
  • 일반적으로는 컴퓨터와 프로그램 중 프로그램(익스프레스)을 지칭함
  • 앞 뒤 다 빼고 그냥 ‘서버’라고 지칭할 때는 일반적으로 백엔드서버를 의미
  • 무조건 브라우저가 클라이언트는 아니다. 요청하는 쪽이 클라이언트 인 것
  • 같은 컴퓨터 안에서는 중복된 포트번호를 사용할 수 없다. 다른 컴퓨터라면 중복 가능
  • 내가 아무리 많은 서버를 실행시킨다고 해도 65535개 이상은 실행이 어렵다는 것을 알 수 있다
  • 디폴트 포트(=기본포트) 는 생략이 가능하다

  • 기본포트를 썼기 때문에 포트가 없는 게 아니라, 생략이 된 것이다. (http, https)

  • 포트가 없으면 누군가 접속을 못하기 때문에 누군가 24시간 접속을 할 수 있다는 것은 포트가 있다는 것이다.

  • 접속자 수가 많아질수록 저장공간이 많이 필요해짐(cpu(일하는 역할), ram(빠르다,데이터날라감), disk(느리다,데이터저장))

  • 메모리가 높다(많은 사용자를 받을 수 있음) cpu가 높다(일처리가 빠르다)

  • [nodemon] 저장을 하면 자동으로 리플래쉬를 도와주는 그런 도구

  • import 명령어를 사용할 경우, 가져올 파일에다가 export로 엮어줘야 함.

  • 다시 말해서, export로 내보내줘야 import로 가져올 수가 있다.

  • export default : 이 파일 전체에서 기본값으로 이 폴더를 가지고 오겠다. (중복 사용 불가)

  • 라이브러리는 10만이 넘는다면 좀 고민, 1000만이 넘는다면 무조건 사용 가능

  • Api 뿐만 아니라 docs 같이 만들어야 함(프론트엔드를 위해)

  • 미들웨어함수 : 중간에 낀 함수. 내가 만들고 싶은 만큼 만들 수 있다.

  • 위에서부터 하나씩 하나씩 검사하면서 내려오는 것

  • 스웨거를 대하는 태도 중요

0개의 댓글