์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 |
- ๋ ธ๋ง๋์ฝ๋
- Python
- ํ๋ก๊ทธ๋๋จธ์ค
- ํฌ๋กค๋ง
- heapq
- ๋ชจ๊ฐ์ฝ
- ์ฝ๋ฉ์ ํ
- HTML
- ํ ์ดํ๋ก์ ํธ
- CSS
- ์๊ณ ๋ฆฌ์ฆ
- node.js
- KDT
- ๋๋ฆผ์ฝ๋ฉ
- ๋ฐฑ์ค
- ๊ทธ๋ฆฌ๋
- ์ฝ๋ฉํ ์คํธ
- react
- fe
- ๊ฐ๋ฐ
- javascript
- ํ๋ก์ ํธ
- error
- ๊ตญ๋น์ง์
- ํ๋ก ํธ์๋
- ์ฝ๋ฉ
- mongodb
- Til
- JS
- ํ์ด์ฌ
- Today
- Total
๋ชฉ๋ก์ ์ฒด ๊ธ (181)
๐ฑ → ๐ณ
2750 - ์ ์ ๋ ฌํ๊ธฐ ์๊ฐ ๋ณต์ก๋๊ฐ O(n²)์ธ ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ ex) ์ฝ์ ์ ๋ ฌ, ๋ฒ๋ธ ์ ๋ ฌ a = int(input()) arr = [] for i in range(a): arr.append(int(input())) arr = sorted(arr) for i in range(len(arr)): print(arr[i]) 2751 - ์ ์ ๋ ฌํ๊ธฐ 2 ์๊ฐ ๋ณต์ก๋๊ฐ O(nlogn)์ธ ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ ex) ๋ณํฉ ์ ๋ ฌ, ํ ์ ๋ ฌ ๋ฑ ์์ง ์๊ณ ๋ฆฌ์ฆ์ ๋ฐฐ์ฐ์ง ์์ ์ํ์ด๋ฏ๋ก ๋ด์ฅ ํจ์ ์ฌ์ฉ → import sys๋ฅผ ํ์ฌ input()์ ์๊ฐ์ ์ค์์ import sys a = int(input()) num = [] for i in range(a): num.append(int(sys.stdin.readline()..
useState vs useRef vs Variable useState ์ state ๊ทธ๋ฆฌ๊ณ useRef ์ ref ์ ๋ฆฌ์กํธ ๋ด๋ถ์ ๋ณ์๊ฐ ๋ ๋๋ง์ ๋ฐ๋ผ ์ด๋ค ์์ผ๋ก ๋ณํํ ๊น ์ธ ๊ฐ์ง ๋ฒํผ์ผ๋ก ๊ฐ๊ฐ state/ ref / var ๊ฐ์ ์ฌ๋ฆฌ๋ ์ปดํฌ๋ํธ๋ฅผ ๊ตฌ์ฑ ๊ฐ์ ๋ณํ ์์ด ์ปดํฌ๋ํธ ๋ฆฌ๋ ๋๋ง์ ์ํด์ ํ๋์ ๋ฒํผ์ ๋ ๋ง๋ฆ → ๊ฐ ๋ฒํผ์ ํด๋ฆญํ๋ฉด์ ํด๋น ๊ฐ์ ๋ณํ ๊ด์ฐฐ import { useRef, useState } from "react"; const Comparing = () => { const [countState, setState] = useState(0); const [render, setRender] = useState(0); const countRef = useRef(0); let count..
React.Fragment ์ค์ ๋ฆฌ์กํธ์์ ์ปดํฌ๋ํธ๋ฅผ ์กฐํฉํ ๋, ์ต์์์ div๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ๋ฐํํด์ผํ๋ ๊ฒฝ์ฐ๊ฐ ์๊น css๊ฐ ๊นจ์ง๋ค๊ฑฐ๋, ํ ์ด๋ธ ์์ ์ฌ์ด์ div์์๊ฐ ๋ค์ด๊ฐ๋ฉด error๊ฐ ๋ฐ์ํ๋ ๊ฒฝ์ฐ React.Fragment๋ก return ๊ฐ์์ ์ต์์ tag ์ญํ ์ ํ๋ div ์์ ๊ธฐ import React from "react"; export default function ReactFragment() { return ( ์๋ ํ์ธ์! ๋ฐ๊ฐ์ต๋๋ค! ); } (react ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๊ธฐ๋ฅ์ด๋ฏ๋ก react ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ถ๊ฐ ํ์) React.Fragment๋ ๋ก ๋์ฒด ๊ฐ๋ฅ ! import React from "react"; export default function ReactFragment() ..
๐ JSX(Javascript XML) : Javascript์ XML์ ์ถ๊ฐํ ๋ฌธ๋ฒ ๊ฐ๋ฐ์๋ค์ด ๊ณผ๊ฑฐ DOM ๋ฐฉ์์ผ๋ก html์ ๊ทธ๋ฆฌ๋ค๋ณด๋ ๋ฐ๋ก ๋ฉ๋์ด ์๊ฐ์ -> ๊ทธ๋์ ๋ง๋ ๋ฌธ๋ฒ ๋ณดํต ๋ฆฌ์กํธ์์๋ง ์ฌ์ฉ html ๋ฌธ์ ๊ตฌ์กฐ๋ฅผ JS์์๋ ์ฌ์ฉ์ด ๊ฐ๋ฅํจ -> ๋ฐ๋ผ์ JS ๋ด๋ถ์์๋ html์ ์ง๋ฏ ์ฝ๋ ๊ตฌ์ฑ์ด ๊ฐ๋ฅํด์ง ๐ ๊ธฐ๋ณธ DOM ๋ฐฉ์์ผ๋ก html ๊ทธ๋ฆฐ ์ฝ๋ function HelloWorldButton() { const [isClick, setClickState] = React.useState(false); const text = isClick ? "It's clicked" : "Hello, React world"; return React.createElement( "button", { onClick..
๐ MVC ํจํด : Model View Controller ์น ์ค๊ณ์ ๋ํ ๊ตฌ์กฐ ์น ์ค๊ณ๋ฅผ 3๊ฐ์ง ๋จ๊ณ๋ก ๊ตฌ๋ถํ์ฌ ๊ตฌ์กฐ์ ์ฅ์ ์ ๊ฐ์ง๊ธฐ ์ํ ์๋จ ๊ธฐ๋ฅ์ถ๊ฐ๋ ์ฉ์ด (์ ์ง๋ณด์ ๋ฐ ํ์ฅ์ด ํธ๋ฆฌ) ๐ model : DB view: ์ฌ์ฉ์๊ฐ ๋ณด๊ณ ์๋ ํ๋ฉด controller: DB์ view ์ฌ์ด โ Model ์ดํ๋ฆฌ์ผ์ด์ ์ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ ์ญํ ์ฌ์ฉ์๊ฐ ๋ณผ ์ ์๋ ๊ณณ์์ DB๋ก๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ณ , ์ฝ์ , ์์ , ์ญ์ ํ๋ ์ญํ Controller ์ ์ํตํ๋ฉฐ, View ์๋ ์ํตํ์ง X ex) ๋ชฝ๊ณ DB์์ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ณ , ์ฝ์ ํ๊ณ , ์์ ํ๋ ์ญํ -> ๋จ, ์ด ๋ชจ๋ ๊ธฐ๋ฅ์ ํ๋์ mongo.js ์ ๋ฌถ์ด์ ์ฒ๋ฆฌํ๋ ๋ฐฉ์ โ Controller Model ๊ณผ View ์ ์ํธ์์ฉ์ ์ปจํธ๋กค Model ๋ก ๋ถ..
๐ passport : ๋ก๊ทธ์ธ ๊ธฐ๋ฅ์ ๋ค๋ฐฉ๋ฉด์ผ๋ก ๋์์ฃผ๋ ๋ชจ๋ google, facebook, github ๋ฑ ์์ ๋ก๊ทธ์ธ ๊ตฌํ์ ์ํ ๊ธฐ๋ฅ ์ ๊ณต โ passport ์ค์น ์์ ๋ก๊ทธ์ธ์ด ์๋ local ๋ฐฉ์ ๊ตฌํ์ ์ํด passport-local๋ ๊ฐ์ด ์ค์น npm i passport npm i passport-local ์๋ฒ ์ฝ๋์ ๋ชจ๋ ์ถ๊ฐ(passport: ์ธ์ ์ ์ฌ์ฉ) const passport = require('passport'); const LocalStrategy = require('passport-local').Strategy; // Session app.use( session({ secret: 'bay', resave: false, saveUninitialized: true, cookie..
๐ session : ์๋ฒ์ ์ฟ ํค ๐ HTTP Session ์ด๋? ๋ธ๋ผ์ฐ์ ๊ฐ ์๋ ์๋ฒ์ ์ ์ฅ๋๋ ์ฟ ํค ์ฌ์ฉ์๊ฐ ์๋ฒ์ ์ ์ํ ์์ ๋ถํฐ ์ฐ๊ฒฐ์ ๋๋ด๋ ์์ ์ ํ๋์ ์ํ๋ก ๋ณด๊ณ ์ ์งํ๋ ๊ธฐ๋ฅ์ ํจ -> ๋ก๊ทธ์ธ ์ ์ง ์๋ฒ๋ ๊ฐ ์ฌ์ฉ์์ ๋ํ ์ธ์ ์ ๋ฐํํ๊ณ ์๋ฒ๋ก ์ ๊ทผ(request)ํ ์ฌ์ฉ์๋ฅผ ์๋ณํ๋ ๋๊ตฌ๋ก ์ฌ์ฉ ์ฟ ํค์ ๋ฌ๋ฆฌ ์ ์ฅ ๋ฐ์ดํฐ์ ์ ํ ์์ ๋ง๋ฃ ๊ธฐ๊ฐ ์ค์ ์ด ๊ฐ๋ฅํ์ง๋ง, ๋ธ๋ผ์ฐ์ ๊ฐ ์ข ๋ฃ๋๋ฉด ๋ฐ๋ก ์ญ์ ๐HTTP Session์ ๋์ ๋ฐฉ์ ์ฌ์ฉ์๊ฐ ์ต์ด๋ก ์๋ฒ ์ฐ๊ฒฐ์ ํ๋ฉด ํ๋์ session-id(์์์ ๊ธด ๋ฌธ์์ด)๊ฐ ๋ฐํ ๋ฐํ ๋ session-id๋ ์๋ฒ์ ๋ธ๋ผ์ฐ์ ์ ๋ฉ๋ชจ๋ฆฌ์ ์ฟ ํค ํํ๋ก ์ ์ฅ๋จ ์๋ฒ๋ ์ฌ์ฉ์๊ฐ ์๋ฒ์ ์ ๊ทผ ์, ์ฟ ํค์ ์ ์ฅ๋ session-id๋ฅผ ํตํด ์ฌ์ฉ์๋ฅผ ๊ตฌ๋ถํ๊ณ ..