A Developing Developer

DAY 30. 주특기(Node.js) Node.js 심화주차 1-1 ~ 2-6 본문

내일배움캠프 4기/TIL

DAY 30. 주특기(Node.js) Node.js 심화주차 1-1 ~ 2-6

H-JJOO 2022. 12. 26. 21:14
  • 오늘 한거

심화주차 발제(SOLID 원칙, 유닛 테스트 알아보기), 11일차 알고리즘 문제, 심화주차 강의수강 

 

  • 문제발생

1. 알고리즘 문제 풀다 필요한 모르는 메소드 발생

 

- .reverse() : 배열을 역순으로 정렬해주는 메소드

 

- .join() : 배열을 () 안의 값으로 이어주는 문자열로 만들어주는 메소드

ex .join('-') => "배열[0]-배열[1]-배열[2]"

ex. join(' ') => "배열[0] 배열[1] 배열[2]"

ex. join('') => "배열[0]배열[1]배열[2]"

 

- .repeat() : () 안의 수만큼 문자열을 반복하는 메소드 

 

2. 'SOLID 원칙' 이 뭐야?

S : SRP (Single Responsibility Principle) 단일 책임 원칙

O : OCP (Open-Closed Principle) 개방-페쇄 원칙

L : LSP (Liskov Substiution Principle) 리스코프 치환 원칙

I : ISP (Interface Segreation Principle) 인터페이스 분리 원칙

D : DIP (Dependency Inversion Principle) 의존 역전 원칙

 

https://velog.io/@haero_kim/SOLID-%EC%9B%90%EC%B9%99-%EC%96%B4%EB%A0%B5%EC%A7%80-%EC%95%8A%EB%8B%A4

 

SOLID 원칙, 어렵지 않다!

객체지향 프로그래밍 설계 원칙에 대해 알아보기

velog.io

 

3. '유닛 테스트' 가 뭐야?

 

유닛테스트란 메서드를 테스트하는 또 다른 메서드이다. 하나의 유닛테스트(Unit Test)는 하나의 메서드의 특정 루틴을 검사한다전체적으로 말했을 때 유닛테스트는 버그를 줄이고 코드 퀄리티를 높이기 위해 만든다. 세부적으로는 다양한 이유가 있겠지만 두가지를 이야기하도록 하겠다.
첫번째는 프로그램이 크고, 메모리가 많이 들고, 다른 리소스(데이터베이스 등)이 필요한 경우 로컬 환경에서 쉽게 코드를 실행시켜보기 어렵기 때문이다. 이런 프로그램을 개발하는 개발자들은 유닛테스트를 만들어서 빠르게 자신의 코드가 정상적으로 작동 하는지 확인 할 수 있다.

 

그래서 유닛테스트(Unit Test)가 뭔가요? :: 삐멜 소프트웨어 엔지니어 (tistory.com)

 

그래서 유닛테스트(Unit Test)가 뭔가요?

소프트웨어 업계에 종사하거나 개발을 많이 해봤다면 유닛테스트에 대해 종종 들었을 것이다. 업계에 종사하고있다면 실제로 유닛테스트를 매일 작성하고 있을수도 있다. 유닛테스트는 뭘까?

imasoftwareengineer.tistory.com

 

  • 시도

구글링, (작성중)

 

  • 해결방안

구글링, (작성중)

 

  • 알게 된 것
function solution(phone_number) {
    let answer = '';

    let four_num = [];

    for (let i = 0; i < 4; i++) {
        four_num.push(phone_number[phone_number.length-1-i]);
    }

    let protection = "*";

    let num = four_num.reverse().join('')

    let protection_phone_number_length = phone_number.length - 4

    answer = protection.repeat(protection_phone_number_length) + num

    return answer;
}

- .reverse() : 배열을 역순으로 정렬해주는 메소드

- .join() : 배열을 () 안의 값으로 이어주는 문자열로 만들어주는 메소드

- .repeat() : () 안의 수만큼 문자열을 반복하는 메소드 

- SOLID 원칙 : 객체지향 설계원칙

- 유닛 테스트 : 버그를 줄이고 코드 퀄리트를 높이기 위해 시행한다.

 

 

[결론]

 

내일 수강할 객체지향 강의를 들으면서 SOLID 원칙을 고려해보자!

 

유닛 테스트는 반드시 필요한 과정이다! (아직 시작도 안했지만)