전체 글 318

CSS 상자 모델 이해하기

웹 페이지를 구성하는 모든 요소는 상자(box) 형태로 표현된다. CSS의 상자 모델(Box Model)은 이 상자를 구성하는 요소와 그것이 웹 페이지에 어떻게 배치되는지를 이해하는 데 중요한 개념이다. CSS 상자 모델의 구성 요소CSS 상자 모델은 다음과 같은 네 가지 주요 구성 요소로 이루어져 있다콘텐츠(Content): 요소의 실제 내용이 들어가는 공간이다. 텍스트, 이미지, 동영상 등이 포함한다.패딩(Padding): 콘텐츠와 경계(Border) 사이의 간격이다. 패딩은 투명하며 콘텐츠 주위에 추가적인 공간을 제공한다경계(Border): 콘텐츠와 패딩 주위를 둘러싸는 테두리이다. 경계는 다양한 스타일과 색상으로 설정할 수 있다.마진(Margin): 요소의 경계와 다른 요소들 사이의 간격이다. 마..

CSS 2024.06.19

CSS 텍스트 표현 방법

em과 rem 단위CSS는 길이(length)를 표현할 때 픽셀 단위(px)를 사용한다. 하지만 픽셀 단위는 '몇 글자 정도의 길이'와 같은 텍스트의 표시 길이를 표현해야 할 때는 그리 적합하지 않다. 예로 '60픽셀'보다는 '문자 20개 정도의 길이'로 표현하는 것이 더 자연스럽다.따라서 CSS는 영문자 'M'의 발음 '엠'을 의미하는 em과 'root M'을 의미하는 rem이라는 단위를 제공한다. 이 단위들은 화면 크기에 따라 반응형 디자인을 구현할 때 유용하다.em 단위em 단위는 현재 요소의 폰트 크기에 상대적인 크기를 나타낸다. 예를 들어, 부모 요소의 폰트 크기가 16px이라면, 자식 요소에서 1em은 16px을 의미한다.상대적인 단위: 요소의 폰트 크기를 기준으로 크기를 계산한다.중첩 효과:..

CSS 2024.06.16

CSS 색상 표현 방법

CSS는 웹 페이지의 스타일을 정의할 때 다양한 방식으로 색상을 표현할 수 있다. 색상 모델과 함수, 불투명도(opacity), 그리고 Tailwind CSS와 같은 프레임워크에서 제공하는 색상 클래스 등을 이해하면 더욱 효과적으로 스타일을 지정할 수 있다. CSS 색상 모델CSS에서는 색상을 표현하는 여러 가지 방법을 지원한다. 주요 색상 모델로는 RGB와 HSL이 있다.RGB (Red, Green, Blue)RGB 색상 모델은 빛의 삼원색인 빨강-초록-파랑을 혼합하여 색상을 표현한다.16진수를 의미하는 # 기호 뒤에 #빨강초록파랑 방식으로 표현한다. 여기서 각각의 색상은 0~ff(즉, 0~255)까지 16진수 값 또는 0부터 1까지의 소수로 나타낼 수 있다.HSL (Hue, Saturation, Li..

CSS 2024.06.16

Tailwind CSS

Tailwind CSS테일윈드 CSS는 클래스 기반의 유틸리티 CSS 프레임워크이다. 개발자가 CSS를 작성하는 대신, 미리 정의된 클래스를 HTML에 적용하여 스타일을 지정할 수 있다. 이를 통해 스타일을 보다 모듈화 하고 유지보수하기 쉽게 만들 수 있다.테일윈드 CSS는 PostCSS 버전 8의 플러그인 형태로 동작한다.주요 특징유틸리티 클래스: 각 클래스는 하나의 CSS 속성을 담당한다.구성 가능성: 다양한 클래스를 조합하여 복잡한 스타일을 간단하게 구현할 수 있다.커스터마이징: 설정 파일을 통해 Tailwind를 프로젝트에 맞게 조정할 수 있다.Bootstrap과의 차이점 TailwindBootstrap접근 방식유틸리티 클래스 기반모든 스타일링을 작은 클래스 단위로 처리하여,필요한 스타일을 조합하..

CSS 2024.06.15

Npm audit

npm audit 명령어는 2018년에 발표된 npm v6에서 처음 도입되었다. 이 명령어는 프로젝트의 의존성 트리를 검사하여 보안 취약점을 찾고, 이를 보고하는 기능을 제공한다. 이는 npm 사용자들이 프로젝트에서 사용하고 있는 패키지들의 보안 상태를 쉽게 확인하고, 필요한 경우 취약점을 수정할 수 있도록 하기 위한 중요한 기능이다. npm audit이 명령어는 프로젝트의 의존성을 검사하여 알려진 보안 취약점을 찾고, 이를 보고한다.npm audit이 명령어를 실행하면 보안 취약점이 있는 패키지 목록과 이를 수정하기 위한 권장 조치가 표시된다. npm audit fixnpm audit 명령어가 발견한 보안 취약점을 자동으로 수정하려고 시도한다. 이 명령어는 가능한 경우 취약점을 수정할 수 있는 패키지 ..

Javascript 2024.06.15

State Pattern

상태 패턴은 객체가 내부적으로 상태를 변경할 때마다 객체의 행동을 바꾸는 패턴이다.이 패턴은 객체의 상태에 따라 객체가 수행하는 동작을 동적으로 변경할 수 있게 한다. 상태 패턴을 사용해야 하는 상황객체의 행동이 상태에 따라 변할 때객체의 행동이 특정 상태에 의존적이고,상태가 변경될 때마다 객체의 행동이 동적으로 변해야 할 때 유용하다.복잡한 조건문 대체상태에 따른 각각의 동작을 개별적인 상태 클래스로 캡슐화하면복잡한 조건문을 피할 수 있다.유집보수 용이성새로운 상태가 추가되거나 기존 상태의 동작이 변경될 때,해당 상태에 대한 클래스만 수정하면 되므로 유지보수가 용이하다. 상태 패턴을 사용하는 경우의 문제점클래스 수 증가각 상태를 별도의 클래스로 구현하기 때문에 클래스의 수가 증가한다상태 전환 오버헤드상..

디자인 패턴 2024.06.15

Singletone Pattern

싱글턴 패턴은 어떤 클래스에 대해 오직 하나의 인스턴스만 생성하도록 하는 디자인 패턴이다.이 패턴을 사용하는 주된 이유 중 하나는 전역 상태를 관리하거나 리소스를 효율적으로 사용하기 위함이다. 왜 정적 변수가 아닌 싱글턴을 써야 하는가?게으른 로딩(Lazy Loading)정적 변수는 클래스가 로딩되는 시점에서 즉시 초기화된다.하지만 게으른 로딩을 통해 인스턴스가 필요한 시점까지 생성을 미룰 수 있는 싱글턴 패턴은 자원을 효율적으로 활용할 수 있다.특히, 애플리케이션이 시작될 때 필요하지 않은 경우에는 초기화를 지연시키는 것이 좋다.동적 로딩(Dynamic Loading)정적 변수는 클래스가 로딩되는 시점에서 생성되기 때문에 동적인 상황에서의 활용이 어렵다.싱글턴 패턴을 사용하면 객체 생성 로직을 변경하지..

디자인 패턴 2024.06.15

Proxy Pattern

프록시 패턴은 다른 객체에 대한 대리자 또는 대변자 역할을 하는 객체를 제공하는 패턴이다.실제 객체에 대한 접근을 제어하거나, 객체에 부가적인 동작을 수행하거나, 객체에 대한 접근을 지연시키는 등의 목적으로 사용된다. 프록시 패턴을 사용하는 상황접근 제어(Access Control):실제 객체에 직접 접근하는 것을 허용하지 않고, 프록시를 통해 접근을 제어하는 경우 사용된다.지연 로딩(Lazy Loading):실제 객체가 필요할 때까지 생성 또는 초기화를 지연시키는 경우 사용된다.추가 동작(Additional Behavior):실제 객체에 접근하기 전에 추가적인 동작을 수행하고자 할 때 사용된다. 프록시 패턴의 구성 요소Subject(주체):프록시와 실제 객체가 공통적으로 구현한 인터페이스 또는 추상 클..

디자인 패턴 2024.06.15

불변의 법칙 - 모건 하우절

1,000개의 평행우주가 존재한다면 그 모두에서 변함없이 참인 것은 무엇일까? 1. 이토록 아슬아슬한 세상지나온 과거를 돌아보면, 앞으로의 미래는 알 수 없단 사실을 깨닫게 된다. 『 흔히들 "미래를 알려면 먼저 과거를 보라"고 말한다. 하지만 현실적인 관점에서 보면 다음을 인정해야 한다. 과거를 보아도 미래는 알 수 없다는 사실 말이다. 세상 모든 일은 예측 불가능한 방식으로 서로 영향을 주고받고, 혼합되고, 그 결과가 증폭되기 때문이다.』 2. 보이지 않는 것, 리스크사실 우리는 미래를 예측하는 능력이 꽤 뛰어나다. 다만 뜻밖의 놀라운 일을 예측하지 못할 뿐이다. 그리고 그것이 모든 것을 좌우하곤 한다. 『 "당신이 모든 시나리오를 남김없이 고려했다고 생각한 후에 남는 것이 리스크다." 리스크의 정확..

도서 2024.06.06

styled-components에서 $ 접두사 사용하기

경고isOpen이라는 값을 styled-component에 보내주는데 아래와 같은 경고 문구가 로그에 찍혔다.Warning: React does not recognize the isOpen prop on a DOM element. If you intentionally want it to appear in the DOM as a custom attribute, spell it as lowercase isopen instead. If you accidentally passed it from a parent component, remove it from the DOM element. 발생 이유DOM 요소에 대한 사용자 정의 속성이 React에 의해 대문자로 시작할 수 없기 때문이다. 여기서 isOpen 값은 ..

Javascript/React 2024.06.01
728x90