๋ฌธ์ Given an input string s, reverse the order of the words. A word is defined as a sequence of non-space characters. The words in s will be separated by at least one space. Return a string of the words in reverse order concatenated by a single space. Note that s may contain leading or trailing spaces or multiple spaces between two words. The returned string should only have a single space separa..
๋ถ๋ฅ ์ ์ฒด๋ณด๊ธฐ
๋ฌธ์ You are given an integer array cost where cost[i] is the cost of ith step on a staircase. Once you pay the cost, you can either climb one or two steps. You can either start from the step with index 0, or the step with index 1. Return the minimum cost to reach the top of the floor. Example 1: Input: cost = [10,15,20] Output: 15 Explanation: You will start at index 1. - Pay 15 and climb two ste..
๋ฌธ์ Given an array of integers arr, return true if the number of occurrences of each value in the array is unique or false otherwise. Example 1: Input: arr = [1,2,2,1,1,3] Output: true Explanation: The value 1 has 3 occurrences, 2 has 2 and 3 has 1. No two values have the same number of occurrences. Example 2: Input: arr = [1,2] Output: false ํด๊ฒฐ๋ฐฉ๋ฒ ๋ฐฐ์ด์ ๊ฐ ์์๊ฐ ์ค๋ณต๋๋ ์๊ฐ ์ ๊ฒน์น๋ฉด true, ๊ฒน์น๋ฉด false๋ฅผ ๋ฐํํ๋ผ๋ ์ด์ผ..
๋ฌธ์ Given two 0-indexed integer arrays nums1 and nums2, return a list answer of size 2 where: answer[0] is a list of all distinct integers in nums1 which are not present in nums2. answer[1] is a list of all distinct integers in nums2 which are not present in nums1. Note that the integers in the lists may be returned in any order. Example 1: Input: nums1 = [1,2,3], nums2 = [2,4,6] Output: [[1,3],[..
์ค๋ ํ ์ผ nodejs๋ก API ๋ง๋ค๊ณ client ์ชฝ์ data fetch๋ ์๋ฃ, ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ด๋ฏธ์ง ๋ฐ์ดํฐ๋ ์ฑ์๋ฃ์ ์์
ํ๋ฉด์ ๋ช ๊ฐ์ง ๋ฌธ์ ์ ์ ํ์ธํจ. ๋ฌผ๋ก ๋ด๊ฐ ์ ๋ชจ๋ฅด๊ณ ๋ฌด์์ ๋ง๋ค๊ธฐ ์์ํด์ ๊ทธ๋ฐ๊ฑฐ๋ผ๊ณ ์๊ฐ์ ํจ. ์ฒซ๋ฒ์งธ, ์ปค๋ค๋ ํ๋ง ๋๊ณ ๋ํ
์ผํ ๋์์ธ ์์ด ์์ํ๋๋ ์ค๊ฐ์ค๊ฐ์ ๊ณ์ ๋์์ธ๋ ์์ ๋๊ณ ๊ธฐ๋ฅ๋ง ์ฐ์ ์ ์ผ๋ก ๋ฃ๋ค๋ณด๋ ๊ต์ฅํ ์ด์ํด๋ณด์ธ๋ค. ใ
ใ
ใ
ใ
ใ
ใ
ใ
ใ
ใ
ใ
ใ
ใ
๋ํ
์ผ์ ์ก๊ณ ์ถ์๋ฐ ๋์์ธ์ด ๋ฑํ ์๊ฐ๋๋๊ฒ ์์ด์ ๊ณ์ ๋ค๋ก ๋ฏธ๋ฃจ๊ณ ์๋ค. ๋๋ฒ์งธ, firebase Storage Bucket์ ์ด๋ฏธ์ง๋ฅผ ์
๋ก๋ํด๋๊ณ ๋ถ๋ฌ์์ database์ ๋ด๋ ๊ฑธ ์๊ฐํ๋๋ฐ. ์ด ๋ถ๋ถ์์ ์๊ฐ์ง ๋ชป ํ ๋ถ๋ถ์ด ์์๋ค. ๋ฐ๋ก ์นํ์ด์ง์์ ์
๋ก๋ํ๋๊ฒ ์๋๋ผ ๋ฐ๋ก bucket์ ์ฌ๋ ค๋ฒ๋ฆฐ ์ด๋ฏธ..
์ค๋ ํ ์ผ ํ๋ก์ ํธ ๋ฌธ์ํํ๊ธฐ T.O.T ๊ฐ๋ฐ ๋
ธ์
๋
ธํธ ๋ณด๋ฌ๊ฐ๊ธฐ READMEํ์ผ ์์ ์๋ฃ๋ฅผ ์ฐพ์๋ณด๊ธฐ๋ ํ๋๋ฐ ํ๋ คํ๊ธฐ๋ณด๋ค๋ ๊ฐ๊ฒฐํ๊ฒ ํ์ํ ๊ฒ๋ค๋ง ๋ด์๋ณด์๋ ๋ง์์ผ๋ก ์์ฑํ๋ค. ๊ฒฐ๋ก ๋ฌธ์ํ๋ ์ฌ์ ํ ์ด๋ ต๋ค. ๐ ๊พธ์คํ ์ ์ผ๋ฉด์ ์
๋ฐ์ดํธ๋ฅผ ์ํฌ ๊ฒ์ด๋ค. TravelMap api ์์ฑ + DB ์ฐ๊ฒฐ mongoDB์ ํ์ํ ๋ฐ์ดํฐ ๋ชจ์๋๋ก fake data๋ฅผ ์์ฑํจ GET method api๋ฅผ expressjs๋ฅผ ์ฌ์ฉํด์ ๊ฐ๋ฐํจ ๋ด์ผ ํ ์ผ travelmap API ๊ฐ๋ฐํ๊ฑฐ client์ ๋ถ์ด๊ธฐ Storage์ ์๋ฃ ๋ฃ๊ณ ์ ๋๋ก ๋ฐ์ดํฐ ์์ฑํ๊ธฐ PT ์์
์์๐ช๐ป ๋ฉด์ ๊ณต๋ถ๐ฌ
์ค๋ ํ ์ผ ํ์ฌ ๋ง๋ค๊ณ ์๊ณ , ๋ง๋ค๋ ค๊ณ ํ๋ ์ปจํ
์ธ ์ ๋ฆฌ (T.O.T / travelMap) T.O.T (Trace of Time)๋ ํ์ฌ ๋ด๊ฐ ๋น์ฅ ์ฐ๊ณ ์ถ์ด์ ์ฒ์์ ๊ธฐํํ๋๊ฑฐํด์ ํ - ๋ด์ฉ์ ์ค์ฌ์ ๋น์ฅ ํ์ํ ๊ธฐ๋ฅ๋ง ๋ถ์ฌ๋๊ณ ์ถํ์ ์ฒ์ฒํ ์
๋ฐ์ดํธํด์ผ๊ฒ ๋ค๋ผ๊ณ ์๊ฐํ๋ค. ์ค๋์ ์ด๋๋น ์ปฌ๋ฌ๋ฅผ ์ด์ฉํด์ ์กฐ๊ธ ๋ ์ธ๋ จ๋ ์ปฌ๋ฌ๋ฅผ ์ฐพ์์ CSS ๋ณ๊ฒฝํ๋ ์์
ํ๋ค. root ๋ณ์๋ก ์ ์ธํด์ ํ๊บผ๋ฒ์ ํด์ค. (์ผ์ชฝ์์ ๐๐ป ์ค๋ฅธ์ชฝ์ผ๋ก ๋ณ๊ฒฝ๋จ) ์์...๋ ์ธ๋ จ๋๊ฑฐ ๊ฐ๋ค๊ณ ๋งํด์ฃผ์ธ์... ํ์ฌ ๊ฐ๋ฅํ ๊ธฐ๋ฅ ์คํฑ์์น ๊ธฐ๋ก ์ ์ฅ ์คํฑ์์น ๊ธฐ๋ก ๊ฐ์ ธ์ค๊ธฐ github๊ณ์ ์ผ๋ก ์ฌ์ฉ์ ๋ก๊ทธ์ธ ๋ก๊ทธ์์ ์ ๋์ธ๋ฐ, google ๋ก๊ทธ์ธ๋ ๋ถ์ด๊ณ ์ด๋ถ๋ถ๋ auth ๊ด๋ จ db ์ฐ๊ฒฐ์ ํด๋์ ์ํฉ์ด๋ผ์ ๋ฐ๋ก ๋ ๋ฏ! ํ์ฌ๋ ๊ธฐ๋ก..
๋ฌธ์ There are n kids with candies. You are given an integer array candies, where each candies[i] represents the number of candies the ith kid has, and an integer extraCandies, denoting the number of extra candies that you have. Return a boolean array result of length n, where result[i] is true if, after giving the ith kid all the extraCandies, they will have the greatest number of candies among a..
2024 How can I grow up for Developer? That's a question I asked myself. I thought about building my own service, something simple like a stopwatch. It's not a huge project; I just needed that kind of service and decided to keep updating it. I have no idea about the backend part, like the database and API. Still, I wanted to make it myself, even if it's a bit slow. In reality, I'm actively workin..
2024 ์ฌํด๋ ์ด๋ป๊ฒ ์ด์๊ฐ ๊ฒ์ธ๊ฐ? ๋๋ ๊ฐ๋ฐ์๋ก์ ์ด๋ค ์ฑ์ฅ์ ํ๊ณ ์ถ์๊ฐ? ๋ผ๊ณ ์ค์ค๋ก์๊ฒ ๋ฌผ์๋ค. ๋๋ง์ ๊ฒ์ ๋ง๋ค๊ณ ์ถ๋ค๋ผ๋ ์๊ฐ ํ๊ณ , ์ค์ ๋ก ์ฌํด ๋๋ ์คํฑ์์น ํ์์ ๋๋ง์ ์น๋ทฐ ์ดํ์ ๋ง๋ค๊ณ ์๋ค. ๊ฑฐ์ฐฝํ ๊ฑด ์๋์ง๋ง ์ค์ ๋ก ๋ด๊ฐ ํ์๋ก ํด์ ๋ง๋ค๊ธฐ ์์ํ ๊ฒ์ด๊ณ ๊ณ์ํด์ ์
๋ฐ์ดํธ์ํฌ ์๊ฐ์ด๋ค. ์ฒ์์๋ ๋ด๊ฐ ํ์๋ก ํ๋ ์๋น์ค๋๊น ๋๋ง ์ฌ์ฉํ๋ฉด ๋๋ค!๋ผ๊ณ ์๊ฐํ์ง๋ง ์ด ์๋น์ค๋ฅผ ๋ค๋ฅธ ์ฌ๋๋ค๋ ์ด์ฉํ ์ ์๊ฒ ํ์ฅ์ฑ์ ์๊ฐํ๋ฉฐ ๋ง๋ค์๋ ๋๋ ๋ฐฑ์๋์ชฝ ๊ด๋ จํด์๋ ๋ฌด์ง ๊ทธ ์์ฒด์๋ค. ์ฐจ๊ทผ์ฐจ๊ทผ ๋ฐ์ ๋๊ฐ๋ณด์๋ผ๊ณ ์๊ฐํ๊ณ ์ค์ ๋ก๋ db ์ค๊ณ๋ ์ด๊ฒ์ ๊ฒ ์๊ฐํ๋ฉฐ ํ๋์ฉ ํ์ํ ๋๋ง๋ค ๋ง๋ค๊ณ ์๋ค. ๋๋ฆฌ์ง๋ง ๊ต์ฅํ ์ ๋๋ค. ๋จ๋จํ ์ฌ๋์ด ๋์. ํด์ฌ๋ฅผ ํ์๋ง์ ๋ฐ๋ก ์ก ์คํผ๋ฅผ ๋ฐ์๋ค.(๊ทธ๋์ ์ด๊ฑด..
์ต๊ทผ nextjs๋ก ๊ตฌํํ ํ๋ก์ ํธ๋ฅผ ๋ฐฐํฌํ ๋ฐฉ๋ฒ์ ์ฐพ๋ค๊ฐ vercel๋ก ํธ์คํ
์๋น์ค๋ฅผ ํด์ฃผ๊ธฐ์ ํ ๋ฒ ์จ๋ด์ผ๊ฒ ๋ค๋ฉฐ~~ ๋์ ํ์ต๋๋ค. vercel ํํ์ด์ง์์ ๋ก๊ทธ์ธํ๊ธฐ https://vercel.com/ Dashboard – Vercel vercel.com start deploying ๋ฒํผ์ด ๋ณด์ด์์ฃ ? ํด๋ฆญํด๋ฆญ - ์ด๋ ๊ฒ git repository๋ฅผ ๊ฐ์ ธ์ฌ ์ ์๊ฒ ํ๋ ๋ถ๋ถ์ด ์์ต๋๋ค. ์ ๋ ๋ค ๊ฐ์ ธ์ค์ง๋ ์๊ณ , ๋ฐฐํฌํ ๋ ํฌ์งํ ๋ฆฌ๋ง ๊ฐ์ ธ์์ต๋๋ค. ๋ฐฐํฌ์์
์ ํ ํ๋ก์ ํธ์์ธ๋ก ๋ค์ด๊ฐ์ ์๋์ ๋ด์ฉ์ ์ ์ด์ฃผ์๋ฉด ๋๋๋ฐ, ๋ฐ๋ก ํ๋ก์ ํธ package.json์์ ์ค์ ํ ๋ถ๋ถ์ด ์์ผ์๋ค๋ฉด ํฌ๊ฒ ์์ ํ ๋ถ๋ถ์ ์์ผ์ค๊ฑฐ์์. root directory๊ฐ์๊ฑฐ ์ ์ฒดํฌํด์ฃผ์ธ์ ์ ๋ ์ฒ์์๋ ์๋์ ์บก์ณ์ฒ๋ผ ๋ค ์ฑ..
nextjs12 ๋ฅผ ์ฐ๋ค๊ฐ nextjs14๋ก ๊ธ ์ ํ๋ฅผ ํ๋ค๋ณด๋ ์๋ก์ด ๊ฒ๋ค์ด ๊ฝค ๋์ ๋ค์ด์๋ค. ํด๋น ๋ด์ฉ์ nextjs13 ์ดํ์๋ ์ ์ฉ์ด ๋๋ ๋ด์ฉ์ด๋ค. ํ์ด์ง๋ฅผ ๋ฆฌ๋ก๋ํ๋ ค๊ณ ํ๋๋ฐ, reload() ํจ์๊ฐ ์์ด์ง๊ฒ ์๋๊ฒ ๋๊ฐ! ๊ทธ๋์ ๊ณต์๋ฌธ์๋ฅผ ์ฐพ์๋ค์ด๊ฐ๋ค. ๊ณต์๋ฌธ์ ์๋ณธ์ ์ข ๊ฐ์ ธ์๋ดค๋ค. useRouter() router.push(href: string, { scroll: boolean }): Perform a client-side navigation to the provided route. Adds a new entry into the browser’s history stack. "use client" ๋ฅผ ์ฌ์ฉํ client-side๋ก route๋ฅผ ์ ๊ณตํ ๋ ์ฌ์ฉ router.replace(hr..