๐Ÿฌ ๊ธดํ˜ธํก/๊ณ ์Šค๋ฝ ํ‹ฐ์ผ“

[ํ‹ฐ์ผ“ ์˜ˆ๋งค ํ”„๋กœ์ ํŠธ] 5. ์ฝ”๋กœ๋‚˜ ๋Œ€์‘ (๊ธฐํš, ๋””์ž์ธ ์ˆ˜์ •)

ํ•œ๊ทœ์ง„ 2022. 2. 15. 19:36

๊ฑฐ์˜๋‹ค ์™„์„ฑ๋˜์–ด๊ฐ„๋‹ค๊ณ  ๋Š๋‚„ ์ฆˆ์Œ์— ๊ธฐํš์ด ๋Œ€ํญ ์ˆ˜์ •๋˜์—ˆ๋‹ค. 17-19 OB๋“ค์ด ์ง„ํ–‰ํ•˜๋Š” ํ”„๋กœ์ ํŠธ์ด์ง€๋งŒ ์šฐ๋ฆฌ ์ข‹์ž๊ณ  ํ•˜๋Š”๊ฒŒ ์•„๋‹ˆ๋ผ ํ›„๋ฐฐ๋“ค ๋„์™€์ฃผ๋ ค๋Š” ๋ชฉ์ ์ด ํฌ๊ธฐ ๋•Œ๋ฌธ์—. ์ฝ”๋กœ๋‚˜ ๊ฑฐ๋ฆฌ๋‘๊ธฐ ๋•Œ๋ฌธ์— ๊ณต์—ฐ์— ๋“ค์–ด์˜ฌ ์ˆ˜ ์žˆ๋Š” ์ธ์›์ˆ˜๊ฐ€ ์ œํ•œ์ด ๊ฑธ๋ ธ๋‹ค. ๊ด€๋ จํ•ด์„œ 21ํ•™๋ฒˆ ์ž„์› ์นœ๊ตฌ๋“ค๊ณผ ํšŒ์˜๋ฅผ ์ง„ํ–‰ํ–ˆ๋‹ค. ํฌ๊ฒŒ ๋‘๊ฐ€์ง€์ด๋‹ค. ์ธ๋‹น ํ‹ฐ์ผ“์€ 1๋งค์”ฉ๋งŒ ๊ตฌ์ž…ํ•  ์ˆ˜ ์žˆ๊ณ  ์ƒˆ๋‚ด๊ธฐ๋Š” ๊ณต์งœ. ๊ทธ๋ฆฌ๊ณ  ์ƒˆ๋‚ด๊ธฐ์˜ ๊ฒฝ์šฐ์—๋Š” '๊ณต์—ฐ ์ „ ์†Œ๋ชจ์ž„'์„ ์‹ ์ฒญํ•  ์ˆ˜ ์žˆ๋„๋ก.

 

๋ณดํ†ต์€ ์ฒ˜์Œ ์‚ฌ๊ท„ ์นœ๊ตฌ๋“ค๋ผ๋ฆฌ ์‚ผ์‚ผ์˜ค์˜ค ๋ชจ์—ฌ์„œ ๋‹ค๊ฐ™์ด ๊ณต์—ฐ์„ ๋ณด๋Ÿฌ ์™”์—ˆ๋Š”๋ฐ ์ฝ”๋กœ๋‚˜ ์‹œ๊ตญ์—๋Š” ๊ทธ๋Ÿฌ๊ธฐ๊ฐ€ ์–ด๋ ต์ง€ ์•Š์„๊นŒ ๋ผ๋Š” ์˜๊ฒฌ์—์„œ ๋‚˜์˜จ ๊ธฐํš์ด์—ˆ๋‹ค. ๊ณต์—ฐ ์ดํ‹€ ์ „์ฏค์— ์˜ˆ๋น„๋Œ€ํ•™์ฒ˜๋Ÿผ ์ƒˆ๋‚ด๊ธฐ ๋ช‡๋ช…๊ณผ ์„ ๋ฐฐ๋“ค ๋ช‡๋ช…์ด ๋ฏธ๋ฆฌ ๋งŒ๋‚˜์„œ ์—ฐ์„ ๋งบ๊ณ , ์นœํ•ด์ง„ ์นœ๊ตฌ๋“ค๋ผ๋ฆฌ ๊ณต์—ฐ์„ ์˜ฌ ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š”... ์ž˜ ๋ ์ง€๋Š” ๋ชจ๋ฅด์ง€๋งŒ ๊ฝค ์ข‹์€ ์•„์ด๋””์–ด๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค.

 

ํ‹ฐ์ผ“์„ ์˜ˆ๋งคํ•˜๋Š” ๊ณผ์ •๊ณผ ์˜ˆ๋งคํ•œ ํ‹ฐ์ผ“์„ ๋ณด๋Š” ํŽ˜์ด์ง€๊ฐ€ ํฌ๊ฒŒ ๋‹ฌ๋ผ์กŒ๋‹ค. ์ƒˆ๋‚ด๊ธฐ ํ‹ฐ์ผ“์ด ๊ณต์งœ๊ฐ€ ๋์œผ๋‹ˆ 1์ธ 1๋งค๋กœ ์ œํ•œํ–ˆ๋‹ค. ๋Œ€์‹  ์นœ๊ตฌ์˜ ํ‹ฐ์ผ“๋“ค์„ ๊ฐ™์ด ์‚ฌ์ค„ ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋Š” ์žฌํ•™์ƒ, ์„ ๋ฐฐ์˜ ๊ฒฝ์šฐ๋ฅผ ์œ„ํ•ด ์–ด๋“œ๋ฏผ ํŽ˜์ด์ง€์—์„œ ํ‹ฐ์ผ“์„ ๋”ฐ๋กœ ๋ฐœ๊ธ‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ–ˆ๋‹ค. ๊ธฐ์กด ๊ธฐํš์ธ '๋‚ด๊ฐ€ ์˜ˆ๋งคํ•œ ํ‹ฐ์ผ“ ๋ฆฌ์ŠคํŠธ'๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ๋งˆ์ดํŽ˜์ด์ง€๋„ ๋‹น์—ฐํžˆ ์ˆ˜์ •๋˜์—ˆ๋‹ค.

 

1. ํ‹ฐ์ผ“ ์˜ˆ๋งค ๊ณผ์ •

ํ‹ฐ์ผ“ ๋งค์ˆ˜๋ฅผ ์ž…๋ ฅ๋ฐ›๋Š” ์ž๋ฆฌ์—์„œ ๋งค์ˆ˜ ๋Œ€์‹  ํ•™๋ฒˆ์„ ์ž…๋ ฅ๋ฐ›๋„๋ก ํ–ˆ๋‹ค. ๊ทธ ํ›„๋กœ ์‹ ์ž…์ƒ๊ณผ ์žฌํ•™์ƒ์ด ๋ณผ ์ˆ˜ ์žˆ๋Š” ํŽ˜์ด์ง€๋ฅผ ๋ถ„๋ฆฌํ–ˆ๋‹ค. ๋งŒ์•ฝ ํ•™๋ฒˆ์ด C2๋กœ ์‹œ์ž‘ํ•œ๋‹ค๋ฉด ๊ณต์—ฐ ์ „ ์†Œ๋ชจ์ž„์„ ์‹ ์ฒญํ•  ์ˆ˜ ์žˆ๋Š” ํŽ˜์ด์ง€๋กœ ๋„˜์–ด๊ฐ„๋‹ค. 22ํ•™๋ฒˆ์ด ์•„๋‹ˆ๋ผ๋ฉด ๊ธฐ์กด๊ณผ ๋™์ผํ•˜๋‹ค. ๊ธฐํš 1ํŽธ

 

ํ”ผ๊ทธ๋งˆ์—์„œ ๋””์ž์ธํ•œ๋Œ€๋กœ ๋˜‘๊ฐ™์ด ๋งŒ๋“ค์–ด์ง€๋Š” ํ™”๋ฉด์„ ๋ณผ ๋•Œ ์ซŒ ๋ฟŒ๋“ฏํ•˜๋‹ค. ์†Œ๋ชจ์ž„ ์‹ ์ฒญ ํ† ๊ธ€ ui๊ฐ€ ๋ง˜์— ๋“ ๋‹ค. ์€ํ–‰ ์‚ฌ์ดํŠธ์—์„œ ์•ฝ๊ด€ ๋™์˜ํ•˜๊ธฐ ๊ณผ์ •์—์„œ ๋ชจํ‹ฐ๋ธŒ๋ฅผ ๋ฐ›์•˜๋‹ค. ๊ตฌ์ฒด์ ์ธ ์„ค๋ช…์ด ํ•„์š”ํ•œ ๋ถ€๋ถ„์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ชจ๋‹ฌ์ฐฝ์„ ๋„์›Œ์„œ ์ •๋ณด๋ฅผ ๋ณด์—ฌ์ฃผ๊ณ  ์‹ ์ฒญ์„ ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ–ˆ๋‹ค.

 

์‹ ์ž…์ƒ์€ ๊ณต์—ฐ์ด ๊ณต์งœ๋ผ๋Š” ๊ฒƒ์„ ํ•œ๋ฒˆ ๋” ์ƒ๊ธฐ์‹œ์ผœ์ฃผ๋ฉด์„œ ๋งˆ์ดํŽ˜์ด์ง€๋กœ ๊ณง๋ฐ”๋กœ ์ด๋™ํ•œ๋‹ค.

 

2. ๋งˆ์ดํŽ˜์ด์ง€

์™ผ์ชฝ์€ ๊ธฐ์กด, ์˜ค๋ฅธ์ชฝ์€ ์ƒˆ๋กœ ๋ฐ”๋€ ํŽ˜์ด์ง€์ด๋‹ค. ์•„์ดํฐ ์œ„์ ฏ๊ฐ™์€ ๋Š๋‚Œ์„ ์ฃผ๊ณ  ์‹ถ์—ˆ๋‹ค. ๋งˆ์ดํŽ˜์ด์ง€ ์ด์ „๋ณด๋‹ค ๋” ๋งŽ์€ ์ •๋ณด๋ฅผ ๋„ฃ์„ ์ˆ˜ ์žˆ๊ฒŒ ๋˜์–ด์„œ ์˜ˆ๋งค์ผ ์ •๋ณด๋ฅผ ๋”ฐ๋กœ ๋บ๋‹ค. ์ƒˆ๋‚ด๊ธฐ๋Š” ์ž…๊ธˆ์ •๋ณด๊ฐ€ ํ•„์š” ์—†๊ณ  ์žฌํ•™์ƒ์€ ์†Œ๋ชจ์ž„ ์ •๋ณด๊ฐ€ ํ•„์š” ์—†๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ ๋ถ€๋ถ„์„ ๊ฐ๊ฐ ๋‹ค๋ฅด๊ฒŒ ๋„ฃ์–ด์ฃผ์—ˆ๋‹ค.

 

์ด์ „๋ถ€ํ„ฐ ๊ณต์—ฐ์žฅ ์ •๋ณด๋ฅผ ๋„ฃ๊ณ  ์‹ถ์–ด๋„ ๋งˆ๋•…ํ•œ ์•„์ด๋””์–ด๊ฐ€ ์—†์–ด์„œ ๊ณ ๋ฏผํ•˜๊ณ  ์žˆ์—ˆ๋Š”๋ฐ, ๋งˆ์นจ ๋”ฑ ๋งž๋Š” ๊ณต๊ฐ„์ด ์ƒ๊ฒจ์„œ ๋‹ด์•˜๋‹ค. ์ข‹๋‹ค. ํฐ์ƒ‰ ๋ฒ„ํŠผ์ด ๋ฒ„ํŠผ๊ฐ™์ด ์•ˆ์ƒ๊ฒผ๋‹ค๋Š” ํ”ผ๋“œ๋ฐฑ์ด ์žˆ์—ˆ๋‹ค. ์ด์ „๋ณด๋‹ค ํ›จ์‹  ๋” ๋ฒ„ํŠผ์ฒ˜๋Ÿผ ๋ณด์ธ๋‹ค ์ด์ œ.

 

์œ„์ ฏ์˜ ํฌ๊ธฐ์— ๋งž๊ฒŒ ํฐํŠธ์˜ ํฌ๊ธฐ๊ฐ€ ๋งž์•„์•ผ ์ด๋ปค๋‹ค. font-size๋ฅผ vw ๋‹จ์œ„๋กœ ์ฃผ๋‹ˆ๊นŒ ๋‚˜๋ฆ„ ๋งŒ์กฑ์Šค๋Ÿฝ๊ฒŒ ๋‚˜์™”๋‹ค. ์ด๋ฏธ ์ •ํ•ด๋†“์€ ๋ ˆ์ด์•„์›ƒ ๊ทธ๋ฆฌ๋“œ ๋†’์ด ๋•Œ๋ฌธ์— ๋„“์€ ํ™”๋ฉด์—์„  ์ •์‚ฌ๊ฐํ˜• ์œ„์ ฏ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์—ˆ๋‹ค. ์•„์‰ฌ์šด๋Œ€๋กœ ๋†’์ด๋Š” ๊ณ ์ •ํ•˜๊ณ  ๋„ˆ๋น„๋งŒ ๋Š˜๋ ค์ฃผ์—ˆ๋‹ค.

 

import React from 'react';

const Tile = ({ children, color, ...props }) => {
  return (
    <div className="mypage-square" style={{ backgroundColor: `${color}` }}>
      <div className="mypage-inner">
        <div className="mypage-content" {...props}>
          {children}
        </div>
      </div>
    </div>
  );
};

export default Tile;



//Tile.css
.mypage-square {
  width: 100%;
  border-radius: 22px;
  position: relative;
}
.mypage-square:after {
  content: '';
  display: block;
  padding-bottom: 100%;
}
.mypage-inner {
  position: absolute;
  width: 100%;
  height: 100%;
}
.mypage-content {
  height: 76%;
  width: 76%;
  padding: 12%;
}

๋ฐ˜์‘ํ˜• ์ •์‚ฌ๊ฐํ˜• ๋ชจ์–‘์œผ๋กœ ๊ณ ์ •ํ•˜๋Š”๊ฒŒ ์ƒ๊ฐ๋ณด๋‹ค ๊นŒ๋‹ค๋กœ์› ๋‹ค. after ๊ฐ€์ƒ ์„ ํƒ์ž๊ฐ€ ์—ฌ๊ธฐ์ €๊ธฐ์„œ ์š”๊ธดํ•˜๊ฒŒ ์“ฐ์ธ๋‹ค. ์กฐ๊ธˆ ๋” ์—ฐ์Šตํ•ด๋ด์•ผ๊ฒ ๋‹ค. ์ •์‚ฌ๊ฐํ˜• ํ•˜๋‚˜ ๋•Œ๋ฌธ์— ์ฝ”๋“œ๊ฐ€ ๊ธธ์–ด์ ธ ์ฝ๊ธฐ ํž˜๋“  ๋Š๋‚Œ์ด ์žˆ๋‹ค. ์ปดํฌ๋„ŒํŠธ๋กœ ๋”ฐ๋กœ ๋บ€ ํ›„์— ์•ˆ์˜ ๋‚ด์šฉ์„ children์œผ๋กœ ๋„˜๊ฒจ์ฃผ์—ˆ๋‹ค.

 

props๋ฅผ ์Šคํ”„๋ ˆ๋“œ ์—ฐ์‚ฐ์ž๋ฅผ ์ด์šฉํ•ด ๋„˜๊ฒจ์ฃผ๊ณ , ์›ํ•˜๋Š” ์œ„์น˜์—์„œ {...props} ํ˜•ํƒœ๋กœ ๋ฐ›์•„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ฑด ํ”„๋กœ์ ํŠธ๋ฅผ ํ•˜๋ฉด์„œ ๋ฐฐ์šด ๊ฒƒ๋“ค ์ค‘ ํ•˜๋‚˜์ด๋‹ค. ์ข‹์€ ๋ฐฉ์‹์€ ์•„๋‹Œ ๊ฒƒ ๊ฐ™๊ธด ํ•˜์ง€๋งŒ ํŽธํ•˜๊ฒŒ ์“ธ ์ˆ˜ ์žˆ๊ฒ ๋‹ค.