๋ถ๋ฅ ์ ์ฒด๋ณด๊ธฐ
![[ํ์
์คํฌ๋ฆฝํธ] ์ ๋ค๋ฆญ](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FcAI18b%2FbtrAqS0qstv%2FAAAAAAAAAAAAAAAAAAAAAHkszMZ1pgOjvaT3tAaWiCEdBBXBV8Qf0SqvH5w46Iqx%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1761922799%26allow_ip%3D%26allow_referer%3D%26signature%3Dv8c21O3o4DLXkeQadhK149fTs04%253D)
[ํ์ ์คํฌ๋ฆฝํธ] ์ ๋ค๋ฆญ
ํ๋ก๊ทธ๋๋ฐ์ ๊ฝ, ๊ฐ์ฒด์งํฅ์ ๊ฝ ์ ๋ค๋ฆญ ์ ๋ค๋ฆญ์ ์ด๋ ๊ฐ๋ ํต์์ ์ผ๋ก ๋ณผ ์ ์๋ค.(์ฌ์ฌ์ฉ์ฑ์ด ๊ต์ฅํ ๋๊ธฐ ๋๋ฌธ) ์ด์ ํฌ์คํ stack์ ๋จ์ ์ ์ค๋ก์ง stringํ๋ง push, pop ํ ์ ์๋ค๋ ๊ฒ์ด๋ค. ๋ค์ํ ํ์ ์ push, pop ํ๊ณ ์ถ๋ค๋ฉด ์ ๋ค๋ฆญ์ ์ด์ฉํด์ ํ์ฉ์ฑ๊ณผ ์ฌ์ฌ์ฉ์ฑ์ ๋์ผ ์ ์๋ค. ์ ์ฐํ๊ณ ํ์ ๋ ๋ณด์ฅํ ์ ์๊ณ , ์ฌ์ฌ์ฉ์ ์ ๋ง ๋ง์ด ๋์ผ ์ ์๋ ์ ๋ค๋ฆญ์ ๋ง์คํฐํด๋ณธ๋ค. (์คํ์์ค๋ API ๋ฌธ์๋ฅผ ๋ณผ ๋ ์ ๋ค๋ฆญ์ ์๊ณ ์๋ค๋ฉด ๋งํ์์ด ์ฝ์ ์ ์๋ค.) ์๋ ํจ์๋ฅผ ์ ๋ค๋ฆญ์ผ๋ก ๋ฐ๊พธ์ด๋ณด์ function checkNotNull(arg: number | null): number { if (arg == null) { throw new Error("not valid number"); } ..
![[ํ์
์คํฌ๋ฆฝํธ] ๊ฐ์ฒด์งํฅ์ ์ผ๋ก stack ๊ตฌํํ๊ธฐ](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2Fbun8Cp%2FbtrAp6kkFsn%2FAAAAAAAAAAAAAAAAAAAAAEbsGyiCe4JNFJVhRzJjhKMcXkG0bvo3jFgTBPxxDKSd%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1761922799%26allow_ip%3D%26allow_referer%3D%26signature%3D%252BedbAfT6vRdu9EqL9DS6gDP4PRs%253D)
[ํ์ ์คํฌ๋ฆฝํธ] ๊ฐ์ฒด์งํฅ์ ์ผ๋ก stack ๊ตฌํํ๊ธฐ
๊ฐ์ข ์๋ฃ๊ตฌ์กฐ๋ค๋ 'ํด๋์ค'์ด๋ค. ๊ฐ๋ น C#์ stack ํด๋์ค๋ ๋ค์ ๋งํฌ์ ๊ฐ๋ค. https://docs.microsoft.com/ko-kr/dotnet/api/system.collections.stack?view=net-6.0 Stack ํด๋์ค (System.Collections) ์ ๋ค๋ฆญ์ด ์๋ ๊ฐ์ฒด์ ๊ฐ๋จํ LIFO(Last In First Out: ๋ง์ง๋ง์ ๋ค์ด๊ฐ ๊ฒ๋ถํฐ ์ฌ์ฉ) ์ปฌ๋ ์ ์ ๋ํ๋ ๋๋ค. docs.microsoft.com Stack ํด๋์ค ์ ์ ์ ๋ค๋ฆญ์ด ์๋ ๊ฐ์ฒด์ ๊ฐ๋จํ LIFO(Last In First Out: ๋ง์ง๋ง์ ๋ค์ด๊ฐ ๊ฒ๋ถํฐ ์ฌ์ฉ) ์ปฌ๋ ์ ์ ๋ํ๋ ๋๋ค. C#๋ณต์ฌ public class Stack : ICloneable, System.Collections.ICollectio..
[์๋ฐ์คํฌ๋ฆฝํธ] ์๋ฃ๊ตฌ์กฐ ํ,์คํ, ํธ๋ฆฌ ๊ตฌํ
์ถ์ฒ : https://helloworldjavascript.net/pages/282-data-structures.html ํ, ์คํ, ํธ๋ฆฌ | JavaScript๋ก ๋ง๋๋ ์ธ์ ์ฒ์ ์์ํ๋ ์ฌ๋๋ค์ ์ํ JavaScript ๊ต์ฌ helloworldjavascript.net ํ, ์คํ, ํธ๋ฆฌ ์ด๋ค ๋ฐ์ดํฐ์ ๊ตฌ์ฒด์ ์ธ ๊ตฌํ ๋ฐฉ์์ ์๋ตํ ์ฑ, ๋ฐ์ดํฐ์ ์ถ์์ ํํ์ ๊ทธ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃจ๋ ๋ฐฉ๋ฒ๋ง์ ์ ํด๋์ ๊ฒ์ ๊ฐ์ง๊ณ ADT(Abstract Data Type) ํน์ ์ถ์ ์๋ฃํ์ด๋ผ๊ณ ํฉ๋๋ค. ์ด ์ฑํฐ์์๋ ๋๋ฆฌ ์ฌ์ฉ๋๋ ADT์ธ ํ, ์คํ, ํธ๋ฆฌ์ ๋ํด ๋ฐฐ์๋๋ค. ํ (Queue) ํ(queue)๋ ๋ค์๊ณผ ๊ฐ์ ์ฑ์ง์ ๊ฐ๋ ์๋ฃํ์ ๋๋ค. ๋ฐ์ดํฐ๋ฅผ ์ง์ด๋ฃ์ ์ ์๋ ์ ํ(linear) ์๋ฃํ์ ๋๋ค. ๋จผ์ ์ง์ด๋ฃ..
![[ํฌ๋กฌ๋ฐ๋ธํด] ๋๋ฒ๊ทธ ์๋ฐ์คํฌ๋ฆฝํธ](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2Fxss2K%2FbtrAgpZJsV8%2FAAAAAAAAAAAAAAAAAAAAAOI6ot3MLqPWzhaloweC_8NxLwyojHPlmbhnakyN6vqR%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1761922799%26allow_ip%3D%26allow_referer%3D%26signature%3DkCdhd18H5oPEtNzTkuGTxNnsAOk%253D)
[ํฌ๋กฌ๋ฐ๋ธํด] ๋๋ฒ๊ทธ ์๋ฐ์คํฌ๋ฆฝํธ
์์ค ํจ๋ ๊ฐ์ - Chrome ๊ฐ๋ฐ์ Sources panel overview - Chrome Developers View and edit files, create Snippets, debug JavaScript, and set up Workspaces in the Sources panel of Chrome DevTools. developer.chrome.com ๋๋ฒ๊ทธ ์๋ฐ ์คํฌ๋ฆฝํธ - ํฌ๋กฌ ๊ฐ๋ฐ์ (chrome.com) Debug JavaScript - Chrome Developers Learn how to use Chrome DevTools to find and fix JavaScript bugs. developer.chrome.com https://youtu.be/H0XScE08hy8 1. ste..
[ํฌ๋กฌ๋ฐ๋ธํด] Chrome DevTools์ ๋จ์ถํค
๋ฐ๋ก ๊ฐ๊ธฐ ํค - Chrome ๊ฐ๋ฐ์ Keyboard shortcuts - Chrome Developers The canonical documentation for Chrome DevTools keyboard shortcuts. developer.chrome.com ์ด ํ์ด์ง๋ Chrome DevTools์ ๋ฐ๋ก ๊ฐ๊ธฐ ํค ์ฐธ์กฐ์ ๋๋ค. ๋๊ตฌ ์ค๋ช ์์ ๋ฐ๋ก ๊ฐ๊ธฐ๋ฅผ ์ฐพ์ ์๋ ์์ต๋๋ค. DevTools์ UI ์์ ์์ ๋ง์ฐ์ค๋ฅผ ์ฌ๋ ค ๋์ผ๋ฉด ํด๋น ๋๊ตฌ ์ค๋ช ์ด ํ์๋ฉ๋๋ค. ์์์ ๋ฐ๋ก ๊ฐ๊ธฐ๊ฐ ์์ผ๋ฉด ๋๊ตฌ ์ค๋ช ์ ๋ฐ๋ก ๊ฐ๊ธฐ๊ฐ ํฌํจ๋ฉ๋๋ค. #DevTools ์ด๊ธฐ๋ฅผ ์ํ ๋ฐ๋ก ๊ฐ๊ธฐ ํค DevTools๋ฅผ ์ด๋ ค๋ฉด ์ปค์๊ฐ ๋ธ๋ผ์ฐ์ ๋ทฐํฌํธ์ ์ด์ ์ ๋ง์ถ๋ ๋์ ๋ค์ ๋ฐ๋ก ๊ฐ๊ธฐ ํค๋ฅผ ๋๋ฆ ๋๋ค. ํ๋๋งฅ์๋์ฐ / ๋ฆฌ๋ ์ค ๋ง์ง๋ง์ผ..
![[์๋ฐ์คํฌ๋ฆฝํธ] web api ๋ถ๋ฌ์ค๊ธฐ](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2Ftlf8w%2FbtrAjpKXrx2%2FAAAAAAAAAAAAAAAAAAAAAInfc2TLmdaIIEC7k-A5nHcCBM81Lw7bDuspXYODZ01s%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1761922799%26allow_ip%3D%26allow_referer%3D%26signature%3DGyO8p4FjklxdI6jotvb%252BmtAyy4k%253D)
[์๋ฐ์คํฌ๋ฆฝํธ] web api ๋ถ๋ฌ์ค๊ธฐ
ํด๋น ํจํด์ ์ ๊ธฐ์ตํ๋ฉด ๋๋ค. APIํธ์ถํ๊ณ ์ถ์ ๋ const callAPI = async() =>{ let url = new URL(`url์ฃผ์`) let header = new Headers({ํค๋๋ด์ฉ}) // ์ด๊ฑด ํ์ํ ๊ฒฝ์ฐ๋ง let response = await fetch(url,{headers:header}) let data = await response.json() } - 1. ํฌ๋กฌv8 ์คํ : url ์ค๋น - 2. ํฌ๋กฌv8 :์คํ ํค๋ ์ค๋น - 3. WebApIs๋ก ๋์ด๊ฐ : ๋ฐฑ์๋, ์๋ฒ์ ์์ฒญ - 4. ๋ฐฑ์๋์์ ๋ฐ์ ๋ฐ์ดํฐ๋ฅผ ํ์ธ(๋จ, 3๋ฒ ํ์๋ฅผ ๊ธฐ๋ค๋ ค์ผ ํจ. ๊ธฐ๋ค๋ฆฌ๊ธฐ ์ํด์ async/awiat์ ์ด์ฉ) 1. ์๋ฐ์คํฌ๋ฆฝํธ์์ ์ ๊ณตํด์ฃผ๋ URL ํด๋์ค๋ฅผ new๋ก ์ฐ๋ฉด ๋๋ค. co..
![[์๋ฐ์ ์ ์] Java๋](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2Fwwh5n%2FbtrAdwEjVZ0%2FAAAAAAAAAAAAAAAAAAAAAMEdmxKsp_ZOGdxUMdvNkq6AFzvqucQprDnUu5LMA2Qs%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1761922799%26allow_ip%3D%26allow_referer%3D%26signature%3DG9DVvvAzX%252BFma6tyNowMfvT%252Bj14%253D)
[์๋ฐ์ ์ ์] Java๋
https://youtu.be/oJlCC1DutbA https://youtu.be/J1xJhrr63VY * ๋จ๊ถ์ฑ๋์ ์๋ฐ์ ์ ์ ์ ํ๋ธ ๋ฌด๋ฃ๊ฐ์ข๋ฅผ ๋ณด๊ณ ํ์ตํ ํฌ์คํ ์ ๋๋ค. ์ ์๋ฐ๋ฅผ ๋ฐฐ์์ผ ํ ๊น? ์๋ฐ(Java)๋ ์น(web)๊ณผ ๋ชจ๋ฐ์ผ(์๋๋ก์ด๋)์ ๋น๋กฏํ ๋ค์ํ ๋ถ์ผ์์ ์ฌ์ฉ๋๋ ๊ฐ์ฅ ์ธ๊ธฐ ์๋ ์ธ์ด๋ค. ๊ทธ๋ฆฌ๊ณ ์ทจ์ ์์๋ฐ๋ฅผ ํตํด ์ปดํจํฐ ๊ณผํ ๊ด๋ จ ์ง์๊ณผ ์๊ณ ๋ฆฌ์ฆ์ ๋ฐฐ์ฐ๋ ๋ฐ ์์ด์ ๋ค๋ฅธ ์ธ์ด๋ณด๋ค ์๋ฐ๊ฐ ์ ๋ฆฌ ์๋ฐ๋ ๋จ์ํ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๊ฐ ์๋๋ผ ์คํํ๊ฒฝ(JRE) + ๊ฐ๋ฐ๋๊ตฌ(JDK) + ๋ผ์ด๋ธ๋ฌ๋ฆฌ(API)๋ฅผ ์ ๊ณตํ๋ค. ์๋ฐ์์ ์ ๊ณตํ๋ ํ๋ถํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ฉด ์ฝ๊ณ ๋น ๋ฅด๊ฒ ์ดํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ ๊ฐ๋ฅํ๋ค. ๊ฐ์ฒด์งํฅ์ด๋ฉด์ ํจ์ํ(์ถ๊ฐ๋จ) ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ด๋ค. ์๋ฐ8์ผ๋ก ๋ฐฐ์ฐ๋ ๊ฒ์ด ์์ ์ฑ์ด ๋๋ค. ์..
![[React] index.html ์ ๋ฆฌ์กํธ์ ๋ฐ๋ฒจ ๋ถ๋ฌ์ค๊ธฐ](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FHOaR8%2FbtrAcRhRTgY%2FAAAAAAAAAAAAAAAAAAAAALhMeapLiHVWN5xjCJtkA2omAow89hsK1BydOQetWv1h%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1761922799%26allow_ip%3D%26allow_referer%3D%26signature%3DXX9lmF98EgeuNZdkJHAKtqaUSIs%253D)
[React] index.html ์ ๋ฆฌ์กํธ์ ๋ฐ๋ฒจ ๋ถ๋ฌ์ค๊ธฐ
์ฐธ๊ณ ํ์ด์ง : React – ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ฅผ ๋ง๋ค๊ธฐ ์ํ JavaScript ๋ผ์ด๋ธ๋ฌ๋ฆฌ (reactjs.org) React – ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ฅผ ๋ง๋ค๊ธฐ ์ํ JavaScript ๋ผ์ด๋ธ๋ฌ๋ฆฌ A JavaScript library for building user interfaces ko.reactjs.org 1. ๋ฆฌ์กํธ ๋ถ๋ฌ์ค๊ธฐ 2. ๋ฐ๋ฒจ ๋ถ๋ฌ์ค๊ธฐ 3. ๋ฆฌ์กํธ ์ ์ฉํ script ์ ๋ค์๊ณผ ๊ฐ์ด ํ์ ์ง์
![[ํ์
์คํฌ๋ฆฝํธ] Abstract ํด๋์ค์ abstract method](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FbtxcdL%2FbtrAlgAYuSe%2FAAAAAAAAAAAAAAAAAAAAALhP8rMNqGuz4rGjO76Km-Xx49ee5KM4XQY8gxD1EX_v%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1761922799%26allow_ip%3D%26allow_referer%3D%26signature%3D786DmeQK%252BtRBAqNCn5%252Bxjk2JB3c%253D)
[ํ์ ์คํฌ๋ฆฝํธ] Abstract ํด๋์ค์ abstract method
์์ ํด๋์ค๋ฅผ ์ด์ฉํ ๋, ์ ํด๋์ค์์ ๋ฐ๋ณต๋๋ ๊ฒ์ด ์๊ณ ์ด๋ค ํน์ ๊ธฐ๋ฅ๋ง ์์ ํด๋์ค์์ ๊ทธ ์ํ๊ฐ ๋ฌ๋ผ์ง๋ค๋ฉด Abstract ํด๋์ค๋ฅผ ๋ง๋ค ๊ฒ์ ๊ณ ๋ คํด๋ณด์. abstract ํด๋์ค์ abstract ํจ์๋ ํ๋ก๊ทธ๋๋จธ์ ์ค์๋ฅผ ์ฌ์ ์ ์๋ฐฉํด์ฃผ๋ ๋งค๋ ฅ์ ์ธ ๊ธฐ๋ฅ๋ค์ ๊ฐ์ถ๊ณ ์๋ค. abstract ํด๋์ค์ abstract ํจ์๋ฅผ ์ด์ฉํ์ ๋์ ์ด์ ์, ๋ฌด์์ ์ค๋ฒ๋ผ์ด๋ฉ + super()ํธ์ถํ๊ธฐ ํ๋์ ์ด๋ ์ ๋ ๋์ฒดํ๋ฉด์ ์์ํด๋์ค์์ ๋ถ๋ชจํด๋์ค์ ์ฐจ๋ณํ๋๋ ์ถ์ํ ํจ์๋ค์ ๋ฐ๋์ ๊ตฌํํ ๊ฒ์ ๊ฐ์ ํ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค. ์๋์ ๊ฐ์ ์ฝ๋๋ฒ ์ด์ค๋ถํฐ ์์ํ๋ค. // //์ปคํผ๋จธ์ ๋ง๋ค๊ธฐ type CoffeeCup = { orderShot: number; hasMilk?: boolean; hasSalt?: bo..
![[ํ์
์คํฌ๋ฆฝํธ] composition ์ฅ์ ์ ๊ทน๋ํํ๋ ๊ฐ๋ ฅํ interface](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2Fb47BuO%2FbtrAbF9Be1G%2FAAAAAAAAAAAAAAAAAAAAAN77rXbSmtEGJ43tB6GBqXz8VTBKqspYWW1r0qDjFo08%2Fimg.jpg%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1761922799%26allow_ip%3D%26allow_referer%3D%26signature%3DY7azN%252Bkng9cKeLysKxG9sBk6IK8%253D)
[ํ์ ์คํฌ๋ฆฝํธ] composition ์ฅ์ ์ ๊ทน๋ํํ๋ ๊ฐ๋ ฅํ interface
์ ํฌ์คํ ([ํ์ ์คํฌ๋ฆฝํธ] ๊ฐ์ฒด์งํฅ์ ๊ฝ composition(๋ถ์ : ์์์ ๋ฌธ์ ์ ) — My dev Note๐ (tistory.com))๊ณผ ์ด์ด์ง๋๋ค ์ ํฌ์คํ ์์ฝ : ์ปดํฌ์ง์ ์ ํตํด์(3~4๋จ๊ณ๋ฅผ ๋์ด๊ฐ๋ ์์ ์์ง ๊ด๊ณ๋ฅผ ํด์) ์์์ 2๋จ๊ณ ์ด์์ผ๋ก ์ฌ์ฉํ์ง ์๊ณ ๋ ํ๋์ ํด๋์ค์ ์ฌ๋ฌ๊ฐ์ง ๋ถํ ํด๋์ค๋ฅผ ์ฃผ์ ํค๋ฉ ํฌ์คํ ์์ฝ : "๊ฐ๋ ฅํ interface์ composition์ ๋ณตํฉ๊ฐ๋ ์ด ๋๋ ์ ๋ต ํจํด์ ์ด์ฉํ์ฌ ํ๋ฆฌํฐ ๋์ ์ฝ๋๋ฅผ ์์ฐํ์" ์ธํฐํ์ด์ค๋ก ํ์ฌ๊ธ ํ์ํ ๊ธฐ๋ฅ๋ค์ ๊ตฌํํ ๊ฐ๊ฐ ํด๋์ค๋ค์ ์์ฑ, ๋ถํ์ผ๋ก ์ ๋ฌํ์ฌ ์ฌ์ฉ์๋ ์ํ ๋๋ง๋ค ๊ฐ์ ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ ๋ค๋ฅธ ๋ถํ( ํด๋์ค)๋ค์ ๋ผ์๋ฃ์ ์๋ก์ด ํด๋์ค๋ฅผ ์ฐ์ด๋ผ ์๋ ์๋ค. ์ํ๋ ์ฉ๋์ ๋ง๊ฒ ํด๋์ค๋ค์ ์ฝ๋ ์ฌ์ฌ์ฉํ๋ฉด์ ๋ง..