# &&
[JS] || , ??
?? - Nullish Coalescing Operator 왼쪽의 피연산자가 null 또는 undefined 일 때만 오른쪽의 피연산자 값을 반환한다. 아 그럼 "" 빈 문자열일 경우에는 그냥 빈연산자가 들어간다. || - Logical OR Operator 왼쪽의 피연산자가 falsy로 평가될 때 오른족의 피연산자 값을 반환한다. falsy 값에는 false 0 숫자 "" 빈문자열 null NaN (not a number) 등이 포함된다. 예제 잘 가려서 쓰자
null 병합 연산자
null 병합 연산자 null 병합 연산자 (nullish coalescing operator) ?? 은 nullish한 값(null 혹은 undefined)을 판별하여 or 연산을 하는 연산자이다. (즉, null 과 undefined를 제외한 모든 Falsy 값을 그대로 리턴하기 위함. ) 언제 ?? 를 써야할까? 일반적으로 논리 연산자 ||를 사용해 Falsy 체크를 하는 경우가 많다. (\* Falsy : null, undefined,false, NaN, 0 , "" 등의 거짓 같은 값) 그런데 || 를 사용하면 "" , 0 와 같은 값 또한 false 로 판단하기 때문에 0, "" 값을 유효 값으로 사용해야 하는 경우 원치 않는 결과가 발생할 수 있다. 이럴 때 Nullish 병합 연산자 ??를 사용할 수 있다. 로컬에 저장된 volume 값이 있으면 그 값을 volume에 할당하고, 없으면 0.5를 할당하는 연산이다. 이 경우 volume 이 0

`Vue3 - Vite` project alias src to @ not working
Vue2.0 에서는 기본으로 제공되었던 src 폴더 접근 alias 인 "@"가 Vue3.0 에서는 기본으로 제공되지 않음 이에 따라, "@"를 src alias로 사용할 수 있도록 설정하는 과정이 필요함. 이를 검색하면 바로 나오겠지만. 미래의 나를 위해 블로그에 남기고자 함. 출처 : https://stackoverflow.com/a/66515600/2043471
컨트롤 제트
숫자와 "Z"가 공백으로 구분되어 담긴 문자열이 주어집니다. 문자열에 있는 숫자를 차례대로 더하려고 합니다. 이 때 "Z"가 나오면 바로 전에 더했던 숫자를 뺀다는 뜻입니다. 숫자와 "Z"로 이루어진 문자열 s가 주어질 때, 머쓱이가 구한 값을 return 하도록 solution 함수를 완성해보세요. 내 코드 예시 코드

import "./App.css"; import { useState } from "react"; function App() { const [count, setCount] = useState(0); // count를 바꿀수 있는 방법은 setCount이다 const plusButtonClickHandler = () => { const newPlusCount = count + 1; setCount(newPlusCount); }; return ( {count} { const newCount = count - 1;
JavaScript- 틸드 연산자인 (~) 와 (~~)
Tilde(틸드) '~' tilde 연산자는 비트연산자로 NOT의 기능 2진수일 때 0과 1만 뒤바꾸면 됨 > ## 연산자, double tilde Math.floor()와 동등하게 쓰이는 연산자 Math.floor()와 비교한 ``의 장단점 장점 속도 측면에서 ` , Math.floor() , parseInt순으로 `가 가장 빠른 퍼포먼스를 보여줌 단점 복잡한 코드 또는 협업하는 과정에서 가독성이 좋지 않음
Spring Annotation이 궁금했단 말이죠
1. Spring Annotation이란? @에 대해서는 전에 설명한 바가 있습니다. 따라서 @이 무엇인지에 대해서는 설명하지 않겠습니다. 그렇다면 스프링 @는 무엇일까요? 스프링 프레임워크에서는 다양한 애노테이션을 통해 애플리케이션의 구성 및 동작을 정의하고 구현합니다. 스프링의 기능을 활용하고 제어하기 위해 사용되는 이러한 애노테이션들은 일반적으로 클래스, 메서드, 필드 등에 @ 기호가 붙여져 사용됩니다. 이렇게 하면 XML 구성 파일을 사용하지 않고도 스프링 애플리케이션을 설정하고 관리할 수 있습니다. > # 2. Spring에서 자주 사용하는 Annotation 종류를 알려 드릴게요! 상세하게 알려 드립니다. 우선 주요 스프링 애노테이션은 다음과 같습니다. @Component: 클래스를 스프링 컨테이너의 구성 요소(빈)로 등록합니다. 이렇게 하면 스프링이 해당 클래스의 인스턴스(빈)를 생성하고 관리할 수 있습니다. @Controller: 스프

[Javascript] LV.0 문자열을 정수로 변환하기
문제 설명 숫자로만 이루어진 문자열 nstr이 주어질 때, nstr을 정수로 변환하여 return하도록 solution 함수를 완성해주세요. 제한사항 1 ≤ n_str ≤ 5 n_str은 0부터 9까지의 정수 문자로만 이루어져 있습니다. 입출력 예 | n_str | result | | --- | --- | | "10" | 10 | | "8542" | 8542 | 입출력 예 설명 입출력 예 #1 "10"을 정수로 바꾸면 10입니다. 입출력 예 #2 "8542"를 정수로 바꾸면 8542입니다. ✍ SOLUTION1 ✍ SOLUTION2 ✍ SOLUTION3 ✍ SOLUTION4 [출처 : 프로그래머스 스쿨 | 코딩테스트 연습](https://school.programmers.co.kr/l

equals() 와 == 연산자의 차이
equals >equals() 는 메소드로 객체의 내용을 비교한다. 기존 equals()의 경우 Object 클래스의 메서드로, ==연산자와 동일하게 주소값을 비교한다. 하지만 흔히 문자열 비교를 위해 사용하는 equals()의 경우 String 클래스에서 오버라이딩을 함으로써 문자열 간의 비교가 가능해졌다 ==연산자 >==는 주소값을 비교한다 연산자의 경우 객체의 주소값을 비교한다. 그래서 비교하는 객체가 동일한 객체인지를 판별한다. Primitive Type의 객체에서는 값 비교, Reference Type에서는 주소비교를 수행한다. 참고로 Primitive Type 객체는 Constant Pool의 특정한 값을 참조하는 변수이기 때문에, 결국 Constant Pool 내의 동일한 주소를 비교한다. 📌리터럴을 이용한 방식 & new 연산자를 이용한 방식 String 변수를 생성하는 방법 중 하나로 리터럴을 사용하게 되면
Kotlin, Annotation, 상속 차이
0. 개요 Annotation, 상속 만들어놓은 것을 가져와 사용하는것이다. 무엇을 가져와 어떻게 사용하는지에서 차이가 나는 듯 하다. 정확히 알고 가자. 1. 어노테이션 메타데이터(부가기능)을 코드에 비침투적으로 추가할 수단 > 메타데이터: 데이터에 대한 데이터(강아지가 포유류라는 것, 강아지는 네발로 걷는 다는 것,) > 코드에 비침투적으로 추가: 비 침투적이란 기존의 코드 로직에 직접적인 변경이나 개입 ㅇ벗이 추가적인 기능이나 행동을 적용할 수 있다는 것을 의미. AOP(Aspect-Oriented Progreamming)은 이런 반복적인 작업을 관심사라고 부르며, 이 관심사를 핵심 로직에서 분리, 필요한 위치에 비침투적으로 적용 자바 또는 코틀린에서 사용됨. 2. 특징 1) 정의 2) 매개변수 사용 3) 주석 사용 4) 유용한 내장 주석 @JvmStatic: JVM에 정적 메서드로 표시되도록 만듭니다

[Javascript] 거듭 제곱 연산자 **
오늘은 ES7에서 추가된 거듭 제곱 연산자를 소개해드리겠습니다. 거듭 제곱 연산자 거듭 제곱 연산자는 곱 연산자 두 개를 이어서 사용해 거듭 제곱은 연산하는 연산자입니다. 이때 왼쪽 오퍼랜드가 밑이 되고 오른쪽 오퍼랜드가 지수가 됩니다. 기존의 Math 내장 객체의 Math.pow()메소드로 거듭 제곱을 구할 수 있었는데, 이제는 연산자로 더욱 간결하게 표현이 가능해졌습니다.

jQuery에 대해
jQuery jQuery 라이브러리 -자주 사용하는 로직을 재사용할 수 있도록 고안된 소프트웨어를 라이브러리라고 한다. -프로그래밍 효율을 높여주는 코드들 jQuery -DOM을 내부에 감추고 보다 쉽게 웹페이지를 조작할 수 있도록 돕는 도구이다. jquery 제어 대상 접근 방법 -$ -> jQuery -jquety는 제어할 요소를 획득하기 위해 $()함수 안에 제어할 대상을 가리키는 CSS셀렉터를 파라미터로 전달한다. 태그 -let my tag = $("h1"); 클래스 let myclass = $('.hello'); id -let myid = $('#hello'); chain -jQuery의 메소드들은 반환값으로 자기 자신을 반환해야 한다는 규칙을 가지고 있다. 연속적인 제어가 가능
버킷리스트 기능 추가하기
강의를 들으면서 만들었던 버킷리스트 페이지에 완료 버튼을 추가하고 완료 버튼을 눌렀을 시에 버튼이 사라지고 버킷리스트에 완료!! 라는 텍스트가 추가하는 것이 조건이었다. 완성페이지 count = len(bucket_list)+1 과 doc= { 'num': count, 'done' : 0 은 시험을 위해 추가하라고 알려준 코드인데 원래 DB에는 버킷리스트 데이터만 들어갔기 때문에 들어간 버킷을 하나씩 완료시키기 위해 필요한 'num'와 완료가 됐는지 안됬는지 구분할 'done'을 만들어 줄 것을 미리 가이드 라인으로 준거 같다. 이제 조건에 맞춰 구현할 코드를 app.py와 index.html에 작성해야한다. 먼저 생각난 건 if 문이였다. 버튼과 텍스트 완료!!를 done이 0인 경우와 1인 경
JavaScript-옵셔널 체이닝(optional chaining)
옵셔널 체이닝 ?. 앞에 있는 것이 참(truthy)인 값이면 뒤 코드를 실행하고, 거짓(falsy)인 값이면 코드를 통째로 undefined를 만들어버린다. 옵셔널 체이닝 ?.을 사용하면 프로퍼티가 없는 중첩 객체를 에러 없이 안전하게 접근할 수 있다. ?.은 ?.'앞’의 평가 대상이 undefined나 null이면 평가를 멈추고 undefined를 반환한다. 객체나 배열뿐만 아니라 함수에도 옵셔널 체이닝을 적용할 수 있다. 속성에 접근하거나 호출하려는 것이 거짓인 값인지 아닌지 의심될 때 옵셔널 체이닝을 적용한다. ?.앞의 변수는 꼭 선언되어 있어야 한다. 예를 들어 user?.anything을 사용하려면 let이나 const, var를 사용해 변수 user를 정의해야 한다. 이렇게 옵셔널 체이닝은 선언이 완료된 변수를 대상으로만 동작한다. ?.은 연산자가 아니다. ?.은 함수나 대괄호와 함께 동작하는 특별한 문법 구조체

[Javascript] && 연산자 남발 금지🚫
Stop using && in React Conditional Rendering | CroCoder 🤨 이게 뭔데? 리액트를 다루다보면 특정 조건이 만족했을 때(간단한 예시로는 접근 권한이 있는) 특정 뷰를 보여줘야 하는 상황에서 조건부 렌더링(conditional rendering) 기법을 자주 사용한다. 이때 조건에 따라 삼항 연산자( 조건 ? 참일 때 결과 : 거짓일 때 결과)를 사용하기도 하지만, 굳이 조건이 거짓일 경우에는 뷰를 보여주지 않는 경우가 대부분이기 때문에 && 연산자를 주로 사용한다.(조건 && 만족할 경우 결과) 🤷 뭐가 문제인데? 처음에는 if문에서 벗어나 코드 길이도 줄고 보기에도 깔끔한 것 같아 클린 코드에 한 발짝 더 가까워졌구나! 하면서 좋아했지만 사용하다보니 특정 상황에서 문제가 발생했기 때문이다. 프

[JQuery] 제이쿼리 반복문
"항상 기본적이 반복문(for, foreach)만 쓰다가 오늘 jQuery반복문 존재에 대해 알게 되었다. 생소했기 때문에 정리하고자 한다." > ## 반복문(JQuery) 반복문 : 특정한 작업을 반복하는 것을 의미 예시 > ### 출력값 > ## 정리 각각의 반복문을 사용해보았다. (사용하는 문법만 살짝 다를 뿐 결과값은 같다는 것을 확인할 수 있다.) > ## 느낀 점 사실 제이쿼리 반복문은 최근에 알게 되어서 '이런 것도 있구나.' 새로 알게 되었다. 항상 for문이랑 forEach문만 쓰다가 $.each도 앞으로 애용할 것 같다.(사용할 일이 있으

WAR 파일 그리고 JAR 파일
학부시절 jsp 프로젝트를 배포하기위해 tomcat과 war을 사용했다. 하지만 springboot는 jar파일을 통해 배포하는데 같은 java 파일이면서 war 과 jar 파일이 어떤 차이가있는지에대해 궁금하여 이 글로써 정리합니다. WAR(Web Application Archive) 웹 어플리케이션을 지원하기 위한 압축 방식 웹 어플리케이션을 지원하기위해 war로 압축합니다. war압축 은 jsp,servlet,gif, html,jar 등을 압축하고 지원합니다. 압축된 war파일을 외부 톰캣등 WAS 서버에 실행파일로 등록함으로써 배포한다. 외부 WAS 서버에 등록함으로서 실행된다. 실행하려면 WAS 서버가 필요하다. JAR(Java Archive) Java 어플리케이션이 동작할수 있도록 자바 프로젝트를 압축한 파일 Class(Java 리소스) 외 환경파일들이 포함되어있음 자바런타임(JRE) 만 있으면 어디서든 실행가능하다