๐ TIL(98)
-
git ๋ช ๋ น์ด ๋ณ๊ฒฝ / ์ปค์คํฐ๋ง์ด์ง (feat. alias)
๋งค์ฐ ๊ฐ๋จํ๋ค. ์ ์ง์ ํ์ง ์์์๊น. git alias $ git config --global alias. ์์ $ git config --global alias.ci commit $ git config --global alias.st status alias ์ถ๊ฐ ์ฐ์ ๋ ๋ช ๋ น์ด๋ฅผ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ์์ ํ์๋ค. ์ค์ ํฐ๋ฏธ๋์์ ํ์ธํด๋ณด์. ๊ธฐ์กด์ ๋ช ๋ น์ด์ ์์ ๋ ๋ช ๋ น์ด(alias) ๋๋ค ์ ์ ์ฉ๋ ๊ฒ์ ํ์ธํ ์ ์๋ค. alias ์ค๋ณต ์ถ๊ฐ ์ฌ๊ธฐ์ commit ๋ช ๋ น์ด์ ๋ํด alias ๋ฅผ ํ๋ ๋ ์ถ๊ฐํด๋ณด์๋ค. ์๋กญ๊ฒ ์ถ๊ฐ๋ ๋ช ๋ น์ด๋, ๊ธฐ์กด์ alias ๋ ๋ชจ๋ ์ ์๋ํ๋ ๊ฒ์ ๋ณผ ์ ์๋ค. alias ์ญ์ ํ๋์ ๋ช ๋ น์ด์ ๋๋ฌด ๋ง์ alias ๊ฐ ์์ผ๋ฉด ํท๊ฐ๋ฆด ์ ์์ผ๋, ์ด์ ์ง์๋ณด๊ฒ ๋ค..
2022.02.15 -
220118 ๊ฐ๋ฐ๊ธฐ๋ก : SpringBoot MVC test code ๊ฐ๋ฐ ์ ์ด๊ธฐ ์ด์
SpringBoot Mvc ์ ํ ์คํธ ์ฝ๋๋ฅผ ์ฒ์ ์์ฑํ ๋ ๋ฐ์ํ ์๋ฌ ๊ธฐ๋ก Controller CSAService2020Service ๋ผ๋ Service Layer ๋ฅผ ์์กดํ๊ณ ์๋ค. @RestController(path = "CSA2020") @RequiredArgsConstructor public class CSA2020Controller { private final CSA2020Service csa2020Service; @PostMapping("/CSA2020SelectMst") public Object CSA2010SelectMst(@RequestBody @Valid CSA2020MstParams param){ return csa2020Service.CSA2020SelectMst(param);..
2022.01.19 -
์๋๋ฆฌ์ค๋ณ git ๋ช ๋ น์ด
git ์์ ๋ด์ฉ ์ถ๊ฐ - ์ปค๋ฐ - ํธ์ $ git add . $ git commit -m '์ปค๋ฐ ๋ฉ์์ง ์ ๋ ฅ' $ git push -u origin master // ์ต์ด์๋ง ํด๋น ๋ช ๋ น์ด๋ก ํธ์ํ๋ฉด, ๊ทธ ๋ค์๋ถํด git push ๋ง์ผ๋ก ํธ์ ๊ฐ๋ฅ git ์ ํ์ฌ ์๊ฒฉ ์ ์ฅ์ ํ์ธ $ git remote -v git ์๊ฒฉ ์ ์ฅ์ ์ญ์ /ํด์ ์ $ git remote remove origin git ์๊ฒฉ ์ ์ฅ์ ์ฐ๊ฒฐ ์ $ git remote add origin git ๊ฐ์ ํธ์ (์ง์ํ์) $ git push -u origin +master git ์บ์ ๋ฐ์ดํฐ ์ญ์ (.idea ๋ฑ ๋ถํ์ํ ํ์ผ์ด ์ฌ๋ผ๊ฐ์ ๋) - .idea ๋ฑ ๋ถํ์ํ ํ์ผ์ด repository์ ์ฌ๋ผ๊ฐ์ ๋, .gitignore ์..
2021.12.28 -
211216 ๊ฐ๋ฐ๊ธฐ๋ก: exception ์ด catch ๋๋ ๊ณผ์ (feat. instanceOf)
try ~ catch ๊ตฌ๋ฌธ์์ ์์ธ๊ฐ ๋ฐ์ํ๋ฉด, catch ๊ตฌ๋ฌธ์ผ๋ก ๋์ ธ์ง๋ค๋ ๊ฒ์ ์๊ณ ์์๋ค. ํ์ง๋ง ์์ฒ๋ผ ํน์ ์ฌ๋ฌ๊ฐ์ ์ค์ฒฉ catch ๊ตฌ๋ฌธ์ผ๋ก ์ด๋ฃจ์ด์ง try ~ catch ๊ตฌ๋ฌธ์์๋ ์ด๋ค catch ๊ตฌ๋ฌธ์ ๋ค์ด๊ฐ ์์ธ์ฒ๋ฆฌ๊ฐ ๋๋ ๊ฒ์ผ๊น? ์์ฑ๋ ์์ธํด๋์ค์ ์ธ์คํด์ค์ instanceOf ์ฐ์ฐ์๋ฅผ ์ด์ฉํ์ฌ true/false ์ ๋ฐ๋ผ ์์ธ๋ฅผ ์ฒ๋ฆฌํ๋ค. false ๊ฐ ๋์ค๋ฉด ๊ทธ ๋ค์ catch ๊ตฌ๋ฌธ์ผ๋ก ๋์ด๊ฐ๊ณ , true ๋ฉด ํด๋น catch ๋ธ๋ก์ด ์คํ๋๊ณ try ~ catch ๋ธ๋ก์ ํ์ถํ๋ค. ๋ง์ฝ instanceOf ์ฐ์ฐ์๋ก ๊ณ์ ์ฒดํฌํ์ฌ๋ true ์ธ catch ๋ธ๋ก์ด ์๋ค๋ฉด, ํด๋น ์์ธ๋ ์ฒ๋ฆฌ๋์ง ๋ชปํ๊ณ ํ๋ก๊ทธ๋จ์ด ๊ทธ๋๋ก ์ฃฝ๊ฒ๋๋ค. ref ) https://wisdom-and-record...
2021.12.16 -
211214 ๊ฐ๋ฐ๊ธฐ๋ก: URL Pattern /* ์ /** ์ฐจ์ด
@Configuration public class WebConfig implements WebMvcConfigurer { @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/**") .allowedOrigins("http://localhost:3000"); } } ์คํ๋ง ์ธํ ์ค registry.addMapping() ๋ฉ์๋์ ์ธ์ /** ๊ฐ ๋ฌด์์ธ์ง ๊ถ๊ธํ์ฌ ์ฌ๋น ๋ฅด๊ฒ ๊ธฐ๋กํด๋ณด๋ ํฌ์คํ . /** ์ฐ์ /** ์ ๊ฒฝ๋ก์ ๋ชจ๋ ํ์ ๊ฒฝ๋ก๋ฅผ ๋งคํํ๋ค. ์๋ฅผ ๋ค์ด addMapping()์ ์ธ์๊ฐ "amaranth/*" ๋ผ๋ฉด ( addMapping("amranth/*") ), amaranth/10, amaranth..
2021.12.14 -
211203 ๊ฐ๋ฐ๊ธฐ๋ก: ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ์ฒด ์กฐ๊ฑด๋ณ ์ ๋ ฌ, ์นดํ ๊ณ ๋ฆฌ ์ ๋ ฌ, ์ด์ค ์ ๋ ฌ
[ ๋ฌธ์ ] ์๋์ ๊ฐ์ ๋ฐ์ดํฐ ๊ฐ์ฒด๊ฐ ์๋ค. status ํ๋กํผํฐ์๋ "๋๊ธฐ", "์งํ์ค", "์๋ฃ" 3๊ฐ์ง ๊ฐ์ด ๋ค์ด์ฌ ์ ์๊ณ , ์๊ตฌ์ฌํญ์ ๋ฐฐ์ด ๋ด๋ถ์ ๊ฐ์ฒด๋ฅผ "๋๊ธฐ - ์งํ์ค - ์๋ฃ" ์์ผ๋ก ์ ๋ ฌํ๋ ๊ฒ์ด๋ค. const patients = [ { "id": 1, "name": "๊น๋์กด", "reg_time": "14:30", "doc_name": "๊น์์ฐ", "status": "์๋ฃ", }, { "id": 2, "name": "๋ฐ๋์กด", "reg_time": "12:30", "doc_name": "์ต์ง์", "status": "๋๊ธฐ", }, { "id": 3, "name": "๋๋์กด", "reg_time": "11:30", "doc_name": "์ด์์ฑ", "status": "์งํ์ค", }, ...
2021.12.03 -
211013 ๊ฐ๋ฐ๊ธฐ๋ก: return ์ ์์ฌ์ง ํ์ดํํจ์ (feat. ์ฝ๋ฐฑํจ์)
return ๋ด๋ถ์ ํ์ดํํจ์๊ฐ ์ด๋ค ์๋ฏธ๋ก ์์๋์ง ๋ชจ๋ฅด๊ฒ ๋ค๊ณ , ๋ค๋ฅธ ๊ฐ๋ฐ์๋ถ์ด ์๋ ์ฝ๋์์ ์ง๋ฌธ์ ์ฃผ์ จ๋ค (๋ด๊ฐ ์ง ์ฝ๋๋ ์๋๋ค..) const searchData = (keyWord) => { return new Promise((resolve, reject) => { let result = dataArr.filter(this.isMatch(keyWord)); resolve(result); }); }; // ๋งค์นญํ๋ ํจ์ : ํค์๋๋ฅผ ํ ์คํธ ํ๋์ ๋ฃ์์ ๋, name | email | company ์ธ ๊ฐ ์ค์ ํ๋๋ผ๋ ์์ผ๋ฉด ๊ฒฐ๊ณผ๋ฅผ ๋ฆฌํดํฉ๋๋ค. const isMatch = (keyWord) => { return (value) => { let result = value["name"].indexO..
2021.10.13 -
2109028 ๊ฐ๋ฐ๊ธฐ๋ก: ์์ฆ ๋๋ผ๋ ์ ๋ค
BFS ์ DFS ์์ฆ ์์นจ๋ง๋ค BFS/DFS ๋ฌธ์ ๋ฅผ ํ๋์ฉ ํ๊ณ ์๋ค. ์๋ ๋ชปํ๋ ์ ํ์ด๊ธฐ๋ ํ๊ณ , ์ฝ๋ฉ ํ ์คํธ๋ง๋ค ๋งค๋ฒ ๋งํ ๊ฐ์ธ์ ์ผ๋ก ๋ฒฝ์ด๋ผ ๋๊ผ๋ ๋ฌธ์ ์๋ค. ๊ทธ๋ฐ๋ฐ ์ด์ , ์ค๋์ ํ๋ก๊ทธ๋๋จธ์ค lv3 ๋ฌธ์ ๋ ํ๋ฒ๋ง์ ํ๋ฆฌ๋๊ฒ ์๋๊ฐ. ์ ๊น์ด์ง๋ง ๋น์ด ๋ณด์๋ค. ๊ทธ๋ฌ๋ฉด์ BFS / DFS ์ ์ฐจ์ด,BFS: queue, DFS: stack ์ ์ฒด๊ฐํ๋ค. BFS ๋ ์์ ๊ณผ ์ฐ๊ฒฐ๋ ๋ ธ๋๋ฅผ ์ฐ์ ์ ์ผ๋ก ๋ชจ๋ ์ํํ๋๋ฐ, ์ด๋ฅผ queue ์ ๋ด๋๋ค. stack ์๋ ๋ด์ ์ ์์ง ์๋๊ณ ? ์๋ฐ์คํฌ๋ฆฝํธ for ๋ฌธ ์ด๊ฑฐ ์ฒ์ ์์๋ค. for () ๋ด๋ถ์์ in ๊ณผ of ์ ๋ฐ๋ผ ์ฐจ์ด๊ฐ ๋ฐ์ํ๋๋ฐ, in ์ ์ฌ์ฉํ๋ฉด ๋ฐฐ์ด(List)์ ์ธ๋ฑ์ค๋ก ์ ๊ทผ, of ๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฐฐ์ด์ ์์์ ์ ๊ทผํ๋ค. // index์ ์ ๊ทผ ..
2021.09.28 -
210924 ๊ฐ๋ฐ๊ธฐ๋ก: ํ์ด์ฌ dictionary, get()์ ์ฌ์ฉํด์ผํ๋ ์ด์
ํ์ด์ฌ์ ๋์ ๋๋ฆฌ ์๋ฃํ์์ ๊ฐ์ ๊บผ๋ด๋ ๋ฐฉ๋ฒ์ 2๊ฐ์ง๊ฐ ์๋ค. table_dict = {'a': 1, 'b': 2, 'c':3} # ์ฒซ๋ฒ์งธ table_dict['a'] // 1 #๋๋ฒ์งธ table_dict.get('b') // 2 ๋ ๋ฐฉ๋ฒ์ ๋น๊ตํ์ ๋, ์ฒซ๋ฒ์งธ ๋ฐฉ๋ฒ์ด ๋ ๊ฐํธํ์ฌ ์์ฃผ ์ฌ์ฉํ๋๋ฐ, ์ด ๊ฒฝ์ฐ ์ฐพ๊ณ ์ํ๋ key ๊ฐ์ด ์์ ๊ฒฝ์ฐ ๋ฐ๋ก KeyError ๋ฅผ ๋์ง๋ค. table_dict = {'a': 1, 'b': 2, 'c':3} # ์ฒซ๋ฒ์งธ table_dict['d'] >>> KeyError: 'd' ํ์ง๋ง ๋๋ฒ์งธ ๋ฐฉ๋ฒ์ธ get() ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ฉด ์กด์ฌํ์ง ์์ key ์ ๋ํด ์์ธ๋ฅผ ๋์ง์ง ์๊ณ none ์ ๋ฆฌํดํ๊ธฐ ๋๋ฌธ์ ์๋ฌ๋ฅผ ํผํ ์ ์๋ค. ๋์ ๋๋ฆฌ์ get() ๋ฉ์๋๋ ๋๊ฐ์ ์ธ์๋ฅผ..
2021.09.25