https://school.programmers.co.kr/learn/courses/30/lessons/42586 ํ๋ก๊ทธ๋๋จธ์ค์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์
๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์
๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.programmers.co.kr โ
์ ๋ตํ์ดimport mathfrom collections import dequedef solution(progresses, speeds): answer = [] progress_days=[math.ceil((100-x)/speeds[idx]) for idx,x in enumerate(progresses)] queue=deque(progress_days) done=queue[..
https://school.programmers.co.kr/learn/courses/30/lessons/42577 ํ๋ก๊ทธ๋๋จธ์ค์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์
๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์
๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.programmers.co.kr โ
์ ๋ตํ์ด (๋ฐฐ์ด)def solution(phone_book): phone_book.sort() answer=True for i in range(len(phone_book)-1): if phone_book[i]==phone_book[i+1][:len(phone_book[i])]: answer=False return answer ์ด์ ์, JS๋ก ..
โ 1์ฐจํ์ดdef solution(s): words = s.split() capitalized_words = [word.strip().capitalize() for word in words] return ' '.join(capitalized_words)capitalize ๋ฉ์๋๋ฅผ ์ฒ์ ์ฌ์ฉํด๋ณด์์, ํน์ ์ฐ์๋ ๊ณต๋ฐฑ์ด ์กด์ฌํ๋ฉด ์ฒซ๊ธ์ ๋๋ฌธ์๊ฐ ์ ์ฉ์ ๋ชปํด์ ๊ทธ๋ฐ๊ฐ ์ถ์ด์, strip๋ ์ฌ์ฉํด๋ณด์์ง๋ง ๊ณ์ ์ค๋ต์ด ๋์๋ค. โ
์ ๋ตdef solution(s): words=s.split(' ') capitalized_words = [word.capitalize() for word in words] return ' '.join(capitalized_words)..
โ
์ ๋ตํ์ดdef solution(strings, n): answer = [] strings.sort(key=lambda x:(x[n],x)) return stringsํ์ด์ฌ์์ sort ์กฐ๊ฑด์ key์ lambd๋ฅผ ํตํด ์ ์ํ ์ ์๋๋ฐ,๋ง์ฝ ์ฒซ๋ฒ์งธ ์กฐ๊ฑด์ด ๋์ผํ๋ค๋ฉด, ์ดํ ์กฐ๊ฑด์ ์ ์ํ ๋ ํํ์ ์ด์ฉํด์ฃผ๋ฉด ๋๋ค.
โ ์ฒซ๋ฒ์งธ ํ์ดimport itertoolsdef solution(n, left, right): n_list=[[0 for _ in range(n)] for _ in range(n)] for i in range(0,n): for j in range(0,i+1): n_list[i][j]=i+1 n_list[j][i]=i+1 flatten_list=list(itertools.chain(*n_list)) return flatten_list[left:right+1]์ ์งํ๊ฒ ์ ์ฌ๊ฐํ ์ด์ค ๋ฐฐ์ด์ ์์ฑํ๊ณ , flatten ํด์ฃผ๊ณ , sliceํ๋ ๋ฐฉ์๐๐ป ์ญ์๋, ์๊ฐ ์ด๊ณผ ๋ฐ์ โ
์ ๋ต ํ์ดdef so..
CSR์ ๋ํ์ ์ธ ๋จ์ ์ค ํ๋์ธ ์ทจ์ฝํ SEO ์ ์์ ๋ชจ๋ ์ฌ๋๋ค์ด ์ฌ์ฉํ ์ ์๋ ์๋น์ค๋ฅผ ๋ง๋ค๊ธฐ ์ํ ์น ์ ๊ทผ์ฑ ๊ฐ์ ์์
์ ์ํํด์ผํ๋ค. ์น ์ ๊ทผ์ฑ๊ณผ SEO์ ๊ฐ์ ํ๊ธฐ ์ด์ ์ ์ ์์ด๋ค.์ ๊ทผ์ฑ์ ํ์ด์ง ๋ง๋ค ์์ดํ์ง๋ง, ๊ฐ์ฅ ๋ฎ์ ๋ฉ์ธํ์ด์ง์ ์ ์๊ฐ 69์ , SEO ์ ์๋ 83์ ์ ๊ธฐ๋กํ์๋ค. SEO : ๊ฒ์์์ง ์ต์ ํ๐ React์ SEO๋ฆฌ์กํธ์ ๊ฐ์ SPA๋ SSR๊ณผ๋ ๋ฌ๋ฆฌ, ์ด๊ธฐ์ HTML์ด ์ต์ํ์ ๋ด์ฉ์ ํฌํจํ๊ณ , ๋๋ถ๋ถ์ ์ฝํ
์ธ ๋ JS๋ฅผ ํตํด ํด๋ผ์ด์ธํธ์ธก์์ ๋ ๋๋ง์ด ๋๋ ๋ฐฉ์์ด๋ค. ๋ชจ๋ ํฌ๋กค๋ฌ๊ฐ ์๋ ๋ง์ ํฌ๋กค๋ฌ๋ค์ด JS๋ฅผ ์ง์ํ์ง ์๊ธฐ ๋๋ฌธ์ ์ด์ ๊ฐ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค๊ณ ํ๋ค.(๊ตฌ๊ธ๋ด์ JS๋ฅผ ์ง์ํด์ SEO๊ฐ ๋์์ง ์๋ค๊ณ ํจ)Next.js๋ฅผ ์ด์ฉํ ํ๋ก์ ํธ์์๋ ๋ณ๋ค๋ฅธ ์์
์ ..
์งํ์ค์ธ ํ๋ก์ ํธ๋ ๋ฐ๋ ค๋๋ฌผ์ ๊ธฐ๋ก๊ณผ ์ฌ์ง ๊ณต์ ๊ฐ ์ฃผ๋ ๊ธฐ๋ฅ์ธ ๋งํผ, ์ด๋ฏธ์ง ์ต์ ํ ์์
์ด ์ค์ํ๋ค๊ณ ์๊ฐํ๋ค.๋ฒ๋ค์ฌ์ด์ฆ๋ฅผ ์ด์ฌํ ์ค์ฌ๋ KB๋จ์์ง๋ง.. ์ด๋ฏธ์ง๋ ๋จ์๋ถํฐ MB์ด๋ฏ๋ก, ์ด๋ฏธ์ง ์ต์ ํ๋ ํ์์ด๋ค. Next.js์ ์ด๋ฏธ์ง ์ต์ ํNext.js๋ next/image๋ฅผ ํตํด ๊ธฐ๋ณธ์ ์ผ๋ก ๋ค์๊ณผ ๊ฐ์ ์ด๋ฏธ์ง ์ต์ ํ ์์
์ ์ํํด์ค๋ค.But, ๋ฆฌ์กํธ๋ ์ด์ ๊ฐ์ ์ด๋ฏธ์ง ์ต์ ํ๋ฅผ ์๋์ผ๋ก ์ฒ๋ฆฌํด์ฃผ์ง ์์ผ๋ฏ๋ก, ์ง์ ์ต์ ํ ์์
์ ์ํํด์ผํ๋ค...!๐ซฃ ์๋ resizingWebp ๊ฐ์ ์ต์ ์ด๋ฏธ์ง ํฌ๋งท ์ง์Lazy Loading๋ก ํ์ด์ง ๋ก๋ฉ ์๋ ํฅ์CDN ์ง์์ด๋ฏธ์ง ์ต์ ํ๋ฅผ ์ํ ์ฌ๋ฌ๊ฐ์ง ๋ฐฉ๋ฒ๋ค์ ๊ณต๋ถํด๋ฉด์, ์ ์ฉํด๋ณด์๋ค. 1. browser-image-compression ํ์ฉํ ์ด๋ฏธ์ง ํญ, ํ..
์ฌ์ง ๊ณต์ ๊ฐ ๋ฉ์ธ ์๋น์ค ํน์ฑ ์, ํ
์คํธ๋ณด๋จ ์ด๋ฏธ์ง์ ๊ด์ฌ๋๊ฐ ๋๊ธฐ ๋๋ฌธ์ ์ด๋ฏธ์ง๋ฅผ ๋จผ์ ๋ฐฐ์นํ์๋ค. ๊ทธ๋ฌ๋ค๋ณด๋, ์ฐ๋ คํ๋๋๋ก ์ด๋ฏธ์ง๊ฐ ๋ก๋ฉ๋๊ณ ๋์ ํ
์คํธ๊ฐ ๋ฐ๋ฆฌ๊ฒ๋๋ฉด์ ๋๊ท๋ชจ ๋ ์ด์์ ํ์์ด ๋ฐ์ํ์๋ค. ์ฌ๋ฌ์ฅ์ ์ด๋ฏธ์ง์ ๊ฒฝ์ฐ์ CLS ์ ์๊ฐ 0.8๋ก ์ด๋ง์ด๋งํ๋ค... ๐๐ป placeholder๋ก ๋ ์ด์์์ด ๋ฐ๋ฆฌ๋ ํ์์ ๋ฐฉ์งํ๋ ค๊ณ ํ๋ค. โ๏ธ ๋ฌธ์ ์ ์ฒ์์ ์ด๋ฏธ์ง๋ฅผ ์
๋ก๋ํ๋ ์ฌ์ฉ์ ์
์ฅ์์, ๊ฒ์๋ฌผ์ ์ด๋ฏธ์ง๊ฐ ๊ท์ ๋ ์ฌ์ด์ฆ (1:1, 3:4)์ ์ฌ์ฉํ๋ฉด ์ด๋ฏธ์ง ์๋ฆผํ์์ด ๋ฐ์ํ๋๊ฒ์ ํผํ๊ณ ์ถ์๊ธฐ ๋๋ฌธ์ ์ด์ ๊ฐ์ด ์ด๋ฏธ์ง ์ฌ์ด์ฆ๋ฅผ ์ ์ํ ์ ์์๋ค.ํ์ง๋ง, ์ด ๋ฐฉ์์ ์ ์งํ๋ค๋ฉด ๊ธฐ์กด์ ์๋ณธ๋น์จ์ ์ด๋ฏธ์ง ๋ก๋ฉ์ ์ ์์๊ฐ ์๋ค๋ณด๋ placeholder์ ์ ์ํ๊ธฐ๊ฐ ๋๊ฐํด์ง๋คplaceholder๋ง ..
๋จ์ถํค
๋ด ๋ธ๋ก๊ทธ
๋ด ๋ธ๋ก๊ทธ - ๊ด๋ฆฌ์ ํ ์ ํ |
Q
Q
|
์ ๊ธ ์ฐ๊ธฐ |
W
W
|
๋ธ๋ก๊ทธ ๊ฒ์๊ธ
๊ธ ์์ (๊ถํ ์๋ ๊ฒฝ์ฐ) |
E
E
|
๋๊ธ ์์ญ์ผ๋ก ์ด๋ |
C
C
|
๋ชจ๋ ์์ญ
์ด ํ์ด์ง์ URL ๋ณต์ฌ |
S
S
|
๋งจ ์๋ก ์ด๋ |
T
T
|
ํฐ์คํ ๋ฆฌ ํ ์ด๋ |
H
H
|
๋จ์ถํค ์๋ด |
Shift + /
โง + /
|
* ๋จ์ถํค๋ ํ๊ธ/์๋ฌธ ๋์๋ฌธ์๋ก ์ด์ฉ ๊ฐ๋ฅํ๋ฉฐ, ํฐ์คํ ๋ฆฌ ๊ธฐ๋ณธ ๋๋ฉ์ธ์์๋ง ๋์ํฉ๋๋ค.