전체 글

뭉별은 코딩중 .....
· 웹/React
함수의 불필요한 재생성을 방지하고, 컴포넌트 간 전역 데이터를 손쉽게 공유할 수 있게 도와주는 useCallback과 useContext에 대해 알아보겠습니다. 프로젝트가 커질수록 이 두 훅의 중요성이 커집니다.  ✏️ useCallback이란?함수형 컴포넌트에서 함수를 메모이제이션(memoization)  할 수 있게 해주는 훅입니다.즉, 컴포넌트가 리렌더링될 때마다 같은 함수가 다시 생성되지 않도록 기존 함수를 기억해둡니다.리액트에서 함수는 렌더링이 일어날 때마다 새롭게 생성되기 때문에,자식 컴포넌트에 콜백 함수를 props로 전달할 경우 의도치 않은 불필요한 리렌더링이 발생할 수 있습니다.이런 상황을 방지하기 위해 useCallback을 사용합니다.const memoizedCallback = us..
· 웹/React
리액트 훅(Hooks)은 함수형 컴포넌트에서 상태 관리, 생명주기 처리뿐만 아니라 렌더링 최적화와 DOM 직접 접근 등의 고급 기능도 제공합니다. 렌더링 없이 값 저장하기, 무거운 연산 캐싱하기와 같은 실전에서 유용한 훅들이 있습니다. ✏️ useRef란? useRef는 React에서 다음 두 가지 목적으로 사용됩니다:렌더링 없이 값을 기억할 때DOM 요소에 직접 접근할 때useRef는 변경 가능한 .current 프로퍼티를 가진 객체를 반환합니다.이 객체는 컴포넌트가 리렌더링되더라도 유지되며, 값이 바뀌어도 렌더링을 트리거하지 않습니다.import React, { useRef } from "react";function Example() { const myRef = useRef(initialValue)..
코딩테스트를 준비할 때 자바스크립트 정규식 메서드를 활용하면 메타 문자와 플래그를 조합하여 유연하고 강력한 문자열 처리가 가능합니다. 정규식이란?정규식(Regular Expression, RegExp)은 특정 규칙에 따라 문자열을 검색하거나 일치 여부를 확인하는 데 사용됩니다. 정규식은 다음과 같은 작업에서 주로 사용합니다.문자열 내 특정 패턴 찾기문자열 교체 또는 변환사용자 입력 검증 (예: 이메일, 전화번호 등)정규식은 슬래시(/)로 감싸진 패턴으로 표현됩니다./\d+/g   기본 패턴표현식의미예제\d숫자 (0-9) "abc123" →  1, 2, 3\D숫자가 아닌 문자 "abc123" →  "a", "b", "c"\w단어 문자 (알파벳, 숫자, _) "a_b12!" →  "a", "b", "1", ..
시뮬레이션만 하면 되고, 조건도 그다지 복잡하지 않아서 그냥 주어진 조건을 잘 읽고 풀면 수월한 문제였습니다.문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/17678?language=cpp 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  풀이 방법 1. timetable 벡터 정렬sort(timetable.begin(),timetable.end());timetable 벡터가 정렬되지 않은 상태로 주어져 있기 때문에 timetable 벡터를 정렬합니다.  2. 초기값 지정int bus=540, amount=0, temp=1;int ans..
· 웹/React
React 훅(Hooks)은 함수형 컴포넌트에서 상태 관리와 사이드 이펙트 처리를 가능하게 해주는 기능입니다. 클래스 컴포넌트에서 제공되던 기능들을 함수형 컴포넌트에서도 사용할 수 있도록 해줍니다.  클래스 컴포넌트와 함수형 컴포넌트의 차이점React에서 컴포넌트는 크게 클래스 컴포넌트와 함수형 컴포넌트로 나뉩니다. 클래스 컴포넌트는 상태(state)와 생명주기 메서드(lifecycle methods)를 사용할 수 있는 반면, 함수형 컴포넌트는 단순히 props를 받아 렌더링하는 역할만 할 수 있습니다.// 클래스 컴포넌트class ClassComponent extends React.Component { constructor(props) { super(props); this.state = {..
🏅 구글 솔루션 챌린지AI관련 조언을 얻고 싶으아 교수님을 찾아갔는데, 교수님께서 AI 성능을 올리는 것도 중요하지만 기능 기획을 좀 더 개선했으면 좋겠다고 인사이트를 주셔서 그걸 바탕으로 기획을 대폭 수정했다. 또, 이번주엔 구글에서 매칭해준 구글 멘토에게 UX/UI 멘토링을 받았고, 멘토링된 내용을 바탕으로 UI와 기획을 개선해서 피그마를 완성했다. 내일은 구글에서 매칭해주신 야놀자 CTO분께 수정된 기획을 바탕으로 멘토링을 받을 예정이다.  🏢 인턴 근무회사에서 자체적으로 개발중인 vr기기에 들어갈 오디오 시스템을 개선하는 중이다. 스피커 2개와 MPU센서로 스피커 9개로 음악을 듣는 것처럼 느껴지도록 하는 오디오 시스템을 만드는 것이 목표이다.   📖 정보처리기사 실기급하게 준비했지만 그래도..
이번 주는 개인적인 이슈가 있어서 공부나 작업을 많이 하지는 못했다. 🏢 인턴 출근 이번주도 테스팅과 버그 수정을 계속 진행했다. 가장 기억에 남았던 버그는 에디터상에서는 정상적으로 보이는데, 빌드해서 안드로이드에서 실행하기만 하면 유니티의 UI mask가 제대로 적용 안되던 문제였다. 해당 문제는 유니티에서 자주 발생하는 문제로, mask 컴포넌트 자체에서 발생하는 문제같다. 2D Rect Mask 컴포넌트를 사용했더니 해결되었다. 그런데, 2D Rect Mask는 사각형으로만 마스크가 설정되므로 다른 모양으로 mask를 하고싶다면 다른 방법을 찾아야 할 것 같다. 또, 9.1채널 공간음향을 구현한 회사 자체 프로젝트 디벨롭도 시작했다. 기존에는 센서를 활용해서 사용자의 위치를 탐지해서 캐릭터가 움직일..
🏢 인턴 출근 이번주는 빌드한 apk파일을 넘기고 다함께 테스트를 진행하며 발견한 버그들을 수정했다. 가장 기억에 남는 버그는 무료계정의 경우에 게임 완료가 안되는 버그였다. 나는 항상 유료 계정으로만 테스트했었기 때문에 몰랐던 내용인데, 무료 계정에서 열려야되는 레벨들이 해금이 안되는 버그가 있었다. 유료 계정 전용 게임들도 무료 계정에서 1레벨은 체험용으로 열리지만, 백엔드 측에서 그걸 고려하지 않고 짜서 1레벨 게임 시작 요청을 보내도 정상적으로 보내지지 않아 게임 완료 이후에도 게임 완료 데이터를 정상적으로 받을 수 없었다. 그런데 프론트 측 문제도 살짝 있었던 것은 게임 시작 때 게임 시작이 정상적으로 되지 않았으면 시작 때부터 예외처리를 해줬어야하는데 그게 안되어서 종료 때 에러가 나왔던 것 ..
뭉별
뭉로그