Next.js 배포

NCloud Platform

배포 과정

BFF (Backend For Frontend)

Next.js CI / CD를 위해 산넘고 물건너기

push 이벤트 감지 안됨


꿀잠 잘 기대에 가득찬 CI / CD

이 문제는 잠시 뒤로 미룹시다.

문제 해결

github actions에서만 npm이 없다고 뜨는 에러


고난의 시작

원인 파악 - nvm 제거 후 nodejs 수동 설치

다시 찾아온 문제 - nvm 환경변수

문제 해결


Trie 자료구조로 자동완성 검색엔진 만들기

image

Problem

Think

Solution

Process

N = 단어의 개수, M = 문자열 길이 사전 작업 시간 복잡도 탐색 시간 복잡도
전체 탐색(정규 표현식) X O(M * N)
이진 탐색 O(N _ M _ logN) (정렬) O(M * logN)
트라이 O(N * M) (트라이 생성) O(M)

Result


👥 사람이라는 객체

🌐 어디까지 소프트웨어라고 할 수 있을까?

시와 코드, 변수명 짓기

노하우가 생길 수 있는 모든 것은 소프트웨어 아닐까?

이름 짓기와 상수 Enum 활용

소프트웨어는 문제 해결, 이 방법론을 삶에 적용시키면 개발도 더 빨리 늘지 않을까?

🗣️ 프로그래밍 언어와 커뮤니케이션

여러가지 프로그래밍 언어

얄미운 사람, 얄미운 JS

👤 사람을 소프트웨어로 접근한다면?

나를 소프트웨어로 본다면, 우리는 다들 버전업하면서 살고 있지는 않을까?

인간도 머신러닝과 비슷한 것 같다.

여러 메서드가 의존하고 있는 프로퍼티에 큰 수정이 발생하면 여러 문제가 생긴다. 사람도 이런 경우가 있을까?

사람만 스스로 버그 수정과 리팩토링을 한다.

💊 사람을 객체화해본다면?

사람을 객체로 접근

아까 나왔던, 사람과 의존성으로 돌아가봅시다.

생각 정리와 매몰

내가 안다고 생각하지만 사실 상속받은 것

사람 클래스의 의존성

❤️ 소감


[09장. 타입 변환과 단축 평가]

</br>

✏️ 자바스크립트의 알아서 잘하는 타입변환


  근데 알아서 하는건 종종 오해를 낳는다. 그러니 자바스크립트가 어떤 때에 알아서 잘하는지 하는지 아는게 필요하다.

자바스크립트에는 두 가지의 타입 변환이 있다.

  1. 명시적 타입 변환 (타입 캐스팅)
  2. 암묵적 타입 변환 (타입 강제 변환)

명시적 타입변환은 toString() 메서드와 같이, 타입을 변환하는 것을 명시적으로 명령하는 것이다.

반대로 암묵적 타입 변환은, 명시적으로 명령하지 않지만 자바스크립트 엔진이 맥락을 평가하고 타입을 변환하는 것을 말한다.

예를 들어, ‘1’ + 1;이라는 문장은 ‘1’이 암묵적으로 숫자형으로 변환되어서 2라고 평가되어진다.

각각의 타입변환에는 장단점이 존재한다.

앞의 내용에서 언급했듯이 암묵적이고, 맥락에 의한 처리는 종종 오해를 발생시킨다. 다만, 가독성이 좋아질 수 있다.

암묵적 타입변환을 효과적으로 사용하기 위해서, 각각의 타입에서 암묵적 타입변환이 어떻게 발생하는지 아는 것이 도움된다.

</br>

✏️ 반복되는건 짧게 쓸 수 있도록 합의합시다.


  타입이나 논리를 확인 후 그에 따라 명령을 실행하는 문에 매번 같은 조건문에서 값을 비교하는 것은 효율적이지 못할 것이다. 이를 위해서 자바스크립트는 미리 합의를 통해 몇가지 단축평가 문법을 제안하여 개발자로 하여금 코드를 작성하기 쉽게 돕는다.


[13장. 스코프]

</br>

✏️ 말이 쓰일 범위를 모르면 오해가 생깁니다.


  pr이라는 단어를 듣는다면 뭐가 떠오를까?

  1. 마케팅에서는 PR을 Public Relations로 말하며, 대중과의 긍정적인 관계를 형성하기 위해 하는 활동을 말한다.
  2. 헬스에서는 PR을 Personal Record라고해서 개인 기록을 말한다.
  3. 개발에서는 PR을 Pull Request의 의미로 사용하며, 깃허브에서 내 작업물이 브랜치로의 병합될 수 있도록 요청하는 것을 말한다.

사람은 편의를 위해 축약어나 단어를 사용하고, 범위가 넓어지게 되면 동음이의어가 생기게 된다.

코드도 똑같다. 코드에서도 변수의 사용범위가 뒤죽박죽이고 변수를 읽는 순서가 다르다면 오해가 생길 수 있을 것이다.

</br>

✏️ 이를 위해 스코프(Scope)가 있어요.


  이러한 오해를 막기위해서 스코프가 존재한다.

변수를 선언하면 해당 변수가 사용될 수 있는 스코프 내의 객체에 식별자로 등록되게 되며, 변수를 호출했을 때 호출한 스코프에 해당 변수가 없다면 하나씩 상위 스코프를 탐색하게 된다.

이러한 이유로 사용상의 편의를 위해 무턱대로 전역변수에 변수를 선언하는 것은 좋지 않다. 이는 14장. 전역 변수의 문제점에서 다뤄진다.