한 층 더 파본 singleton pattern
·
Design Pattern
인터뷰 당시 땀을 삐질삐질 흘리게 만들었던 질문들이 있었습니다.그중 하나였던 주제가 singleton pattern이었는데요. 기본적인 개념은 이미 숙지하고 있었지만 추가 학습하지 않았던 것이 스노우볼이 되었고인터뷰에서 부족함을 들키며 총난타를 당했기 때문에 제대로 학습해보고 싶어졌습니다.(싱글톤 패턴을 적용해 전역에서 사용하는 값이 있다고 말했을 때이어진 후속 질문에 대한 내용입니다.)어째서 싱글톤 패턴을 적용한 인스턴스는 전역에서 접근할 수 있을까?(저는 클래스가 아닌, 함수와 변수로 패턴을 적용했습니다.) 싱글톤 인스턴스를 저장하는 변수를 싱글톤 패턴을 구현한 함수 외부에 선언해전역 스코프에 존재하는 상태로 만든다면 해당 변수는 싱글톤 패턴을 구현한 함수가 호출되는모든 컨텍스트에서 접근 가능하기 때..
Compound pattern을 적용해 공통 모달을 만들어보자
·
Design Pattern
공통 모달인데.. 이제 재활용이 안 되는..새로운 프로젝트를 진행하며 공통 모달 제작이 필요했습니다.MVP 단계이기도 했고, 그에 따라 수시로 내용이 변경되어모달에 사용되는 데이터를 인자로 전달받게만 처리하면1차적인 공용 컴포넌트를 완성할 수 있을 것으로 전망했지만, 이는 착각이었습니다. 수시로 변경되는 것은 내용뿐이 아닌 디자인도 포함되었으니까요.1차로 작성한 모달 컴포넌트만약 공용 모달 컴포넌트를 사용하는 모든 곳에서 디자인과 기능이 동일하다면prop을 전달받아 관리하는 공용 컴포넌트로 사용해도 문제가 없습니다. 하지만 특정 페이지들에서만 색상을 다르게 한다던지,모바일 환경에서의 레이아웃 변경 등이 필요하다면다시 컴포넌트를 만들어야 하므로, 상당히 불편함을 야기합니다. 즉, 추상화가 되어있지 않다고 ..
HOC(=고차함수)를 사용해 전역 타이머를 구현해보자
·
Design Pattern
2년 전, 신입으로 인터뷰를 진행하면서 받은 질문 중 하나가 고차 함수였습니다.제대로 답하지 못하자 일급 객체에 대해 알고 있는지 여쭤보셨고,이에 대해서도 답변을 못했던 기억이 있습니다. 그로부터 2년이 지난 지금, 고차 함수 개념을 이용해 타이머 기능을 구현하며다시 한번 고차 함수가 가능한 이유와 일급 객체가 무엇인지 복습할 수 있었습니다. 또한, custom hook과 HOC를 두고 어떤 방식으로 구현해야 할지고민한 이야기도 작성해보고자 합니다.일급 객체와 고차함수와의 연관성일급 객체는 함수가 변수에 할당될 수 있고,함수의 인자로 전달되거나 return 될 수 있는 특성을 의미하는데요.고차 함수는 함수를 인자로 받거나 함수를 반환하는 함수를 말합니다. React에서 컴포넌트는 함수 형태로 작성이 가능..
완전한 싱글톤 패턴으로 리팩토링을 진행해보자
·
Design Pattern
2024.05.23 - [TIL] - 그저 작성했는데 싱글톤 패턴이었던 것에 대하여 그저 작성했는데 싱글톤 패턴이었던 것에 대하여오늘도 평화로움을 바라며 코딩하던 날이었습니다.서버로부터 전달받은 토큰을 변수에 캐싱하는 로직을 포함해 PR했는데요.하나의 인스턴스로 관리한다는 키워드로 구글링을 할 때,여러 블로betterpalywon.tistory.com이전 포스팅인 싱글톤 패턴 구현에 이어 제가 구현한 싱글톤 패턴의 문제점과완전한 싱글톤 패턴으로 변경해야 하는 이유, 그리고 리팩토링했던 방법을 설명해보려 합니다.이전 싱글톤 패턴의 문제점인스턴스의 내부 상태에 접근해 변경이 가능하다! 이전 코드를 예제로 들어보겠습니다.let userInstance = null;const createUser = () => {..
그저 작성했는데 싱글톤 패턴이었던 것에 대하여
·
Design Pattern
오늘도 평화로움을 바라며 코딩하던 날이었습니다.서버로부터 전달받은 토큰을 변수에 캐싱하는 로직을 포함해 PR했는데요.하나의 인스턴스로 관리한다는 키워드로 구글링을 할 때,여러 블로그가 있었지만 제로초 블로그를 통해 제 코드가 싱글톤 패턴이라는 것을 깨닫고해당 디자인 패턴에 대해 알게되었습니다. 사실, 제가 처음 개발 분야에 입문하고 여러 인터뷰에 참여할 당시싱글톤 패턴에 대해서 알고있느냐는 질문을 몇 번 받았는데요.2년차가 된 지금, 제가 싱글톤 패턴을 기반으로 한 코드를 작성했다는게 신기해서포스팅하게 되었습니다.싱글톤 패턴이란?클래스의 인스턴스를 하나만 생성하고, 그 인스턴스를 어디서든 접근할 수 있도록 하는 디자인 패턴인데요.단 하나의 객체만을 만들 때 사용되며 어디서든 해당 객체에 접근할 수 있다는..