일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- nginx
- BOJ
- bash
- condition
- Clone
- vuetify
- loop
- git
- AI
- VUE
- 앙상블
- type
- generic
- C++
- npm
- dotenv
- scss
- machine learning
- TypeScript
- var
- Python
- property
- security
- C#
- JavaScript
- leetcode
- vue.js
- docker
- webpack
- 보안
- Today
- Total
목록Development (105)
ice rabbit programming
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의 약자로 체크하는 시점과 사용하는 시점의 데이터 싱크가 맞지 않는 경우를 말한다. 즉, 공유되는 데이터의 체크 시점과 사용 시점의 값이나 상태가 달라 발생하는 취약점이다. 체크되는 시점부터 사용되는 시점까지 동기화하거나 데이터를 공유하지 않도록 처리해야 한다. 세션 간 정보 노출의 취약점 및 대책 동시에 연결되는 여러 세션들 간에, 한 세션의 정보가 다른 세션에게 노출되는 취약점이다. 세션 정보가 공유되지 않도록 각 세션에서 로컬 변수화 처리가 되어야 한다. 부적절한 에러 처리의 취약점..
Vue에서 컴포넌트 간에 데이터를 넘기고, 이벤트를 발생시키고 받아서 처리하는 것은 매우 중요하고 또 흔하게 사용되는 방식이다. 자식 컴포넌트에서 emit시킨 이벤트는 주로 v-on, @를 통해서 지정하여 발생한 이벤트에 대한 처리를 많이 하게 된다. 그런데, 같은 컴포넌트를 여러 번 사용하거나 이벤트 명이 겹치는 경우가 발생할 수 있다. (물론, 서로 다른 이벤트의 경우 이벤트 명이 겹치는 일 자체를 먼저 피해야할 것이고, 자식의 자식에서 발생할 때에는 stop이나 prevent를 사용하는 방법도 있다.) 그럴 때 string 구문을 사용해서 dynamic하게 구독할 이벤트 명을 지정해줄 수 있다. 아래에 작성하겠지만, 방법 자체는 꽤 간단한데 구글링 등 검색했을 때 잘 나오지 않아 따로 포스팅으로 정..
자바 스크립트는 오랜 기간 발전하면서 하위 호환성을 유지한 채로 발전해왔다. 하지만 2009년 ES5가 출시되면서, 일부 기능이 변경되고 추가되면서, 하위 호환성 이슈가 발생할 수 있게 되었다. 그래서 이를 해결하고자, 기본 모드에서는 새로운 기능이 동작하지 않고, 'use strict'라는 지시어가 있을 경우에만 동작하도록 적용하였다. 이것이 엄격 모드이다. 'use strict' 지시어는 단순히 string처럼 보이지만, 최상단에 위치하는 경우 해당 스크립트는 모던 자바스크립트로 동작하게 된다. 'use strict' console.log('모던 JS로 실행됩니다') use strict 지시어는 최상단에 위치하지 않을 경우 적용되지 않을 수 있다. 즉, 중간에 넣을 경우 모던 자바스크립트로 동작하지 ..