본문 바로가기

전체 글343

728x90
javascript #자바스크립트 객체와 SOLID 원칙 자바스크립트 객체와 SOLID 원칙 원시형 객체 리터럴 모듈 패턴 객체 프로토타입과 프로토타입 상속 new 객체 생성 클래스 상속 함수형 상속 멍키 패칭 1. 자바스크립트 원시형 (Primitive Type) JavaScript에서 원시 값(primitive, 또는 원시 자료형)이란 객체가 아니면서 메서드도 가지지 않는 데이터다. 원시 값에는 7종류, string, number (en-US), bigint (en-US), boolean, undefined, symbol, 그리고 null이 존재한다. 대부분의 경우, 원시 값은 언어 구현체의 가장 저급(low level) 단계에서 나타낸다. 모든 원시 값은 불변하여 변형할 수 없다. 원시 값 자체와, 원시값을 할당한 변수를 혼동하지 않는 것이 중요하다. .. 2022. 5. 29.
[VRChat] 화면 해상도 높이기 (그래픽 퀄리티 높이기) 이 방법은 이제 안돼요. 이전에는 Ctrl을 누르며 VRChat 을 켜거나 Shift 를 누르며 Steam에서 실행하면 해상도 설정 화면이 출력되었다고 합니다. 하지만 이제 작동하지 않습니다. VRChat 문서로 확인된 그래픽 퀄리티 높이기 가이드 문서이니 아래를 참고하셔서 본인 해상도에 맞는 VRChat을 즐기시길 바랍니다. 가이드 요약 1) 효과 모두 켜기 : Settings > Safety > Shild Level None 2) 아바타 퍼포먼스 높이기 : Settings > Safety > Performance Options > Avatar Perf. > Medium^ 3) 아바타 물리 모션 퍼포먼스 높이기 : Settings > Safety > Performance Options > Dynamic.. 2022. 2. 7.
『UX/UI의 10가지 심리학 법칙』을 읽고 UX/UI의 10가지 심리학 법칙 나는 사용자 경험 디자인에 관심이 많다. 내가 만든 결과물에 대해 사용자는 어떻게 받아들일까? 전달하고자 하는 메세지를 어떻게 전달할까? 어떤 것이 이로운 디자인이고 보다 나은 사용자 경험을 줄 수 있을까? 항상 하던 고민이었고 어떻게 보면 본능적으로 이미 시행하고 있었던 UX/UX 접근 방식에 대해 이 책은 간단명로하게 사전처럼 정의해두었다. 1장 | 제이콥의 법칙 사용자는 자신에게 익숙한 것을 다른 제품에 투영한다. 2장 | 피츠의 법칙 터치 대상의 크기는 사용자가 정확하게 선택할 수 있을 정도의 크기여야 한다. 터치 대상 사이에 충분한 거리를 확보해야 한다. 3장 | 힉의 법칙 의사결정에 걸리는 시간은 선택지의 개수와 복잡성과 비례해 늘어난다. 4장 | 밀러의 법칙.. 2021. 12. 12.
『Z세대는 그런 게 아니고』를 읽고 Z세대는 그런 게 아니고 좋은 기회로 책을 받고 이틀만에 완독한 뒤 리뷰를 남긴다. 그 동안 여러 매체에서 MZ세대, 밀레니엄 세대 등에 대해 다뤘었지만 정확히 어떻게 구분되는지 모르고 그게 얼마나 중요한 개념인지 몰랐었다. 그나마 알고 있었던 점은 M세대 보다 Z세대가 부모와의 유대 관계가 깊고 좋은 사이인 경우가 높다는 것이다. 책을 읽고 난 뒤 MZ세대로 함께 묶여서 불리는 2030세대가 사실은 분리된 취향을 가진 별개의 세대라는 것을 알 수 있다. 또한 기업들이 나아가야할 선한 이미지와 정치적 올바름에 대한 추구가 Z세대의 감성을 어떻게, 왜 자극하는지를 알 수 있다. 여기서 세대별 차이점을 외국 이민에 비유하며 독자로 하여금 이해하기 쉽게 설명했다. X세대가 자녀를 데리고 이민간 세대라면 어렸을.. 2021. 12. 12.
javascript #함수형 자바스크립트 프로그래밍 - 1~2장 기록 1장 함수형 자바스크립트 소개 함수형 프로그래밍 특징 page 6. 불변성 page 18. 객체지향 프로그래밍이 약속된 이름이 메서드를 대신 실행해 주는 식으로 외부 객체에게 위임을 한다면, 함수형 프로그래밍은 보조형 함수를 통해 완전히 위임해주는 방식을 취한다. 이는 더 높은 다형성과 안정성을 제공한다. page 20. findIndex 함수 예시 function findIndex(list, predicate) { for (let i = 0, i = list.length; i < len; i++) { if (predicate(list[i])) return i; } return -1; } 함수를 잘 다루기 위해 필수로 알아야 하는 기능들 고차 함수 함수를 인자로 받거나 함수를 리턴하는 함수 보통 고차 함.. 2021. 11. 29.
프로그래머스 #탐욕법(Greedy) - 구명보트 lv2 문제 풀이 function solution(people, limit) { let answer = 0; // 구명보트 수 let startIndex = 0; let endIndex = people.length - 1; let saveActivity = true; // 구출 작업 진행 여부 people.sort((a, b) => b - a); // 제일 무거운 사람 순으로 정렬 while (saveActivity) { // 마지막 한명을 태우고 구출 작업 종료 if(startIndex === endIndex) { answer++; startIndex++; saveActivity = false; break; } // 가장 가벼운 사람과 태웠을 때 제한 무게를 넘기지 않으면 2명을 태운다. if(people[s.. 2021. 9. 13.
프로그래머스 #탐욕법(Greedy) - 체육복 lv1 풀이 문제 function solution(n, lost, reserve) { let answer = 0; let result = []; // 여벌이 있는 학생이 도난당한 경우 lost 와 reserve 에서 제외합니다. let isNotReserve = reserve.filter((re) => lost.find((lo) => re === lo)); lost = lost.filter((re) => !isNotReserve.find((notReserve) => re === notReserve)); reserve = reserve.filter((re) => !isNotReserve.find((notReserve) => re === notReserve)); for (let i=1; i lo === i); if.. 2021. 9. 12.
프로그래머스 #정렬 - H-Index lv2 문제 풀이 function solution(citations) { var answer = 0; let sortCitations = citations.sort((a, b) => a - b); let len = sortCitations.length; for(let i=0; i c >= citation).length; if(citation >= cnt) { answer = len - i; break; } } return answer; } 채점결과 2021. 9. 12.
프로그래머스 #완전탐색 - 소수 찾기 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.