야놀자 13

패스트캠퍼스x야놀자 웹 프론트엔드 부트캠프 미니프로젝트 리팩토링

리팩토링 내용 2주간의 프로젝트 기간이 끝나고 다시 2주동안 리팩토링을 진행하기로 했다. 전에는 객실(룸) 이미지가 없었기에 기본 숙소 이미지로 대체했었지만, 이번엔 오픈 api에서 더 많은 정보를 불러와서 해당 내용들을 추가하는 방식으로 진행하기로 했다. 내가 진행한 리팩토링 내용은 다음과 같다. 카카오맵 API 추가 -> 숙소 위치 마커 렌더링 마커 클릭 시 커스텀 오버레이 렌더링 -> 클릭 시 길찾기 페이지 생성 숙소상세정보 API 변경에 따른 추가 정보 get 객실 추가 정보 처리 장바구니 API 변경에 따른 로직 처리 예약하기 API 변경에 따른 로직 처리 리팩토링 기간 2023년 12월 4일 ~ 2023년 12월 15일 결과물 - 객실 이미지 슬라이더 구현 - 이미지 없을 시 기본 이미지 렌더..

패스트캠퍼스x야놀자 웹 프론트엔드 부트캠프 미니프로젝트 회고

프로젝트 내용 패스트캠퍼스x야놀자 웹 프론트엔드 부트캠프 미니프로젝트를 진행했다. 주제는 다음과 같다. 본 프로젝트는 숙박 예약 서비스를 완성하는 것을 목표로 함 본 프로젝트의 개발 범위는 다음과 같다 - 회원 인증 ◼ 회원가입 ◼ 로그인 - 상품 조회 ◼ 전체 숙박 상품 목록 조회 (옵션) 카테고리를 임의 생성하여 분류하여 출력 ◼ 개별 숙박 상품 상세 소개 - 상품 선택 및 장바구니 담기 ◼ 숙박 상품 옵션 선택 ◼ 장바구니 담기 ◼ (또는) 바로 결제하기 - 장바구니 ◼ 장바구니 보기 ◼ 장바구니에서 주문하기 버튼 클릭 시, 예약(주문) 페이지로 이동 - 예약(주문) 하기 ◼ 만 14세 이상 이용 동의 (상세 설명서 X, 체크박스로만 간단히 처리) ◼ 결제하기 버튼 클릭 시, 상품을 주문한 것으로 ..

리액트 기초

전개연산자란? 특정 객체 또는 배열의 값을 다른 객체, 배열로 복제하거나 옮길 때 사용 배열 조합 const arr1 = [1,2,3]; const arr2 = [4,5,6]; const arr3 = [7,8,9]; const arrWrap = [...arr1, ...arr2, ...arr3]; 객체 조합 const obj1 = { a: 'A'; b: 'B'; } const obj2 = { c: 'C'; d: 'D'; } // 객체 자체가 들어감 const objWrap = {obj1, obj2}; // 객체 자체가 아닌 각각의 값 할당 const objWrap2 = {...obj1, ...obj2}; 전개연산자를 사용하면 기존 배열을 보존할 수 있음 const arr1 = [1,2,3]; const a..

첫 번째 과제 - HTML/CSS를 이용한 웹사이트 메인페이지 클론코딩

첫 번째 과제로 'HTML/CSS를 이용한 웹사이트 메인페이지 클론코딩'을 진행했다. JS 사용은 권장이었고 필수사항은 HTML과 CSS를 이용해서 메인페이지를 만드는 것이었다. 나는 당근마켓 웹사이트를 만들었고 그 과정에서 알게 된 사실과 어려웠던 점을 적어보려 한다. 내가 만든 웹사이트는 https://aquamarine-mousse-e4a8fd.netlify.app/ 이 주소에서 확인할 수 있다. 나는 수업에서 배운대로 우선 header, main, footer로 영역을 나눠서 개발을 진행했다. header 부분부터 살펴보자. 당근마켓 메인페이지의 헤더는 다음과 같이 구현되어있다. 왼쪽 섹션에는 로고가, 가운데 섹션에는 리스트들이, 오른쪽 섹션에는 서치바와 채팅버튼이 있다. 따라서 나는 header..

JavaScript 마스터 - Ch06 표준 내장 객체

6장에서는 표준 내장 객체에 대해 배웠다. Ch06 표준 내장 객체 문자 - .includes() 대상 문자에 주어진 문자가 포함되어있는지 확인 소괄호 안에 콤마(,)로 구분해 뒤에 숫자를 넣어주면 해당하는 인덱스부터 검사 console.log(str.includes('Hello')) // true console.log(str.includes('hello')) // false - 대소문자 구별 // 0번째 지점부터 주어진 문자가 들어있는지 판단 console.log(str.includes('Hello', 0)) // true console.log(str.includes('Hello', 1)) // false(e부터 검사하므로) 문자 - .indexOf() 대상 문자에서 주어진 문자와 일치하는 첫 번째 인..

JavaScript 마스터 - Ch05 클래스

5장에서는 클래스 개념에 대해 배웠다. 정리를 시작해보자 Ch05 - 클래스 prototype 배열 리터럴: 기호를 통해 생성 const fruits = ["apple", "banana", "cherry"] 기호를 사용한 리터럴 방식: [](배열데이터), {}(객체데이터), ''(문자데이터) new 키워드로 실행하는 함수: 생성자 함수 - 인스턴스 length, includes - prototype 메소드(속성) const fruits = new Array("apple", "banana", "cherry") console.log(fruits) console.log(fruits.length) console.log(fruits.includes("banana")) // true console.log(fruit..

JavaScript 마스터 - Ch04 함수

Ch04에서는 JS 함수에 대해 배웠다. JS를 4년전에 잠깐 배우고 손을 놨어서 좀 꼼꼼히 공부하는 중인데 함수 파트도 열심히 복습할 예정이다. Ch04 - 함수 함수를 선언하는 방법 함수를 선언하는 방법으로는 함수 선언문과 함수 표현식이 있다. // 함수 선언문 function hello() { } // 함수 표현식 const hello = function () { } 함수 선언문의 경우 선언이 호출보다 아래 적혀있어도 에러 없이 잘 동작함 이를 '호이스팅'이라 함(함수 표현식에서는 불가능!) hello2() function hello2() { console.log("hi!") } 반환 및 종료 return 키워드는 데이터 반환 뿐 아니라 함수 동작 멈충 기능 제공(return 다음에 코드써도 동작 ..

JavaScript 마스터 - Ch03 연산자와 구문

2주차 온라인 강의에서는 JS 연산자와 구문, 함수, 표준 내장 객체에 대해 배웠다. Ch03 - 연산자와 구문 할당, 증감연산자 // 할당(Assignment) // const: 재할당 x, let: 재할당 o // const a4 = 3 // a4 = a + 2 let a4 = 3 a4 += 2 console.log(a4) // 증감연산자(Increment * Decrement) let a5 = 3 let a6 = 6 let a7 = 9 console.log(a5++) // 3 console.log(a5) // 4 console.log(++a6) // 7 console.log(a6) // 7 console.log(--a7) // 8 a7 -= 1 console.log(a7) // 7 비교 연산자 co..

JavaScript 마스터 - Ch02 JS 데이터

JS 기초에 대해 배웠다. 헷갈리는 개념 위주로 정리를 하려한다. defer HTML의 바디 부분에 존재하는 태그를 자바스크립트를 통해 사용하려면 main.js가 html 구조를 다 해석한 뒤에 동작하도록 만들어야하는데 이때 사용하는 속성 String, Number const string1 = "Hello" const string2 = 'Hello' // 백틱(`): 보관용도(데이터 넣기)로 사용 // 템플릿 리터럴: 기호를 통해 데이터를 만드는 방식(백틱을 통해 문자데이터를 만드는 것) const string3 = `Hello ${string1} ?!` // 부동소수점 오류 const a = 0.1 const b = 0.2 console.log(a+b) // 0.300...4 // toFixed(a):..

마크다운 사용법

마크다운(markdown) 사용법에 대해 배웠다. 제목(header) #, ##, ###, ####, #####, ######를 사용해서 나타낼 수 있고 # 개수가 많아질수록 글씨 크기가 작아진다. 줄바꿈(Line Breaks) 태그를 사용 강조(Emphasis) 기울이기: _글씨_ 두껍게: **글씨** 취소선: ~~글씨~~ 밑줄: 글씨 목록(List) 1. 순서가 필요한 목록1 1. 순서가 필요한 목록2 1. 순서가 필요한 목록3 1. 순서가 필요한 목록3-1 1.순서가 필요한 목록3-2 1. 순서가 필요한 목록4 이렇게 다 1로 작성해도, 1. 순서가 필요한 목록1 2. 순서가 필요한 목록2 3. 순서가 필요한 목록3 3-1. 순서가 필요한 목록3-1 3-2. 순서가 필요한 목록3-2 4. 순서가 필..