Wecode 4

늦잠(알람 설정x)으로 인해 부랴부랴 준비해서 11시에 위워크 도착.. 다음부턴 절대 그런 일 없도록 해야지🙏🏻

손목받침대 임시방편으로 수건을 가져왔는데 생각보다 좋다 손목받침대 안사도 될 것 같다👍🏻

양준식 멘토님이 Session 진행하실 때 보여주셨던 멘트 갑자기 생각나서 올려본다.
너무 좋은 말👏🏻


[js] new Date()

Date 날짜와 시간을 저장하거나 보여주기위해 사용하는 객체

const date = new Date();

전체날짜가 아닌 개별 날짜를 가져오기 위해서

const date = new Date();

const year = date.getFullYear();
const month = date.getMonth()+1;
const date = date.getDate();
const day = date.getDay();
const currentHour = date.getHours();
const currentMin = date.getMinutes();

특정 날짜 Date

특정 날짜를 전달인자로 넘겨주면, 해당 날짜의 Date를 반환 받을 수 있다.

const date1 = new Date(2021,05,12);
const date2 = new Date('May 12, 2021 03:24:22');
const date3 = new Date('2021-05-12T-3:24:22');

[js] getTime()

Date객체와는 다르게 getTime 메서드는 기준이 되는 날짜인 1970년 1월 1일을 기준으로 현재까지 밀리초로 반환된다.


(Session) 백엔드 개발자가 하는 일

  • 백엔드 API 시스템
  • Data Pipeline 시스템
  • infrastructure 및 아키텍쳐

동시 접속자 증가에 따른 시스템 확장 ex) 서버 다운

백엔드 개발하기 전에 생각해야하는 것들

  • 몇 만명 동시접속해도 다운 되지 않겠다.
  • 느려지지 않는다.
  • Big Data 수집하고 분석 어떻게 하지?

repl.it 과제

날짜와 시간

예를 들어, 오늘이 2020년 7월 21일이고, birthday 값이 다음과 같다면:

1990-03-21T00:45:06.562Z
1990-03-21T00:45:06.562Z

리턴 값은 30 이 되어야 합니다.

function getWesternAge(birthday) {
  // 현재년월일
  const currentDate = new Date();
  const year = currentDate.getFullYear();
  const month = currentDate.getMonth() + 1;
  const day = currentDate.getDay();
  // 생년월일
  const birthYear = birthday.getFullYear();
  const birthMonth = birthday.getMonth() +1;
  const birthDay = birthday.getDay();

  if(month >= birthMonth && day >= birthDay) {
    return year-birthYear;
  } else {
    return (year-birthYear)-1;
  }
}

Object

첫 번째 객체와 두번째 배열을 let result = {} 객체에 합쳐서 넣어야 합니다.
성적은 A+,A,B+,B ... 별로 학점을 숫자로 나오게끔 해야하고,
배열에 있는 과목명이 result 변수 객체에 없을 경우 성적을 0으로 입력해야 합니다.

const getExamResult = (scores, requiredClasses) => {
  const result = {};
  let objGrade = {
    'A+': 4.5,
    'A': 4,
    'B+': 3.5,
    'B': 3,
    'C+': 2.5,
    'C': 2,
    'D+': 1.5,
    'D': 1,
    'F': 0
  };
  
  for (let i in requiredClasses) {
    let key = requiredClasses[i];
    result[key] = 0;
  }
  for (let j in scores) {  
    let grade = scores[j];
    result[j] = objGrade[grade];
  }  
 
  return result;
}

처음 이 문제를 접했을 때 switch문을 사용해서 case에 조건을 다 붙였지만 코드 길이가 너무 길어지고 가독성이 떨어져 고민하던 찰나에 변환할 성적을 미리 key값과 value로 이루어진 objGrade 객체를 만들어서 하니 쉽게 해결되었다.


Scope / Block

Scope

scope는 "변수가 어디까지 쓰일 수 있는지의 범위를 의미합니다"

Block

while(true) {}
if(num1 > num2) {}

block 이란 위처럼 중괄호로 감싸진 것을 blcok이라고 한다.
block 내부에 정의된 변수는 **local(지역)**변수라고 한다.
말 그대로 block안에서만 유효한 변수다.

function add ( num1, num2 ) {
  // local(지역)변수인 sum
  const sum = num1 + num2;
}

console.log(sum) // Error

위처럼 변수 sumfunction add(n,n) {}local(지역)변수이므로 함수 밖에서 사용할 수 없다. 이것이 sum 변수의 scope 범위다.

주의사항

scope의 범위는 정말 될 수 있으면 **global(전역)**으로 사용하지 않는 것이 좋다.


[js] startsWith, endsWith,includes

startsWith

startsWith 메서드는 어떤 문자열이 특정 문자로 시작하는지 확인하여 true,false로 반환합니다.
대소문자 구별

string.startsWith('검색할문자열', 탐색할 위치(기본값 0)

const str = "Hello, World!";
str.startsWith("Hello"); // true
str.startsWith("He"); // true
str.startsWith("ll"); //false
str.startsWith("ll",2); //true

endsWith

endsWith 메서드는 어떤 문자열이 특정 문자로 끝나는지 확인하여 true,false로 반환합니다.
대소문자 구별

string.endsWith('검색할문자열', 탐색할 위치(기본값 0)

const str = "Hello, World!";
str.endsWith("World!"); // true
str.endsWith("World"); // false
str.endsWith("World",str.length-1); // true

includes

includes 메서드는 배열이 특정 요소를 포함하고 있는지 판별합니다. 역시나 true,false로 반환합니다.
대소문자 구별

string.includes('검색할문자열', 탐색할 위치)

const str = "Hello, World!";
  console.log(str.includes("World!")); // true
  console.log(str.includes("World")); // true
  console.log(str.includes("World",str.indexOf('W'))); // true

새롭게 알게된 것들

같은 프론트엔드 개발자여도 어느 분야에 일하느냐에 따라 주로 사용하는 함수가 달라진다.

  • 쇼핑몰,브랜드 사이트 구현 경우엔 행동을 처리하는 event함수를 많이 사용
  • 블로그 같은 경우 String형에 관련된 함수

DMZ 영역( 백엔드 )

인터넷과 내부망과 인터넷 구간 사이에 위치한 중간지점으로 침입차단시스템 등으로 접근제한 등을 수행하지만 외부망에서 직접 접근이 가능한 영역

Math.random 범위 생성할 때

Math.random() * (max-min) + min;
했을때 최대 값은 포함하지 않다는 것.
max=10, min=1 라고 했을때 난수범위는 1~9 까지만 더해져서 max값을 포함하려면 (max-min+1) 해줘야한다.

js object 프로퍼티 접근

  • **.(dot)**으로 접근은 key가 숫자, '문자', 특수문자가 있을 경우 에는 [ 대괄호 ] 따옴표(' ')를 사용해서 접근
console.log(objectName.color)
console.log(objectName['color'])
console.log(objectName['my love'])
console.log(objectName['!color'])
  • 변수에 키 이름이 지정되어 있으면, 변수로도 프로퍼티에 접근 가능
    변수로 접근할 땐 항상 대괄호[]로 접근
const col = 'color';
console.log(objectName[col]);

관심 있을 만한 포스트

0개의 댓글