전체 글
-
[자료구조] 스택(STACK), 큐(QUEUE) 비교/정리 하기!기본 개발 지식/IT개발상식 2023. 5. 26. 17:03
스택(STACK) 1. 스택이란? 스택은 "쌓다", "쌓이다"라는 의미로, 데이터를 차곡차곡 쌓아서 후입선출 형태 즉, LIFO(List In First Out) 의 자료구조 입니다. 위의 이미지와 같이 데이터가 아래에서 부터 순서대로 쌓이며 가장 마지막에 쌓아둔 데이터부터 삭제해나가는 구조를 가졌습니다. 2. 스택의 특징 스택 내부에는 top을 통해서만 접근이 가능합니다. top은 제일 최상위에 위치한 데이터를 반환합니다. 스택에 데이터를 삽입할 때는 push를 이용하여 top 위에 쌓게 됩니다. 스택에서 데이터를 삭제할 때는 pop으로 top에 위치한 데이터를 삭제하게 됩니다. 3. 스택의 장단점 top을 통해 데이터에 접근하기 때문에 접근, 삽입, 삭제가 빠르다. top을 통해서만 접근이 가능하기 ..
-
[JavaScript] 반복문 for...in, for...of의 차이 정리!Frontend Core/JavaScript 2023. 5. 25. 12:27
반복문 반복문 중에서 for 또는 forEach 말고 사용은 해봤지만 자주 사용하지 않아서 헷갈리는 for...in과 for...of를 정리하고 이 둘의 차이점을 알아보겠습니다. for...in문 for...in문은 상속된 열거 가능한 속성들을 포함하여 객체에서 문자열로 키가 지정된 모든 열거 가능한 속성에 대해 반복합니다. (Symbol로 키가 지정된 속성은 무시합니다.)라고 MDN 사이트에 정리가 되어있습니다. 한마디로 for...in문은 객체의 속성들을 순환하면서 작업을 수행하는 것입니다. const object = { a: 1, b: 2, c: 3 }; for (const key in object) { console.log(`${key}: ${object[key]}`); } // output //..
-
[React] 리액트 ref를 prop으로 전달하기 - forwardRef()Framework & Library/React 2023. 5. 22. 22:08
DOM 조작을 위한 ref 전달 리액트에서 ref를 가장 많이 사용하는 경우는 바로 DOM 엘리먼트를 참조하는 것입니다. 하지만 이 ref를 prop를 전달하는 경우, 일반적인 방법으로 되지 않습니다. import React, { useRef } from "react"; const MyInput = ({ ref }) => { return } const MyApp = () => { const inputref = useRef(null) return ( ) } export default MyApp 위의 코드처럼 ref를 전달하게 되면 경고 메시지가 뜨게 됩니다. Warning: Input: `ref` is not a prop. Trying to access it will result in `undefined`..
-
[Vercel] 버셀 프론트 배포 후 새로고침 시 404 에러기본 개발 지식/IT개발상식 2023. 5. 12. 16:01
배포 후 새로고침 리액트 작업을 버셀로 배포 후 정상적으로 작동이 되는데, 라우트 이동 후 중간에 새로고침을 하면 404에러가 나는 것을 발견하였습니다. 이를 해결하기 위해 구글에 서치를 해보았고 해결 방법을 찾았습니다. vercel.json 우선 vercel.json 파일을 만들고 아래의 코드를 입력해주면 아주 간단하게 문제를 해결합니다. 버셀에서 새로고침이 되면 알아서 해당 위치의 라우트로 이동을 시켜줍니다. { "rewrites": [ {"source": "/(.*)", "destination": "/"} ] } 결론 문제를 해결하는 것에 급급하여 코드의 정확한 의미 파악을 하지 못하고 사용을 한 것 같아서 공부가 더 필요하다고 느꼈습니다. 역시 개발 분야는 다양한 문제를 만나봐야...더욱 성장을 ..
-
[React] 로그인 페이지 비밀번호 보기/숨기기 구현하기! - input type 변경Framework & Library/React 2023. 5. 10. 15:15
비밀번호 보기/숨기기 로그인 페이지에서 이제는 필수가 되어버린 기능인 입력하는 비밀번호를 보거나 숨기는 기능을 아주 간단하게 구현을 해보았습니다. 리액트로 작업을 했기 때문에 약간의 차이만 있을 뿐 자바스크립트 코드를 기반으로 하기 때문에 자바스크립트 환경에서도 구현이 가능합니다. 코드 구현 마크업 아래의 코드를 이용하여 위의 이미지처럼 작업을 하였고, 스타일은 module을 이용하여 작업을 했습니다. 해당 스타일 코드는 지금 상황에서 중요한 부분이 아니기 때문에 생략하겠습니다. function app () { const [userIdInput, setUserIdInput] = useState('') const [userPwInput, setUserPwInput] = useState(..
-
[JavaScript] <Script> 태그의 위치는 어디가 좋을까?Frontend Core/JavaScript 2023. 4. 27. 17:07
Script 태그 HTML 파싱 ▶️ JavaScript 파일 다운로드 후 실행 아마 대부분의 경우에 제일 많이 위치하여 사용하는 방법일 겁니다. 자바스크립트 파일을 다운로드하기 전 HTML 코드를 모두 파싱 하기 때문에 사용자가 화면의 내용을 빨리 볼 수 있다는 장점이 있습니다. 하지만 HTML 코드가 자바스크립트 의존적인 웹사이트라면 사용자가 화면을 보기까지에는 똑같이 오랜 시간이 걸릴 수 있다는 단점이 있습니다. 3. async 속성을 추가해 head 태그 안으로 넣기 HTML 파싱 ▶️ JavaScript 파일 만나면 병렬적으로 다운로드 ▶️ JavaScript 파일 다운 완료되면 HTML 파싱 정지 ▶️ JavaScript 파일 실행 ▶️ HTML 이어서 파싱 async 속성을 추가하는 경우에는..
-
[CSS] CSS 형제 선택자 이용해서 메뉴바 애니메이션 만들기! + JavaScriptFrontend Core/HTML & CSS 2023. 4. 26. 21:45
애니메이션 웹사이트에서 메뉴바, 사이드바를 보면 위의 이미지 처럼 밑에 또는 뒤에 바가 애니메이션이 것을 많이 보셨을 겁니다. 그리하여 이번에는 CSS 애니메이션을 공부하고 정리할 겸 위의 이미지에 보이는 메뉴바 애니메이션을 만들어 보았습니다. HTML 메뉴를 만드는 방법은 여러가지의 방법과 다양한 태그로 만들 수 있지만 이번에 중요한 부분은 CSS이기 때문에 간단하게 nav와 div 그리고 애니메이션을 위한 span으로 구성을 하였습니다. 메뉴1 메뉴2 메뉴3 메뉴4 메뉴5 CSS 메뉴바 애니메이션에서 가장 중요한 부분이 바로 CSS입니다. 우선 메뉴들을 옆으로 나열해주기 위해서 flex를 사용하였습니다. nav { position: relative; // 애니메이션을 위한 기준 display: fle..
-
[React] 리액트로 드롭다운 메뉴 만들기! - onBlur를 이용한 사용성 향상!Framework & Library/React 2023. 4. 24. 21:40
드롭다운 메뉴 이번에는 위의 이미지에서 보이는 펼침/닫힘만 되는 간단한 드롭다운 메뉴를 작업해 보았습니다. onClick 이벤트와 useState를 활용하면 간단하고 쉽게 작업을 할 수 있습니다. 하지만 여기서 중요한 부분은 드롭다운 메뉴가 오픈 상태에서 다른 공간 또는 메뉴를 클릭하면 드롭다운이 닫혀야 한다는 것 입니다. 그러기 위해서는 onBlur 이벤트를 활용해야합니다. onBlur onBlur 이벤트는 엘리먼트 또는 자식 엘리먼트에서 포커스가 사라졌을 때 호출됩니다. console.log('blur!!')} 예를 들면 위의 input 바깥의 영역을 클릭해서 포커스카 아웃이 되면 콘솔 창에 'blur!!!'가 찍히게 됩니다. 코드구성 Container.jsx const ..