๋ชฉ๋ก๐ซถ๐ป console.log(coding) ๐ซถ๐ป (244)
๐ค ์์งlog ๐ค
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/dk6Eri/btszuKPsrN8/vrpZhEka5mCLmug48KlLL0/img.gif)
์นด์นด์ค์์ ์ ๊ณตํ๋ ์ฐํธ๋ฒํธ ์๋น์ค ๋ฅผ ๋ฆฌ์กํธํ๊ฒฝ์์ ์กฐ๊ธ ๋ ๊ฐํธํ๊ฒ ์ด์ฉํ ์ ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์์ด์ ์ฌ์ฉํด๋ดค๋ค ใ ! npm i react-daum-postcode ์๋ฒ ๋ ํด์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ ๊ณผ ํ์ ๋ฐฉ์์ผ๋ก ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ด ์๊ณ , ๋๋ ํ์ ๋ฐฉ์์ผ๋ก ๊ตฌํํด๋ณด์๋ค. โ ์ ์ฒด ์ฝ๋ import React, { useState } from "react"; import styled from "styled-components"; import { useDaumPostcodePopup } from "react-daum-postcode"; import { postcodeScriptUrl } from "react-daum-postcode/lib/loadPostcode"; const PostCode = () => {..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/BvPfN/btszlvsAHwx/K3US9hL3egAvsbZaWktEX0/img.png)
form ํ๋์ value๋ฅผ ์ฌ์ฉํ๋ฉด์ onChange ํธ๋ค๋ฌ๋ฅผ ์ค์ ํ์ง ์์ ๋ฐ์ํ๋ ์๋ฌ โ ํด๊ฒฐ๋ฐฉ๋ฒ 1. onChange ํธ๋ค๋ฌ ์ค์ const onChange = () => { // onChange ์ด๋ฒคํธ } 2. defaultValue ์ต์ ์ค์ : value ์ต์ ์ defaultValue๋ก ๋ณ๊ฒฝ 3. readonly ์ต์ ์ถ๊ฐ
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/GUIId/btszeIeCs1E/CENqgiNSPEp5FtljZpfKC0/img.png)
ํ๋ก๊ทธ๋๋จธ์ค Lv.0 - ์ ์ ์์น ๊ตฌํ๊ธฐ ๐ ๋ฌธ์ ์ค๋ช ์ฌ๋ถ๋ฉด์ ํ ํ๋ฉด์ x์ถ๊ณผ y์ถ์ ๊ธฐ์ค์ผ๋ก ๋๋ ๋ค ๋ถ๋ถ์ ๋๋ค. ์ฌ๋ถ๋ฉด์ ์๋์ ๊ฐ์ด 1๋ถํฐ 4๊น์ง ๋ฒํธ๋ฅผ๋งค๊น๋๋ค. x ์ขํ์ y ์ขํ๊ฐ ๋ชจ๋ ์์์ด๋ฉด ์ 1์ฌ๋ถ๋ฉด์ ์ํฉ๋๋ค. x ์ขํ๊ฐ ์์, y ์ขํ๊ฐ ์์์ด๋ฉด ์ 2์ฌ๋ถ๋ฉด์ ์ํฉ๋๋ค. x ์ขํ์ y ์ขํ๊ฐ ๋ชจ๋ ์์์ด๋ฉด ์ 3์ฌ๋ถ๋ฉด์ ์ํฉ๋๋ค. x ์ขํ๊ฐ ์์, y ์ขํ๊ฐ ์์์ด๋ฉด ์ 4์ฌ๋ถ๋ฉด์ ์ํฉ๋๋ค. x ์ขํ (x,y)๋ฅผ ์ฐจ๋ก๋๋ก ๋ด์ ์ ์ ๋ฐฐ์ด dot์ด ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง๋๋ค. ์ขํ dot์ด ์ฌ๋ถ๋ฉด ์ค ์ด๋์ ์ํ๋์ง 1, 2, 3, 4 ์ค ํ๋๋ฅผ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์. ๐ ์ ํ์กฐ๊ฑด dot์ ๊ธธ์ด = 2 dot[0]์ x์ขํ๋ฅผ, dot[1]์ y์ขํ๋ฅผ ๋ํ๋ ๋๋ค ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/mwWSR/btszeh1WMXz/Fa3BJSoYkdKyUCgdPqorU1/img.gif)
๊ฒ์ํ css๋ bootstrap์ ์ฌ์ฉํ์๊ณ ์ด ๊ธ์ crud๊ณผ์ ๋ง ์ ๋ฆฌํ ๊ธ ์๋ฏธ๋ฑ.. !๐ ๐ json-server RestApi๋ json-server์ ์ฌ์ฉํ์ต๋๋ค ! GitHub - typicode/json-server: Get a full fake REST API with zero coding in less than 30 seconds (seriously) Get a full fake REST API with zero coding in less than 30 seconds (seriously) - GitHub - typicode/json-server: Get a full fake REST API with zero coding in less than 30 seconds (seriously) g..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/pXIP5/btsyTtN3qTf/UvcB3I1kPlth2YuGiBOhz1/img.gif)
React ์ํด์ด์์ง๋ง ๋ฌ๋์ปค๋ธ๊ฐ ๋ฎ๊ณ ์ฝ๋ค๋ ์๊ธฐ์ vue ๊ณต๋ถ๋ฅผ ์์ํด ๋ดค๋๋ฐ ๋จ๋ ๐น ๋๋ฌด ์ฝ์๋,, ๊ฐ๋จํด ,, ์ด๊ฒ ๋ญ๋ ,, ์ ์ด์ ์ ๊ฑฐ์ง ,, ๋ฌผ๋ก ๋ฆฌ์กํธ๋งํผ ๊น๊ฒ ํ๊ณ ๋ ๊ฑด ์๋์ง๋ง ๊ณต๋ถํ๋ ๋ด๋ด ์ฌ๋ฏธ์์๋ค ใ _ใ ! ์ฝ๋ฉ์ ํ๋ ๊ฐ์ ์ค ๋ฌด๋ฃ๊ฐ์ ๋ถ๋ถ๋ง ๋ณด๊ณ ์กฐ๊ธ ๊ณต๋ถํด ๋ดค๋ค. ๐ ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉ { { } } : 1. script ํ๊ทธ ๋ด์ data( ){ return { } } ๋ฐ์ดํฐ์ ์ฅ์๋ฅผ ๋ง๋ค์ด ๋๊ณ object์๋ฃ ํ์์ผ๋ก ์์ฑ ํ { { ๋ฐ์ดํฐ์ด๋ฆ } } 2. HTMLํ๊ทธ ์์ฑ๋ ๋ฐ์ดํฐ๋ฐ์ธ๋ฉ๊ฐ๋ฅ -> ์์ฑ ์์ : ๋ถ์ฌ์ฃผ๋ฉด ๋จ ex) :์์ฑ="๋ฐ์ดํฐ์ด๋ฆ" {{ products[0] }} ๐ 70๋ง์ {{ products[1] }} 50๋ง์ {{ products[2] }} 100๋ง์ ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/dr5sfj/btsyNpyA5jz/vMJJ8ll3pyoH9oVyyx8KS0/img.gif)
import { useCallback, useRef, useState } from "react"; import Webcam from "react-webcam"; import styled from "styled-components"; const CustomWebcam = () => { const webcamRef = useRef(null); const [imgSrc, setImgSrc] = useState(null); const [mirrored, setMirrored] = useState(true); const capture = useCallback(() => { if (webcamRef.current) { const imageSrc = webcamRef.current.getScreenshot(); se..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/cujeo7/btsyqvsjfzz/2JQ5ScVRn7AHrymGm874u1/img.gif)
๊ธฐ์กด์ NodeJS๋ก ๋ง๋ค์ด๋ ์๋ฒ์์ ๋ฐ์ดํฐ๋ฅผ get ํด์์ ํ๋ก ํธ์์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ์ง์ ๋ฌดํ์คํฌ๋กค์ ๊ตฌํํด๋ณด์๋ค. ์์ ์ ํด๋ดค๋๊ฑด๋ฐ ๋ค์ ํ๋ ค๋ ํท๊ฐ๋ฆฌ๊ธฐ ์์ ...๐ต๐ซ ; ๊ทธ๋๋ ์ด์ฐ์ด์ฐ ๊ตฌํ์ ํด๋ณด์๋ค .. ์คํฌ๋กค์ด ์์ง์ด๋ฉด ๋ฐ์ดํฐ๋ฅผ ๊ณ์ ํด์ ๋ถ๋ฌ์จ๋ค. ( + ์คํฌ๋กค์ด ๋ฐ๋ฅ์ ๋ฟ์ผ๋ฉด ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฌ์ค๋ ์ฝ๋๋ ๊ตฌํ์์ ) // useGetFruits.ts import axios from "axios"; import { useInfiniteQuery } from "react-query"; const fetchFruits = async () => { const { data } = await axios.get(`http://localhost:8080/fruits`); return data..
ํ๋ก๊ทธ๋๋จธ์ค Lv.0 - ์ค๋ณต๋ ์ซ์ ๊ฐ์ ๐ ๋ฌธ์ ์ค๋ช ์ ์๊ฐ ๋ด๊ธด ๋ฐฐ์ด array์ ์ ์ n์ด ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, array์ n์ด ๋ช ๊ฐ ์๋ ์ง๋ฅผ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด๋ณด์ธ์. ๐ ์ ํ์กฐ๊ฑด 1 ≤ array์ ๊ธธ์ด ≤ 100 0 ≤ array์ ์์ ≤ 1,000 0 ≤ n ≤ 1,000 ๐ ๋ฌธ์ function solution(array, n) { var answer = 0; return answer; } ๐ ํ์ด function solution(array, n) { return array.filter(x => x === n).length; } ๋ฐฐ์ด์ ๊ฐ ์์ x๊ฐ ์ ๊ณต๋ ์ซ์ n๊ณผ ๊ฐ์์ง ํ์ธํํ, ์์๊ฐ n๊ณผ ๊ฐ์ผ๋ฉด true๋ฅผ ๋ฐํํ๊ณ ๊ทธ๋ ์ง ์์ผ๋ฉด false๋ฅผ ..
ํ๋ก๊ทธ๋๋จธ์ค Lv.0 - ๋ฌธ์์ด ๋ค์ง๊ธฐ ๐ ๋ฌธ์ ์ค๋ช ๋ฌธ์์ด my_string์ด ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง๋๋ค. my_string์ ๊ฑฐ๊พธ๋ก ๋ค์ง์ ๋ฌธ์์ด์ returnํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์. ๐ ์ ํ์กฐ๊ฑด 1 ≤ my_string์ ๊ธธ์ด ≤ 1,000 ๐ ๋ฌธ์ function solution(my_string) { var answer = ''; return answer; } ๐ ํ์ด function solution(my_string) { var answer = ''; answer = my_string.split('').reverse().join(''); return answer; } split() ๋ฉ์๋๋ก string ๊ฐ์ฒด๋ฅผ ๋ฌธ์์ด๋ก ๋๋ํ reverse() ๋ฉ์๋๋ก ๋ฐฐ์ด์ ์์๋ฅผ ๋ค์ง์ด ์ค๋ค. ..
ํ๋ก๊ทธ๋๋จธ์ค Lv.0 - ๋ฐฐ์ด๋ค์ง๊ธฐ ๐ ๋ฌธ์ ์ค๋ช ์ ์๊ฐ ๋ค์ด ์๋ ๋ฐฐ์ด num_list๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง๋๋ค. num_list์ ์์์ ์์๋ฅผ ๊ฑฐ๊พธ๋ก ๋ค์ง์ ๋ฐฐ์ด์ returnํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์. ๐ ์ ํ์กฐ๊ฑด 1 ≤ num_list์ ๊ธธ์ด ≤ 1,000 0 ≤ num_list์ ์์ ≤ 1,000 ๐ ๋ฌธ์ function solution(num_list) { var answer = []; return answer; } ๐ ํ์ด function solution(num_list) { var answer = num_list.reverse(); return answer; } โ reverse( ) : reverse() ํจ์๋ ๋ฐฐ์ด์ ์์๋ฅผ ๊ฑฐ๊พธ๋ก ๋ง๋ค์ด ์ค๋๋ค. array.reverse..