본문 바로가기

분류 전체보기

(238)
JavaScript [궁금증 : .forEach, .map and .reduce vs for and for..of (속도나 효율비교)] 결론 return 값이 있으면 map을 사용하고 없으면 forEach를 사용하는 것이 기능적으로 조금더 좋아보이고 기능을 빼더라도 의미론적으로 좀 더 좋은 것 같음 https://leanylabs.com/blog/js-forEach-map-reduce-vs-for-for_of/ Performance of JavaScript .forEach, .map and .reduce vs for and for..of Declarative programming is better 95% of the time. However, when performance matters, imperative style is the go-to solution. leanylabs.com https://medium.com/web-develop..
React [NextJS : NextJS Docs 변경 현장 목격 ] NextJS 공부하던중에 중간에 문서의 변경이 있었는데 신기해서 저장해 보았다 PreCur
SQL [ 문법 : WHERE과 HAVING의 차이 ] 최근 SQL을 공부하다가 where과 having을 정확한 차이를 모르고 사용하고 있었다는 것을 깨달았다. 그래서 정리를 해보았다. 1. WHERE절 select * from 테이블명 where 조건절 where절은 항상 from 뒤에 위치하고 조건에는 다양한 비교 연산자들이 사용되어 구체적인 조건을 줄 수 있다. 2. HAVING select * from 테이블명 group by 필드명 having 조건절 항상 group by뒤에 위치하고 where 조건절과 마찬가지로 조건에는 다양한 비교연산자들이 사용되어 구체적인 조건을 줄 수 있다. 3. 차이점 where - 기본적인 조건절로서 우선적으로 모든 필드를 조건에 둘 수 있다. having - group by 된 이후 특정한 필드로 그룹화 되어진 새로운..
JavaScript [ nodemon: nodemon 사용법(+옵션) ] Node.js 환경에서 개발할 때 서버 코드가 변경되면, 기존의 경우에는 변경된 코드가 잘 적용되었는지 확인하기 위해서 서버를 일일이 재실행해줘야 합니다. Node.js 에서는 nodemon이라는 모듈을 사용하면 서버 코드가 변경되어도 nodemon이 서버 코드의 변경을 감지해 서버를 알아서 재실행 해줍니다. 본문 nodemon(node monitor) 설치 커맨드라인에서 nodemon을 사용할 것이기 때문에 -g 옵션을 붙여 글로벌로 설치해 주어야 합니다. 또한 nodemon의 경우 프로덕션 환경에서는 필요가 없기 때문에 -D 옵션을 붙여 devDependencies에 설치해 줍니다. npm install nodemon -g -D 사용 package.json의 script 명령어에 추가하여서 사용합니다..
TypeScript [ 공부 : extends VS implements ] 자바스크립트에서 어떤 클래스를 상속받고 싶을 때는 하위 클래스에서 extends 키워드를 통해 상속 받을 수 있다. 그리고 타입스크립트에서는 implements 키워드를 통해서, interface와 class를 동시에 확장 가능한 것을 알고 있었다. 객체지향을 공부하다가 Java에도 똑같이 implements와 extends가 있는 것을 보았고 이 두 가지의 정확한 차이점을 알기 위해서 찾아보았다. 본문 extends vs. implements extends extends 키워드는 class 선언문이나 class 표현식에서 만들고자하는 class의 하위 클래스를 생성할 때 상속하기 위해서 사용한다. class Person { constructor(name, age) { this.name = name th..
코드작성 스타일 [ 정보 : 함수형 프로그래밍 (선언형 코드) ] 명령형(imperative) 코드 vs 선언형(declarative) 코드 선언형 코드(declarative) 원하는 결과를 표현하기 위해 코드가 작성됨 ex : CSS 빨강색 배경을 보고싶으면 body { background-color:red; } 원하는 결과를 얻기위한 단계가 없음 - `선언형 코드`는 원하는 `결과값`을 선언하는 것 명령형 프로그래밍(imperative) 원하는 결과를 얻기 위해 필요한 지침에 따라 코드가 작성됨 - `명령형 코드`는 그 `결과값`에 어떻게 도달하느냐에 관한 것 예시코드 - 띄여쓰기를 특수문자로 변경하는 코드 명령형 function spaceToDash(text) { let result = ''; for (let i = 0; i < text.length; i++) {..
JavaScript [연산자 : 쉼표 연산자 (,)] 오랜만에 코드들을 구경하는 데 처음보는 방식을 보아서 무엇인지 찾아보니 컴마 연산자였다 그래서 정리해 보았다 본론 쉼표 연산자 (,) 피연산자들의 각각을 평가한다 (왼쪽에서 오른쪽) 마지막 피연산자의 값을 반환한다. 이를 통해 여러 표현식이 평가되는 복합 표현식을 생성할 수 있으며, 복합 표현식의 최종 값은 해당 멤버 표현식의 가장 오른쪽 값이 됩니다. 처리 후 반납 쉼표 연산자로 만들 수있는 또 다른 예는 반환하기 전에 처리하는 것입니다. 마지막 요소 만 반환되지만 다른 요소도 모두 실행 됩니다. 예시 function myFunc() { return (1, 2, 3); } myFunc() // 3 function myFunc() { let x = 0; return (x += 1, x); // retur..
용어 [Study: 비즈니스 로직(Business Logic)이란?] 프로그래밍에 관한 일을 하다보면 많이 비즈니스 로직(Business Logic)에 대하여 듣게 됩니다. 하지만 이게 정확히 어떤 의미로 사용된것인지 궁금하여서 찾아보았습니다. 본문 비즈니스 로직(Business Logic)이란? 프로그램의 핵심 로직을 뜻합니다. 즉, 어떻게 데이터가 생성되고 저장되고 수정되는지를 정의한 것이 비즈니스 로직이라고 할 수 있습니다. Logic 영역, Model 영역이라고도 합니다. ( Presentation 영역 혹은 View 영역) 예시 회원가입으로 예를 들자면 유저는 회원가입 양식 폼에 회원정보를 작성하고, 회원가입 버튼을 누르면 회원가입이 진행됩니다. 이 과정 중 아이디 중복 검사, 본인 인증, 비밀번호 재 검사 등 유저가 통과해야 할 것이 많습니다. 유저는 단순한 버..