| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 | 31 |
- type
- vue.js
- Clone
- var
- 앙상블
- security
- bash
- condition
- loop
- scss
- VUE
- git
- nginx
- Python
- property
- BOJ
- AI
- docker
- generic
- TypeScript
- dotenv
- machine learning
- C++
- 보안
- C#
- vuetify
- npm
- webpack
- leetcode
- JavaScript
- Today
- Total
목록Development (108)
ice rabbit programming
생성 및 컬렉션 패턴Container & Iterator (반복자)Thin Template Container: void* 기반의 컨테이너를 상속받는 얇은 템플릿(Thin Template) 기법을 사용하면, 강력한 타입 안정성을 챙기면서도 과도한 템플릿 인스턴스화에 따른 코드 폭발(Code Bloat)을 차단할 수 있어 하드웨어 제약이 큰 모바일이나 임베디드 라이브러리에서 매우 유용하다.Iterator 패턴: 컨테이너 내부 구현(배열, 연결 리스트 등)을 노출하지 않고 요소에 순차적으로 접근할 수 있도록 돕는다. Java/C#의 인터페이스 기반 다형성 처리와 달리, C++의 STL 반복자는 런타임 가상 함수 호출 성능 저하를 방지하기 위해 연산자 오버로딩(++, *)과 컴파일 타임 템플릿 매칭 기법을 사용..
간접층의 원리를 활용한 패턴들간접층을 도입하여 의존성을 제어하며, 목적에 따라 아래와 같이 나뉜다.Adapter 패턴: 기존 클래스의 인터페이스가 요구 사항과 맞지 않을 때 인터페이스를 변경(호환성 제공)하기 위해 사용한다.Class Adapter: 다중 상속 또는 값으로 포함하여 수정.Object Adapter: 객체를 포인터/참조로 포함(Composition)하여 수정. STL의 std::stack 및 std::reverse_iterator가 이에 해당한다.Proxy 패턴: 특정 객체에 대한 접근을 제어하거나 대행하기 위해 대리 객체를 제공한다. (예: Remote Proxy, Virtual Proxy, Protected Proxy).Facade 패턴: 복잡한 서브시스템 구조의 의존성을 감추고, 호출..
지난 정규표현식 간단 정리 글에 이어서 이번에는 디자인 패턴에 관해 강의를 들으며 정리했던 필기를 정리하려고 합니다.약 4년 반 전에 포스팅했던 Typescript 강의를 듣고 정리했던 글과 비슷하겠네요.어느새 처음 입사한지 만 5년이 흐른 지금, 기존 코드도 나름 많이 읽었고 선배 및 동료 개발자들과 리뷰를 하면서 더 나은 코드를 작성할 수 있도록 노력해오기도 했습니다. (개인적으로는 아직 많이 부족하다고 생각합니다만...)C#, 파이썬과 Typescript를 거쳐서 현재는 C++을 주로 사용하고 있어서 GoF 패턴을 C++ 강좌로 접할 기회가 있어 듣고 간략하게 정리한 내용입니다.대부분 한 번씩 사용해봤을 법한 패턴들입니다. 다만 패턴에 너무 매몰되지 않고 생산성과 현재 프로덕트가 처한 상황에 맞게 ..
개발을 할 때 종종 정규표현식을 사용할 일이 있습니다. 특정 패턴의 버전을 입력해야 하는 유효성 검사를 하거나, string으로 넘어온 인자들을 파싱할 때 등 여러 경우에 사용합니다.최근에는 언어에서 지원해주는 라이브러리들도 많고, 자주 쓰이는 패턴의 경우에는 검색하면 금방 나오기도 합니다.하지만 코딩과 마찬가지로 긁어서 가져다 쓰는 것만이 아니라 이해하고 활용하고, 수정하고 나아가서는 직접 만들 줄도 알아야 한다고 생각합니다.아래는 근래에 정규표현식 관련해서 책을 읽으면서 나름대로 정리한 내용입니다.(근래라고는 썼지만 몇 달 되긴 했네요.)https://regexr.com/ 와 같은 곳에서 직접 만들고 테스트해볼 수도 있습니다.(혼자 정리용으로 필기한 글이라 최대한 가독성 좋게 수정하기는 했습니다만 잘..
Windows 환경에서 flutter 설치 후에 flutter doctor를 실행했을 때 Unable to find bundled Java version 오류가 발생하는 경우가 있다. Android Studio 버전이 올라가면서 오류가 발생하는 것으로 추정되는데 아래와 같이 해결 가능하다. 1. 안드로이드가 설치된 경로(기본은 C:\Program Files\Android\Android Studio) 하위의 jbr 폴더 내용을 jre 폴더에 붙여넣는다. 2. 명령 프롬프트(cmd)를 관리자 권한으로 실행하고, 심볼릭 링크를 생성한다. ex) mklink /d "C:\Program Files\Android\Android Studio\jre" "C:\Program Files\Android\Android Stu..
OOP로 프로그래밍할 때에는 코드 작성 전에 클래스 모델링을 진행하는 편이 좋다. 학부생 때 다들 그려봤을 클래스 다이어그램을 이용할 수 있다. 클래스 다이어그램의 구성 요소는 아래와 같다. 클래스 : 자료 타입 그 자체를 나타냄 연관 관계 : 클래스 인스턴스 사이의 관계를 나타냄 속성 : 클래스와 그 인스턴스 내에서 발견되는 단순 자료 오퍼레이션 : 클래스와 그 인스턴스에 의해 수행될 함수 일반화 : 클래스를 상속 구조로 그루핑 첨언하자면 클래스와 인스턴스는 붕어빵 틀과 붕어빵의 관계인데, 여기서는 더 자세히 다루지는 않겠다. 클래스 다이어그램에서 클래스는 박스로 표현하며 그 안에 이름을 적는다. 그 아래에 속성과 타입을 적고, 그 아래에 오퍼레이션을 적는다. 예시로 보면 아래와 같다. 위 이미지에 더..
K8S가 배포된 환경에서 Pod의 네트워크 탐지/분석 등 디버깅이나 추가적인 작업이 필요한 경우가 있다. 기본적으로 Pod Container 내부에서는 관련 기능/툴이 제공되지 않는데, 이럴 때 Pod 내부에 sidecar 컨테이너를 띄워서 원하는 작업을 할 수 있다. deploy.yaml에 pod 정보를 다음과 같이 추가한다. 어려운 부분은 없고 단순히 추가만 하면 된다. # ... spec: containers: - name: main-container image: {my-url} # ... # 아래에 sidecar container 정보를 추가한다. - name: side-container image: {my-url2} resources: # ... # ... 이후에 kubectl apply -f ..
유니티 빌드를 진행하려고 하는데, xxx.dll plugin is used from several locations와 같은 오류가 발생하면서 컴파일이 진행되지 않는 경우가 있다. .dll들과 .so들 등 Platform Manager로 설정이 가능한 파일들을, Any CPU로 두지 않고 플랫폼들을 설정해 주면 해결 된다(x86_64나 x64, ARM 등). iOS에 대해서 빌드를 진행하려 했는데, AOS나 Windows쪽을 지정을 안 해줬더니 이런 오류가 발생하고 있었다. 빌드 시에 꼭 사용되지 않더라도 지정을 해주어야 정상 빌드가 진행된다.
