cometruedream의 등록된 링크

키자드에 등록된 총 252개의 포스트를 확인하실 수 있습니다.

Tistory

FCM(Firebase Cloud Messaging) 개념및 아키텍처

️ 본론에 앞서 "> HTML 삽입미리보기할 수 없는 소스  Firebase Cloud Messaging(FCM)? 앱에서 알람,공지을 보내기위해서 사용되는 알림을 보내는 도구입니다.우리가 사용하는 앱/웹에서 우리는 알림을 공지, 업데이트, 알림을 휴대폰 메세지로 받는데 이 푸시 알림을 보낼수 있도록 도와주는 클라우드 기반 메세징 솔루션 기술입니다.저는 Nest.js 백엔드로 FCM을 구축해서 푸시알림 서비스를 개발할 예정이지만 개발에 앞서 FCM의 개념및 아키텍처를 알아보겠습니다. FCM 이란? Firebase Cloud Messaging(FCM)는 Google Firebase 플랫폼에서 제공하는 메시징 서비스로 서버에서 사용자들 핸드폰으로 푸시 메시지를 안정적으로 전달할 수 있는 방법을 제..

Tistory

[자바스크립트] 가장 중요한 자바스크립트 객체 생성과 조작, JSON, 메서드 개념과 사용법

️ 본론에 앞서 중요한 배열 사전 지식 공부하기 "> HTML 삽입미리보기할 수 없는 소스 배열 reduce() 함수 사용법에 대해 알아보기https://cometruedream.tistory.com/259 HTML 삽입미리보기할 수 없는 소스배열 reduce() 함수 사용법에 대해 알아보기https://cometruedream.tistory.com/256 [자바스크립트] 배열(array) redu" data-og-host="cometruedream.tistory.com" data-og-source-url="https://cometruedream.tistory.com/259" data-og-url="https://cometruedream.tistory.com/259" data-og-image="h..

Tistory

[자바스크립트] 배열(array) reduce 함수의 개념및 활용도 높은 사용법

️ 본론에 앞서 중요한 배열 사전 지식 공부하기 배열 join() 함수 사용법에 대해 알아보기https://cometruedream.tistory.com/254 [자바스크립트] 배열(array)을 유용하게 활용할 수 있는 join 함수 개념 및 사용법️ 본론에 앞서배열은 javascript에서 가장 중요한 데이터 자료구조 중 하나입니다.배열에 내장함수를 활용하는 것은 javascript에서 중요한 부분 중 하나이며 join() 배열 메서드는 배열을 합cometruedream.tistory.com  배열 map(), forEach() 인기있는 메서드 사용법에 대해 알아보기https://cometruedream.tistory.com/253 [자바스크립트] 배열(array)을 처리하는 인기있는 ..

Tistory

[자바스크립트] 배열(array) filter 함수의 개념및 사용법

️ 본론에 앞서 중요한 배열 사전 지식 공부하기 "> HTML 삽입미리보기할 수 없는 소스배열 reduce() 함수 사용법에 대해 알아보기https://cometruedream.tistory.com/256 [자바스크립트] 배열(array) reduce 함수의 개념및 활용도 높은 사용법️ 본론에 앞서 중요한 배열 사전 지식 공부하기 배열 join() 함수 사용법에 대해 알아보기https://cometruedream.tistory.com/254 [자바스크립트] 배열(array)을 유용하게 활용할 수 있는 join 함수 개cometruedream.tistory.com  배열 join() 함수 사용법에 대해 알아보기https://cometruedream.tistory.com/254 [자바스크립트]..

Tistory

[React-query] refetch 옵션과 사용법 총 정리

️ 본론에 앞서react-query는 React에서 데이터를 가져오고, 캐싱하고, 동기화하고, 데이터 관리를 위한 후크와 유틸리티를 제공하는 라이브러리입니다. 이 라이브러리의 활용은 React의 전반적인 성능을 향상시키고 사용자에게 부드러운 경험을 줄 수 있습니다. react-query 사용법에 대해 알아보기https://cometruedream.tistory.com/130 React-query 상태 관리React-query 알기전에 JSX란?JSX(javascript XML)는 javascript에 XML을 추가한 확장한 문법이다.JSX는 React에서 사용되는데 공식적인 자바스크립트 문법은 아니다.JSX는 javascript 확장한 문법으로 바벨등등을cometruedream.tistory...

Tistory

[자바스크립트] 배열(array)을 처리하는 인기있는 메소드 map(), forEach() 개념과 차이점

️ 본론에 앞서자바스크립트는 현재 웹/앱 개발 트렌드에서 필수적으로 사용되는 프로그래밍 언어입니다. 여러 아이템을 저장하는데 사용되는 배열과 이를 파싱하며 새로운 데이터를 생성하고 조작하는데 필요한 자바스크립트 내장함수인 map(), forEach()라는 두 가지 인기 있는 배열 메소드에 대해 알고 계실 겁니다. 이 두 배열 메소드는 배열에 루프를 처리하는 기능이 비슷하지만 중요한 차이점이 있습니다. 이 차이점을 공부하여 배열 메소드를 더 효율적으로 활용할 수 있도록 알아보겠습니다.  " data-ke-type="html">HTML 삽입미리보기할 수 없는 소스 ️ 배열(array)이란?배열은 여러 개의 아이템을 순서대로 저장, 추가, 삭제할 수 있는 자료구조입니다. 배열은 각 요소에 인덱스..

Tistory

[자바스크립트] 배열(array)을 유용하게 활용할 수 있는 join 함수 개념 및 사용법

️ 본론에 앞서배열은 javascript에서 가장 중요한 데이터 자료구조 중 하나입니다.배열에 내장함수를 활용하는 것은 javascript에서 중요한 부분 중 하나이며 join() 배열 메서드는 배열을 합치는 것에 가장 중요한 내장함수 중 하나입니다.join() 배열 메서드를 더 잘 활용할 수 있도록 알아보겠습니다. 배열(array)을 처리하는 인기 있는 메서드 map(), forEach() 개념과 차이점https://cometruedream.tistory.com/253 [자바스크립트] 배열(array)을 처리하는 인기있는 메소드 map(), forEach() 개념과 차이점️ 본론에 앞서자바스크립트는 현재 웹/앱 개발 트렌드에서 필수적으로 사용되는 프로그래밍 언어입니다. 여러 아이템을 저장..

Tistory

[자바스크립트] 활용가치가 좋은 내장함수와 every(), some() 함수의 개념 및 활용법

️ 자바스크립트 내장 함수란?자바스크립트를 효율적으로 활용하려면 내장 함수를 잘 사용해야 합니다.내장 함수는 자바스크립트에서 미리 선언된 함수로, 호출만으로 사용할 수 있습니다.자바스크립트 언어를 사용한다면 기본적으로 제공하는 함수들을 활용해서 다양한 작업을 쉽고 효율적인 코드로 사용할 수있게 도와줍니다. javascript map() 함수 알아보자!https://cometruedream.tistory.com/7 javascript map() 함수 알아보자값이 여러개 있는 배열에서 모든 값을 꺼내는 방식은 다양하게 알려져 있습니다 대표적으로 for문,,,하지만 오늘은 map() 함수를 다뤄보도록 하겠습니다  vs코드를 여시고 let getStartedarr 배열에cometruedream.tisto..

Tistory

[React-query] 데이터 프리페칭 사용법 정리

️ 본론에 앞서풀스택 개발을 진행하면서 사용자의 입장을 우선으로 하여 사용자 경험을 최우선으로 개발하려 노력합니다. 얼마 전에 읽은 책에서"개발하는 사람이 수고롭다면 사용하는 사람이 편리하고, 개발하는 사람이 편리하다면 사용하는 사람이 수고롭다" 라는 말을 되새겨 봅니다! Prefetching이란 무엇인가?프리페칭은 데이터가 실제로 필요하기 전에 미리 데이터를 가져와 캐시에 저장하는 과정을 말합니다. 이러한 프리페칭 기술을 통해 데이터를 미리 캐싱하면 사용자 경험을 향상할 수 있습니다. 간단히 설명하면 미리 필요할 수 있는 데이터를 가져오는 것을 의미합니다. 대표적으로 페이지네이션과 특정 탭을 누를 확률이 높은 곳에서 프리페칭을 많이 사용합니다.화면이 부드럽게 이동하고 캐싱데이터에 액세스 해서..

Tistory

ngrok 활용해서 외부에 로컬 서버 공개 & 터널링 방법 정리

️ 본론에 앞서프로젝트 개발을 하다 보면 로컬에서 개발 중인 버전을 배포하지 않고 외부에서 접근할 수 있도록 서버를 구축해야 할 일이 있습니다.예를 들어 외부 협력업체, 거래처에서 개발 중인 버전을 확인하고 싶을 때나 외부에서 테스트를 위해서 외부에서 로컬에 접근을 위한 서버를 만들어야 됩니다. 외부에 접근을 위해서 다양한 방법들이 존재합니다. 공유기 설정에서 포트포워딩 방식, 외부에서 접근할 수 있도록 서버를 구축하는 방법 등등... 언급한 2가지 방법은 상당히 까다롭고 시간이 필요한 작업입니다.위에 두가지 방법 없이 외부에서 로컬을 접속 가능하게 하는 터널 프로그램 ngrok에 대해서 알아보겠습니다.   ️ ngrok란?ngrok은 외부에서 로컬에 접속할 수 있도록 도와주는 터널링 프로..

Tistory

[NOSQL] Redis 개념과 장점 정리

️ Redis 개념?Redis(Remote Dictionary Server)는 키(key)와 값(value)의 구조를 가진 비관계형 데이터베이스인 NoSql입니다. 오픈 소스 기반의 in-memory 데이터 저장소를 사용하는 Redis는 일반적인 데이터베이스와 달리, 데이터를 주 메모리(RAM)에 저장합니다. 이 특징은 데이터에 빠르게 접근 가능하게 하며, Redis의 성능을 향상시키고 응답 시간을 최소화하여 사용자에게 빠른 데이터 제공을 가능하게 합니다. 간단히 이해하기 위한 팁!일반 데이터베이스는 데이터를 보조 기억장치에 저장하므로, 저장된 데이터에 접근할 때마다 디스크를 직접 접근해야 합니다. 이로 인해 읽기 속도 & 응답 시간이 필요합니다. 반면, in-memory 데이터베이스인 Redis..

Tistory

Next JS에서 tailwind 적용 안될때 해결방법

️ 본론에 앞서Tailwind란?Tailwind CSS는 React와 Next 프레임워크에서 많이 사용되는 CSS 프레임 워크입니다. Tailwind CSS는 ‘utility-first’ 목적을 기반으로 다른 CSS 라이브러리와 달리 CSS 파일 & style 태그를 사용하지 않고 class 속성으로 CSS 스타일링 할 수 있습니다.  Tailwind CSS 사용하는 이유?Tailwind CSS 프레임워크를 통해서 UI를 빠르고 유연하게 디자인하고 스타일링할 수 있습니다. class(className) 기반의 화면을 스타일링 하기 때문에 개발자의 생산성과 빠르게 화면을 만들 수 있는 장점이 있습니다.   ️ Tailwind 사용법Next.js or React에서 Tailwind CSS 적용..

Tistory

API Param vs Query Parameter 개념과 차이

️ 본론에 앞서최근에 새로운 조직에서 풀스택으로 프론트 & 백엔드 업무를 담당을 맡으면서 새로운 기술스택과 아키텍처 그리고 팀 컨벤션과 업무방식을 적응하면서 새로운 것에 대해서 많은 습득과 공부를 하고있습니다. 최근에 백엔드 REST API를 담당하면서 Param & Query Parameter에 대한 차이에 대해서 깊이 생각을 하게 되면서 어떠한 설계가 좋은 방식인지 아닌지 고민을 하게 되었습니다.  ️ Param & Query Parameter 사용 방법의 차이?API GET 메소드 종류API 요청에 GET 메소드를 컨트롤하기 위한 2가지 형태를 담고있다.ParamQuery  Param?주소에 포함된 변수의 값을 처리합니다.http://localhost:3000/blog/8763 주소에..

Tistory

[React] Tailwind 한줄, 두줄, 세줄 효과 className 커스텀

️ Tailwind 한줄, 두줄, 세줄 효과프로젝트 진행중 배너 링크에 URL 길이가 너무 길어서 3줄 효과 처리를 해야 했습니다. React + Tailwind CSS 셋팅된 프로젝트 여서 CSS 파일 & style 태그를 사용하지 않고 className 속성을 활용해서 CSS 스타일링 해야 했습니다.   기존에 방식으로 한줄 효과 스타일링을 하려고 했으나 tailwind CSS 방식이 달라서 다른 좋은 방법을 찾았습니다. 한줄 효과 기존 CSS 방식p { width: 6rem; text-overflow: ellipsis; overflow: hidden; word-break: break-word; display: -webkit-box; -webkit-line-clam..

Tistory

NestJS Lifecycle (생명주기) 개념

️ 본론에 앞서 Nest JS 개념?Nest JS는 Node JS 기반으로 한 서버 어플리케이션 프레임워크 입니다. 자바스크립트는 상당히 오랫동안 Express 기반으로 서버 어플리케이션 개발에서 압도적인 점유율을 차지한다.많이 사용하는 이유중에 빠르게 서버 구축과 API 구성할 수 있다는 장점이 있다. Express가 경량화된 프레임워크여서 핵심적인 기능과 빠르게 서버를 구성해서 API 구축하는데 큰 문제가 없지만 서비스 규모가 확장되고 볼륨이 커지는 프로젝트에서 불편함이 많다. 이런 문제를 해결하기 위해서 Nest JS 프레임워크가 등장하며 기업용 어플리케이션을 개발하고 내장하고 있는 플러그인을 통해서 쉽게 확장도 할 수 있다. OOP(객체 지향 프로그래밍), DI(의존성 주입), AOP(과점..

Tistory

쉽게 이해하고 사용할수 있는 Prisma 명령어 정리

️ Prisma 명령어 본론에 앞서 Prisma란?Nest JS 프레임워크와 Prisma ORM을 활용해서 프로젝트를 진행하면서 Prisma는 Node JS 기반에 프레임워크/라이브러리와 상호작용이 잘되며 Prisma + DB 연동으로 더 편하게 schema.prisma 하나의 파일로 모델, 스키마 관리를 하면서 많이 사용되며 알아두면 좋은 Prisma 명령어를 정리했다. Prisma와 상호작용이 좋은 Nest JS 알아보기 https://cometruedream.tistory.com/132 Nest.js - 개념 & 초기셋팅 Nest.js 란? Nest.js는 효율적이고 확장 가능한 Node.js 서버 측 애플리케이션을 구축하기 위한 프레임워크이다. JavaScript를 사용하고 TypeSc..

Tistory

React 폴더구조 FSD 기능 분활 설계 아키텍처

️ 본론에 앞서프로젝트를 시작하기에 앞서 폴더 구조, 설계에 대한 아키텍처를 만드는 것은 상당히 어렵다. 이번 프로젝트에 React FSD 폴더구조 아키텍처를 설계할 예정이라서 FSD 아키텍처에 대해서 알아보겠습니다.  ️ FSD 아키텍처란?FSD는 Feature Sliced Desing 의미이며 작은 규모의 프로젝트나 점진적으로 규모가 확장될 필요가 없는 프로젝트라면 모놀리스 형식으로 프로젝트를 설계하면 되지만 점진적으로 소프트웨어의 규모가 커지고 확장해 나갈 예정이라면 FSD를 적용할 필요가 있다.  프론트 프로젝트 보일러플레이트 개념 공부를 하고 글을 보시면 더 많은 도움이 됩니다^^보일러플레이트(Boilerplate code)란? - 개념, 필요한 이유https://cometrued..

Tistory

리액트 Vite Proxy 활용한 CORS 오류 해결

️ 본론에 앞서프론트엔드 번들러 개념과 webpack vs vite 비교에 대해서 공부를 하고 글을 보시면 더 많은 도움이 됩니다^^프론트엔드 개발을 위한 번들러 개념과 webpack vs vite 비교https://cometruedream.tistory.com/224 프론트엔드 개발을 위한 번들러 개념과 webpack vs vite 비교모듈 번들러? 모듈 번들러는 분리된 코드 조각들을 하나로 압축 하는 개발 도구입니다. 핵심 작업은 HTML, CSS, JAVASCRIPT 여러 파일을 하나로 결합하여 단일 파일로 만드는 것이다. 압축시킨 단일cometruedream.tistory.com ️ 로컬 개발 환경 CORS 오류?프론트 개발을 하다 보면 로컬 환경에서 API CORS 오류가 빈번..

Tistory

개발자라면 알아야할 NVM 개념 & 설치 & 사용법

️ NVM이란? NVM? Node Version Manager node.js 개발을 하다보면 한번쯤은 들어봤던 용어 NVM은 설명하자면 Node.js의 버전을 관리하는 도구이다. 왜 NVM을 사용해야 하는 이유? 회사에서 협업, 프로젝트를 진행하다보면 다양한 라이브러리, 프레임워크, 개발툴의 버전 호환 문제를 겪는다. 이러한 버전 호환문제를 해결하기 위해서 node.js 버전을 관리해주는 도구 NVM 필요하다. ex: Next.js 14 버전은 node.js 버전 18.17.4 이상부터 사용이 가능하다. 18.17.4 아래 버전이 Next.js 14 버전을 install or create 하면 오류가 발생하므로 node 버전을 업그레이드 해야한다. 이런 예시같은 버전 호환 문제가 발생할경수 NVM을..

Tistory

[컴퓨터메모리구조] 메모리 캐시 vs 디스크 캐시 개념

️ 본론에 앞서 메모리란? 메모리는 '기억장치'라는 뜻을 가지고 있으며 컴퓨터의 메모리는 일반적으로 RAM을 의미하여 주기억장치 라고도 한다. 기본적인 컴퓨터의 메모리 종류 기본적인 컴퓨터는 일반적으로 레지스터, 캐시, RAM을 주기억장치라고 부른다. 왜냐하면 프로그램이 실제로 실행될때 이 세 기억장치를 사용하기 때문이다. 이 3가지의 기억장치를 알아보자. 레지스터: 제일 빠른 장치이며, CPU 계산과정의 일부분이다. 캐시 메모리: 레지스터 다음으로 빠른 메모리로 L1, L2, L3 CPU에 작은 칩으로 메모리를 저장시켜 빠르게 데이터를 제공한다. RAM: 주 기억장치로 매우 빠르지만 CPU > Cache > RAM > HDD 순서로 캐싱데이터를 제공한다. 하지만 HDD, SDD 보다는 월등히 빠르..

Tistory

[docker] 도커 PostgreSQL & Redis 이미지 설치와 컨테이너 실행하는 방법

️ 본론에 앞서 docker 볼륨이란?docker는 가상화 환경을 빠르고 쉽게 컨테이너로 실행하고 관리할수 있는 대표적인 오픈소스 툴입니다.   도커에 대한 개념과 핵심 설명을 먼저 보시면 도커 볼륨에 대해서 이해하기가 쉬워요^^도커&쿠버네티스 [Docker] Docker의 개념 및 핵심 설명https://cometruedream.tistory.com/76 [Docker] Docker의 개념 및 핵심 설명Docker란? Go언어로 작성된 리눅스 컨테이너 기반으로하는 오픈소스 가상화 플랫폼입니다. VM(Virtual Machine)과 컨테이너(Container)의 차이 가상화는 VM 버추얼 머신으로 OS가상화죠. 대표적으로 window, licometruedream.ti..

Tistory

MAC에서 사용중인 특정 포트 찾아서 포트 kill하는 방법

️ 에러 코드 MAC에서 볼수있는 이미 실행중인 포트 에러 서버를 실행시 이미 사용중인 포트라는 오류를 볼수있다. Error: listen EADDRINUSE: address already in use :::3000 ️ 해결 방법 1. 3000번 포트를 사용하고 있는 프로세스 확인 명령어 sudo lsof -i :포트번호 ex:3000, 3003, 8000 위에 명령어를 터미널에서 입력하면 아래의 리스트를 볼수 있다. 내가 친 명령어 sudo lsof -i (모든 프로세스를 확인하기 위해서) PID가 현재 사용중인 프로세스의 고유번호 2. 실행중인 프로세스 강제 종료 시키기 sudo kill -9 PID번호 프로세스 리스트를 확인후 고유번호 PID를 입력해서 강제 종료 종료 후 다시 서버를 띄..

Tistory

replaceAll is not a function 오류 해결 경험

️ replaceAll is not a function 오류? 제가 운영하는 커뮤니티에 크롤링 로직에서 replaceAll is not a function 오류가 발생하면서 크롤링이 제대로 되지 않고 있었다. 오류 로그를 확인했는데도 정확한 원인을 파악하지 못했다. 본론에 들어가기 앞서 NODE.JS 무엇인가? https://cometruedream.tistory.com/2 Node.js 는 무엇인가? 요즘 개발에서 JavaScript 활용도가 높아지면서 Node.js를 활용하는곳이 점차 늘고 있습니다! 저또한 Node.js를 Study하는 중입니다!!ㅎ 그렇다면 Node.js란 무엇일까요???? 웹어플리케이션을 개발할때 JavaS cometruedream.tistory.com replaceAll ..

Tistory

[Docker] Mac 운영체제에 도커 개념 & 설치 방법

️ 도커란? HTML 삽입 미리보기할 수 없는 소스 (Docker)도커는 애플리케이션을 개발, 배포, 실행하도록 도와주는 오픈 소스 플랫폼이다. 컨테이너화 기술을 사용하여 애플리케이션과 관련된 파일들을 컨테이너안에 패키징해서 독립적으로 실행, 관리할 수 있도록 돕는다. 도커의 컨테이너화 기술은 안정적이며 효율적으로 애플리케이션을 관리할 수 있다. Docker Container (도커 컨테이너)란? 도커 컨테이너는 가상화된 공간을 생성하기 위해 리눅스 자체 기능인 chroot, 네임스페이스(namespace), cgroup을 사용함으로써 프로세스 단위의 격리 환경을 만들기 때문에 성능 손실이 거의 없습니다. 컨테이너에 필요한 커널을 공유해서 사용하고, 컨테이너 안에는 어플리케이션을 구동하는 데 필요한..

Tistory

알아두면 좋은 개발용어 프로토타입, MVP 개념 정리

️ [개발용어] 프로토타입 & MVP란 ? HTML 삽입 미리보기할 수 없는 소스 스타트업 또는 새로운 제품을 개발할 때 많이 사용하는 용어 프로토타입(Prototype)과 MVP(Minimum Viable Product)의 뜻과 차이점에 대해서 알아보겠습니다. 프로토타입(Prototype)란? 아이디어나 디자인, 기능 등을 시각적으로 또는 동작적으로 구현하고 요구사항들과 시나리오를 구현한 초기 설계 버전 프로토타입은 제품의 컨셉을 시험하고 피드백과 요구사항을 수집하기 위해 서비스 초기에 많이 사용됩니다. 보편적으로 개발 초기 단계에서 많이 활용되며 사용자, 고객 요구사항을 이해하고 디자인을 검증하며 문제를 해결하는데 도움을 줍니다. 가장 중요한 개념은 프로토타입은 실제 제품과 비슷한 모습을 가지지..

Tistory

VPN 개념 정리 및 접속 방법

️ 본론에 들어가기 앞서 코로나 이후로 IT 전공이 아니신 분들도 VPN, 네트워크 등등에 단어들을 많이 들어보고 사용했을 것이다. 코로나 이후로 재택근무가 활성화되면서 VPN을 이용하여 회사 네트워크에 접속해서 회사 업무를 처리했을 것이다. 나 또한 우리 회사의 자회사 데이터 센터에서 업무를 위해서 VPN을 접속해서 업무를 했던 경험이 있다. 그러면서 자연스럽게 VPN이 무엇이고 VPN의 개념에 대해서 궁금해졌다. ️ VPN(Virtual Private Network) 이란? 사용자들은 인터넷에 접속하여 웹을 이용할때 ISP(KT, SKT, LG 같은 업체)의 통신망을 사용한다. 통신망을 사용하면 사용료를 지불하고 이따 사용하는 네트워크를 public network라고 한다. public n..

Tistory

script 요소의 defer과 async 속성을 통한 효과적인 스크립트 로딩

️ 본론에 들어가기 앞서 웹 개발을 하다 보면 B 위 HTML 문서는 브라우저에서 다음과 같이 순차적으로 처리가 됩니다. A가 화면에 출력됨 script.js 파일을 내려받아 자바스립트 코드가 실행됨 B 가 화면에 출력 * HTML은 동기식으로 한줄한줄 읽어나가는 특징을 가지고 있다. HTML 삽입 미리보기할 수 없는 소스 ️ defer vs async 속성? 전통적으로 script 요소를 head 요소 안에 넣도록 배우는 경우가 많지만 실제 프로젝트 or UI & UX 측면에서 body 요소 제일 마지막에 script를 넣어서 사용자에게 최적화된 웹페이지 경험을 줄 수 있다. 미리 HTML 그려주고 script를 렌더 하는 방식이다. Defer 속성 정의 요소에 defer 속성의 정의 def..

Tistory

react input 모든 텍스트 선택하는 방법

️ 본론에 들어가기 앞서 React 프로젝트 중에 input 입력 후에 Enter or 등록 버튼 후에 모든 테스트를 선택해야 되는 기능을 만들어야 했다. 나는 자바스크립트에 addeventlistener 메소드를 활용해서 하려고 했지만 더 좋은 방법이 있기 때문에 기억보다는 기록으로 남겨본다. ️ focue가 맞춰지면 React를 사용하여 입력 요소의 모든 텍스트를 선택 input 포커스가 되면 입력요소에 모든 텍스트를 선택하는 select() 요소를 활용해서 포커스가 있을 때 모든 텍스트를 선택하는 방법 select() 요소를 활용해서 input 요소에 모든 텍스트를 선택하는 이유는 똑같은 값을 사용하거나 전체 삭제를 효과적으로 사용할 수 있기 때문에 필요한 기능이다. EX: App() {..

Tistory

defaultPrevented 이벤트 속성 개념 총정리

️ 본론에 들어가기 앞서 javascript 이벤트와 이벤트 핸들러의 이해 자바스크립트는 이벤트 기반에 프로그램이며 자용자 또는 브라우저가 페이지를 클릭하거나 action을 통해서 이벤트가 발생한다. 이를 활용해 웹 페이지 요소를 동적으로 변경할 수 있으므로 이벤트는 중요한 역할을 맡고 있습니다. 예를 들어 브라우저가 document 로딩을 완료하면 load 이벤트가 발생하고 사용자가 버튼을 클릭하면 click 이벤트가 발생합니다. 이벤트는 한 번, 여러 번 또는 전혀 발생하지 않을 수 있습니다. 특히 사용자가 임의 생성한 이벤트는 언제 발생하는지 모를 수도 있습니다. 이와 같은 시나리오에서 이벤트 발생을 감지하기 위해 이벤트 핸들러가 필요합니다. 이를 통해 이벤트가 발생하는 즉시 반응하도록 코드를..

Tistory

React 중복 파일 업로드 오류 해결 방법

️ React에서 동일한 파일 업로드 구현 프로젝트중에 PDF 파일 업로드 기능 구현 당시 동일한 파일을 업로드 하는 경우 input태그의 onChange 이벤트 핸들러 함수가 정상적으로 동작하지 않는 문제가 발생했다. 파일 업로드 과정 브라우저에서 PDF 업로드를 클릭하면 파일 탐색기 창이 열리고 파일을 선택후에 파일을 업로드한다. 여기서 오류는 동일한 파일을 두번 이상 업로드시 onChange 이벤트가 발생하지 않는 문제였다. 20230920001_00_40.pdf 파일을 업로드하고 다시 20230920001_00_40.pdf 파일을 업로드하면 onChange 이벤트가 발생하지 않는다. 정리: React에서 동일한 파일을 연속해서 선택했을 때 input 태그에 onChange 이벤트 핸들러 함수..

Tistory

URL 인코드와 디코드 변환하는 방법과 개념

인코딩 & 디코딩 이란? Encoding: 인코딩이란 사람이 인식할 수 있는 문자열을 바이트 형식으로 변환 하는 과정 Decoding: 디코딩이란 인코딩과 반대 개념으로 바이트 형식을 문자열로 변환 하는 과정 인코딩과 디코딩은 주로 HTTP 통신을 할때 URI에 한글 혹은 특수문자가 포함되어 있을때 주로 사용한다. 인코딩 & 디코딩 개념 EX: URI 상수에 값을 encodeURI로 변환하면 아래에 변환된 값으로 변환된다. 인코딩된 값을 다시 decodeURI로 변환을 하면 다시 안녕하세요 문자열을 변환시킨다. 인코딩과 디코딩을 사용하는 이유 인코딩과 디코딩을 하는 이유 중에 가장 큰 이유는 URI 주소 또는 file 이름에 한글 or 특수문자가 포함되면 에러를 발생 시킬 수 있다. 이러한 에러를 해..

Tistory

ESLint & Prettier 와 프로젝트 build 해결 일대기

경험 만큼 좋은 교훈은 없다. 들어가기 앞서 지키지 않는 정책과 규칙은 없으니만 못하다. 이 말에 누구나 다 고개를 끄덕이겠지만 이 세상에 정책과 규칙을 준수하는 것만큼 가장 어려운 일도 없다. Prettier 일관성 있는 코드 스타일 유지해서 코드 퀄리티를 일관 적으로 유지하는 것을 돕는다. * 참고 vscode 자체에도 prettier 설정을 해줄 수가 있는데 이것은 프로젝트에 공유되지 않으니 prettierrc 파일에 설정을 하는 것이 좋다. 만약 prettierrc 파일이 있다면 우선적으로 그 설정을 따른다. Eslint 코드에 문제 패턴을 식별하고 코드에 오류를 검사해준다. Eslint rules Eslint 규칙을 설정 가능하다. VScode Prettier 셋팅 방법 Intellij 셋팅 B..

Tistory

immer를 사용해서 불변성을 지켜야하는 이유와 얕은 복사의 개념

immer 란? React에서 불변성을 유지하느라 난잡해진 코드를 짧고 간결하게 불변성을 유지할수 있게 도와주는 라이브러리이다. 반대로 immer 사용함으로 짧은 코드가 길어지는 경우도 있다. 불변성 개념 불변성이란 기존의 상태 값을 유지하면서 새로운 상태 값을 추가하는 것을 의미한다. 불변성을 지키는 이유 만약에 list OR 상태 값을 리렌더링 하고 싶을때가 있다고 가정한다. state.push({ title: "값 추가" })을 통해서 배열에 직접 10이라는 값을 추가한다. React에서는 해당 state라는 값은 새로운 참조값으로 바뀐것이 아니기 때문에 push 이전에 값가 push 이후에 값에 state 참조하는 메모리값이 같다고 판단하여 리렌더링이 일어나지 않는다. 이러한 이유로 state 값..

Tistory

프론트엔드 개발을 위한 번들러 개념과 webpack vs vite 비교

모듈 번들러? 모듈 번들러는 분리된 코드 조각들을 하나로 압축 하는 개발 도구입니다. 핵심 작업은 HTML, CSS, JAVASCRIPT 여러 파일을 하나로 결합하여 단일 파일로 만드는 것이다. 압축시킨 단일 파일을 브라우저에서 하나의 단일 파일을 로드함으로써 애플리케이션이 동작하게된다. 빌드 도구란? 애플리케이션을 개발할 때 사용하는 도구이다. 위에 언급한 번들링을 위한 도구다. 이 도구는 프론트엔드 코드를 빌드하고 번들링하며, 최적화하고, 테스트하고, 배포하는 데 사용된다. 프론트엔드에서 가장 많이 사용되는 빌드 도구로는 Webpack, Parcel, Rollup, Gulp, Grunt, Vite 등이 있다. 요즘은 webpack, vite 많이 사용된다. 이 도구들은 각각의 장단점이 있으며, 프..

Tistory

SEO 최적화 블로그 글자수 꿀팁

SEO(Search Engine Optimization, 검색 엔진 최적화)에서 추천하는 블로그 글자수 상세한 내용 제공: 글자수가 많을수록 더 많은 키워드를 포함시킬 수 있고, 주제에 대해 더 상세하게 설명할 수 있습니다. 이는 검색 엔진이 블로그 글의 주제를 더 정확하게 이해하는 데 도움이 됩니다. 독자의 관심 유지: 너무 긴 글은 독자가 중간에 지치거나 관심을 잃을 수 있습니다. 따라서, 글의 길이를 적절하게 유지하면서 독자의 관심을 유지하는 것이 중요합니다. 고질적인 내용: 글자수가 많을수록 주제에 대해 더 깊이 있는 분석이 가능하며, 이는 블로그가 전문성을 갖추는 데 도움이 됩니다. 검색 엔진 순위: 더 긴 글은 일반적으로 검색 결과에서 더 높은 순위를 차지하는 경향이 있습니다. 이는 검색 엔진..

Tistory

1분만에 나만의 QR 만들고 QR 코드 소문내기

QR코드(QR CODE)란? 기존에 사용되던 바코드형태에서 발전한 흑백 격자무늬 패턴 코드이며, 정보를 나타내는 매트릭스 형식의 이차원 코드이다. 기존의 바코드 형태의 용량 제한에서 벗어나 형식과 내용을 확장하여 2차원의 패턴으로 정보를 저장하여 숫자 외에 문자의 데이터도 저장할 수 있다. 일반적으로 디지털카메라나 전용 스캐너로 읽어 활용하고, 근래에는 핸드폰을 이용하여 대중적으로 사용되고 있다. QR코드의 명칭은 덴스 웨이브가 등록한 상표인 'Quick Response'에서 유래되었고, 주로 한국, 일본, 중국, 영국, 미국 등에서 많이 사용된다. QR코드(QR CODE)의 장점 QR코드의는 누구라도 다양한 목적으로 쉽게 제작하여 사용할 수 있다. 그리고 많은 양의 데이터와 정보를 넣을 수 있지만 코드..

Tistory

프론트엔드 꼭 필요한 디바운싱과 쓰로틀링 중요 개념

디바운스와 쓰로틀링 모두 웹에서 발생하는 이벤트를 제어하는 방법이다. 예를 들어 스크롤 이벤트의 경우 스크롤링 할 때마다 발생하는데, 그 때마다 같은 작업을 실행하게 되면 성능 문제가 발생할 수 있다. 디바운스와 쓰로틀링을 적절한 상황에서 사용하여 그런 상황이 발생하지 않도록 막을 수 있다! 목록으로가기 or 버튼 이벤트에서 여러번 클릭하면 여러번에 이벤트가 일어나면서 예측할 수 없는 다음 액션이 일어날수도 있다. ex: 목록으로가기 이벤트가 router.back()을 2번 누르면 history 2번째 stack 페이지로 이동하는 경우도 있다. 디바운싱과 쓰로틀링은 성능을 목적으로 자바스크립트의 이벤트를 제어하기 위해 사용되는 기법이다. 디바운싱 (Debouncing) 연속으로 호출되는 함수들 중에 마지..

Tistory

내 아이피 확인 (My IP Address) 안전하고 빠르고 쉽게 아는 방법

빠르고 쉽게 내 IP 주소를 확인하는 방법 브라우저 즐겨찾기를 통해 빠르게 확인하는 것은 IP주소를 확인하는 가장 쉽고 빠른 방법 중 하나입니다. webtool.everyday-365.com 개인정보 수집 없이 안전하게 현재 접속한 기기의 공인 IP(Internet Protocol) 주소를 제공합니다. 내 아이피 바로 찾기 IP, IP 주소란? IP란 인터넷 프로토콜(Internet Protocol)의 약자로 인터넷에 연결되어 있는 장치를 식별하기 위해 각각의 장비에 부여하는 고유 주소입니다. 데이터를 주고 받기 위해서 데이터를 발신하는 곳과 수신하는 곳이 필요합니다. 통신을 위해 부여한 주소가 IP 주소(Internet Protocol Address)입니다. 공인IP와 사설IP IP는 사용자 입장에서 ..

Tistory

모든 브라우저 복사 금지 되어있는 글 복사 방법

모든 브라우저 복사 금지 되어있는 글 복사 방법 글을 쓰거나 수정하다 보면 정말 필요한 내용이나 정보를 복사해야 되거나 복사한 글을 다시 한번 가공해야 될 때가 많습니다. 간혹 중요한 내용이나 정보를 복사 하려는데 복사 방지 or 복사 금지가 되어 있는 경우에 복사 할수 있는 유용한 방법을 알려드겠습니다. 전 세계 3대 웹 브라우저 (크롬, 파이어폭스, 엣지) 더해서 네이버웨일, 사파리에서 모두 똑같이 사용 할 수 있는 방법입니다. 1. 브라우저에서 복사할 내용이 있는 웹페이지로 이동합니다. 2. F12(개발자 도구)를 누르면 아래 이미지 처럼 소스를 볼 수 있는 창이 뜬다. 3. 빨간색으로 표시한 부분의 아이콘을 클릭합니다. (항상 Elements가 선택되어 있어야 합니다) 4. 화면에 커서를 옮기면 ..

Tistory

보일러플레이트(Boilerplate code)란? - 개념, 필요한 이유

보일러 플레이트란? 코딩을 하다 보면 의미 없는 코딩을 할 때도 있고 불필요한 작업에 때문에 업무 생산성이 떨어지는 경우가 있습니다. 이럴 경우를 대비해 보일러 플레이트로 기본적인 골격을 미리 만들어서 업그레이드하는 방식이며 불필요한 코드와 생산성을 높일 수 있는 방법이다. 개발자에게 보일러 플레이트 란? 코딩에서 보일러 플레이트는 개발자에게 꼭 필요한 요소이다. 직접 타이핑, 반복적인 작업, 하드 코딩 등은 자동화로 맡겨 버리고 꼭 필요한 코딩을 할 수 있도록 도와주는 방법이 보일러 플레이트입니다. 가장 대표적인 예로 create-react-app 활용하면 미리 갖춰진 골격을 주고 개발자는 거기서 원하는 서비스에 맞춰서 개발을 하는 것이다. 만약 create-react-app 없이 첨부터 세팅을 한..

Tistory

git clone -- recursive 옵션의 의미

git clone -- recursive 무엇인가? 위에 프로젝트는 Lerna를 활용한 모노레포 프로젝트 저장소이다. 위 오픈소스를 clone 할때 --recursive 옵션을 추가 해야 한다고 나와있다. 해당 옵션을 설정 안하고 clone 하게 되면 WIGOEditor 폴더 아래는 비워진 폴더로 clone 이 된다. 그래서 해당 옵션을 설정함으로 하위 서브 모듈에 까지 clone한다. 서브 모듈이란? 서브 모듈은 기존 저장소 하위에 다른 저장소가 존재한다는 것이다. 그것은 .git 파일이 있음으로 저장소를 확인할 수 있다. 상위에 .git 과 하위에 .git 파일 2개 존재하는 것을 확인할 수 있다. ex: 아래와 같이 한개의 프로젝트에 2개의 .git 파일을 볼수 있다. git clone 사용..

Tistory

GitLab 개념 & 정리

GitLab이란? - 프로젝트 버전 관리를 위해서 사용 - 소스코드를 저장할 수 있는 서버를 운영하고 서버에 저장 함으로 버전관리, 협업, 백업, 유지보수 등 다양한 장점이 있다. - CI및 CD를 구축해서 프로젝트에 생산성을 높일 수 있고 코드 컴토및 안전하게 관리가 가능하다. 1. Git 설치 https://git-scm.com/ Git git-scm.com 2. Gitlab 프로젝트 셋팅 3. Gitlab Config 셋팅 사용자이름과 이메일 주소 전역으로 셋팅 git config --global user.name "yoo" git config --global user.email "[email protected]" 사용자 config 확인 # git config --list user.name=yoo use..

Tistory

자바스크립트 알고리즘 51 일차 (프로그래머스)

51일차 첫번째 문제 문제: 숫자 문자열과 영단어 난이도: 중 풀이 과정: 매개 변수 s 문자열 length만큼 for문을 순회하고 변수 2개들 만들고 순회하는 원소 값이 숫자면 정규식 조건에 걸려 result 에 값을 할당하고 숫자가 아니고 문자열이면 currentNumber에 문자를 할당해서 numberMap에 문자열에 프로퍼티가 할당 되면 프로퍼티에 값을 할당하고 currnentNumber 값을 초기화 해준다. 참고사항: 문자열도 길이가 있어서 for문 순회가 가능하다. hasOwnProperty는 객체에 특정 값이 있는지 블리언 값으로 반환한다. https://school.programmers.co.kr/learn/courses/30/lessons/81301 프로그래머스 코드 중심의 개발자 채용...

Tistory

자바스크립트 알고리즘 52 일차 (프로그래머스)

52일차 첫번째 문제 문제: 나머지가 1이 되는 수 찾기 난이도: 하 풀이 과정: 나머지가 1이 되는 가장 작은 자연수를 찾기 위해서 매개변수 n 개수만큼 for 문을 순회하고 n % i 나눈 나머지 값이 1 조건에 만족하는 경우가 가장 작은 자연수 이기때문에 i 값을 return 한다. 참고사항: 산술 연산자: % 나눈 나머지값을 반환 https://school.programmers.co.kr/learn/courses/30/lessons/87389 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr

Tistory

자바스크립트 알고리즘 48 일차 (프로그래머스)

47일차 첫번째 문제 문제: 부족한 금액 계산하기 난이도: 중하 풀이 과정: 매개변수 price, money, count 자연수로 넘어오고 count만큼 for문을 순회하고 result 변수에 price N배의 값을 축적한다. money 값이 result 값에 같거나 이상이면 반환할 값이 없기 때문에 0 아니라면 result값과 money값을 빼줘서 return한다. 참고사항: 삼항연산자는 조건 연산자로 가독성과 쉽게 조건문을 표현할 수 있다. https://school.programmers.co.kr/learn/courses/30/lessons/82612 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을..

Tistory

자바스크립트 알고리즘 49 일차 (프로그래머스)

49일차 첫번째 문제 문제: 직사각형 별찍기 난이도: 하 풀이 과정: row 3줄이며 a N개수 만큼 * 채워져야해서 repeat 함수로 문자열을 개수만큼 돌려서 셋팅하고 b개수만큼 for 문을 순회하며 값을 출력한다. 참고사항: repeat 함수는 문자열은 개수만큼 반복한다. 이 문제 로직은 게시판에서 별표 평점을 내는 기능이나 이런곳에서 활용할수 있는 로직으로 문제를 풀었다. https://school.programmers.co.kr/learn/courses/30/lessons/12969 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr

Tistory

자바스크립트 알고리즘 50 일차 (프로그래머스)

50일차 첫번째 문제 문제: 제일 작은수 제거하기 난이도: 하 풀이 과정: 매개변수 arr를 Math.min 스프레드 구문으로 배열에 최소값을 찾아서 상수에 담고 매개변수 arr filter 메소드를 활용해서 최소값에 상수와 다른것들만 걸러내서 상수에 담는다. 배열에 값이 1개거나 이하라면 [-1]반환하고 아니면 filter로 걸러낸 배열에 값을 return 참고사항: Math.min() 최소값을 찾을수 있고 스프레드 구문으로 배열에 최소값을 찾는다. Math.max() 최대값을 찾을수 있다. filter 함수는 배열에 순회해서 값들을 필터할 수 있다. 삼항연산자 true = ? false = : https://school.programmers.co.kr/learn/courses/30/lessons/12..

Tistory

자바스크립트 알고리즘 46 일차 (프로그래머스)

46일차 첫번째 문제 문제: 같은 숫자는 싫어 난이도: 하 풀이 과정: 매개변수 arr 배열에 길이 만큼 for문을 순회하고 상수로 새로운 배열과 벼수로 prev 값을 정의하고 prev 값하고 순회하는 arr배열에 원소값하고 같지 않다면 새로운 배열 result 넣으면 중복되는 숫자를 넣지 않은 배열을 return 할수 있다. 참고사항: 순회하는 현재값과 이전값에 조건이 중요하다. https://school.programmers.co.kr/learn/courses/30/lessons/12906?language=javascript# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. progr..

Tistory

자바스크립트 알고리즘 47 일차 (프로그래머스)

47일차 첫번째 문제 문제: 없는 숫자 더하기 난이도: 중하 풀이 과정: 매개변수로 넘어오는 배열에 원소는 0~9 중 일부가 있어서 0~9 숫자가 담긴 배열을 하나 만들고 for문으로 순회하면서 매개변수 배열에 특정 숫자가 없으면 그 숫자를 result에 더해서 return 값을 반환 참고사항: let 블록스코프이며 재할당이 가능하다. includes 메소드는 특정 문자열을 찾는데 사용하면 특정문자열이 있으면 true 없으면 false 반환한다 https://school.programmers.co.kr/learn/courses/30/lessons/86051 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을..

Tistory

자바스크립트 알고리즘 43 일차 (프로그래머스)

43일차 첫번째 문제 문제: 두수의 합 난이도: 하 풀이 과정: 매개변수 a, b를 BigInt 활용해서 숫자형으로 형변환을 해서 a, b를 더하고 toString() 함수로 문자열로 변환해서 값을 반환 참고사항: Number 객체는 2^53 - 1 최대 수를 표현할 수 있다. 그래서 BigInt를 활용해서 2^53 -1 이상에 수를 표현할 수있다. toString() 형변환으로 문자열로 변환시킨다. https://school.programmers.co.kr/learn/courses/30/lessons/181846 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co..

Tistory

자바스크립트 알고리즘 44 일차 (프로그래머스)

44일차 첫번째 문제 문제: 크기가 작은 부분문자열 난이도: 하 풀이 과정: 매개변수 t, p에서 p 길이를 뺀 t 길이 만큼 for문을 순회하고 substring 메소드로 3개씩 문자열로 짜르고 매개변수 p 값과 substring 짜른 문자열을 정수로 변환해서 작거나 같으면 count 변수에 1 축적해서 return 한다. 참고사항: substring 메소드는 문자열을 짜를수있다. 변수 앞에 + 의미는 Number 정수변환 의미다. https://school.programmers.co.kr/learn/courses/30/lessons/147355?language=javascript 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기..

Tistory

자바스크립트 알고리즘 45 일차 (프로그래머스)

45일차 첫번째 문제 문제: 푸드파이트 대회 난이도: 중 풀이 과정: 매개변수 food 배열에 문제설명에 음식개수를 2로 나눠서 Math.floor로 소수점을 내려서 새로운 배열을 만든다. divide 배열을 순회하면서 2로나눈 원소값만큼 idx 값을 돌려서 result 문자열에 놓고 sort함수로 내림차운 새로운 배열은 만들고 문자열을 조합해서 return 참고사항: Math.floor 메소드로 소수전음 내린다. ex: 1.5 > 1 repeat 함수 현재 문자열을 주어진 횟수만큼 반복해 붙인 새로운 문자열. ex "1".repeat(2) > "11" [...값] 깊은 복사로 새로운 메모리에 배열을 저장하고 sort함수로 내림차순을 만들고 join으로 문자열로 반환. https://school.prog..

Tistory

자바스크립트 알고리즘 40 일차 (코딩도장)

40일차 첫번째 문제 문제: 1부터 10,000까지 8이라는 숫자가 총 몇번 나오는가? 난이도: 코딩테스트 문제 풀이 과정: 새로운 배열 10000개를 0으로 채워주고 map으로 10000숫자를 idx 순서로 채워준다. toString 함수로 배열에 숫자를 문자열로 만들어주고 split("") 모든 숫자를 배열로 만든다. 거기서 배열안에 8이 들어가는 모든 원소 값을 걸러주면 10000개 안에 들어가는 8의 개수를 찾을수 있다. const arr = Array(10000).fill(0).map((val, idx) => idx).toString().split("").filter((val) => val === "8").length 참고사항: 새로운 배열에 fill 함수로 0값을 채우고 map idx로 0~9..

Tistory

자바스크립트 알고리즘 41 일차 (프로그래머스)

41일차 첫번째 문제 문제: 배열 만들기6 난이도: 하 풀이 과정: 매개변수 arr에 원소들을 for문으로 순회를하고 새로운 배열 stk 마지막 값과 순회하는 arr 값이 같으면 stk배열에 마지막 값을 지우고 아니면 stk 배열에 arr 원소 값을 넣는다. for문을 순회하고 return값으로 빈배열이면 [-1] 값을 아니면 stk 값을 반환하면 된다. 참고사항: javascript 배열에 유용하게 사용가능한 함수 정리 .push(): 배열의 맨뒤에 값을 추가. .unshift(): 배열의 맨앞에 값을 추가. .pop(): 배열에 맨뒤 값을 제거 .shift(): 배열에 맨앞 값을 제거 https://school.programmers.co.kr/learn/courses/30/lessons/181859 ..

Tistory

자바스크립트 알고리즘 42 일차 (코딩도장)

42일차 첫번째 문제 문제: 1차원의 점들이 주어졌을 때, 그 중 가장 거리가 짧은 것의 쌍을 출력하는 함수 난이도: 코딩테스트 문제 풀이 과정: s 배열에 값이 있고 ss는 slice 활용해서 깊은 복사로 인덱스 1부터 시작하는 새로운 메모리에 저장된 배열을 생성 s배열에 원소를 순회하면서 인덱스 1부터 시작하는 ss 배열로 각 쌍의 배열을 반환한다. [ [1,3], [3, 4], [4, 8], ...] sort 함수를 활용해서 각 쌍의 두번째 요소와 첫번째 요소의 차이를 기준으로 오름차순으로 정렬을 하면 차이가 가장작은 쌍의 정렬된 배열로 반환이 된다. const s = [1, 3, 4, 8, 13, 17, 20] const ss = s.slice(1) s.map((v, i) => [v, ss[i]]..

Tistory

자바스크립트 알고리즘 38 일차 (프로그래머스)

38일차 첫번째 문제 문제: 조건에 맞게 수열 변환하기1 난이도: 하 풀이 과정: 매개변수 arr넘오고 배열에 원소를 순회하기위해서 map함수를 사용하고 원소에 값으로 if 조건을 만들어준다 설명에서 말했듯이 val 값이 50보다 크거나 짝수라면 나누기 또는 짝거나 홀수라면 곱하기로 원소에 값들은 반환한다. 참고사항: if문에 &&는 and 뜻에 논리 연산자이고 ||는 or뜻에 연산자이다. https://school.programmers.co.kr/learn/courses/30/lessons/181882 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr

Tistory

자바스크립트 알고리즘 39 일차 (프로그래머스)

39일차 첫번째 문제 문제: 겹치는 선분에 길이 난이도: 중 풀이 과정: 매개변수에 lines 2차원 배열에 개수에 겹치는 부분은 중복이 되는 개념으로 새로운 배열을 만들어 준다. 문제에 -100 에서 100까지에 원소값이 있기때문에 200개의 배열을 0으로 채워준다. 매개변수를 foreach로 순회를 하고min < max만큼 순회를 돌명선 새로운 배열에 값을 채워나간다. +100은 음수값에 대한 예외로 min + 100개 값에 index 부터 시작한다. 참고사항: foreach는 map 같은 개념으로 배열을 순회한다. new Array는 새로운 배열을 만들고 fill 배열에 값을 채워준다. 만약에 1일라면 200개 배열에 값은 1로 채워진다. https://school.programmers.co.kr/..

Tistory

자바스크립트 알고리즘 36 일차 (프로그래머스)

36일차 첫번째 문제 문제: 대소문자 바꿔서 출력 난이도: 하 풀이 과정: str 문자열 값을 split 함수로 배열로 만들고 map돌려서 javascript 알파벳 소대문자 메소드를 활용해서 값을 반환하고 join 함수로 문자열 반환 참고사항: javascript 알파벳 소대문자 메소드로 toUpperCase() (대문자) 와 toLowerCase() (소문자) 사용한다. https://school.programmers.co.kr/learn/courses/30/lessons/181949?language=javascript 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programme..

Tistory

자바스크립트 알고리즘 37 일차 (프로그래머스)

37일차 첫번째 문제 문제: 무작위로 K개수 뽑기 난이도: 중 풀이 과정: 매개변수 arr 길이 만큼 for문을 순회하고 빈배열 result에 arr원소값을 담아준다. includes에 중복문자열이 없는 값들을 배열에 넣고 result 배열에 길이하고 매개변수 k에 길이하고 같으면 break로 for문을 빠져 나오고 result에 길이가 k보다 작으면 result 배열 원소 값을 -1 바꿔준다. 참고사항: includes는 특정문자열을 찾는 메소드로 있으면 true 없으면 false를 반환한다. for문, while문은 배열을 순회하는 방식이다. break 순회하는 배열을 빠져나오게 한다. https://school.programmers.co.kr/learn/courses/30/lessons/181858..

Tistory

자바스크립트 알고리즘 34 일차 (프로그래머스)

34일차 첫번째 문제 문제: 안전지대 난이도: 중 풀이 과정: 2차원 배열에 매개변수에 총 길이를 상수에 담고, d 2차원 배열로 특정 방향들을 찾아준다. 2중 for문으로 매개변수에 1의 값을 찾아주고 상하 좌우 대각선에 값을들 찾아서 new Set에 추가를 해주고 n * n - new Set 객체 사이즈 만큼 삭제를 한다. 참고사항: new Set: 객체는 중복되지 않는 유일한 값들에 집합이다. forEach는 배열을 순회하는 여러 방법중 하나다. map 비슷한 함수 https://school.programmers.co.kr/learn/courses/30/lessons/120866?language=javascript 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발..

Tistory

자바스크립트 알고리즘 35 일차 (프로그래머스)

35일차 첫번째 문제 문제: OX퀴즈 난이도: 하 풀이 과정: 매개변수 quiz에 원소들을 for문을 돌려 순회하고 원소에 값들을 split하고 구조분해할당으로 if 조건문으로 값을 할당. 참고사항: 배열, 객체에 값들을 분해해서 값을 할당받을수 있는 표현식. https://school.programmers.co.kr/learn/courses/30/lessons/120907 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr

Tistory

Nest.js - 홈텍스 종합소득세 API 파싱

c 프로젝트? 홈택스 종합소득세 API를 활용하면 종합소득세 관련 사용자 데이터를 전부 가져올 수 있다. 한번 호출할 때 300원 비용이 들며 카카오, 네이버, pass 등등 에서 인증서 인증만 하면 빠르고 정확하게 종합소득세 데이터를 가져와서 가공을해서 유의미한 데이터로 활용 c Nest.js 외부 API 통신 방식은? npm 설치 npm i --save @nestjs/axios axios Axios는 널리 사용되는 풍부한 기능의 http 클라이언트 패키지 이며 nest.js는 axios를 래핑하고 내장된 httpModule 메소드를 내장하고 있다. module import import { HttpService } from '@nestjs/axios'; httpService module 초기 값을 셋팅..

Tistory

자바스크립트 알고리즘 29 일차 (프로그래머스)

29일차 첫번째 문제 문제: 문자열 밀기 난이도: 하 풀이 과정: 첫번째 풀이 과정에서 while 문을 사용했다 하지만 다른 코드를 찾아보고 공부를 하면서 더 간단하고 쉽게 풀수 있는 indexOf 방식이 있어서 indexOf를 활용해서 결과값 추출 첫번째 풀이과정. 참고사항: indexOf 함수는 알고리즘문제 에서 자주사용되서 숙지를 하면 좋다. indexOf는 문자열을 찾을때 많이 사용된다. 문자열을 찾으면 문자열 index 위치를 반환하고 없으면 -1을 반환한다. https://school.programmers.co.kr/learn/courses/30/lessons/120921 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기..

Tistory

자바스크립트 알고리즘 30 일차 (프로그래머스)

30일차 첫번째 문제 문제: 컨트롤 제트 난이도: 하 풀이 과정: 매개변수 s를 split 함수로 공백 으로 짤라주고 값을 정의해줄상수 result = 0 으로 for문을 순회하면서 Z가 아니숫자 들을 더하고 Z에 원소를 순회할때 이전 원소를 빼주는 if 조선문으로 풀이 참고사항: split 공백기준으로 짤름 https://school.programmers.co.kr/learn/courses/30/lessons/120853?language=javascript 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr

Tistory

자바스크립트 알고리즘 31 일차 (프로그래머스)

31일차 첫번째 문제 문제: 등수 매기기 난이도: 하 풀이 과정: 매개변수로 넘어오는 2차원배열 score에 map 함수로 평균 점수 값을 구하고 sort 함수로 내림차순 정렬을 한다. 정렬하지 않은 배열을 평균값을 구해서 하나더 만들고 map을 돌려서 내림차순으로 정렬된 배열에 indexOf +1 을 해서 값을 반환 참고사항: indexOf 문자열에 위치 값을 반환해주고 아니면 -1 반환 자바스크립트 사칙 연산 순위: * / + - 이고 ( ) 우선 순위로 계산 https://school.programmers.co.kr/learn/courses/30/lessons/120882?language=javascript 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤..

Tistory

자바스크립트 알고리즘 32 일차 (프로그래머스)

32일차 첫번째 문제 문제: 등수 매기기 난이도: 하중 풀이 과정: 매개변수 n에 정수를 배열로 변환해서 정수 개수만큼 숫자를 정렬하고 counter 변수를 만들고 for문으로 arr 길이 만큼 순회를 하면서 counter 1씩 더하고 while문에 3의 배수인 값과 3이 들어간 숫자 while문을 타서 1을 더 증각해서 값을 반환. 개념을 이해하면 쉽다(위에 배열과 아래 배열에 맵핑하는 원소를 확인): [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] [1, 2, 4, 5, 7, 8, 10, 11, 14, 16 ] = 3, 6, 9, 12, 15 는 3의 배수이기때문에 포함하면 안되고 13은 3의 숫자가 있기 때문에 포함하면안된다. 참고사항: includes 메소드는 특정 문자가 포함하고 있는지..

Tistory

자바스크립트 알고리즘 33 일차 (프로그래머스)

33일차 첫번째 문제 문제: 다항식 더하기 난이도: 중 풀이 과정: 매개벼수 polynomial을 split(" + ") 함수로 공백 + 기준으로 짤라주고 동류항과 일반항에 값을들 더하는 변수 값들을 만들어준다. result 배열에 상수를 만들어서 각각에 값들을 만들어 준다. 참고사항: filter로 includes 메소드에 x값이 true or false로 배열에 원소값을 걸러준다. replace로 x를 빈값 or 1로 반환 reduc함수로 값을 더한다. if 문에 !로 판명되는 값들은 undefined, null, NaN, 0, -0, "", false는 false로 판명되서 if (!xNumber)로 조건을 걸수 있고 ! 없다면 true 값이 로직을 타게된다. https://school.progra..

Tistory

자바스크립트 알고리즘 27 일차 (프로그래머스)

27일차 첫번째 문제 문제: 영어가 싫어요 난이도: 하중 풀이 과정: 매개변수 numbers 맵핑할 수 있는 배열을 하나 만들고 배열에 index번호로 각각에 문자열에 맞는 숫자를 변환해준다. replace 함수로 문자를 숫자로 치환해서 반환 참고사항: replace 함수는 정규식 혹은 문자열을 치환해주는 함수다. replace 함수는 첫번째 인자는 치환할 문자를 넣고 2번째 인자는 value 혹은 함수를 받을수 있다. ex: "apple".replace("a", "") or "apple".replace("a", (v) => something) 알아두면 좋은 정규식 표현 * /searchvalue/ : '/ /' 사이에 검색할 문자를 입력 * searchvalue1 | searchvalue2 | .....

Tistory

자바스크립트 알고리즘 28 일차 (프로그래머스)

28일차 첫번째 문제 문제: 외계어 사전 난이도: 하상 풀이 과정: 매개변수 spell에 배열에 원소가 dic 배열 원소에 조합되는 문자가 있는지 찾기 위해서 some 함수를 사용해서 조건에 만족이 되면 true를 반환 아니면 false로 반환해서 있으면 true 면 1 아니면 2로 결과값 출력. 참고사항: some 함수는 하나라도 조건에 만족이 되면 true를 반환 아니면 false로 반환 특이 사항으로 [...v].sort() === [...spell].sort() 비교를 하면 false 떨어진다 그 이유는 주소 값으로 비교를 해서 서로 다른 메모리 주소 값으로 저장하고 비교를 하기 때문에 값이 똑같아도 비교가 안된다. 해결하기 위해서 toString() 메소드로 문자열로 변환을 해서 비교를 하면 해..

Tistory

자바스크립트 알고리즘 25 일차 (프로그래머스)

25일차 첫번째 문제 문제: 잘라서 배열 저장하기 난이도: 하중 풀이 과정: 매개변수 my_str index만큼 for문을 순회하고 for문의 증감을 n 개수 만큼으로 할당하고 slice로 각각의 문자를 잘라준다. ex 1번순회: 0, 6, 2번순회: 6, 12, 3번순회: 12, 18 참고사항: slice 는 얇은 복사로 원본에 배열을 건드리지 않고 얕은 복사본으로 새로운 배열 객체를 반환. https://school.programmers.co.kr/learn/courses/30/lessons/120913 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr

Tistory

자바스크립트 알고리즘 26 일차 (프로그래머스)

26일차 첫번째 문제 문제: 진료 순서 정하기 난이도: 하중 풀이 과정: 매개변수에 값을 sort로 내림차순으로 정렬을한 배열을 하나 복사하고 원본 배열에 map을 순회하면서 복사한 배열에 indexOf 메소드로 index를 찾아서 반환하고 배열은 0부터 시작하기 때문에 +1을 해준다. 참고사항: slice 는 얇은 복사로 원본에 배열을 건드리지 않고 얕은 복사본으로 새로운 배열 객체를 반환. indexOf 배열에 값이 몇번째 index 인지 찾아준다 그래서 내림차순으로 0, 1, 2 이런식으로 index를 찾아서 반환한다. https://school.programmers.co.kr/learn/courses/30/lessons/120835 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭...

Tistory

자바스크립트 알고리즘 24 일차 (프로그래머스)

24일차 첫번째 문제 문제: 한번만 등장하는 문자 난이도: 하중 풀이 과정: 다양한 방법으로 한 번만 등장하는 문자를 찾을수 있지만 매개변수 문자열은 split 함수로 배열로 만들고 filter 함수로 순회하며 indexOf 와 lastIndexOf로 한번만 등장하는 문자를 찾아서 반환. 참고사항: indexOf, lastIndexOf 함수는 문자열안에 조건이 되는 문자열이 몇 번째 존재하는지를 확인하는 함수 lastIndexOf 함수는 동일한 역활을 하지만 뒤에서부터 몇전째 위치에 존재하는지를 확인해주는 함수이므로 한번만 등장하는 문자열은 index값이 똑같기 때문에 원하는 결과값을 얻을 수 있다. https://school.programmers.co.kr/learn/courses/30/lessons/..

Tistory

자바스크립트 알고리즘 23 일차 (프로그래머스)

23일차 첫번째 문제 문제: 가까운 수 난이도: 하중 풀이 과정: 매개변수 n 값에 가장 가까운 array 값을 찾기 위해서 배열을 sort로 정렬을 해주고 reduce로 순회를 하고 Math.abs 함수로 절대값을 만들어서 비교를해서 해당 값을 찾는다. 참고사항: array 배열에 더 적은 숫자를 출력하기 위해서는 배열을 sort함수로 정렬을 해줘야한다. math.abs를 활용해서 절대 값으로 변환 https://school.programmers.co.kr/learn/courses/30/lessons/120890 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co..

Tistory

자바스크립트 알고리즘 21 일차 (프로그래머스)

21일차 첫번째 문제 문제: 팩토리얼 난이도: 하중 풀이 과정: 2개의 값을 축적하기위해서 변수를 선언하고 while을 factorial 축적값을 n값만큼 값을 순회해서 조건에 만족하는 가장큰 수를 찾는다. 참고사항: 예로 1 * 2 * 3 * 4 * 5 * 6 * 7에서 2 * 3 = 6 이고 while 문에 factorial

Tistory

자바스크립트 알고리즘 22 일차 (프로그래머스)

22일차 첫번째 문제 문제: k의 개수 난이도: 하중 풀이 과정: for문으로 j의 개수만큼 순회를 해서 j개수 만큼 값을 result에 문자열로 축적을 한다. split 함수를 활용해서 k값을 짜라서 배열로 만들고 -1 해주면 반환값을 받음 참고사항: split 함수를 짜르면 해당 개수에 +1이 된다. length -1을 주어야 한다. https://school.programmers.co.kr/learn/courses/30/lessons/120887 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr

Tistory

자바스크립트 알고리즘 19 일차 (프로그래머스)

19일차 첫번째 문제 문제: 중복된 문자 제거 난이도: 하 풀이 과정: 매개변수에 문자열을 배열로 변환해서 new Set 객체로 중복을 제거 해주고 중복을 제거한 객체를 배열로 만들어서 join함수로 문자열로 변환 참고사항: javascript에서 Set 객체를 이용하면 순서를 보장받으며 중복없는 데이터를 표현할 수 있다. Set 객체의 이런 특징을 이용해서 배열의 중복을 제거할 수 있습니다. Set 객체로 반환. Spread Operator(전개연산자)를 사용하여 Set 객체를 다시 배열로 변환 개념, Array.from(), forEach문을 사용할 수도 있다. https://school.programmers.co.kr/learn/courses/30/lessons/120888 프로그래머스 코드 중심의..

Tistory

자바스크립트 알고리즘 20 일차 (프로그래머스)

20일차 첫번째 문제 문제: A로 B 만들기 난이도: 하 풀이 과정: 함수에 2개의 매개변수를 배열로 변환해서 sort() 메소드로 오름차순을 해주고 삼항연산자로 true일 경우 1 아닐경우 0을 반환 참고사항: sort() 메소드는 기본적으로 오름차순으로 배열 요소를 정렬해준다(default ). 배열에 List 값을 뿌려줄때 sort() 메소드를 활용해서 오름차순, 내림차순 정렬로도 활용할 수 있다. Array.from(arr), [...arr], arr.split("") 문자열을 배열로 만들수 있는 방법은 다양하다. https://school.programmers.co.kr/learn/courses/30/lessons/120886# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. ..

Tistory

자바스크립트 알고리즘 16 일차 (프로그래머스)

16일차 첫번째 문제 문제: 배열 회전 시키기 난이도: 하 풀이 과정: 오른쪽으로 회전 시킬시에 javascript pop 함수로 뒤에 값을 빼서 unshift 함수로 pop으로 뺀 값을 맨 앞에 할당 왼쪽으로 회전시킬시 역으로 shift 함수로 앞에 값을 빼서 push 함수로 맨 뒤로 값을 할당. 참고사항: javascript 배열 함수 pop, unshift, shift, push 개념 필요 https://school.programmers.co.kr/learn/courses/30/lessons/120844 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr

Tistory

자바스크립트 알고리즘 17 일차 (프로그래머스)

17일차 첫번째 문제 문제: 외계행성 나이 난이도: 하 풀이 과정: age 자연수를 문자열로 만들어서(숫자를 바로 배열로 변환이 안됨) 배열로 만들고 map 함수로 알파벳에 해당 값을 찾아서 join함수로 문자열로 변환해서 나이를 반환 참고사항: toString() 숫자를 문자열로 반환, split 함수, map 함수, join 함수, alphabet 상수를 배열로 말고 문자열로 해도 인덱싱있어서 똑같은 결과값이 나온다. https://school.programmers.co.kr/learn/courses/30/lessons/120834 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. pr..

Tistory

자바스크립트 알고리즘 18 일차 (프로그래머스)

18일차 첫번째 문제 문제: 369 게임 난이도: 하 풀이 과정: 매개변수의 숫자를 문자열로 변환하고 for of 문을 활용해서 369 조건문 해당되면 1씩 count 해준다. 참고사항: for of 반복문은 배열에 주로 사용한다. 배열을 순회해서 자료들을 하나씩 꺼내고 싶을때 사용한다. * 배열뿐만 아니라 문자, NodeList, Map, Set같은 자료형에도 사용이 가능하다. https://school.programmers.co.kr/learn/courses/30/lessons/120891 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr

Tistory

자바스크립트 알고리즘 12 일차 (프로그래머스)

12일차 첫번째 문제 문제: 문자열 뒤집기 난이도: 하 풀이 과정: 문자열을 javascript 내장함수 split 문자열을 배열로 만들고 reverse 순서를 뒤집고 join 배열을 문자열로 합쳐준다. 참고사항: split, reverse, join 함수 개념필요 https://school.programmers.co.kr/learn/courses/30/lessons/120822 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr

Tistory

자바스크립트 알고리즘 13 일차 (프로그래머스)

13일차 첫번째 문제 문제: 특정 문자열 지우기 난이도: 하 풀이 과정: 다양한 방법으로 특정 문자열을 찾을 수 있다. split 함수로 letter 매개변수 값을 짤라서 join 으로 문자열로 반환 하는 방법도 있었고 replaceAll 활용해서 특정 문자열을 제거할 수 있다. 정규식 공부할겸 정규식을 활용해서 풀음 참고사항: new RegExp 인스턴스를 사용 https://school.programmers.co.kr/learn/courses/30/lessons/120826 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr

Tistory

자바스크립트 알고리즘 14 일차 (프로그래머스)

14일차 첫번째 문제 문제: 배열의 유사도 난이도: 하 풀이 과정: javascript 내장함수 filter를 활용하고 includes 메소드를 활용해서 배열에 원소값을 찾아서 풀음 참고사항: filter 개념 알고리즘 문제풀이에 자주사용. includes: javascript 메소드로 배열에 특정값을 판별하는데 사용한다 반환값으로 특정값이 있으면 true 없으면 false를 반환. https://school.programmers.co.kr/learn/courses/30/lessons/120903 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr

Tistory

자바스크립트 알고리즘 15 일차 (프로그래머스)

15일차 첫번째 문제 문제: 가위 바위 보 난이도: 하 풀이 과정: javascript 내장함수 split 활용해서 배열로 만들어 주고 map 활용해서 배열을 순회해서 가위 바위 보에 이기는 값들을 조건문으로 할당하고 join으로 배열을 문자열로 푼다. 참고사항: split 개념, map 개념, if문 개념. split 말고도 [...rsp] 스프레드 연산자 혹은 Array.from() 활용해서 문자열을 배열로 만들수 있다. https://school.programmers.co.kr/learn/courses/30/lessons/120839 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. ..

Tistory

자바스크립트 알고리즘 9 일차 (프로그래머스)

9일차 첫번째 문제 문제: 피자 나눠 먹기 난이도: 하 풀이 과정: 자바스크립트 Math.ceil 내장함수를 사용 해서 가장 큰 정수 반환 참고사항: Math.ceil 내장함수 개념 https://school.programmers.co.kr/learn/courses/30/lessons/120814?language=javascript 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr

Tistory

자바스크립트 알고리즘 10 일차 (프로그래머스)

10일차 첫번째 문제 문제: 짝수 홀수 개수 난이도: 하 풀이 과정: 변수 2개들 만들고 배열에 순회를 돌면서 해당 값에 조건을 걸어서 결과값 출력 참고사항: for of 문에 개념, if문 개념 코딩테스트 연습 - 짝수 홀수 개수 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr

Tistory

자바스크립트 알고리즘 11 일차 (프로그래머스)

11일차 첫번째 문제 문제: 배열 두배 만들기 난이도: 하 풀이 과정: 배열에 map으로 순회를 돌면서 값을 구함 참고사항: map 개념, map 순회를 돌면서 연산값도 구하지만 데이터를 추출하는데 많이 사용된다. https://school.programmers.co.kr/learn/courses/30/lessons/120809 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr

Tistory

자바스크립트 알고리즘 6 일차 (프로그래머스)

6일차 첫번째 문제 문제: 배열의 평균값 난이도: 하 풀이 과정: 배열에 매개변수를 reduce 함수를 활용해서 총 값을 더하고 배열에 전체 만큰 나눠서 평균값을 구한다. 참고사항: Reduce 개념이 필요하다. parseFloat 함수는 문자열 실수를 숫자로 변환해주는 함수라서 없어도 상관은 없다. https://school.programmers.co.kr/learn/courses/30/lessons/120817?language=javascript 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr

Tistory

자바스크립트 알고리즘 7 일차 (프로그래머스)

7일차 첫번째 문제 문제: 키 큰 사람 난이도: 하 풀이 과정: for문, filter 중에 넘어오는 매개변수 height로 키 큰 사람을 찾을 수 있다. 참고사항: for문, javascript 내장함수 filter 개념 필요 https://school.programmers.co.kr/learn/courses/30/lessons/120585?language=javascript 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr

Tistory

자바스크립트 알고리즘 8 일차 (프로그래머스)

8일차 첫번째 문제 문제: 중복된 숫자 개수 난이도: 하 풀이 과정: filter 함수를 활용해서 중복된 숫자의 개수를 찾을 수 있다. 참고사항: filter 개념 필요 코딩테스트 연습 - 중복된 숫자 개수 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr

Tistory

자바스크립트 알고리즘 2 일차 (프로그래머스)

2일차 첫번째 문제 문제: 출생년도 구하기 난이도: 하 풀이 과정: new Date 객체, getFullYear 속성을 활용해서 구현 가능 참고사항: 2022년도에 기준으로 생년월일을 출력시 현재년도 2023으로 출력하면 2022년도 기준에 출생년도가 나온다. 하지만 2023년도 기준으로 생년월일 출력시 birthYear + 1 해줘야된다.

Tistory

자바스크립트 알고리즘 3 일차 (프로그래머스)

3일차 첫번째 문제 문제: 각도기 난이도: 하 풀이 과정: else if 조건문 활용, let 값 재할당으로 return 참고사항: 이하, 미만, 이상, 초과 이해 필요 https://school.programmers.co.kr/learn/courses/30/lessons/120829 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr

Tistory

자바스크립트 알고리즘 4 일차 (프로그래머스)

4일차 첫번째 문제 문제: 양꼬치 난이도: 하 풀이 과정: 사칙 연산 우선 순위: * / + - 참고사항: Math.floor 소수점을 버리는 자바스크립트 함수 https://school.programmers.co.kr/learn/courses/30/lessons/120830 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr

Tistory

자바스크립트 알고리즘 5 일차 (프로그래머스)

5일차 첫번째 문제 문제: 짝수의 합 난이도: 하 풀이 과정: 정수의 개수만큼 배열로 변환 javascript 내장 함수filter, reduce 활용해서 값 구함 참고사항: Array.from, Filter, Reduce 개념이 필요하다. https://school.programmers.co.kr/learn/courses/30/lessons/120831

Tistory

GraphQL Express Apollo-Server Mysql 서버 구축

GraphQL은 클라이언트가 서버로부터 효율적으로 데이터를 가져오는 것에 대해 흥미를 느껴서 GraphQL 활용해봤다. 프로젝트: Express와 GraphQL를 활용해서 RestfulAPI & GraphQL API 구축 학습: GraphQL 런닝커브가 있으며 Apollo-Server, schema, resolver 개념이 필요하다. GraphQL 구현 소스: Github Source 구현 소스를 보실수 있습니다. https://github.com/yoogukhyeon/graphql-express-server GitHub - yoogukhyeon/graphql-express-server Contribute to yoogukhyeon/graphql-express-server development by ..

Tistory

javascript 스와이퍼(carousel) 구현

javascript 활용해서 carousel 구현 했다. 웹페이지에서 자주 볼수있는 swiper를 라이브러리가 아닌 javascript로 구현했다. 커스터마이징으로 기능 & 코드를 개선한다면 실무에서도 적용이 가능할꺼 같다. Github Source 구현 소스를 보실수 있습니다. https://github.com/yoogukhyeon/vanilla_javascript/blob/main/carousel.html GitHub - yoogukhyeon/vanilla_javascript Contribute to yoogukhyeon/vanilla_javascript development by creating an account on GitHub. github.com 1. 가장 기본적인 HTML, CSS 구축..

Tistory

자바스크립트 알고리즘 1 일차 (프로그래머스)

1일차 첫번째 문제 문제: 몫 구하기 난이도: 하 풀이 과정: 자바스크립트 수학 함수에 대한 이해도만 있으면 쉽게 풀음 참고사항: 실수: 10/5 하면 정수가 나오지만 7/2 경우 소수점까지 출력이 된다. Math.floor: 소수값이 존재할때 내림을 하거나 가장 큰 정수로 반환하는 함수. 1일차 두번째 문제 문제: 숫자 비교하기 난이도: 하 풀이 과정: 조건문에 대한 이해도 필요 참고사항: Strict Equal Operator === 를 사용해서 서로 비교 출처: https://school.programmers.co.kr/learn/courses/30/lessons/120805 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술..

Tistory

소프트웨어 생명주기, SDLC (Software Development Life Cycle)

1. 폭포수 모형 (Waterfall Model) 가장 오랜된 고전적인 생명 주기 모형 한 단계가 끝나야만 다음 단계로 넘어가는 선형 순차적 모형 단계별 정의 및 산출물이 명확 개발 중간에 요구사항의 변경이 용이하지 않음 타당성 검토: 계획 - 요구 분석 - 설계 - 구현 - 테스트 - 유지보수 2. 프로토타입 모형(Prototype Model, 원형 모형) 견본(시제)품을 만들어 최종 결과물을 예측하는 모형 인터페이스 중점을 두어 개발 개발 중간에 요구사항의 변경이 용이 3. 나선형 모형(Spiral Model) 폭포수 모형과 프로토타입 모형의 장점에 위험 분석 기능을 추가한 모형 점진적 개발 과정 반복으로 요구사항 추가 가능 유지보수 과정 필요 없음 계획 - 위험 분석 - 공학적 개발 - 고객 평가 ..

Tistory

React FAQ(자주 묻는 질문) 아코디언 기능

리액트 & 타입스크립트를 활용해서 FAQ(자주 묻는 질문) 을 구현했다. 많은 웹사이트에서 활용되며 유기적으로 사이트로 유입시키고, 트랙픽 증가을 시키고자할 때 많이 사용된다. 사용자에게 정보를 제공할때 사용된다. ️ 리액트 재렌더링 조건을 미리 숙지하고 있으면 이러한 기능을 만들때 유용하다. 렌더링 조건 1. state(상태) 변경이 되었을때 렌더링 2. 새로운 props가 전달될때 렌더링 3. 기본 props가 업데이트될때 렌더링 4. 페이지에 처음 들어올때 렌더링 Github Source 구현 소스를 보실수 있습니다. https://github.com/yoogukhyeon/react-camp GitHub - yoogukhyeon/react-camp Contribute to yoogukhye..

Tistory

React 장바구니 기능 구현

리액트 & 타입스크립트 활용해서 장바구니 기능 구현했다. 웹/앱 개발에서 중요한 CRUD 기능 및 useReducer 활용해서 생산성이 좋게 설계해서 만듬. 기본적인 프로그래밍에 개념과 가장 기본적이 hooks 활용에 대해서 깊이 공부할 수 있다. javascript filter, reduce, map, switch 활용했다. useReducer 미리 숙지하고 하면 유용하게 사용할 수 있다. useReducer: useState처럼 state생성하고 관리하는 hook 이다. useReducer 잘사용하려면 3가지를 알아두면 좋다. Reducer, Dispatch, Action Reducer: State 상태를 업로드하는 역할 Dispatch: Reducer 요구를 하는 역할 Action: 어떤 요구를 보..

1 2 3