일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- javascript
- 프론트엔드스쿨
- Absolute
- react
- http
- position
- HTML
- 멋쟁이사자처럼
- display
- 선언
- 선택자
- Inline
- 변수
- terminal
- block
- 조건문
- object
- LIKELION
- STYLE
- ubuntu
- Project
- True
- 리액트
- boolean
- false
- js
- array
- API
- function
- CSS
- Today
- Total
목록전체 글 (90)
Jeden Tag, aufrichtig und lustig.
1. 커스텀 훅(Custom Hooks)이란? 커스텀 훅은 React에서 로직을 재사용하기 위한 기능이다. React 컴포넌트는 상태(state)와 생명주기(lifecycle) 메서드를 가지고 있지만, 특정 로직을 다른 컴포넌트에서도 재사용하고 싶을 때 커스텀 훅을 활용할 수 있다. 커스텀 훅은 use 접두사로 시작하는 함수로 구성됩다. 예를 들어, useEffect는 React에서 제공하는 기본 훅이며, 컴포넌트의 부수 효과를 처리하는 로직을 담당한다. 마찬가지로 개발자가 직접 커스텀 훅을 만들어 필요한 로직을 작성할 수 있다. 커스텀 훅을 사용하면 로직을 분리하여 컴포넌트를 더 간결하고 읽기 쉽게 유지할 수 있으며, 로직의 재사용성과 테스트 용이성도 향상된다. 2. 커스텀 훅 사용하는 이유 커스텀 훅..
프로젝트를 진행 할 때 form작업을 자주 하게 된다. CDN을 활용해서 리액트에서 폼을 만들 때 유용한 정보를 아래에 정리해보았다. Form submit 사용자가 폼을 제출 할 때 특정 사이트(ex.여기어때)로 연결하여 검색값을 받아 올 수 있게 하려면 input의 name 프로퍼티를 활용 할 수 있다. input에 name 속성을 활용 할 때는 key를 설정해야한다. 설정하는 key 이름은 폼을 제출(submit) 할 때 실행되는 action 주소의 쿼리스트링에 따라 달라진다. 아래와 같은 경우는 물음표('?') 뒤 쿼리스트링이 'keyword'이기 때문에 input name프로퍼티의 value값을 'keyword'로 설정하면 된다. 이렇게 하면 쿼리스트링의 key값으로 keyword가 지정되고 va..
1. 발생 이슈 새로운 블록이 추가되는 기능을 구현하던 도중 컴포넌트의 key값과 관련하여 문제가 발생했다. 블록 추가 버튼을 눌렀을 때 기대했던 것은 한개의 블록이 추가되는 것이었는데, 실제로는 동일한 idx값을 가진 두 개, 세 개, 때로는 네 개의 다수의 블록이 동시에 추가되는 현상이 발생했다. 빠르게 버튼을 연타하지도 않았기 때문에 블록의 상태 관리와 추가되는 새 블록의 상태관리 로직을 살펴보고 콘솔로도 확인을 해보며 디버깅을 했다. 2. 문제 이유 블록이 렌더링 될 때마다 key값이 새로 할당 되는 로직이 문제였다. 리액트에서는 key라는 속성을 활용해서 자식 컴포넌트들을 유니크하게 식별한다. 그렇기 때문에 렌더링할 때마다 모든 블록 컴포넌트의 key 값이 변경 되면 리액트가 올바르게 컴포넌트를..
최근에 React로 프로젝트를 진행하며 PropTypes을 사용해봤다. 사용하면서 알게되고 느낀점을 정리해보고자 한다. 1. 프롭타입을 사용한 이유 React로 개발하면서, 프롭스를 활용하여 데이터를 전달하였다. 그런데, 프롭스가 객체 타입인 줄 알았는데 문자열 형태로 전달되는 등 자바스크립트의 동적인 연산 등으로 예상치 못한 데이터 타입이 전달될 때 렌더링이 안되는 문제가 종종 발생했다. 타입스크립트를 적용하여 타입을 명시할까 고민도 해봤지만 팀내에서 타입스크립트를 활용해본 팀원이 없었기에, 팀원 모두 프로젝트 도중 배워서 적용하는 것은 어려울 것 같았다. 다른 방법을 찾다보니 타입스크립트보다 비슷한 용도로 활용할 수 있으며, 쉽게 사용가능한 PropTypes을 알게 되어 프롭타입이 중요하다고 생각한 ..
1. Progress bar? 성격유형 검사지를 만들면서 테스트 진행도를 사용자가 알면 사용자 경험에 좋을 것 같아 프로그레스바를 작업해봤다. 구현 할 때 시맨틱하게 마크업을 하고 싶어서 관련 태그가 존재하는지 찾아봤는데, progress라는 태그가 있다는 것을 알게 됐다. 아래 사이트를 참고했다. https://www.w3schools.com/w3css/w3css_progressbar.asp W3.CSS Progress Bars W3Schools offers free online tutorials, references and exercises in all the major languages of the web. Covering popular subjects like HTML, CSS, JavaScrip..
간편한 import를 위해 기본 import 주소를 src로 지정 할 수 있다. 아래와 같이 입력한 jsconfig.json 파일을 최상위에 생성 하면 된다. "compilerOptions": { "baseUrl": "src" }, "includes": ["src"] } 아래와 같은 에러가 발생 할 수도 있다. > 파일 /private/var/folders/~/~/ Code.app/~/node_modules/typescript/lib/lib.d.ts을(를) 찾을 수 없습니다. > 파일은 다음과 같은 이유로 프로그램에 있습니다. 대상 es3의 기본 라이브러리 사용 할 JS 문법 버전을 선택하는 옵션인 target을 최신 문법을 뜻하는 esnext로 설정하면 오류가 해결 된다. { "compilerOptio..
터미널에서 열고자 하는 폴더(ex. basic)로 이동한 후에 code . 명령어로 vscode를 열려고 할 때, 아래와 같은 오류를 마주한다면? 폴더 경로 basic % code . command not found: code vscode를 열고 Command(Ctrl) + Shift + p 를 단축키를 누르고 입력창에 shell을 입력한 후, Shell Command: Install 'code' command in PATH 를 선택. 다시 터미널에서 code . 시도하면 vscode가 열리는 것을 확인 할 수 있다!
1. 프로젝트를 하게 된 배경 리액트를 공부하는 용도로 youtube api를 활용해서 youtube를 구현해보았다. 다른 작업과 병행하다보니 기획부터 배포까지의 총 작업기간은 6일정도 소요되었다. 2. 배운 점 및 느낀 점 이번 프로젝트를 통해 새롭게 배우고 경험한 것은 크게 6가지다. youtube api 활용 mock 데이터 생성 및 활용 React에서의 테일윈드 CSS 적용 폴더구조와 url 구조 기획 MVP 형태 개발 .env 활용 프로젝트에서는 아래의 4가지 api를 활용하였다. 인기 동영상 데이터 검색 키워드에 따른 데이터 연관된 동영상 데이터 채널 데이터 일목요연하게 api가 정리 되어 있어서 필요한 api를 쉽게 찾을 수 있고, 필요한 데이터 수도 간편하게 지정할 수 있다. 다만 불편한 ..
1. 개념 페이지네이션은 페이지를 이동하고 싶을 때 사용하는 것이다. 최근에 페이지네이션을 리액트로 구현해봤다. 구현해보면서 사용한 로직을 정리해보았다. 2. 적용 코드 아래 Wiki 컴포넌트는 페이지네이션과 페이지네이션을 적용할 글 목록 리스트를 리턴해주는 컴포넌트다. const Wiki = () => { const [wikiList, setWikiList] = useState(""); const [limit, setLimit] = useState(5); const [page, setPage] = useState(1); const offset = (page - 1) * limit; const getWiki = async () => { const res = await getWikiAxios(); setW..
1. 에러 발생 상황 json-server 설치 중에 아래와 같이 에러가 발생했다. 2. 해결방법 code EACCES와 syscall rename을 키워드로 구글링을 해보니 json-server를 전역(-g)으로 설치해서 권한 문제가 발생한 것을 알 수 있었다. 설치 명령어 전에 sudo를 입력 하고 엔터치고, 맥북 패스워드를 입력하여 해결했다. sudo npm i -g json-server 이후 펀딩을 요구하는 메세지 발생했다. npm fund 명령어를 입력하면, 펀딩 대상 목록이 나온다. 아래 명령어를 입력하여 해결했다. npm install --no-fund 3. 결론 전역으로 프로그램을 설치해서 권한 문제가 발생하는 경우, 앞에 sudo 단어를 붙이자!