s e o p p o r t . l o g

JavaScript 3

[JavaScript] 문자열 메서드 - replaceAll

replaceAll 메서드는 문자열에서 문자 또는 문자열을 지정하여 원하는 문자로 대체하는 메서드이다.replaceAll(pattern, replacement)replaceAll() 메서드는 pattern의 모든 일치 항목이 replacement로 대체된 새 문자열을반환합니다.  사용법string.replaceAll("타겟 문자", "바꿀 문자")  예시const myString = "applemango";console.log(myString.replaceAll("a","e")); //epplemengo

Today I Learned 2024.07.30

[Javascript] 사용자가 접속한 기기환경 확인하기

토스 테스트 결제 api가 모바일 환경에서는 지원이 안된다고 해서 pc에서만 예약 - 결제가 가능하도록 구현해야 하는 사항이었다. 반응형으로 width를 구해서 태블릿 넓이 아래로는 결제를 막는식으로 하려고 했으나.. pc에서도 개발자도구의 반응형으로 접속해서 결제를 진행하면 모바일 버전의 결제 api로 바뀌어서 결제가 되지 않았다.그런데 아래 사진과 같이 브라우저를 크기를 직접 줄여서 결제를 진행하면 정상적으로 된다..  따라서 반응형 넓이를 판단해서 막을 수 없고 사용자가 접속한 환경이 모바일인지 pc버전인지 확인해야만 의도한대로 기능을 구현할 수 있는 상황이다. 난감한 마음에 바로 구글링을 해봤더니 navigator객체의 userAgent라는 메서드가 있다는것을 찾았다NavigatorNavigato..

Today I Learned 2024.04.28

스프레드 연산자로 효율적인 리듀서 만들기

상태 관리 리팩토링: 효율적인 리듀서 구현 DB에 정보를 넣기 위해서는 각각의 컴포넌트에서 store로 값을 받아와야 했는데, 기존에는 setClassId, setDateAndTime, setPriceAndQuantity와 같이 각각의 컴포넌트에서 값을 따로 받아와야 했기 때문에 상태 업데이트를 위한 리듀서를 각각 만들었다. setClassId: (classId) => { set((state) => ({ reserveInfo: { ...state.reserveInfo, classId: classId } })); }, setDateAndTime: (date, time) => { set((state) => ({ reserveInfo: { ...state.reserveInfo, reserveDate: date..

Today I Learned 2024.03.29