2022-05-12(목) TIL

황인호·2022년 6월 7일
0

TIL 모음

목록 보기
49/119

오늘해야할일들

  • 알고리즘 문제풀이 3문제 [완료]

  • Node 현질한거 강의 30개듣기 [현재 21개 들었음]

  • Node.js 새롭게 알게된 내용

    강의명 : REPL와 js 파일 실행하기

    REPL : R(Read), E(Evaluate), P(Print), L(Loop)

    읽고(R) 실행하고(E) 결과를 출력하고(P) 반복한다(L)

    자바스크립트는 스크립트 언어라서 즉석에서 코드를 실행할 수 있음

    강의명 : 모듈 만들기

    노드는 자바스크립트 코드를 모듈로 만들 수 있음

    모듈 : 특정한 기능을 하는 함수나 변수들의 집합

    모듈로 만들면 여러 프로그램에서 재사용이 가능하다

    코드가 길다 싶으면 잘게 쪼갤수있다.

    파일 끝에 module.exports로 작성한다.

    강의명 : exports 와 this

    ※생각보다 자주쓰임

    __filename : 현재 파일 경로

    __dirname : 현재 폴더(디렉터리) 경로

    filename.js 실행

    console.log(__filename)

    console.log(__dirname)

    콘솔 결과값

    C:\Users\zerocho\filename.js

    C:\Users\zerocho

    강의명 : 모듈심화, 순환 참조

    require의 특성

    • require가 제일 위에 올 필요는 없음

    • require, cache에 한 번 require한 모듈에 대한 캐쉬 정보가 들어있음

    • require.main은 노드 실행 시 첫 모듈을 가리킨다.

      강의명 : Process

      process.env = > 비밀키(데이터베이스 비밀번호,서드파티 앱 키 등)를 보관하는 용도로도 쓰임

      환경변수는 process.env로 접근이 가능함

      ex)

      const secretId = process.env.SECRET_ID

      const secretCode = process.env.SECRET_CODE

      일부 환경 변수는 노드 실행 시 영향을 미치기도 합니다.

      강의명 : os와 path

      Path : 폴더와 파일의 경로를 쉽게 조작하도록 도와주는 모듈(자주쓰임)

      강의명 : url와 querystring

      url 모듈 : 인터넷 주소를 쉽게 조작하도록 도와주는 모듈

      강의명 : crypto와 util

      단방향 암호화(crypto) : 암호화는 가능하지만 복호화는 불가능(해독이 불가능함)

      암호화 : 평문을 암호로 만듦

      복호화 : 암호를 평문으로 해독

      util : 각종 편의 기능을 모아둔 모듈

      강의명 : woker_threads

      woker_threads ⇒ 노드에서 멀티스레드 방식으로 작업할 수 있음

      먼말인지 모르겠다...여러번 돌려봐야할거같다....

      강의명 : fs

      fs : 파일 시스템에 접근하는 모듈

    • 파일/폴더 생성,삭제,읽기,쓰기 가능

    • 웹 브라우저에서는 제한적이었으나 노드는 권한을 가지고 있음

    • 파일 읽기 예제(결과의 버퍼는 뒤에서 설명함)

      알고리즘 문제풀이(이상한문자만들기)

function solution(s) {
    let answer = ''
    let a = s.split(' ');
    return a.map(el => {
        let str = ""
        for (let i = 0; i < el.length; i++) {
            // console.log(el, str)
            //el => try , try ,try, hello,hello,hello,hello,hello, world,world,world,world,world
            //즉 try =3글자 , hello = 5글자 , world = 5글자 
            //글자의 길이만큼 반복해서 출력한다.
            if (i % 2 === 0) {
                str += el[i].toUpperCase()
                console.log(str, el)
								//콘솔 결과값
								//T try = 0
								//TrY try = 2
								//H hello = 0
								//HeL hello = 2
								//HeLlO hello = 4
								//W world = 0
								//WoR world = 2
								//WoRlD world = 4
								//즉 짝수만 대문자로 바꿔준다
            }else {
                str += el[i].toLowerCase()
								//콘솔 결과값
								//Tr try =1
								//He hello = 1
								//HeLl hello = 3
								//Wo world = 1
								//WoRl world = 3
								//즉 홀수만 대문자로 바꿔준다
            }
        }
				console.log(str)
				//콘솔 결과값
				//TrY
				//HeLlO
				//WoRlD
				//이렇게 3개로 쪼개져서 출력되기때문에
        return str
    }).join(' ')
				//join을 사용하여 한줄의 문자열로 만들어준다
}
let s = "try hello world"
console.log(solution(s))

콜솔을 엄청찍어봤다 ㅋㅋㅋㅋㅋㅋㅋㅋㅋ

map을 너무 못쓰는거같다 아직도 이해가안간다.... 앞으로 이해할수있게끔 노력해야겠다.

profile
성장중인 백엔드 개발자!!

0개의 댓글