JavaScript18 JS 스택(Stack) LIFO Last In First Out class Stack { arr; constructor() { this.arr = []; } push(data) { this.arr.push(data); } pop(index) { if (index === this.arr.length - 1) { // 꺼내려고하는 index가 배열의 마지막 인덱스인지 확인 return this.arr.pop(); // 마지막 인덱스면 pop을 사용해서 꺼낸다. } // 그렇지않을 경우 해당하는 인덱스를 배열의 기존 요소에서 삭제 let result = this.arr.splice(index, 1); return result; } empty() { if (this.arr.length === 0) return true; else re.. 2023. 12. 7. RxJS Observable / of / from / lastValueFrom / concatMap, toArray import { concatMap, from, lastValueFrom, mergeMap, of, toArray } from 'rxjs'; // 유저 id로 유저정보를 가져오는 API const fetchUser = (id: number) => { return new Promise((resolve, reject) => { if (id === 1) { setTimeout(() => { resolve({ user: { name: 'tom' } }); }, 3000); } else if (id === 2) { setTimeout(() => { resolve({ user: { name: 'ruslan' } }); }, 1500); } else { reject('유효하지 않은 id'); } }); }; // pr.. 2023. 11. 24. Pub-Sub(발행-구독) Pattern / Publish-Subsribe Pattern 서론 최근 진행했던 고객사의 프로젝트에서 16개의 컴포넌트에서 데이터를 취합하여 API 요청을 해야 하는 상황이 있었다. 기존 프로젝트에 비슷하게 구현된 코드베이스가 있어 그걸 참고해서 구현을 하던 와중에 Pub-Sub Pattern을 사용한걸 발견했다. 컴포넌트 페이지마다 데이터를 취합하여 다음 페이지로 넘어갈때, 최상단의 커스텀훅스에 선언한 핸들링 함수에 Pub-Sub Pattern을 사용하여 페이지 이동/데이터 핸들링 이벤트처리를 하여 결합도를 낮추고, 응집도를 높인 코드였다. 몇년동안 외주 프론트엔드 개발을 해왔지만, 처음 봤기때문에 내겐 꽤 신선한 충격(?) 이었다. 나라면 처음부터 이렇게 설계할 생각을 할수 있을까? 라는 생각이 들었다. 그리고 Pub-Sub Pattern을 모른다면, 이해 할.. 2023. 11. 19. React-Native 웹뷰 ios nice 본인인증 팝업 안뜰때 해결법 아마 이것때문에 삽질을 엄청 많이들 하셨을거에요. 저의 경우는 nice기술담당자에게 이메일도 보내봤는데요. 돌아오는 답변은 form 데이터 parameter 들을 올바르게 전송했냐는 너무나 형식적인 답변들을 들었는데요. 디깅을 했을때, ios의 보안정책때문에 팝업이 안열린다는 얘기도 있었지만, 그것도 정답은 아니었어요. 보통 예제코드#1 처럼 진행을 하게될시에 ios에서 흰화면이 노출되게 됩니다. 그렇지만, 예제코드#2 하시게 된다면 nice본인인증 팝업화면이 정상적으로 동작할것입니다. 안되는 이유를 뇌피셜로 추측해보자면, RN 웹뷰화면에서 window.open을 실행하고 form에 데이터할당해주고, submit을 하는데요. nice의 action url에 submit이 끝나고 target 팝업을 찾아.. 2023. 10. 26. 이전 1 2 3 4 5 다음