전체 글

프론트엔드 개발자가 되고픈 개미의 일대기 🐜
프로젝트 회고, 리팩토링

RAWG-API 사용 store 리팩토링/최적화 -1

역시는 역시였나..? 만드는 도중에도 계속해서 렌더링횟수를 생각한다고 생각했는데 어림도없었다. 해치웠나..? 생각해보고 성능테스트를 돌려보았지만 라이트하우스에서 나오는 점수는 56... 하하하 라이트하우스에서 제공해주는 지표를 하나하나보면서 다시 리팩토링을 해보자 ✅ 개선사항 개선방법1 useCallback사용, loadGames함수 컴포넌트 밖으로 빼기 첫번째로 진행한 리팩토링은 useCallback을 활용하여 콜백함수를 메모이제이션 하는 방법을 진행해보았다. 사용한 방법은 아주 간단했다. 리렌더링이 될 때마다 초기화되는 함수를 useCallback으로 감싸서 초기화를 막고, 함수가 다시 필요할 때마다 함수를 새로 생성하는 것이 아닌 메모리에서 가져와서 재사용할 수 있게 만들어주는 것이다. 직접 바꾼 ..

회고, 면접준비/면접 답변용 정리

SCSS 기능 - 변수의 사용

이전의 포스팅에서 SCSS의 기능을 소개했다. 그 중에 첫번째인 변수의 사용의 기능을 확실하게 알기 위해 포스팅을 진행하려한다. SCSS에서의 변수사용 기능 SCSS는 CSS에 변수 개념을 도입해주는 기능이 있다. 숫자, 문자열, 폰트, 색상 등등의 형태를 사용할 수 있게 해준다. 내가 작성했던 코드를 예시로 살펴보겠다. GitHub - plla2/game-store Contribute to plla2/game-store development by creating an account on GitHub. github.com 나는 먼저 테마컬러를 미리 잡아두고, 나머지 배경, 텍스트의 컬러를 변수로 만들어 사용하였다. 변수 등록, 사용 // _colors.scss $bg1: #141516; $bg2: #0f..

회고, 면접준비/면접 답변용 정리

SCSS 문법을 제대로 알고 쓴걸까? (Sass와 SCSS)

Sass(SCSS)문법은 무엇이고 왜 등장하였을까 먼저, CSS의 단점에 대해 나열해보면 선택자를 만들 때 매번 불필요한 부모요소 선택자를 작성해야함 동적으로 변경할 때 일일이 수동으로 변경해야한다. 중복되는 코드가 많아져 유지보수에 좋지 않다. 즉, 쉽게 잘하면 선택자 과용, 코드 중복이 많아져서 유지보수가 어려워진다는 단점이 있다. 위와 같은 CSS의 단점으로 인해 Sass(SCSS)가 등장하였다. Sass(SCSS)문법은 코드의 재활용성을 높이고, 가독성을 올림으로서 개발의 효율을 올리기 위해 등장한 CSS 전처리기 언어이다. 하지만 여기서 헷갈리면 안되는 것이 전처리기 언어의 동작 방식이다. 전처리기 언어로 작성을 한다고 전처리기 언어로 직접 동작시키는게 아니다. 웹은 CSS만 인식하기 때문에 문..

프로젝트 회고, 리팩토링/lofi 프로젝트

Lofi 웹앱 리팩토링

요즘 지금까지 해왔던 프로젝트들에 대한 최적화에 대한 리팩토링을 계속해서 고민하고 고치려고 노력중이다. 아직 리팩토링하는 방법, 해야하는 기준에 대해 공부가 잘 안되어있기 때문에 프로젝트의 코드들을 쭉보면서 반복되는 코드들에 대한 리팩토링부터 시작하기로 했다. 1. Board 컴포넌트의 엄청난 반복코드 처음에 이 프로젝트를 구현할 때 왜이렇게 했는지 지금생각해보면 이해가 가지는 않지만, 어쨌든 내가 친 코드니까,, 페이지 좌측에 backgroundnoise를 주는 보드가 있다. ReactAudioPlayer, Slider mui라이브러리를 사용하여 slider를 이용하여 볼륨을 조절하고 자동재생, 반복, 소스(src) 등등을 속성으로 하여 총 11개의 noise를 아래의 사진처럼 하나씩 다 주고 앉아있었..

회고, 면접준비/면접 답변용 정리

면접정리 3. HTTP Method

해당 면접 답변용 정리 카테고리의 글들은 내용 전체적인 포스팅이 아니라 면접에서 질문을 받았을 때 대답해야할 것들만 정리해둔 것으로 해당 내용을 공부하고 이해한 것들을 바탕으로 답변용으로 정리해둔 것이다. 내용을 자세히 알고 싶다면 다른 정리해둔 글을 보는게 더 효과적일 것이다. HTTP 메서드 클라이언트와 서버 사이에 이루어지는 요청과 응답 데이터를 전송하는 방식 HTTP 메서드의 속성 안전(Safe Methods) - 이 말은 계속해서 메소드를 호출해도 리소스를 변경하지 않는다는 뜻이다. 주요 메소드중에는 GET 메소드가 안전하다고 볼 수 있다. 멱등(Idempotent Methods) - 이 말은 메소드를 계속 호출해도 결과가 똑같다는 뜻이다. GET, PUT, DELETE는 멱등하다고 볼 수 있지..

회고, 면접준비/면접 답변용 정리

면접정리 2. HTTP 상태코드

해당 면접 답변용 정리 카테고리의 글들은 내용 전체적인 포스팅이 아니라 면접에서 질문을 받았을 때 대답해야할 것들만 정리해둔 것으로 해당 내용을 공부하고 이해한 것들을 바탕으로 답변용으로 정리해둔 것이다. 내용을 자세히 알고 싶다면 다른 정리해둔 글을 보는게 더 효과적일 것이다. HTTP 상태 코드란? 클라이언트가 보낸 HTTP 요청에 대한 서버의 응답 코드 상태 코드에 따라 요청의 성공/실패 여부를 세 자릿수로 구분한다. HTTP 상태 코드 분류 분류 내용 1xx Informational (조건부 응답) 클라이언트가 서버에 정보를 요청했지만 해당 요청이 여전히 처리 중임을 나타낸다. 2xx Successful (성공) 서버가 브라우저의 요청을 성공적으로 받고, 처리했음을 나타낸다. 3xx Redirec..

회고, 면접준비/면접 답변용 정리

면접정리 1. 변수

해당 면접 답변용 정리 카테고리의 글들은 내용 전체적인 포스팅이 아니라 면접에서 질문을 받았을 때 대답해야할 것들만 정리해둔 것으로 해당 내용을 공부하고 이해한 것들을 바탕으로 답변용으로 정리해둔 것이다. 내용을 자세히 알고 싶다면 다른 정리해둔 글을 보는게 더 효과적일 것이다. 변수와 식별자란 각각 무엇인가요? - 변수(variable)란 데이터를 할당하고 참조하기 위해 사용되는 이름이 붙은 메모리 공간 - 식별자(identifier)란 변수, 함수, 객체 등을 식별하기 위한 이름으로 사용되는 단어 ⭐️ 식별자는 값이 아니라 메모리 주소를 기억하고 있다. 변수 선언이란 무엇을 의미하나요? 주로 3가지 키워드(var, let, const)를 사용하여 변수의 유효 범위(scope)와 생존 기간(lifeti..

프로젝트 회고, 리팩토링/포트폴리오 프로젝트

포트폴리오 resize 이벤트 리팩토링

포트폴리오 제작 중에 브라우저의 화면 너비를 구해서 너비에 따라 화면구성을 달리해줘야 했다. 그래서 window의 resize 이벤트를 사용하기로 하였다. 하지만 이대로 사용하였을 때 브라우저 창 resizing마다 콜백 코드가 계속해서 실행되었다. resizing마다 콜백 코드를 계속해서 실행해줘야할 수도 있지만 저는 resizing마다 실행할 필요가 없기 때문에 매우 비효율적이라 생각하였다. 그렇게해서 찾아보게 된 개념이 디바운싱과 쓰로틀링이다. 디바운싱, 쓰로틀링 두개 다 웹에서 발생하는 이벤트를 제어하는 방법이라고 한다. 디바운싱(Debouncing) - 연속으로 호출되는 함수들 중에 마지막에 호출되는 함수만 실행되도록 하는 것 쓰로틀링(Throttling) - 마지막 함수가 호출된 후 일정 시간..

프로젝트 회고, 리팩토링/포트폴리오 프로젝트

포트폴리오 제작 회고

부트캠프 수료 후 이력서와 더불어 포트폴리오를 작성해야하는데 노션과 웹형식 중에 고민을 하다가 다른 라이브러리들도 사용해보자 생각이 들어 웹사이트 형식으로 만들어보기로 했다. Portfolio 프로젝트 기간 : 2023 - 08 - 10 ~ 깃허브 레포 : 📃레포 링크 배포 링크 : 🔗배포 링크 개발인원 : 1인 사용 주요스택, 라이브러리 React TypeScript Tailwindcss framer-motion emailjs react-scroll react-modal 먼저, 타입스크립트를 사용하는 것은 거의 필수로 생각을 했었고, 애니메이션은 한번도 써보지 못했던 framer-motion을 사용하여 더 적은 코드를 작성하는 간단한 선언적 구문을 통해 애니메이션 코드베이스를 읽고 유지 관리를 쉽게 하..

프로젝트 회고, 리팩토링/lofi 프로젝트

lofi 웹앱 만들어보기 회고

메인프로젝트가 끝나고 리팩토링과 함께 자바스크립트DeepDive 책을 다시 정독하면서 쉬엄쉬엄 뭔가를 만들어보고 싶은 마음에 뭔가 무겁지않고 새로운걸 만들어보려하다가 만들어보게 되었습니다. Lofi-App 프로젝트 기간 : 2023 - 07 - 27 ~ 2023 - 08 - 09 깃허브 레포 : 📃레포 링크 배포 링크 : 🔗배포 링크 개발인원 : 1인 프로젝트 구상 계기 뭔가 흔하다면 흔한? 음악관련 웹앱을 만들어본적이 없었습니다. 한번쯤 만들어보고싶었던 상황에서 요즘 코드치면서 많이 들었던 lofi음악에 관하여 만들어보고싶다는 생각이 들어서 만들어보게 되었습니다. 사용 주요스택 React TypeScript Mui Redux-toolkit sass react-timer-hook react-player ..

plla2
코린이 "개미"의 개발블로그