본문 바로가기

분류 전체보기57

[CSS] BEM(Block, Element, Modifier) 모델 BEM(Block, Element, Modifier) 모델은 CSS 클래스 네이밍을 체계적으로 관리하기 위한 방법론입니다. 이 모델은 CSS 코드를 구조화하고, 일관성 있게 유지하기 위해 고안된 것으로, 대규모 프로젝트에서 특히 유용합니다.BEM 모델의 핵심 개념1. Block (블록).menu { /* Block */ }블록은 독립적이고 재사용 가능한 UI 구성 요소입니다. 블록은 의미적으로 자율적이며, 다른 블록에 의존하지 않는 개별적인 기능을 수행합니다.예를 들어, 페이지의 헤더, 버튼, 메뉴, 폼 등의 UI 구성 요소가 블록에 해당됩니다.블록은 프로젝트 내에서 여러 번 재사용될 수 있으며, 다른 블록과 결합하여 복잡한 UI를 구성할 수 있습니다.2. Element (엘리먼트).menu__item .. 2024. 8. 29.
[독서] 선물받은 「나는 네이버 프런트엔드 개발자입니다」 책 읽기 이 책을 읽게 된 이유 솔직히 이야기 하면 나는 기술서적 말고 에세이같은 책은 잘 읽지 않는다. 그래서 이런 종류의 책을 살 생각은 한번도 안했던 것 같다. 이 책을 읽게 된 이유는 인턴을 하던 회사에서 CTO님이 인턴 끝날 때 선물해주셨기 때문이다. 원래는 클린코드를 주려고 하셨던 것 같지만 그 책은 이미 있어서 있다고 말씀드렸더니 고민끝에 주셨던 책이라서 흥미가 생겼다. 인턴이 끝날 때 많은 생각이 들었는데 그 중 가장 많이 든 생각은 프론트엔드 개발자로 일할 수 있을까? 사실은 적성에 안맞는데 오기로 버티는건가 하는 생각이었다. 시장이 안좋고 신입을 안뽑는 상황은 사실 예전부터 계속 있었는데 그 핑계로 내가 내 상태를 객관적으로 못보고 있나 하는 생각이 들었다. 이 책을 주실 때 하셨던 이야기가 지.. 2024. 8. 23.
[일경험 인턴] 10주간의 경험을 뒤돌아보기! Intro 10주간의 인턴 과정이 끝이 난다. 분명 기록을 조금씩 해놨는데 정리하려고 보니 생각이 잘 나지 않는다. 끝나고 나면 더 기억이 안나겠다는 생각이 들었다. 좋은 점도 있었고 아쉬운 점도 있었고 일경험 인턴에 대해 가지는 아쉬움도 있는데 잘 정리해보려고 한다. 1주차 목요일은 현충일이었고 금요일은 창립기념일이어서 3일만 일하게 된 행복한 첫주였다. 물론 프론트엔드 인턴이 아니라 기획 인턴인줄 알고 뽑았다는것에 다소 충격을 먹었지만.. 간단한 안내를 듣고 서비스 파악하다 끝났다. 다음주에 할 일은 솜씨당 어플 전체 유저 플로우를 피그마로 정리하면 된다는 것이었다. 그리고 CTO님과 대화 하면서 프론트엔드 과제를 주시는 걸로 이야기가 마무리되었다. 2주차본격적으로 피그마를 정리하는데 화면별로 분리되.. 2024. 8. 9.
[7월] 인턴과 면접으로 채운 한달의 기록 Intro저번달 회고를 한번 읽어봤다. 7월 계획에는 애초에 어떤 합격도 기대하지 않았다. 지원할 생각을 1도 안했기 때문이다..무슨 일이 일어났는지 돌아보자면 먼저 시작은 스터디였다. 프로젝트를 같이 했던 친구들과 캠 스터디를 하기로 했다. 우리는 모두 개인 프로젝트를 진행 혹은 준비하고 있었고 모두 취준생이었는데 취준 기간이 길어지다보니 혼자 하는게 버겁게 느껴졌기 때문이다. 그러면서 매일 스크럼을 작성하고 간간히 대화하면서 이력서도 피드백을 하자는 이야기가 나왔다. 지금 하는 개인 프로젝트를 제외하고 일단 작성해서 이력서를 돌려보자고 이야기가 나왔기 때문에 얼레벌레 이력서를 업데이트 하고 피드백하고 수정해서 지원했다. 아무 생각 없이 하루에 2-3군데씩 이력서를 지원했다. 근데 또 상시모집은 떨어지.. 2024. 7. 29.
[My Little Rosemary] vanilla-extract 기본 세팅하기 설치하기vanilla-extract 설치하기npm install @vanilla-extract/css 통합 플러그인 설치하기npm install --save-dev @vanilla-extract/next-plugin 플러그인 설정next.config.jsconst { createVanillaExtractPlugin} = require('@vanilla-extract/next-plugin');const withVanillaExtract = createVanillaExtractPlugin();/** @type {import('next').NextConfig} */const nextConfig = {};module.exports = withVanillaExtract(nextConfig); 참고한 페이지 ht.. 2024. 7. 28.
[My Little Rosemary] Next.js에서 어떤 도구로 스타일링 해야 될까? 프로젝트를 시작해서 기본적인 레이아웃을 잡으면서 고민이 시작되었다. 원래 react에서 사용했던 건 Styled Components였는데 이번 프로젝트에서 사용하려고 하니 생각해봐야 하는 부분이 있었다. 생각보다 번들 크기가 커진다는 것, 그리고 SSR방식이기 때문에 반짝임 현상이 발생하는 것 등등이었다. 그래서 이 부분에 대해 정리가 필요하겠다는 생각이 들었고 사용해봤거나 사용할 수 있는 것들을 모아서 비교해보기로 했다. 1. CSS Moduleshttps://nextjs.org/docs/app/building-your-application/styling/css-modulesCSS Modules는 CSS를 모듈화하여 작성할 수 있게 해주는 기술이다. CSS 파일에서 클래스나 ID를 정의할 때, 전역으로.. 2024. 7. 17.
[cs] Observer Pattern 왜 알아야 할까? 정보처리기사 준비하기 전 나는 옵저버를 사용한 적이 있지만 무엇인지 제대로 모른채 사용했었다. 사용하면 왜 좋은지, 사용하지 않으면 무슨 문제가 생길 수 있는지에 대해 큰 고민 없이 사용하라는 말에 무지성으로 코딩했었다. 그러다가 정보처리기사 시험 준비를 하면서 GoF의 무수히 많은 디자인 패턴을 보며 기가 질림과 동시에 익숙한 단어들을 발견하게 됐는데 그 중하나가 옵저버 패턴이었다. 프론트 개발자가 Observer Pattern을 알아야 하는 이유는 뭘까?  프론트엔드 개발에서는 유저와의 직접적인 상호작용이 많다. 유저의 액션 하나하나에 민감하게 반응하고 그 데이터를 효율적으로 관리하는 것은 필수이다. 예를 들어, 사용자가 버튼을 클릭하면 UI가 즉시 업데이트 되어야 하고, 입력 폼의 데이터가 실시간으.. 2024. 7. 11.
[React] 로컬 스토리지를 사용한 데이터 캐싱 문제개요상품 리스트 페이지에서 상품을 클릭해 상세 페이지로 이동 후, 뒤로가기 버튼을 눌렀을 때 페이지가 새로고침되면서 리스트의 상단으로 이동하기 때문에 UX가 떨어진다는 피드백을 받음.페이지에 카테고리와 필터가 중복으로 적용되고 있고 상품 데이터의 양이 많아 서버로부터 많은 리소스를 받아와야 함.위치값 사용의 문제화면의 높이값을 저장했다가 불러와서 로드해주는 방법을 사용했지만 새로고침이 되고 그 위치까지 자동으로 스크롤 되는 액션이 발생함위치까지 빠르게 이동하면서 그 사이의 데이터를 빠르게 받아와 보여주는 과정에서 많은 리소스가 낭비됨기획자의 요구사항새로고침 없이 이전 리스트 화면을 보여주기를 원함.현재는 페이지 위치값을 넘겨서 스크롤하는 방식으로 구현됨.런칭이 임박했고, 런칭 후 이벤트 때문에 유저.. 2024. 7. 1.