Date 객체 생성생성자 : new 키워드와 함께 새로운 객체를 생성하는 내장함수들let 변수 = new Date();Date에 인자로 특정 날짜지정 가능, 지정하지 않으면 현재 날짜시간문자열로 지정날짜구분은 / - . 아무거나 가능시간구분은 날짜뒤에 /후 :으로 구분(hh:mm:ss)숫자로 지정쉼표 기준으로 연,월,일,시,분,초JS에서 월은 0월부터 시작, -1 해줘야 현세계의 월로 지정타임스탬프로 지정let date1 = new Date(); console.log(date1); // 현재 시간let date2 = new Date("1992/2/22/2:57:00"); console.log(date2); // Sat Feb 22 1992 02:57:00 GMT+0900 (한국 표준시)let date3 ..
ALL
요소 조작 메서드push배열의 맨 뒤에 새로운 요소를 추가, 변환 된 배열의 길이를 반환추가된 길이 = 배열.push(추가 할 요소들);추가 할 요소를 ,로 구분해서 여러개 추가 가능let arr1 = [1, 2, 3];arr1.push(4);const newLength = arr1.push(5, 6, 7);console.log(newLength, arr1); // 7 [1, 2, 3, 4, 5, 6, 7] pop배열의 맨 뒤에 있는 요소를 제거, 제거 된 요소 반환제거 된 요소 = 배열.pop();let arr2 = [1, 2, 3];const popedItem = arr2.pop();console.log(popedItem, arr2); // 3 [1, 2] shift배열의 맨 앞에 있는 요소를 제거,..
Spread 연산자...객체명, ...배열명객체나 배열에 저장된 여러개의 값을 개별로 흩뿌리는 연산자함수 호출시 인자를 Spread연산자를 사용해서 전달 가능// 1. 배열 Spredlet arr1 = [1, 2, 4, 5];let arr2 = [4, arr1[0], arr1[2]]; // 배열의 길이가 변경 될 수 있어서 위험한 방법let arr3 = [4, ...arr1, 6];console.log(arr3); // [4,1,2,4,5,6]// 2. 객체 Spredlet obj1 = { a: 1, b: 2,};let obj2 = { ...obj1, c: 3, d: 4,};console.log(obj2); // {a:1, b:2, c:3, d:4}// 3. 함수 인자 Spred로 전달funct..
배열이나 객체에 저장된 여러 개의 값들을 분해해서 각각 다른 변수에 할당하는 문법 배열의 구조 분해 할당let [변수명1, 변수명2, 변수명3] = 배열명;배열에 담긴 순서대로 앞에 변수에 값을 할당배열의 길이보다 변수가 적은 경우 차례대로 저장 후 짤림배열의 길이보다 변수가 많은 경우 모두 할당 한 후 나머지는 undefined, 단 undefined 일 경우 초기값 설정 가능let arr = [1, 2, 3];let [one, two, three=2, four, five=5] = arr;console.log(one, two, three, four, five); // 1 2 3 undefined 5 객체의 구조 분해 할당let {키명1, 키명2, 키명3} = 객체명;순서 상관없이 해당 키명에 객체안에 ..
JavaScript에서는 참, 거짓이 아닌 값도 참, 거짓으로 평가 할 수 있다.이러한 특징을 사용하면 조건문을 간결하게 만들 수 있다. Truthy참 같은 값조건문에서 true로 평가되는 값falsy한 값들 제외한 모든 값let t1 = "hello";let t2 = 123;let t3 = [];let t4 = {};let t5 = () => {};if (t2) { console.log("true");} Falsy거짓 같은 값조건문에서 false로 평가되는 값7가지 undefined, null, 0, -0, NaN, "", 0n(Big integer)let f1 = undefined;let f2 = null;let f3 = 0;let f4 = -0;let f5 = NaN;let f6 = "";let ..
자격증을 따자작년 8월, 학교 졸업 이후 가장 먼저 세운 목표는 개발자라면 누구나 갖고 있다는 자격증인 SQLD와 정보처리기사를 취득하는 것이었다. 업계 분위기상 개발 실력이 더 중요하지 자격증 유무는 크게 중요하지 않다고는 하지만, 그래도 다들 갖고 있는 자격증이라면 있어도 나쁠 건 없겠다는 생각이 들었다. 또 같은 실력이라면 자격증이 없는 사람보다 있는 사람이 조금이라도 더 신뢰를 주지 않을까 싶은 마음도 들어서였다. SQLD : 기출 문제를 활용2024년 55회차SQLD는 상대적으로 부담이 적었다. 학교에서 데이터베이스 수업을 들었고, 실무에서도 SQL 쿼리를 사용해서 개발하고 있기 때문이였다. 시험은 크게 1과목 이론부분과 2과목 쿼리 문제로 구성된다.1과목은 전공 서적을 다시 한 번 읽었고, ..
프로젝트 개요 : 이것이 취업을 위한 백엔드 개발이다 클론코딩 - 상품관리 애플리케이션프로젝트 환경 : IntelliJ, SpringBoot, MySQL프로젝트 코드 : https://github.com/smkim9202/ProductManagement 리팩토링과 테스트 코드의 관계리팩토링 : 동일한 입력에 대해 결과의 변경 없이 코드의 구조가 개선되는 것테스트 코드 : 작성한 로직을 테스트하기 위한 코드리팩토링 즉 동일한 입력에 대해 결과의 변경 없이 코드의 구조가 개선되는 것을 확인하는 방법이 테스트 코드테스트코드는 버그가 없는 코드가 아니라 작성한 테스트 코드에 한해 기존과 동일하게 작동한다는 사실만 보장// ProductDto의 생성자를 만들어 주지 않았기 때문에// 아직 다음처럼 ProductD..
프로젝트 개요 : 이것이 취업을 위한 백엔드 개발이다 클론코딩 - 상품관리 애플리케이션프로젝트 환경 : IntelliJ, SpringBoot, MySQL프로젝트 코드 : https://github.com/smkim9202/ProductManagement 애플리케이션 실행 환경각 상황에 따른 의존성 주입애플리케이션 로컬 개발 환경(테스트 환경) : ListProductRepository 사용애플리케이션 서버 환경(서비스 환경) : DatabaseProductRepository 사용 인터페이스 의존코드 변경ProductRepository.java : 인터페이스 정의package kr.co.api.product.management.domain;import java.util.List;public interfac..
프로젝트 개요 : 이것이 취업을 위한 백엔드 개발이다 클론코딩 - 상품관리 애플리케이션프로젝트 환경 : IntelliJ, SpringBoot, MySQL프로젝트 코드 : https://github.com/smkim9202/ProductManagement DB 리포지토리 생성DatabaseProductRepository.javapackage kr.co.api.product.management.infrastructure;import org.springframework.stereotype.Repository;@Repositorypublic class DatabaseProductRepository { private JdbcTemplate jdbcTemplate; @Autowired pub..
프로젝트 개요 : 이것이 취업을 위한 백엔드 개발이다 클론코딩 - 상품관리 애플리케이션프로젝트 환경 : IntelliJ, SpringBoot, MySQL프로젝트 코드 : https://github.com/smkim9202/ProductManagement 데이터베이스 연동DB 생성 SQL상품상품 번호 : 1부터 시작, 추가시 1씩 증가, 동일한 상품 번호 존재 불가상품 이름 : 1~100글자 사이의 문자열, 동일한 이름 상품 존재 불가가격 : 0~1,000,000원 사이의 값상품재고수량 : 0~9,999개 사이의 값// 스키마 목록 보기SHOW DATABASES;// 상품관리 스키마 생성CREATE SCHEMA product_management;// 사용할 스키마 지정USE product_managemen..