본문 바로가기

분류 전체보기343

728x90
프로그래머스 #완전탐색 - 소수 찾기 lv2 문제 풀이 function solution(numbers) { let answer = 0; let allPermutations = []; // 모든 경우의 수 [순열] let permutationsSet = []; // 중복을 제거한 경우의 수 // 1. 숫자 조합 순열 구하기 allPermutations = getAllPermutations([...numbers]); // 2. 중복제거 permutationsSet = getPermutationsSet(allPermutations) // 3. 소수 갯수 구하기 answer = getCountDicimal([...new Set(permutationsSet)]); return answer; } // 1. 숫자 조합 순열 구하기 function getAllP.. 2021. 9. 12.
프로그래머스 #스택/큐 - 프린터 lv2 문제 풀이 function solution(priorities, location) { let answer = 0; let seq = location; let len = priorities.length; let result = priorities; let printList = []; let stop = true; while (stop) { if (printList.length === len) { stop = false; break; // 탐색 완료 } const targetPrint = result[0]; const remainPrints = result.slice(1); if(remainPrints.find((print) => print > targetPrint)) { // 뒤에 큰 숫자가 있으므로 인쇄.. 2021. 9. 10.
Mobx 6 에서 decorators가 사라진 이유 Mobx 6 Mobx 5버전 이하에선 데코레이터(@, decorators)를 사용할 수 있었지만 Mobx 6.0.0 버전으로 올라가면서 데코레이터가 빠지게 되었습니다. 데코레이터가 왜 빠졌을까요? Mobx 공식 문서에 따르면 decorators 자체가 자바스크립트의 정식 기능이 아닌 실험적인 기능이며, 정식 기능이 될 때까지 기다리기엔 정식화까지 오래 걸릴 것 같다는게 이유였습니다. 그리고 자바스크립트 정식 기능이 될 decorators와 Mobx5 이하에 개발되었던 decorators의 의미가 동일하지 못할 것 같다는 이유가 있었는데, 이게 핵심 이유로 보입니다. 사용해도 괜찮을까? 리액트와 사용한다는 관점에서 Mobx6 버전을 살펴본다면 리액트 hooks 를 위한 기능을 지속적으로 업데이트 해주고 있.. 2021. 6. 16.
git #source tree #자동로그인 실패 에러 해결 소스트리 자동로그인 실패 회사 계정과 꼬였었는지 자동로그인이 계속 실패되어 PUSH할 때마다 로그인을 하라는 창이 떴습니다. 계정이 꼬인 것 같아 Windows 자격 증명에 저장된 git 계정 정보를 리셋하여 해결하였습니다. 해결과정1. 제어판 > 사용자 계정(큰글씨) 해결과정2. 자격 증명 관리자 > Windows 자격 증명 관리 해결과정3. "git:https://"로 시작하는 모두 삭제 해결과정4. 소스트리 재로그인 시도 - 성공 소스트리에 로그인 정보를 저장하는 것에 성공하였습니다. 이제 PUSH를 해도 로그인 창이 뜨지 않습니다. 2021. 3. 21.
React #mongoose #페이지네이션 구현 React와 mongoose로 페이지네이션 구현 mongoose란? mongoose란, mongoDB라는 NoSQL 데이터베이스를 지원하는 노드의 확장모듈이다. mongoose는 mongoDB의 ODM(Object Document Mapping)이다. 문서를 DB에서 조회할 때 자바스크립트 객체로 바꿔주는 역할을 한다. 페이지네이션이란? 화면에 출력할 데이터 양이 많은 경우 한 화면에 전부 보여줄 수 없어 끊어 보여주는 것을 말한다. 페이지네이션 함수 find() : 조회 sort() : 순서대로 조회 limit() : 조회 개수 skip() : 넘길 개수 lean() : plain JSON 객체를 받아온다. 직접 쿼리를 작성해서 페이지 기능 구현 Post 목록을 조회하는 listAPI이다. Post.f.. 2021. 3. 17.
React #joi 로 유효성 검증하기 joi 설치 및 사용 joi는 유효성 검증을 보다 수월하게 해주는 라이브러리입니다. 아래 명령어로 joi를 설치합니다. $ yarn add joi 게시글을 작성하는 코드입니다. joi를 활용하여 데이터 타입, 필수여부 등을 체크하여 결과를 리턴합니다. (...) const Post = require('../../models/post'); const Joi = require('joi'); /* POST /api/posts { title, body, tags } */ exports.write = async (ctx) => { // 객체가 지닌 값들을 검증 const schema = Joi.object().keys({ title: Joi.string().required(), // 뒤에 required를 붙여 .. 2021. 3. 17.
React #라우트 코드 스플리팅 #비동기적으로 코드 불러오기 청크(chunk) 생성 페이지에서 필요한 코드들만 불러오려면, 청크(chunk)를 생성해야 한다. SplitMe.js 파일을 AsyncSplitMe.js 파일에서 비동기적으로 불러오는 소스이다. SplitMe.js import React from 'react'; const SplitMe = () => { return ( 청크 ); }; export default SplitMe; AsyncSplitMe.js import React, { Component } from 'react'; class AsyncSplitMe extends Component { state = { SplitMe: null } loadSplitMe = () => { // 비동기적으로 코드를 불러옵니다. 함수는 Promise를 결과로 반환.. 2021. 3. 15.
React #SPA 개발하기 #1. 절대 경로 설정, 라우팅 SPA란? SPA는 Single Page Application의 약어로 하나의 페이지 내에서 새로고침 없이 내용(page)을 교체하는 애플리케이션을 뜻한다. 실제 실무에서 자주 개발했던 방식이다. 리소스 정보를 페이지 이동이 빨라지는 장점이 있으나 초기에 모두 다운 받아야하므로 규모가 큰 애플리케이션인 경우 lazy loading이나 SSR를 활용하여 최적화해줘야한다. React SPA 개발 준비 React로 SPA를 개발하기 위해 create-react-app으로 애플리캐이션을 추가해준 뒤 아래와 같이 진행한다. yarn add react-router yarn add react-router-dom src/pages 경로에 Home.js와 About.js 페이지를 작성한다. 컴포넌트들을 불러와 파일 하나.. 2021. 3. 14.
2021 #정보처리기사 수제비 책 오류내용 체크 책 정보 수제비2021 정보처리기사 필기 [최신개정판] 2021년 1월 25일 제2판 제2쇄 발행본 도서출판 건기원 오류 내용 정리 페이지 번호 오류내용 확인내용 4-93 33번) UNIX SHELL 환경 변수를 출력하는 명령어가 아닌것은? 정답이 4번이라 적혀있는 오류 2020년 4회 기출문제이며 1번이 정답입니다. 6-73의 2020년 4회 기출 40번의 답은 1번으로 나와있습니다. 6-35 수제비 최종모의고사 2회 52번 정답이 1번이라 적혀있는 오류 2번이 정답입니다. 정답 해설은 2번으로 설명되어있습니다. 2021. 3. 7.
2021 #정보처리기사 필기요약 #5-4. 시스템 보안 구축 2021년 NCS기반 정처기 필기입니다. 참고1. 노랑마킹은 시험에 나온 중요한 부분입니다. 참고2. 주황강조는 약어 혹은 중요한 내용입니다. 참고3. 회색마킹은 예시입니다. 제 5과목 정보시스템 구축 관리 > 시스템 보안 구축 > 시스템 보안 설계 (1) 서비스 공격 유형 DoS 공격 시스템을 악의적으로 공격해 해당 시스템의 자원을 부족하게 하여 원래 의도된 용도로 사용하지 못하게 하는 공격이다. DoS 공격의 종류 공격기법 설명 SYN 플러딩(SYN Flooding) TCP 프로토콜의 구조적인 문제를 이용한 공격 UDP 플러딩(UDP Flooding) 대량의 UDP 패킷을 만들어 임의의 포트 번호로 전송하여 응답 메시지(ICMP Destination Unreachable)를 생성하게 하여 지속해서 자.. 2021. 3. 4.