본문 바로가기

Hello! I'm haein, a junior front-end developer. Welcome to my space.
간단한 자기소개 '◡'
안녕하세요. 정리하는 것이 주특기이고, 인문논술로 대학을 가서 나름 글쓰기에 자부심(?)이 있는 주니어 개발자입니다. 개발 공부를 하면서 좀 더 정돈된 기록을 해보고 싶어서 블로그를 시작하게되었습니다. 게시글 하나하나 정말 정성스럽게 열심히 썼구요. 되도록이면 공식문서를 참고해서 객관적이고 정확한 정보를 작성하려고 노력했습니다. 그리고 제가 이해가 될 정도로 디테일하게 서술해서 웬만한 사람들도 이해가 가능할 것이라는것이 저의 뇌피셜입니다. 아무쪼록 저의 글을 읽는 사람들이 어떤 방향으로든 도움이 되셨으면 좋겠습니다. 참고로 연보라, 연핑크를 좋아하구여, 그라데이션도 좋아합니다. 그래서 내 취향에 맞게 커스텀 했습니다 ㅎㅎㅎ MBTI는 ISTJ입니다. 너무 TMI라서 toggle로 해뒀습니다. 궁금한 사람들은 펼쳐보시겠죠?

Libraries/React

(42)
[React] children 정말 쉽게 이해하기 왠지 모르게 이해가 잘 안되고 어려운 children에 대해서 이해 하기 쉽게 알아보자!      1. "children" 이란?  children은 리액트 컴포넌트의 특수한 props로, React element 객체들로 구성된 배열이다.부모 컴포넌트의 태그 안에 작성된 모든 내용을 자식 컴포넌트가 props로써 받을 수 있게 해준다.children을 통해 부모 컴포넌트가 자식 컴포넌트에 HTML이나 다른 컴포넌트를 중첩해 넣는 것이 가능해진다. 만약, props에 대해서 잘 모른다면 아래의 게시글을 봐주세요!https://dev-ini.tistory.com/63     2. children가 유용한 상황  1) 공통 레이아웃 구성: 반복적으로 사용되는 레이아웃을 정의하면서, 그 안에 들어갈 내용을 동..
[React] KAKAO(카카오) 지도 API 사용법, 웹에 카카오맵 불러오는 법 KAKAO 지도 API를 사용해서 카카오맵을 불러오는 법을 알아보자!     만들 예제의 완성본  - 마커(파란색 핀)로 해당 장소의 위치를 표시 - 마커 위에 인포윈도우를 표시 (상호명, 큰지도보기, 길찾기)- 지도 확대/축소를 설정할 수 있는 줌 컨트롤을 생성- 지도를 마우스 드래그로 이동 가능- 일반 지도와 스카이뷰로 지도 타입을 전환할 수 있는 지도 타입 컨트롤을 생성 - 마우스 휠 확대/축소는 비활성화   구현된 카카오맵 사용 영상       1. 카카오 개발자(developers) 사이트에 방문한다.  https://developers.kakao.com/ Kakao Developers카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공..
[React] 리액트로 라디오 버튼(Radio button) 만들기 (신고 모달창 만들기) 리액트로 라디오 버튼을 만들어보자!       만들 예제의 완성본  - 버튼이나 텍스트를 클릭하면 버튼이 파란색으로 바뀐다.- 버튼을 hover 하면 버튼 테두리가 회색으로 바뀐다.      Radio 컴포넌트 만들기  Radio 컴포넌트는 개별 라디오 버튼을 나타낸다. 라디오 버튼은 HTML에서  요소의 type 속성을 radio로 설정해주면 얻을 수 있다.라디오 버튼은 여러 개의 선택 사항 중에 사용자로 부터 하나를 선택받기 위해서 사용된다. 텍스트를 클릭햇을 때도 라디오 버튼이 선택될 수 있도록 하려면,  요소로  요소와 children prop 모두 감싸주면 된다.  Radio.jsx import "./Radio.css";export const Radio = ({ children, value, n..
[React] 리액트로 서버에 데이터 요청하는 방법 (fetch, axios.then, async/await 사용하기) 목차 1. 서버 만들기 2. React 설치하기 3. 서버에 대이터 요청하는 방법 2가지4. fetch로 통신하기 5. 라이브러리(axios)를 사용해서 통신하기 6. async/await 이용하기7.  async/await과 axios.then() 차이점     리액트로 서버에 데이터를 요청하는 방법을 알아보자!       1. 서버 만들기  서버에 데이트를 요청하려면 서버가 있어야한다. 이해를 위해 직접 서버를 만들어보자! (express를 이용할 것이다)  1. 폴더 기본 구성하기  폴더 기본 구성은 아래와 같다.    2 . 터미널에서 server 폴더로 이동한다.      3. node.js 프로젝트를 하니까 npm init을 해서 package.json을 만들어준다.      4. npm i ..
[React] 스크롤 top 버튼 기능 구현하기 스크롤을 맨 위로 올리는 top 버튼을 만들어보자! 생각보다 코드가 매우 간단하다. 만들 예제의 완성본 1. 리스트 페이지를 만든다. List.jsx import "./List.css"; const List = () => { const dummyList = [ { id: 1, title: "1번", }, { id: 2, title: "2번", }, { id: 3, title: "3번", }, { id: 4, title: "4번", }, { id: 5, title: "5번", }, { id: 6, title: "6번", }, { id: 7, title: "7번", }, { id: 8, title: "8번", }, { id: 9, title: "9번", }, { id: 10, title: "10번", }, ..
[React] 작성 날짜 기준으로 지난 시간을 변환하기 (리뷰시간, 게시글 시간, 댓글시간, 방금전, 몇분전, 몇시간전, 며칠전) 작성날짜 기준으로 지난 시간을 계산해주는 코드를 구현해보자! 아래의 게시글을 참고한 다음 이 게시글을 보면 이해가 훨씬 더 빠릅니다! https://dev-ini.tistory.com/110 [Javascript] 시간 변환 함수 (newDate, getTime, toLocaleString, , toLocaleDateString, toLocaleTimeString) 시간 변환 함수에 대해서 알아보자! new Date() - Date 생성자는 특정 지점을 나타내는 Date 객체를 생성한다. - Date 객체는 1970년 1월 1일 UTC(국제표준시) 자정으로부터 지난 시간을 밀리초로 나타내는 dev-ini.tistory.com 활용 예시 이 게시글을 활용하면 아래와 같이 구현이 가능하다. 리뷰를 작성하면,..
[React] 중복된 useState 상태 및 함수 코드 정리하기, 컴포넌트 분리하기 중복된 useState 상태 및 함수코드 정리하는 방법을 알아보자! 만들 예제의 완성본 4개의 버튼을 누르면 각각의 색깔이 연보라에서 진보라로 바뀌게 한다. 1. App.js에 MbtiButton 컴포넌트를 import한다. App.js import { MbtiButton } from "./MbtiButton"; import "./styles.css"; export default function App() { return ( ); } 2. MbtiButton.jsx를 마크업한다. MbtiButton.jsx import "./MbtiButton.css"; import LightPurpleE from "./assets/E-light-purple.png"; import LightPurpleI from "./a..
[React] Routing (5) 데이터에서 route 설정하기 더미데이터에서 route 설정하는 법을 알아보자! 구현해야할 것 메인페이지에는 먹거리, 볼거리, 놀거리, 카페, 테마카페가 있다. 각각의 항목에 맞는 개별 페이지로 이동하게 해야한다. 예컨대, 먹거리를 누르면 한식, 중식, 일식, 양식, 치킨 , 패스트푸드가 담긴 페이지가 뜨게끔 route를 설정해야한다. 메인페이지 (Main.jsx) 하위 카테고리 페이지 순서 1. App.js에 route를 설정한다. 메인, 먹거리, 볼거리, 놀거리, 카페, 테마카페 총 6개의 route를 설정한다. 2. main.js에다가 더미 데이터를 만들 때, 각각의 항목에 맞는 route를 설정해준다. 2. 메인페이지(Main.jsx)에서 main.js 데이터를 보라색 박스 컴포넌트에다가 map 돌린다. 3. 보라색 박스 컴포..