์žฌ๋ฐŒ๊ฒŒ ํ•ฉ์‹œ๋‹ค

๊ธฐ๋กํ•˜๊ธฐ, ๊ฐ€์‹œํ™”ํ•˜๊ธฐ

ํ”„๋กœ์ ํŠธ ๊ธฐ๋ก 4

(์—๋Ÿฌ ํ•ด๊ฒฐ) Union type๊ณผ ํƒ€์ž… ๊ฐ€๋“œ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๊ธฐ

Union type | ์—ฐ์‚ฐ์ž๋กœ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํƒ€์ž…์ด ์—ฐ๊ฒฐ๋œ ํƒ€์ž…์„ ์˜๋ฏธํ•œ๋‹ค. ์ด๋•Œ | ์—ฐ์‚ฐ์ž๋Š” or์˜ ์˜๋ฏธ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ์ด๋Ÿฌํ•œ Union type์„ ํ™œ์šฉํ•ด ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ •์˜ํ•˜๊ณ ์ž ํ–ˆ๋‹ค. ๋ฌธ์ œ ์ •์˜ interface Props { data: LectureRoomsPerBuilding | LectureRoomInfo; children?: LectureRoomInfo[]; } ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ž‘์„ฑํ–ˆ๋Š”๋ฐ, ํƒ€์ž… ์ถ”๋ก ์—์„œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค. export interface LectureRoomInfo { room_name: string; room_uid: RoomUID; } export interface LectureRoomsPerBuilding { building_name: string; building..

์‚ฌ์ด๋“œ๋ฐ” ๊ตฌํ˜„ํ•˜๊ธฐ | UI

์‚ฌ์ด๋“œ๋ฐ”๋ฅผ ๊ตฌํ˜„ํ•ด๋ณด์ž. ๋ช…ํ™•ํ•œ ์š”๊ตฌ์‚ฌํ•ญ ์—†์ด ๋‹จ์ง€ ๊ฐ•์˜์‹ค ๋ชฉ๋ก์„ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๋Š” ์‚ฌ์ด๋“œ๋ฐ”๋ฅผ ๊ตฌํ˜„ํ•ด์•ผ ํ–ˆ๋‹ค. ์–ด๋–ค ์‹์œผ๋กœ ์ž‘๋™ํ•ด์•ผ ํ•  ์ง€ ๊ฐ์ด ์•ˆ์™€์„œ, ๋ ˆํผ๋Ÿฐ์Šค๋ฅผ ์ฐธ๊ณ ํ–ˆ๋‹ค. Ant Design Ant design ์ปดํฌ๋„ŒํŠธ์—์„œ ๋‹ค์–‘ํ•œ ์‚ฌ์ด๋“œ๋ฐ”๋ฅผ ์ œ๊ณตํ•˜๊ณ  ์žˆ๋‹ค. ์‹ค์ œ๋กœ ์กฐ์ž‘ํ•ด๋ณผ ์ˆ˜ ์žˆ๊ณ , ๋Œ€๋žต์ ์ธ ์ฝ”๋“œ๋„ ์ œ๊ณตํ•œ๋‹ค. ๊ทธ ์ค‘ ์œ„ ์ด๋ฏธ์ง€์— ์žˆ๋Š” ์‚ฌ์ด๋“œ๋ฐ” ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ฐธ๊ณ ํ–ˆ๋‹ค. Ant Design ์ฝ”๋“œ์˜ ์ผ๋ถ€๋ถ„์„ ๋ฐœ์ทŒํ•ด์™”๋‹ค. ์ด์ค‘ Menu ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋ณด๋ฉด, props๋กœ items๋ฅผ ๋ฐ›๊ณ  ์žˆ๋‹ค. items์— ์ „๋‹ฌ๋˜๋Š” ์˜ˆ์ œ ๊ฐ์ฒด๋ฅผ ์‚ดํŽด๋ดค๋”๋‹ˆ, children์ด๋ผ๋Š” ํ”„๋กœํผํ‹ฐ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ์„œ๋ธŒ ๋ฉ”๋‰ด๋“ค์˜ ์ •๋ณด๊ฐ€ ๋‹ด๊ฒจ ์žˆ๋‹ค. ์ฆ‰, Menu ์ปดํฌ๋„ŒํŠธ์— ์„œ๋ธŒ ๋ฉ”๋‰ด๊ฐ€ ํฌํ•จ๋œ ์ •๋ณด๋ฅผ ์ „๋‹ฌํ•˜๋ฉด Menu ์ปดํฌ๋„ŒํŠธ ๋‚ด์—์„œ ..

ReactNative๋กœ ๋Ÿฌ๋‹์–ดํ”Œ ๋งŒ๋“ค๊ธฐ | ์‹ค์‹œ๊ฐ„ ํƒ€์ด๋จธ ๊ตฌํ˜„

2022.05.14 velog์— ์ž‘์„ฑํ–ˆ๋˜ ๊ธ€์ž…๋‹ˆ๋‹ค ๋Ÿฌ๋‹ ์–ดํ”Œ์ธ ๋งŒํผ ์ •๋ณด๊ฐ€ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ฐ”๋€Œ์–ด์•ผ ํ•œ๋‹ค. ์‹ค์‹œ๊ฐ„์ด๋ผ๊ธฐ ๋ณด๋‹ค๋Š” ์ดˆ ๋‹จ์œ„๋กœ ๋ฐ”๋€Œ์–ด์•ผ ํ•œ๋‹ค๋Š” ๋ง์ด ๋” ์ ํ•ฉํ•˜๊ธด ํ•˜๊ฒ ๋‹ค. ์•„๋ฌดํŠผ ๋Œ€ํ‘œ์ ์ธ ์‹ค์‹œ๊ฐ„ ์ •๋ณด๋Š” '์‚ฌ์šฉ์ž๊ฐ€ ๋‹ฌ๋ฆฐ ์‹œ๊ฐ„'์ด๋‹ค. ์‹œ๊ฐ„์„ ๊ธฐ์ค€์œผ๋กœ ๊ณ„์‚ฐํ•ด์ฃผ์–ด์•ผ ํ•˜๋Š” ๊ฐ’๋“ค์ด ์กด์žฌํ•˜๊ธฐ ๋•Œ๋ฌธ์—(ex ํŽ˜์ด์Šค, ์นผ๋กœ๋ฆฌ) ์ด ๊ฐ’์„ ์ž˜ ๊ด€๋ฆฌํ•ด์ค˜์•ผ ํ•œ๋‹ค ๐Ÿ˜Š ... ๊ตฌํ˜„ ๋ชฉํ‘œ โฐ ์•„๋ž˜ ์ด๋ฏธ์ง€์˜ ํƒ€์ด๋จธ๋ฅผ ๊ตฌํ˜„ํ•˜๊ณ ์ž ํ–ˆ๋‹ค. 1์ดˆ์”ฉ ์ฆ๊ฐ€ํ•ด์•ผ ํ•˜๊ณ , ๋ฐ”๋€ ๊ฐ’์ด ํ™”๋ฉด์—๋„ ๋ฐ”๋กœ ๋ฐ˜์˜๋˜์–ด์•ผ ํ•œ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ์ผ์‹œ์ •์ง€ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ์‹œ๊ฐ„ ์ฆ๊ฐ€๋„ ๋ฉˆ์ถฐ์•ผ ํ•œ๋‹ค. ๋Ÿฌ๋‹์„ ์žฌ๊ฐœํ•˜๋ฉด ์ผ์‹œ์ •์ง€ ๋ฒ„ํŠผ ๋ˆ„๋ฅด๊ธฐ ์ „ ์‹œ๊ฐ„์—์„œ ๋‹ค์‹œ 1์ดˆ์”ฉ ์ฆ๊ฐ€ํ•ด์•ผ ํ•œ๋‹ค. ๊ธฐ๋ณธ ํƒ€์ด๋จธ ๊ตฌํ˜„ useInterval์ด๋ผ๋Š” custom Hook์„ ์‚ฌ์šฉํ–ˆ๋‹ค. ๋ฆฌ์•กํŠธ์˜ ๊ธฐ๋ณธ Hoo..

ํ† ์ด ํ”„๋กœ์ ํŠธ๋ฅผ ์œ„ํ•œ css ๋ฐฉ์‹ ๊ฒฐ์ •ํ•˜๊ธฐ

๐Ÿงธ ๐Ÿš‚ ๐ŸŽˆ ์ƒˆ๋กœ์šด ํ† ์ด ํ”„๋กœ์ ํŠธ์—์„œ ์‚ฌ์šฉํ•  css ๋ฐฉ์‹์„ ๊ฒฐ์ •ํ•˜๊ธฐ ์œ„ํ•ด ์ง์ ‘ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๋ฐฉ์‹๋“ค์„ ์กฐ์‚ฌํ•˜๊ณ  ์žฅ๋‹จ์ ์„ ๋น„๊ตํ•ด ๋ดค๋‹ค! ๐Ÿ™‹๐Ÿปโ€โ™‚๏ธ ๐ŸŽˆ ๊ณ ๋ คํ•œ ์„ ํƒ์ง€ css module css preprocessor(scss) css-in-js(styled-components) ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ง์ ‘ ์ œ์ž‘ํ•ด๋ณด๊ณ  ์‹ถ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— Tailwind CSS, Bootstrap, Material UI ๋“ฑ์˜ CSS Framework๋Š” ๊ณ ๋ คํ•˜์ง€ ์•Š์•˜๋‹ค. โ—๏ธ ๊ธฐ์กด css๊ฐ€ ๊ฐ€์ง€๋Š” ๋ฌธ์ œ์  ๊ฐ€์žฅ ํฐ ๋ฌธ์ œ์ ์€ ๋ฐ”๋กœ ์ค‘๋ณต๋œ ํด๋ž˜์Šค๋ช…์— ์žˆ๋‹ค. css๋Š” global scope๋ฅผ ๊ฐ€์ง€๊ธฐ ๋•Œ๋ฌธ์—, ํด๋ž˜์Šค๋ช…์ด ์ค‘๋ณต๋  ๊ฒฝ์šฐ ์›์น˜์•Š๋Š” ๊ณณ์— ์Šคํƒ€์ผ์ด ์ ์šฉ๋˜๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๊ฒฐ๊ตญ ํด๋ž˜์Šค๋ช…์„ ์ ์  ๋” ๊ตฌ์ฒด์ ์œผ๋กœ ์ง€์„ ์ˆ˜ ๋ฐ–์—..