일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- leetcode
- machine learning
- docker
- JavaScript
- type
- npm
- Python
- loop
- VUE
- TypeScript
- security
- 앙상블
- git
- C#
- generic
- dotenv
- var
- vuetify
- Clone
- property
- C++
- vue.js
- scss
- 보안
- BOJ
- AI
- condition
- webpack
- bash
- nginx
- Today
- Total
목록Development (106)
ice rabbit programming
지난 정규표현식 간단 정리 글에 이어서 이번에는 디자인 패턴에 관해 강의를 들으며 정리했던 필기를 정리하려고 합니다.약 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쪽을 지정을 안 해줬더니 이런 오류가 발생하고 있었다. 빌드 시에 꼭 사용되지 않더라도 지정을 해주어야 정상 빌드가 진행된다.
(아이패드에 필기가 있었는데, 아이패드가 충전하다가 망가지는 바람에 소실되어, 이후 글은 따로 저장해둔 요약본을 참고합니다.) 이전 글에 이어서 안전하지 않은 코딩 스타일을 이어서 정리한다. 불필요한 Method 지원의 취약점 웹 서버에 불필요한 HTTP 메소드가 허용되어 있을 경우, 악의적인 사용자가 이를 이용해 웹 서버를 변조하거나 시스템 권한을 획득할 수 있다. 모든 메소드를 허용하지 않고, 사용하는 메소드만 허용하는 것이 좋다. 특히, GET을 이용한 조회 외에는 데이터를 추가/변경/삭제할 수 있다. Null 포인터 역참조의 취약점 Null 포인터 역참조는 는 가정을 위반했을 경우 발생한다. 공격자가 의도적으로 Null 포인터 역참조를 실행하면, 그 때 발생하는 예외를 이용하여 공격에 이용될 수 ..
(아이패드에 필기가 있었는데, 아이패드가 충전하다가 망가지는 바람에 소실되어, 이후 글은 따로 저장해둔 요약본을 참고합니다.) TOCTOU의 취약점 및 대책 TOCTOU란, Time of Check, Time of Use의 약자로 체크하는 시점과 사용하는 시점의 데이터 싱크가 맞지 않는 경우를 말한다. 즉, 공유되는 데이터의 체크 시점과 사용 시점의 값이나 상태가 달라 발생하는 취약점이다. 체크되는 시점부터 사용되는 시점까지 동기화하거나 데이터를 공유하지 않도록 처리해야 한다. 세션 간 정보 노출의 취약점 및 대책 동시에 연결되는 여러 세션들 간에, 한 세션의 정보가 다른 세션에게 노출되는 취약점이다. 세션 정보가 공유되지 않도록 각 세션에서 로컬 변수화 처리가 되어야 한다. 부적절한 에러 처리의 취약점..