Singleton Pattern

애플리케이션을 구동하면서 보통은 많은 인스턴스를 만들지만, 1개만 필요한 경우가 있습니다. 애플리케이션 전체에서 동일한 설정 값을 사용해야 한다던지, DB 스레드 풀, 캐시와 같이 애플리케이션 전체에서 공유하여 사용하는 리소스라던지, 로그를 기록하는 객체 같은 것들은 애플리케이션에서 1개의 인스턴스만 생성되어야 합니다. 이렇게 한 개의 인스턴스만 존재함을 보증하는 패턴을 Singleton 패턴이라고 부릅니다. 클래스 다이어그램 Singleton 패턴의 클래스 다이어그램은 다음과 같이 표현합니다. singleton 속성과 Singleton 생성자가 모두 private으로 정의되어 있습니다. 이는 생성된 객체를 직접 접근하거나 생성할 수 없도록 명시하는 것입니다. 생성된 인스턴스는 getInstance 메서..

Hello world(Chrome확장프로그램 ver)

한번쯤은 내가 만든 확장 프로그램을 사용해보고 싶다는 마음을 가지고 있었습니다. 그러다가, 크롬 앱 만들기 강좌를 찾았습니다. 따라 하다 보면 크롬 확장 프로그램은 만들 수 있겠다 싶어서 들어봤습니다. 수업 내용은 나름 괜찮았습니다. 몰랐던 자바스크립트 기능도 알게되고, 무엇보다 강사의 코딩 스타일이 유용해 보였습니다. 하지만, 끝까지 크롬 확장 프로그램 만드는 얘기는 하지 않더라고요. 그래서 시작한 김에 크롬 확장 프로그램 만드는 방법을 찾아봤습니다. 확장 프로그램 작성 hello world 크롬 확장프로그램을 만들기 위해서 필요한 것은 세 가지입니다. manifest.json icon image 확장프로그램에서 실행할 파일 ( 여기서는 html 파일 ) manifest.json manifest.jso..

WSL2 실제 위치는 어디일까?

윈도우10 2004 업데이트를 하고 나서, WSL2를 정말 잘 사용하고 있습니다. Docker도 잘 사용하고 있고, JetBrain IDE도 최근 업데이트로 WSL2 기반의 git을 사용할 수 있게 되어, 개발 환경이 한층 더 쾌적해짐을 느끼고 있습니다. git은 윈도우에서 쓸 때 느린 반응 때문에 항상 불편했었거든요. 그런데, 최근 궁금한게 생겼습니다. wsl2에서 윈도우에서 사용하는 드라이브를 직접 접근할 수 있는데, 이는 /mnt/에 마운트 되어있습니다. 그러면 / 아래의 /home, /etc, /var 같은 공간은 대체 어디에 있을지 궁금함이 생겼습니다. 좀 찾아보니, 설치되는 위치는 마이크로소프트 스토어에서 설치한 wsl distro에 따라서 다르며 ubuntu의 경우는 "C:\Users\{us..

[번역글]How to Get Started with React

원글 : How to Get Started with React — A Modern Project-based Guide for Beginners (Including Hooks) 내용 중 일부 오역이 포함되어 있을 수 있으니, 가능하면 원문을 참조하시는 걸 추천드립니다. 리액트 시작하는 방법 - 초보자용 현대적 프로젝트 기반의 가이드(Hook 포함) 자, 리액트를 배우기 시작했나요? 그러면 잘 찾아왔습니다. 이 가이드는 리액트를 시작할 때, 알아야 할 모든 것을 포함합니다. 기본 개념 뒤에 "어떻게 그리고 왜"를 설명합니다. 그리고 API를 통해 데이터를 불러와 작은 프로젝트를 만들어서 모든 걸 직접 해볼 수 있습니다. 이 글은 매우 기니깐, 오른쪽 목차를 보고 필요에 따라 섹션을 넘기거나, 다시 읽으세요...

'user "root" does not have permission to access the dev dir'

NPM install -g 로 모듈을 설치하는 데, 예상치 못한 ‘user “root” does not have permission to access the dev dir’ 에러를 만났습니다. 뭔가 파일 권한 관련해서 문제가 발생한 것 같은데, 왜 발생한 건지 원인은 찾지 못했습니다. 구글링 해보면, 일부에서 --unsafe-perm 옵션을 주는 것으로 해결한 사례를 찾았습니다. 또 일부는 xcode 문제라고 하기도 했습니다. --unsafe-perm은 왠지, unsafe라는 단어가 맘에 들지 않았을 뿐더러, 문제를 피해가는 꼼수라고 생각이 들었습니다. 두번 째 xcode 문제는 저에게는 해당 되지 않는 문제였습니다. 저는 ubuntu를 사용 중이었으니까요. 그러던 중 NPM 공식 문서 중 “Resolv..