STUDY/[ JavaScript ] 21

자바스크립트

Symbol이 무엇이냐 JavaScript의 Symbol은 “유일하고 변경 불가능한” 값인 원시 타입으로, 주로 객체의 충돌 없는 프로퍼티 키로 쓰입니다.한 줄 요약Symbol은 서로 절대 겹치지 않는 고유한 키를 만들기 위한 원시 타입이에요. = 심볼은 접근할 수가 없어? 완전한 비공개는 아니고 보통은 안 보이게 숨겨질 뿐심볼 키 프로퍼티는점 표기(obj.foo)나 문자열 키(obj['foo'])로는 못 접근해당 심볼 값을 갖고 있으면 obj[thatSymbol]로 접근 가능for...in, Object.keys, JSON.stringify 등에 안 잡힘(숨겨짐)하지만 Object.getOwnPropertySymbols, Reflect.ownKeys로 “찾아내서” 접근 가능Symbol.for('key..

퀵 정렬/ 병합정렬

https://roytravel.tistory.com/328 [자료구조] 기본 정렬 알고리즘 총 정리1. 버블 정렬 (Bubble Sort) 버블정렬은 서로 인접해 있는 요소 간의 대소 비교를 통해 정렬한다. 버블 정렬은 정렬 알고리즘 중 가장 단순한 알고리즘으로, 단순한 만큼 비효율적이다. 시간 복잡도roytravel.tistory.com아주 잘 설명되어있음https://www.toptal.com/developers/sorting-algorithmshttps://visualgo.net/en visualising data structures and algorithms through animation - VisuAlgoVisuAlgo is generously offered at no cost to the ..

Express-generator 프로젝트 구조

Express-generator bin/www:포트 번호 등과 같은 웹 서버 구축하는데에 필요한 설정 데이터가 정의되어 있는 파일=> .env 파일과 같이 설정 값을 가지고 에러 처리, 기타 추가 설정을 해주는 파일node_modules:Node.js, Express에 필요한 모듈들이 설치되는 폴더public:images, javascripts, stylesheets -> 정적(ex, 로고, 회사 소개 페이지, ...)파일cf. 동적 : 사람마다 다른 데이터routes:각 경로를 담당하는 모듈들이 들어있는 폴더= 라우팅 로직을 구현하는 모듈들: 클라이언트에서 어떤 요청을 주냐에 따라서어떤 로직을 수행할 지 파일별로 분할해서 관리하는 정도views:클라이언트에게 html코드로 "화면을 보내는 파일"app...

클린코드 : 자바스크립트 편

들어가기 전에,코드를 처음보는 사람도 읽기 쉽고 이해하기 쉽게 작성하는 것은 아주 중요합니다.클린코드란 가능한 가독성 좋고 유지보수하기 쉽게 짜여진 코드를 뜻합니다.아래에서는 클린코드를 작성하기 위해 지켜야할 것들을 작성해 놓았습니다. 내 손으로 정리하여 오래 기억하고 자주 보기위해 해당 글을 작성합니다.출처: sbyeol3님의 자바스크립트를 위한 클린코드 : 한국어 번역 변수명코드는 읽는 경우가 더 많습니다. 다른 사람이 읽더라도 이해하기 쉬운 단어로 작성하세요.1. 의미가 명확하고 발음 가능한 변수 이름을 사용하세요. 2. 검색 가능한 의미있는 이름을 사용하세요 3. 머리로 매핑하지 마세요! 예) e => element, l => location 4. 다시 한 번 말해주지 않아도 됩니다. 5. 짧은..

!==(엄격 비교) ==(비엄격비교) 엥 개수는 똑같은데요

프로그래머스 문제를 푸는 중에 if(lastWord!==cur){ console.log("다름") return acc+=cur}else if(lastWord==cur){ console.log("같음") return acc+=""; }해당 코드의 결과가콘솔창에 "다름"만 찍혀서 챗지피티에게 물어봤더니여태까지 코드를 작성하면서 불일치(!)를 잘못 알고 있었다는 걸 알게 되었다세상에 내가 생각하는 !== 의 의미 > ==이 아님! (비엄격)실제 코드에서의 !== 의 의미 > ===이 아님!! (엄격) =는 대입연산자, ==은 비엄격 비교연산자라는 생각에 헷갈리게 된 것이다~~ 자세한 사항은 아래를 참고하세용 https://ko.javascript.info/compa..

자바스크립트에서 신경쓰면 좋은 클린코드를 위한 항목

https://youngju-js.tistory.com/35 [JavaScript] 클린 코드 자바스크립트 강의 정리🍀 목차 JavaScript 클린 코드? 변수 다루기 : 전역 공간 사용 최소화 변수 다루기 : 임시 변수 제거하기 타입 다루기 : 타입 검사, 형변환 주의하기, isNaN 경계 다루기 : 매개변수의 순서가 경계다 분youngju-js.tistory.comhttps://velog.io/@hanganda23/Javascript-clean-code [JS] 당장 적용할 수 있는 클린 코드javascript clean code 공부와 실습velog.iohttps://github.com/sbyeol3/clean-code-javascript-kr GitHub - sbyeol3/clean-code-..

좋은 코드를 위해 피해야 할 Code Smell 10가지

코드를 짤 때해당 코드가 올바르게 작성되고 있는지, 실무에서 쓰이기 괜찮은지 판별하기 어려운 경우가 많다매번 LLM에게 물어볼 수도 없는 판국이고,,, 그래서 알아두면 좋을 것이유지보수하기 좋고 깨끗한 코드를 만들기 위해 절대 하지 말아야 할 10가지Code Smell(코드에서 나는 악취)이라 부르며 아래와 같은 10가지의 내용을 담고 있다.1. Duplicate Code 중복코드동일하거나 유사한 코드가 여러 곳에 존재하면 유지보수가 어려워지고,수정할 때 여러 곳을 변경해야 하므로 오류가 발생할 확률이 증가한다. 🚀 해결방법함수, 클래스, 모듈을 적극 활용하여 중복된 코드를 리팩토링한다!DRY원칙을 적용하여 반복을 최소화한다.*DRY; Don't Repeat Yourself2. Long Method..

함수와 모듈 / 함수 호출() 함수 참조, Export Default Import /Export Named Import

모듈 Module재사용 가능한 코드 덩어리파일 단위로 import export 하는 것 함수 Functionmath.js 라는 파일이 있다면이 파일 전체가 모듈이고 각각 내장된 함수들이 기능한다export function add(a, b) { return a + b; }export function subtract(a, b) { return a - b; } 불러올 때 () 붙이고 안붙이고의 차이도 있는데이를함수 참조와 함수 호출이라고 부른다 함수 호출(실행) - () 있음함수를 호출한 코드에서 실행하는 것function greet() { return 'Hello!';}console.log(greet()); // "Hello!" ← 함수 실행 결과console.log(typeof greet()); //..

Async/ Await/ Top-Level Await/ Promise/ Callback/ 동기,비동기 작업

코파일럿이top level await은 큰 문제인걸~ 하고 수정해줬다뭔소린지 도통 모르겠어서 처음부터 차근차근 왜 수정했는지 뭐가 문제인지 탐구해봤다 일단 동기식 비동기식이 먼지 알면 조음📌 동기 코드 (Synchronous)한 줄씩 순서대로 실행하고, 끝날 때까지 기다림console.log('1번'); console.log('2번'); console.log('3번'); // 결과: 1번 → 2번 → 3번 (순서대로!) 📌 비동기 코드 (Asynchronous)기다리지 않고 다음 줄로 넘어감console.log('1번');setTimeout(() => console.log('2번'), 1000); // 1초 후 실행console.log('3번');// 결과: 1번 → 3번 → (1초 후) 2번 (순..