본문 바로가기

전체 글139

[디자인패턴] 싱글턴 패턴 - Singleton pattern과 전역상태관리 요약 장점 1. 싱글턴 패턴을 사용 하는 이유는 인스턴스를 단 1개로 가져가는 점 때문에 사용하는 것이다. 2. 메모리 측면에서 유리하다. 고정 메모리 영역을 사용한다. 추후 객체 접근 시, 메모리 낭비 최소화 가능하다. (즉, 무지성 인스턴스화로 사용하지 않는 메모리 할당 요소가 없다.) 3. 다른 클래스 간 데이터 공유가 굉장히 쉽다. (그러나 여러 클래스에서 동시에 접근하면, 동시성 문제가 발생한다. 이점을 유의해서 설계해야 함. -> 리액트도 이래서 State값을 useEffect 같은 것들을 처리할 때, batch로 순서대로 처리한다) 단점 1. 구현 코드 자체가 많이 필요하다. 2. 테스트 하기 어렵다. 같은 인스턴스를 사용하기 때문에, 매번 초기화해야 하는 상황이 발생할 수 있다. 3. 클래.. 2023. 10. 19.
[CI] TurboRepo를 이용해서 monorepo 환경 구축하기+vercel 배포까지 (기초) 개요 개발환경 구축하는 거에 나름 스트레스를 갖고 있었다. 왜냐면, 일전에는 시니어 개발자가 세팅해준 환경아래서 코드를 수정하고 작업해왔었으니까. 그래서, 시도해보기로 했다. 글을 찾아보니까 yarn workspace -> Turborepo로 트렌드가 이동 중인 것을 확인하였다. 그래서, Turborepo를 사용하기로 하게 되었다. 과정 1. node 설치 (생략) 2. pnpm 설치 - yarn or npm 으로 해도 무방하나, turbo에서 pnpm 사용할 것을 권장하고 있음 npm install -g pnpm 3. create-turbo 을 이용해서 모노레포 설치 pnpm dlx create-turbo@latest 참고 : https://turbo.build/repo/docs/getting-star.. 2023. 10. 12.
[TypeScript] GENERIC Basic (그래서, T야?) 배경 생각해보면, 예전에 교수님 수업시간에 C언어 설명하실 때도, GENERIC으로 표현된 C언어 함수를 보여주셨던 것 같다. 그 때는, 거의 코딩을 모르는 상태라서 아예 못알아봤던 것 같고 늘 모르고 살던 것을 알았을 때의 "개안" 상태가 된 것 같다. 늘.. T가 뭐지? 하면서 라이브러리나 github 소스코드를 보곤 했었으니까.. 문제 function checkNotNull(arg: number | null): number { if (arg == null) { throw new Error("not valid number!"); } return arg; } const result = checkNotNull(23); console.log(result); checkNotNull(null); 위와 같이 작.. 2023. 8. 22.
[git] rebase 개념 배경 요즘 내가 주로 rebase를 사용하는 때는, issue에 따라 brunch를 여러 개 만드는 경우다. Merge과정 보통 수정 작업은 issue 생성 -> brunch 생성 -> 작업내용 commit -m -> push to 생성한 brunch(보통 dev) [pull request 생성 (작업 brunch -> parent brunch ) 문제의 시작 1. dev를 기반으로 feat1, feat2 brunch 생성하고 2. feat1을 dev에 Merge를 하고 나서, feat2가 문제가 발생 왜냐하면, feat2 brunch를 생성한 시점의 dev는 feat1이 수정되기 전이기 때문이다. 그래서, 이럴 때 feat1이 merge된 dev brunch를 모두 pull받고 나서 feat2 brun.. 2023. 8. 9.
비공개 - [TypeScript] 활용법 Basic (이 건 뭐고, 저 건 또 뭐야? 싶을 때 보는) 보호되어 있는 글 입니다. 2023. 7. 10.
[Next.js] Next.js 13 활용법 Basic 동적 라우팅 생각보다 간단하다. slug 라는 형태로 sub page를 만들어 준다. 예전 회사에서 왜 CRA를 썼던 건지 의문이다. 생각해보면, 에전에 만났던 개발자분들도 막연히 낯서니까 프론트페이지 구축을 CRA에서 멈췄던 것 같다. 그러나, 결국 Next를 익히는 허들이 CRA와 그닥 차이가 없다. ...오늘은 시간이 없어서 나중에 계속쓰자..ㅠ 2023. 6. 2.