๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๋ฐ˜์‘ํ˜•

๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ปSTUDY

(78)
[Git] 3 way merge ์ดํ•ดํ•˜๊ธฐ https://wonyong-jang.github.io/git/2021/02/05/Github-Merge.html [Git] Merge(3-way merge) ์ดํ•ดํ•˜๊ธฐ - SW Developer ๋‹ค๋ฅธ ํ˜•์ƒ ๊ด€๋ฆฌํˆด๋“ค๊ณผ๋Š” ๋‹ฌ๋ฆฌ git์€ branch๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ํŒŒ์ผ์„ ๋ณต์‚ฌํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ํŒŒ์ผ์˜ ์Šค๋ƒ…์ƒท๋งŒ ๊ฐ€์ง€๊ณ  ์ƒ์„ฑํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ž์›์˜ ๋ถ€๋‹ด์—†์ด branch๋ฅผ ๋งŒ๋“ค์–ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋Ÿฌํ•œ ์žฅ์  ๋•Œ๋ฌธ wonyong-jang.github.io ๊ฐœ๋… ์‰ฝ๊ฒŒ ์ •๋ฆฌ๋˜์–ด ์žˆ๋‹ค.
[CSS] counter : css๋กœ ์ˆœ๋ฒˆ๋‚˜ํƒ€๋‚ด๊ธฐ counter ์‚ฌ์šฉ๋ฒ• counter์€ CSS์—์„œ ์ž๋™์œผ๋กœ ๋ฒˆํ˜ธ๋ฅผ ๋งค๊ธฐ๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. counter-reset ์นด์šดํ„ฐ์ด๋ฆ„๊ณผ ์‹œ์ž‘๊ฐ’์„ ์„ค์ •{ counter-reset: initial | ์นด์šดํ„ฐ์ด๋ฆ„/์ˆซ์ž | none } initial :: ์ดˆ๊ธฐํ™” ์นด์šดํ„ฐ๋กœ ์‚ฌ์šฉํ•  ์ด๋ฆ„ ์ˆซ์ž๋ฅผ ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ๊ธฐ๋ณธ๊ฐ’์ด 0 ์ˆซ์ž๋Š” ์Œ์ˆ˜๊ฐ’๋„ ๊ฐ€๋Šฅํ•˜๋ฉฐ ์—ฌ๋Ÿฌ๊ฐœ์˜ ์นด์šดํ„ฐ๋ฅผ ์„ค์ •ํ•˜๊ณ ์ž ํ•  ๋•Œ ๊ณต๋ž€์œผ๋กœ ๋ถ„๋ฆฌ. none :: ์„ค์ •๊ฐ’์ด ์—†์Œ(์ด๋ฏธ ์„ค์ •๋œ ๊ฒƒ์„ ์ทจ์†Œํ•˜๊ณ ์ž ํ•  ๋•Œ ์‚ฌ์šฉ) counter-increment counter-reset์œผ๋กœ ์„ค์ •ํ•œ ๊ฐ’์„ ์ฆ๊ฐ€์‹œํ‚ค๋Š” ์—ญํ• { counter-increment: initial | ์นด์šดํ„ฐ์ด๋ฆ„/์ˆซ์ž | none } initial :: ์ดˆ๊ธฐํ™” ์ˆซ์ž๋ฅผ ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ 1์”ฉ ์ฆ๊ฐ€ ์ˆซ์ž๋Š” ์Œ์ˆ˜๊ฐ’ ๊ฐ€..
Meta Tag, OG(์˜คํ”ˆ๊ทธ๋ž˜ํ”„) ์‚ฌ์šฉํ•˜๊ธฐ ์˜คํ”ˆ๊ทธ๋ž˜ํ”„(Open Graph) ์ฝ˜ํ…์ธ ์˜ ์š”์•ฝ๋‚ด์šฉ์ด SNS์— ๊ฒŒ์‹œ๋˜๋Š”๋ฐ ์ตœ์ ํ™”๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง€๊ณ  ๊ฐˆ ์ˆ˜ ์žˆ๋„๋ก ์„ค์ •ํ•˜๋Š” ๊ฒƒ ์›๋ฆฌ ๋งํฌ๋ผ๋Š” ๊ฒƒ์ด ์ธ์‹๋˜๋ฉด ํฌ๋กค๋Ÿฌ๊ฐ€ ํ•ด๋‹น ์›น์‚ฌ์ดํŠธ์˜ HTML head์˜ ๋ฉ”ํƒ€ ๋ฐ์ดํ„ฐ๋ฅผ ํฌ๋กค๋งํ•˜์—ฌ ๋ฏธ๋ฆฌ๋ณด๊ธฐ ํ™”๋ฉด์„ ์ƒ์„ฑ ํ”„๋กœํ† ์ฝœ ๋น„๊ต์  ํ†ต์ผ๋œ ๋ฐฉ๋ฒ•์œผ๋กœ ํŽ˜์ด์Šค๋ถ์˜ open graph ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•œ๋‹ค. ํŽ˜์ด์Šค๋ถ, ๋„ค์ด๋ฒ„๋ธ”๋กœ๊ทธ, ์นด์นด์˜คํ†ก ๋“ฑ์—์„œ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ํ”„๋กœํ† ์ฝœ open graph ๋ฌธ์„œ ํƒœ๊ทธ ์‚ฌ์šฉ๋ฒ• 800 X 800 ๋˜๋Š” 600 x 315 ๋˜๋Š” 1200 x 630 ๋Œ€๋‹ค์ˆ˜ ์นดํ†ก์œผ๋กœ ๋งŽ์ด url์„ ๋ณด๋‚ด๋ฏ€๋กœ 800x800์œผ๋กœ ๋งž์ถ”์—ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ์›น์— ์„ค์ •ํ•ด์ค˜์•ผ ํ•˜๋Š” og ๋ฉ”ํƒ€ํƒœ๊ทธ ๋„ค์ด๋ฒ„๋ธ”๋กœ๊ทธ, ์นด์นด์˜คํ†ก ๋ฏธ๋ฆฌ๋ณด๊ธฐ ์„ค์ • ํŠธ์œ„ํ„ฐ ๋ฏธ๋ฆฌ๋ณด๊ธฐ ์„ค์ • Reference Meta Tag, OG(์˜ค..
[Git] Git push ์˜ค๋ฅ˜ํ•ด๊ฒฐ hint: Updates were rejected because the remote contains work that you do hint: not have locally. This is usually caused by another repository pushing hint: to the same ref. You may want to first integrate the remote changes hint: (e.g., 'git pull ...') before pushing again. hint: See the 'Note about fast-forwards' in 'git push --help' for details. github repository๋ฅผ ์ƒ์„ฑํ•  ๋•Œ readme.md ์ƒ์„ฑ์œผ๋กœ ์ธํ•œ ์˜ค๋ฅ˜๋ผ๊ณ  ..
[JavaScript] ์ฐธ์กฐ์— ์˜ํ•œ ๊ฐ์ฒด ๋ณต์‚ฌ ์ฐธ์กฐ์— ์˜ํ•œ ๊ฐ์ฒด๋ณต์‚ฌ ๊ฐ์ฒด์™€ ์›์‹œํƒ€์ž…์˜ ๊ทผ๋ณธ์ ์ธ ์ฐจ์ด ์ค‘ ํ•˜๋‚˜๋Š” ๊ฐ์ฒด๋Š” '์ฐธ์กฐ์— ์˜ํ•ด(by reference)' ์ €์žฅ๋˜๊ณ  ๋ณต์‚ฌ๋œ๋‹ค. ์›์‹œ๊ฐ’(๋ฌธ์ž์—ด, ์ˆซ์ž, ๋ถˆ๋ฆฐ ๊ฐ’)์€ '๊ฐ’ ๊ทธ๋Œ€๋กœ' ์ €์žฅ·ํ• ๋‹น๋˜๊ณ  ๋ณต์‚ฌ๋œ๋‹ค. let message = 'Hello'; let cloneMessage = message; cloneMessage = 'CloneHello'; console.log(message, cloneMessage); // Hello CloneHello ๊ฐ์ฒด๊ฐ€ ํ• ๋‹น๋œ ๋ณ€์ˆ˜๋ฅผ ๋ณต์‚ฌํ•˜๋ฉด ๋™์ผํ•œ ๊ฐ์ฒด์— ๋Œ€ํ•œ ์ฐธ์กฐ ๊ฐ’์ด ํ•˜๋‚˜ ๋” ๋งŒ๋“ค์–ด์ง„๋‹ค. let user = { name: 'John'; } let admin = user; admin.name = ..
[JavaScript] ๊ฐ์ฒด ์ƒ์ˆ˜๊ฐ์ฒด const๋กœ ์„ ์–ธ๋œ ๊ฐ์ฒด๋Š” ์ˆ˜์ • ๋  ์ˆ˜ ์žˆ๋‹ค. const user = { name: 'John' }; user.name = 'Pete'; console.log(user.name); // Pete const๋Š” ํ•œ ๋ฒˆ์ด๋ผ๋„ ๊ฐ’์„ ํ• ๋‹นํ•œ ๋ณ€์ˆ˜๊ฐ€ ๋ณ€๊ฒฝ๋˜๋Š” ๊ฑธ ๋ง‰๋Š”๋‹ค. ๋ณ€์ˆ˜ user๋Š” ๊ฐ์ฒด ์ฐธ์กฐ ๊ฐ’์„ ์ €์žฅํ•˜๊ณ  ์žˆ๋Š”๋ฐ, const๋Š” ์ด ๊ฐ’์ด ๋ณ€๊ฒฝ๋˜๋Š”๊ฑธ ๋ง‰๋Š” ๊ฒƒ์ด์ง€, ๊ฐ์ฒด์˜ ๋‚ด์šฉ (ํ”„๋กœํผํ‹ฐ)์„ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฑด ๋ง‰์ง€์•Š๋Š”๋‹ค. ๊ณ„์‚ฐ๋œ ํ”„๋กœํผํ‹ฐ ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค ๋•Œ ๊ฐ์ฒด ๋ฆฌํ„ฐ๋Ÿด ์•ˆ์˜ ํ”„๋กœํผํ‹ฐ ํ‚ค๊ฐ€ ๋Œ€๊ด„ํ˜ธ๋กœ ๋‘˜๋Ÿฌ์‹ธ์—ฌ ์žˆ์„ ๊ฒฝ์šฐ, ์ด๋ฅผ ๊ณ„์‚ฐ๋œ ํ”„๋กœํผํ‹ฐ (computed propery) ๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. let fruit = prompt('์–ด๋–ค ๊ณผ์ผ์„ ๊ตฌ๋งคํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?', 'appl..
[JavaScript] nullish ๋ณ‘ํ•ฉ ์—ฐ์‚ฐ์ž ?? nullish ๋ณ‘ํ•ฉ์—ฐ์‚ฐ์ž ?? ์ตœ๊ทผ์— ์ถ”๊ฐ€๋จ. ์ŠคํŽ™์— ์ถ”๊ฐ€๋œ์ง€ ์–ผ๋งˆ์•ˆ๋œ ๋ฌธ๋ฒ•. ๊ตฌ์‹ ๋ธŒ๋ผ์šฐ์ €๋Š” ํด๋ฆฌํ•„์ด ํ•„์š”ํ•˜๋‹ค. nullsh ๋ณ‘ํ•ฉ์—ฐ์‚ฐ์ž(nullish coalescing operator) ??๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์งง์€ ๋ฌธ๋ฒ•์œผ๋กœ ์—ฌ๋Ÿฌ ํ”ผ์—ฐ์‚ฐ์ž ์ค‘ ๊ทธ ๊ฐ’์ด ํ™•์ •๋˜์–ด ์žˆ๋Š” ๋ณ€์ˆ˜๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค. a ?? b ์˜ ํ‰๊ฐ€ ๊ฒฐ๊ณผ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. a๊ฐ€ null๋„ ์•„๋‹ˆ๊ณ  undefined๋„ ์•„๋‹ˆ๋ฉด a ๊ทธ ์™ธ์˜ ๊ฒฝ์šฐ b nullish ๋ณ‘ํ•ฉ ์—ฐ์‚ฐ์ž ??์—†์ด x = a ?? b์™€ ๋™์ผํ•œ ๋™์ž‘์„ ํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. x = (a !== null && a !== undefined) ? a : b; ??์™€ ||์˜ ์ฐจ์ด ||๋Š” ์ฒซ ๋ฒˆ์งธ truthy๊ฐ’์„ ๋ฐ˜ํ™˜. ??๋Š” ์ฒซ ๋ฒˆ์งธ ์ •์˜๋œ(defined) ๊ฐ’์„ ๋ฐ˜ํ™˜. null๊ณผ un..
์›น์ ‘๊ทผ์„ฑ์— ์ฃผ์˜ํ•ด์•ผ ํ•  ๋ถ€๋ถ„ ์›น์ ‘๊ทผ์„ฑ ์ฃผ์˜ํ•  ๋ถ€๋ถ„ 1. label || title form์—์„œ label๊ณผ input์ด ๋“ค์–ด๊ฐˆ ๋•Œ label์— input ์˜ ์•„์ด๋””๋ฅผ ๋„ฃ์–ด ์—ฐ๊ฒฐ์‹œ์ผœ์ค€๋‹ค. ํ•˜์ง€๋งŒ label์ด ์—†์„ ๊ฒฝ์šฐ input์— title=""๋ฅผ ๋„ฃ์–ด ๋ช…์‹œํ•ด์ค€๋‹ค. 2. aria-hidden ํ™”๋ฉด์ƒ ์ˆจ๊ฒจ์ง€๊ฑฐ๋‚˜ ๊ฐ€๋ ค์ง„ ์ฝ˜ํ…์ธ  ARIA๋ฅผ ์ ์šฉํ•˜์—ฌ ๋ชจ๋ฐ”์ผ ์Šคํฌ๋ฆฐ๋ฆฌ๋”๊ธฐ๊ฐ€ ์ ‘๊ทผํ•˜์ง€ ์•Š๋„๋ก ๊ตฌํ˜„. undefined(default) true ์ ‘๊ทผ์„ฑ API ์ฐจ๋‹จ. (ํ™”๋ฉดํ‘œ์‹œ ์—ฌ๋ถ€์™€ ๋ฌด๊ด€ API ์ฐจ๋‹จ) false ์ ‘๊ทผ์„ฑ API ์‚ฌ์šฉ. (ํ™”๋ฉด์— ํ‘œ์‹œํ•œ ๊ฒฝ์šฐ API ์‚ฌ์šฉ) aria-hidden vs hidden aria-hidden :: ํ™”๋ฉด์— ํ‘œ์‹œ๋˜๋‚˜ ์ ‘๊ทผ์„ฑAPI(๋ณด์กฐ๊ธฐ๊ธฐ ์ ‘๊ทผ ๊ฐ€๋Šฅ์„ฑ) ์ฐจ๋‹จ ์ƒํƒœ ๊ฒฐ์ •. hidden :: ํ™”๋ฉด์— ํ‘œ์‹œ๋˜์ง€ ์•Š์•„ ์ ‘๊ทผ ๋ถˆ..

๋ฐ˜์‘ํ˜•