본문 바로가기

전체 글

jest cookie, recoil import { MemoryRouterProvider } from 'next-router-mock/dist/MemoryRouterProvider';jest.mock('js-cookie');const mockProps = { homepageUrl: "https://yg1110.tistory.com"}const renderSelectedHospitalItem = (props: Props, isLogin: boolean = false) => { const initializeState = (mutableSnapshot: MutableSnapshot) => { mutableSnapshot.set(isLoggedInAtom, isLogin); }; return render( .. 더보기
jest location, open, next/router location// 테스트 컴포넌트window.location.href = `/hospital/${id}`; // 테스트 코드Object.defineProperty(window, 'location', { value: { href: '', },});expect(window.location.href).toBe('/hospital/2012'); open// 테스트 컴포넌트window.open(`/hospital/${id}`, '_blank');// 테스트 코드beforeEach(() => { global.open = jest.fn();});expect(window.open).toHaveBeenCalledWith('/hospital/2012', '_blank'); next/router// 테.. 더보기
scss line-clamp module line-clamp.module.scss@mixin line-clamp($lineCount: 1) { display: -webkit-box; -webkit-line-clamp: $lineCount; -webkit-box-orient: vertical; overflow: hidden; text-overflow: ellipsis;} example.scss@import "./line-clamp.module";.text { @include line-clamp(1);} 더보기
ec2 scp를 이용하여 docker file 전송 1. 도커파일 생성 docker save -o [생성할 도커파일명].tar [빌드시킬 도커파일명] 2. SCP 전송 scp -i [aws key파일.pem 절대경로] [전송시킬 도커파일 절대경로].tar [접속 유저명]@[접속 IP]:[이동시킬 절대경로] 3. 도커파일 로드 docker load -i [도커파일명].tar 더보기
m1에서 빌드한 이미지파일 aws linux 22에서 빌드하기 --platform linux/amd64 docker build --platform linux/amd64 -t [image-name] . 더보기
spare time 7 - 랜더링 최적화 기존의 커스텀훅은 파일만 분할한 느낌이 강했다. 그래서 파일마다 상태가 있었고, 그것 때문에 랜더링이 여러번되는 문제가 발생했다. 그래서 파일들을 리팩토링을 진행했다. 굳이 다른곳에서 사용하지 않을 것 같은 로직들은 각 파일에 다시 옮겨두고, 다른곳에도 쓸 것 같은 파일만 커스텀훅으로 남겨놓기 시작했다. 최적화한 부분은 다음과 같다. 루트페이지에 title을 그대로 사용해서 달력을 넘길때 마다 바뀌는 타이틀 때문에 모든 컴포넌트가 재랜더링 되는 문제 타이틀 부분을 따로 컴포넌트로 빼서 타이틀 변경시 해당 부분만 변경 가능하도록 코드개선 기존에 파일마다 customhook을 만든 부분이 state가 중첩되어 컴포넌트마다 여러번 랜더링 되는 문제 동일한 동작을 하는 컴포넌트가 없을경우 파일 제거 API를 호.. 더보기
spare time 6 - mongoDB query 데이터의 구조가 하나의 collection에 각 array에 데이터를 추가/삭제하는 구조로 되어있다보니 원했던 결과와는 다르게 동작하는 문제가 발생했다. 아래의 명령어는 schedules안에 "645cfa07238e07ae9a1b1fab"를 아이디로 가지는 데이터를 검색하는 명령어이다. db.getCollection('dates').find({'schedules._id': ObjectId("645cfa07238e07ae9a1b1fab")}) 내가 원했던 결과로는 schedules안에서 해당 아이디의 데이터만 결과에 보이기를 원했지만, id를 포함하는 하나의 컬렉션을 검색하기 때문에, 포함되는 array 전체가 나오는 경우가 발생했다. 그래서 몽고디비에서 추가적으로 제공하는 aggregation pipe.. 더보기
mongoose exec https://tesseractjh.tistory.com/166 [mongoose] exec()은 어떤 역할을 하는가? 아래 사진은 mongoose 공식 문서에서 find 메서드에 대해 설명하고 있는 부분이다. 그런데 사용 예시에서 어떤 때에는 exec()을 사용하고, 어떤 때에는 exec()을 사용하고 있지 않다. exec()을 사용하고 tesseractjh.tistory.com exec 미사용 : Mongoose Query (then을 사용할 수 있는 일종의 유사 프로미스) exec 사용 : 온전한 프로미스를 반환값으로 얻을 수 있으며, 에러가 났을 때 stack trace에 오류가 발생한 코드의 위치가 포함 더보기