본문 바로가기

분류 전체보기

Docker localhost 활용 도커를 활용할 때 Docker로 띄운 어플리케이션이 host machine의 어플리케이션에 접근하는 경우가 있다. 자사 제품에서도 특정 서비스들이 eureka를 사용하는 서비스의 주소를 eureka 엔드포인트로 사용하는 경우 등이 있다. Q)전부 같은 로컬 환경에서 도커를 띄운다고 가정했을 때 ip 정보를 전부 localhost로 사용하면 되지 않을까? A)되지 않는다. localhost를 활용하면 도커 컨테이너 내부를 뜻하게 되고 host machine의 다른 어플리케이션에 접근할 수 없게 된다. 그러므로 다른 어플리케이션에 접근할 때에는 endpoint DNS를 IP를 명시적으로 적어주거나(제한적) host.docker.internal로 설정하여 사용하여야 한다.(Docker 공식 홈페이지에서 개발용.. 더보기
Ajax success 결과값 리턴 ajax의 결과(예 : GET)를 다른 곳에서 활용하고 싶을 때 functionName: function(arr) { $.ajax({ url: "apiurl"+arr, type: "GET", dataType: "json", contentType : "application/json", success: function(res){ return res.data; }, error: function(xhr) { switch(xhr.status) { case 404 : alert(message); break; case 500 : alert(message); break; } } }); } 위와 같이 사용하면 안된다! success 내에 return을 넣으면 함수 안 ajax 안에 있기때문에 원하는 동작을 하지 않는다... 더보기
Json 객체 length 구하기 js에서 array의 길이는 var users={'leo', 'injuk', 'jane'} users.length; length를 이용하면 된다. 하지만 json에 대해서 똑같이 실행하면 undefined가 뜬다. 해결법 var users={'leo':'26', 'injuk':'30', 'jane':'??'} Object.keys(users).length; Object.keys를 이용한다. 이유는 주말에 리서치 해서 추가하기 더보기
정규식 +와 *의 차이 Key Length Constraints: Maximum length of 128. Key Pattern: [a-zA-Z0-9_.,@/:#-]+ Value Length Constraints: Maximum length of 800. Value Pattern: [a-zA-Z0-9_.,@/:#-]* Required: No validation 체크 시 위와 같이 정규식 패턴이 있는데 Key Pattern을 보면 마지막이 '+'로 끝나고 Value Pattern을 보면 마지막이 '*'로 끝난다. 정규식에서 두 문자의 차이점은 다음과 같다. + * 의미 1개 이상의 같은 문자 0개 이상의 같은 문자 예시 a+b -> ab, aab, aaab, ...(a, b가 다 있어야 함) a*b -> b, ab, aab, ... 더보기
AWS 정책 허용 여부 AWS IAM 정책의 허용 여부 결정 프로세스는 다음과 같다. 1. 명시적 거부 : 요청에 대한 모든 정책 문서에서 Deny를 탐색하고 존재할 시 무조건 거부 2. 명시적 허용 : 요청에 대해 Allow일 때 같은 요청에 대한 명시적 거부가 없다면 허용한다. 3. 묵시적 거부 : 명시되지 않은 항목에 대한 모든 요청은 기본적으로 거부된다. 위 번호 순서대로 우선순위를 가지게 되며 해당 우선순위는 IoT Core의 정책 등 다른 서비스에서도 동일하게 작동한다. IAM에선 한 그룹 혹은 사용자가 여러 정책을 attach할 수 있으며 IoT Core에서도 기기 그룹 혹은 기기가 여러 정책을 attach할 수 있기 때문에 서로 Allow-Deny로 상충되는 항목이 있다면 Deny가 우선된다는 것이다. 더보기
앤서블 로컬에 파일 있는지 체크하여 copy Ansible copy file exist Ansible에서 실제 기능을 수행하는 Roles의 기능들이 있다. 그 중 copy 기능은 로컬에 있는 파일을 목표 인스턴스의 목표 경로에 복사하는 역할을 한다. 이 때 파일 이름, 경로에 문자열 변수를 활용할 수 있어서 아래와 같이 입력값을 활용하여 필요한 파일을 결정할 수 있다. - name: run aws-rule sh become: true become_user: USER shell: chdir: '/home/USER/bin/' cmd: './aws-rule-{{ rule_kind }}.sh {{ bucket_name }}' 하지만 위와 같이(예제는 쉘 스크립트 실행 명령어이나 형태는 같다) 활용할 경우 한 가지 문제점이 발생할 수 있다. 로컬에 해당 파.. 더보기
Publickey permission denied test@10.0.10.191: Permission denied (publickey). ssh 접근을 시도할 때 위와 같은 에러를 마주할 때가 있다. 위 에러의 경우 서버의 각 유저(위 경우 10.0.10.191 서버의 test 유저)는 스스로에게 접근을 허용하는 공개 키들을 모아놓는 ~/.ssh/authorized_keys 파일을 가지고 있다. 공개 키를 통한 접근 시 해당 파일에 미리 공개 키에 관한 정보가 저장되어 있어야 한다. 위 에러는 해당 파일에 접근을 시도하는 호스트의 공개 키에 관한 내용이 없기 때문에 발생하는 문제이다. 해결법으로는 접속을 시도하는 호스트의 공개 키(ex : ~/.ssh/id_rsa.pub)의 내용을 서버의 ~/.ssh/authorized_keys 파일에 추가해주면 정상적.. 더보기
Remote host identification has changed 에러 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY! Someone could be eavesdropping on you right now (man-in-the-middle attack)! It is also possible that a host key has just been changed. The fingerprint for the ECDSA key se.. 더보기