본문 바로가기

카테고리75

NPM package.json dependencies, devDependencies npm npm is the world's largest software registry. 라고 npm documentation에서 소개하고 있듯이 npm은 자바스크립트 프로그래밍 언어를 위한 패키지 관리자이다. yarn또한 npm과 같이 js 패키지 매니저이다. package.json 웹 프로젝트 진행 시 npm으로 모듈을 설치하면 생성되는 package.json 파일은 쉽게 말하면 웹 프로젝트의 청사진(설계도면)이라고 보면 된다. 그 이유는 웹 프로젝트의 모든 프로젝트 이름, 프로젝트 버전, npm 게시 여부, 모듈 정보, 프로젝트 명령어(npm script) 등 프로젝트에 대한 모든 정보가 담겨 있기 때문이다. 웹 프로젝트를 공유한다고 가정해보면 아래와 같이 진행될 것이다. 사용자간에 프로젝트를 공유.. 2023. 2. 7.
checkbox, range, range, progress 색상 변경 (css accent-color) accent-color CSS accnet-color 속성은 UI 컨트롤 요소의 accent(악센트) 색상을 변경할 수 있다. 변경되는 accent 색상에 따라 체크요소나 배경색은 시각적으로 확인하기 적절한 색상으로 변경된다. 브라우저는 accent-color속성은 아래와 같은 HTML element에 적용된다. 이 중 체크박스는 accent-color의 색상에 따라 체크 색상이 #3B3B3B 혹은 #FFFFFF으로 변경되는데, 둘 중 시각적으로 확인 하기 좋은 색으로 변경된다. 문법 /* Keyword values */ accent-color: auto; /* values */ accent-color: red; accent-color: #5729e9; accent-color: rgb(0, 200, 0).. 2023. 2. 6.
CSR과 SSR 개념과 차이점 (TTV, TTI) CSR(Client Side Rendering)과 SSR(Server Side Rendering) Client와 Server중 어느 쪽(Side)에서 Rendering을 준비하느냐의 차이이다. CSR 렌더링이 클라이언트 쪽에서 일어난다. 즉, 서버는 요청받으면 클라이언트에 HTML과 JS를 보내준다. 클라이언트는 그것을 받아 렌더링을 시작한다. 클라이언트 측에서 모든 일을 하는것, 처음에는 화면이 비어있다. 장점: 초기 로딩 이후 구동 속도 빠름 서버 측 부하 분산 클라이언트 측에서 연산, 라우팅 등을 모두 처리하기 떄문에 반응속도가 빠르고 UX가 우수함(화면 깜빡임이 없음) TTV와 TTI사이 간극이 없음(동시에 일어남) 단점: 초기 로딩 속도 느림 SEO에 불리함 특징: TTV와 TTI가 동시에 일어.. 2023. 2. 5.
자바스크립트 주소찾기 기능 구현 with 다음 우편번호 API 1. 분석 웹 프로젝트를 진행할 때, 특히 쇼핑몰같이 배송정보가 필요한 웹 프로젝트를 진행하는 경우 필수가 되는 기능인 주소찾기 기능을 구현한다. 그 중 전국의 모든 주소를 개인 DB에 저장하거나 현행화 하는 것이 불가능 하다고 봐야 하는데, 다음(카카오) 우편번호 API가 공개돼 있어서 API key가 없이도 사용이 가능하다. 가이드 페이지에서 아래와 같이 다음 우편번호 API를 소개하고있다. https://postcode.map.daum.net/guide Key를 발급 받을 필요가 없습니다. 사용량에 대한 제한이 없습니다. 기업용이든 상업적 용도이든 상관없이 무료로 사용 가능합니다. 위와 같은 이유에서 웹 프로젝트에 주소 찾기 기능을 구현할 때 디자인 커스텀이 반드시 필요한 경우가 아닌 경우 다음 우.. 2023. 2. 1.
CSS fade in, fade out 효과 구현하기 1. 분석 fade in, fade out 효과를 구현할 때 CSS 속성인 `opacity`와 `transition`을 활용해서 쉽게 구현할 수 있다. 이번 포스팅에선 CSS만 활용해서 효과를 구현할 것이기 때문에 마우스를 오버했을 때 효과가 나타나는 것을 구현한다. .fade-in { width: 100px; height: 100px; background-color: brown; opacity: 0; transition: 0.3s; } .tip1:hover + .fade-in { opacity: 1; } .fade-out { width: 100px; height: 100px; background-color: darkcyan; opacity: 1; transition: 0.3s; } .tip2:hover.. 2022. 5. 25.
Vanilla JavaScript Slider 자바스크립트 자동 슬라이드 구현 1. 분석 이전 무한 슬라이드 구현 포스팅에 이어서 자동 슬라이드를 구현해본다. 외부 라이브러리를 사용하지 않고 순수 자바스크립트만을 이용해 자동 슬라이드를 구현한다. 자동 슬라이드를 구현하기 위해선 기본적인 슬라이드 기능과 무한 슬라이드 기능이 구현된 상태에서 제대로 구현할 수 있다. 자동 슬라이드는 일정한 시간 간격으로 다음 슬라이드를 보여줘야 한다. 즉, 슬라이드 기능에서 다음 슬라이드를 보여주는 함수를 구현했다면 다음과 같이 `setInterval()`함수를 이용해서 일정 시간마다 다음 슬라이드를 보여주는 함수를 실행하도록 하면 된다. // 기본적으로 슬라이드 루프 시작하기 let loopInterval = setInterval(() => { nextMove(); // 다음 슬라이드를 보여주는 함.. 2022. 5. 22.
Vanilla JavaScript Slider 자바스크립트 무한 슬라이드 구현 1. 분석 이전 슬라이드 드래그 구현 포스팅에 이어서 무한 슬라이드 기능을 구현하려 한다. 외부 라이브러리를 사용하지 않고 순수 자바스크립트만을 이용해 무한 슬라이드를 구현한다. 무한 슬라이드를 구현하기 위해선 처음과 마지막 슬라이드에서 이전, 이후로 이동했을 때 자연스럽게 슬라이드가 진행돼야 한다. 예를 들자면 1, 2, 3, 4, 5 슬라이드가 존재할 때 5번에서 다음 버튼을 눌렀을 때 1번 슬라이드를 보여주는 것이다. 따라서 시각적으로 자연스럽게 무한 슬라이드를 구현하기 위해 처음과 마지막 슬라이드를 각각 복제 해서 슬라이드를 보여줄 것이다. 먼저 엘리먼트를 복제한다. 복제하는 단계에서 엘리먼트 태그, 클래스, 앨리먼트 안의 내용을 모두 복사해준다. // 무한 슬라이드를 위해 start, end 슬.. 2022. 5. 21.
Vanilla JavaScript Slider 자바스크립트 슬라이드 드래그(drag), 스와이프(swipe) 구현 1. 분석 이전 슬라이드 페이지네이션 구현 포스팅에 이어서 드래그 기능을 추가한 슬라이드를 구현하려 한다. 이번에도 마찬가지로 Jquery나 다른 API를 사용하지 않고 순수 자바스크립트만을 이용해 슬라이드 드래그(스와이프)를 구현하려 한다. 드래그(스와이프)로 슬라이드를 조작하기 위해서 자바스크립트의 DOM 이벤트(MDN 이벤트 리스트)를 이용한다. 드래그는 PC에서 마우스 버튼 누르기(mousedown), 마우스 버튼 떼기(mouseup) 이벤트를 이용해서 드래그를 구현하고, 스와이프는 모바일기기에서의 터치 시작(touchstart), 터치 끝(touchend) 이벤트를 이용해서 스와이프를 구현한다. 시작 위치(startPoint)와 끝 위치(endPoint)를 각 이벤트마다 할당받아서 시작 위치와 .. 2022. 5. 10.
Vanilla JavaScript Slider 자바스크립트 슬라이드 페이지네이션(pagination) 구현 1. 분석 이전 슬라이드 버튼 구현 포스팅에 이어서 페이지네이션 기능을 추가한 슬라이드를 구현하려 한다. 이번에도 마찬가지로 Jquery나 다른 API를 사용하지 않고 순수 자바스크립트 만을 이용해 슬라이드 페이지네이션을 구현한다. 먼저 페이지네이션을 생성할 때 슬라이드 전체 개수(maxSlide)만큼 반복하여 페이지네이션 엘리먼트를 추가시킨다. 이후 페이지네이션 클릭 시 슬라이드의 이동은 슬라이드 버튼 구현시 left offset을 이용해 슬라이드를 이동시킨것을 똑같이 이용해서 페이지네이션 클릭 시 이동할 수 있게 할 것이다. 페이지네이션을 추가 했으므로 이전, 이후 버튼 클릭시에도 페이지네이션의 위치가 똑같이 연동될 수 있도록 해야한다. 버튼 클릭 이벤트에 구현해놓은 부분에 버튼 클릭으로 이동된 현재.. 2022. 5. 4.
Vanilla JavaScript Slider 자바스크립트 슬라이드 네비게이션 버튼 구현 1. 분석 Jquery나 다른 API를 사용하지 않고 순수 자바스크립트만을 이용해 슬라이드를 네비게이션 버튼을 구현하려 한다. 자바스크립트의 DOM 조작과 CSS의 flex, position을 이용해 구현해본다. 슬라이드 컨테이너, 슬라이드 아이템의 개념을 이해한다. 이전, 이후 버튼 클릭 시 슬라이드 아이템에 left offset을 적용시켜 이동할 수 있도록 구현할 것이다. 이동하는 과정에서 현재 슬라이드 위치를 기억하는 변수를 만들어 첫번째와 마지막 슬라이드 이외로 넘어가지 않도록 조건문을 걸어 슬라이드가 이상하게 작동하지 않도록 예방한다. 2. 구현 결과 미리보기 구현된 버튼 슬라이드는 아래와 같이 작동한다. HTML 삽입 미리보기할 수 없는 소스 3. 구현 3.1. HTML - index.html.. 2022. 5. 3.
CodeUp Python 1173 30분전 1. 문제 확인 codeup python 1173번 문제 30분전 수호는 30분 전으로 돌아가고 싶은 1人 이다. 공백을 기준으로 시간과 분이 주어진다. 그러면 이 시간을 기준으로 30분전의 시간을 출력하시오. 예) 12 35 =====> 12 5 12 0 ======> 11 30 11 5 ======> 10 35 입력 시와 분이 입력된다. ( 시의 범위 : 0~ 23) (분의 범위 : 0~ 59) 출력 입력된 시간의 30분 전의 시간을 출력하시오. 2. 문제 분석 1. 시간(hour)과 분(minute)을 공백(space)를 기준으로 입력받는다. => 파이썬의 기본 입력 `input()`함수를 사용하여 입력받는다. => 수치 계산을 해야 하므로 입력받은 값을 int형으로 형변환한다. => 공백을 기준으.. 2021. 7. 26.
CodeUp Python 1278 자릿수 계산 1. 문제 확인 codeup python 1178번 문제 자릿수 계산 어떤 숫자가 입력되면 그 숫자가 몇 자릿수 숫자인지 알아내는 프로그램을 작성하시오. 예) 7 ----> 1 (1자릿수) 10 ----> 2 (2자릿수) 4322 ----> 4 (4자릿수) 입력 1이상의 자연수 n이 입력된다. (n은 int 범위) 출력 그 숫자가 몇 자릿수 인지 출력하시오. 2. 문제 분석 2.1 숫자형으로 입력받아 풀기 1. n을 입력받는다. => n을 정수형으로 입력받는다. 2. 길이를 입력받을 length를 0으로 초기화한다. => while 반복문을 이용해 length를 증가시킬 것이므로 반복문 시작 전에 0으로 초기화시킨다. 3. n의 자릿수를 구한다. => while문을 이용해 n이 0 이하가 아닌 경우 n을.. 2021. 7. 25.