본문 바로가기

프로그래밍 언어30

[terraform] template v2.2.0 does not have a package available for your current platform, darwin_arm64 오류 처리 M1 맥북에서 테라폼 코드를 작성할 때 'template_cloudinit_confg'를 이용하면 오류가 발생합니다. - Using previously-installed terraform-provider-openstack/openstack v1.53.0 ╷ │ Error: Incompatible provider version │ │ Provider registry.terraform.io/hashicorp/template v2.2.0 does not have a package available for your current platform, darwin_arm64. │ │ Provider releases are separate from Terraform CLI releases, so not all prov.. 2024. 2. 18.
[terraform] provider를 로컬 캐쉬를 이용하여 초기화 하는 방법 테라폼을 이용해서 작업을 할 때 terrafom init 명령을 입력하면 프로바이더를 다운로드 하게 되는데 , 폐쇄된 환경에서는 사용할 수 없게 됩니다. 이런 경우 로컬 캐쉬를 이용해서 테라폼 프로바이더를 설정할 수 있습니다. # home 디렉토리에 .terraformrc 파일 생성 후 다음 내용을 입력 # .terraformrc 파일 내용 plugin_cache_dir = "/home/deploy/.terraform.d/plugins-cache" disable_checkpoint = true provider_installation { filesystem_mirror { path = "/home/deploy/.terraform.d/plugins-cache" include = ["registry.terra.. 2024. 2. 7.
[python] json.decoder.JSONDecodeError: Expecting value: line 3 column 27 (char 95) 오류 json 형식의 문자열을 json 으로 파싱할 때 다음과 같은 오류가 발생하는 경우가 있습니다 . File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/json/__init__.py", line 346, in loads return _default_decoder.decode(s) File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/json/decoder.py", line 337, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "/Library/Frameworks/Python.framework/.. 2023. 6. 30.
[golang] MySql 드라이버에서 tls 로 접속하는 방법 golang 에서 mysql 드라이버를 이용하여 dsn을 설정하고 접근 하는 방법은 다음과 같습니다. tls 로 접근할 때는 tls=skip-verify 를 설정하면 됩니다. 2023. 3. 8.
[ansible] [WARNING]: when statements should not include jinja2 templating delimiters such as {{ }} or {% %} 오류 앤서블의 when: 태그를 이용할 때 이런 오류가 발생하는 경우가 있습니다. [WARNING]: when statements should not include jinja2 templating delimiters such as {{ }} or {% %} 이 경우는 앤서블의 when: 태그에 jinja2 템플릿 문법을 입력하여서 발생합니다. 따라서 이 오류를 해결하기 위해서는 when 태그에는 변수명을 그대로 입력하면 됩니다. 2022. 8. 25.
[go] kafka 라이브러리의 크로스 컴파일 오류 undefined: kafka.NewProducer 카프카 라이브러리(confluent-kafka-go)를 사용하는 go 프로그램을 크로스 컴파일(맥에서 리눅스 버전 라이브러리로 컴파일) 할 때 다음과 같은 오류가 발생할 수 있습니다. db/kafka.go:17:12: undefined: kafka.NewProducer db/kafka.go:17:31: undefined: kafka.ConfigMap db/kafka.go:29:10: undefined: kafka.Message db/kafka.go:41:20: undefined: kafka.Message 이는 카프카 라이브러리에서 인지하고 있는 문제이며, 아직도 해결이 되지 않은 것 같습니다. 도커를 이용하여 빌드를 하던지 실제 프로그램을 사용할 리눅스 서버에서 컴파일 하시는게 편합니다. https://.. 2022. 6. 16.
[go] 맥에서 우분투용 실행파일을 빌드 하는 방법 맥에서 우분투용 실행파일을 빌드하는 방법은 빌드할 때 다음과 같이 설정값을 전달하고 빌드 명령을 실행하면 됩니다. GOOS, GOARCH 설정은 runtime 확인을 통해 알아 낼 수 있습니다. 2022. 5. 15.
[terraform] 테라폼의 특정 모듈만 삭제하는 방법 테라폼으로 생성한 인프라 중 특정 모듈만 삭제 하는 방법은 destroy 옵션에서 target을 지정하는 방법입니다. 2022. 4. 18.
[go] 표준 go 프로젝트 레이아웃 go 프로젝트의 표준 레이아웃 정리 문서입니다. https://github.com/golang-standards/project-layout/blob/master/README_ko.md GitHub - golang-standards/project-layout: Standard Go Project Layout Standard Go Project Layout. Contribute to golang-standards/project-layout development by creating an account on GitHub. github.com 2022. 2. 15.
[ansible] 플레이북에 선언된 태스크의 실행 순서 앤서블 플레이북에는 pre_tasks, roles, tasks, post_tasks 를 설정할 수 있고, 순서대로 실행됩니다. roles가 실행되기 전에 필요한 작업은 pre_tasks에 놓고, 후에 실행되어야 하는 작업은 tasks, post_tasks 에 놓으면 됩니다. 여기에 추가로 vars_prompt: 가 들어가면 가장 먼저 vars_prompt: 가 실행 됩니다. 2022. 2. 15.
[terraform] 오픈스택 VM 생성시 Invalid key_name provided 오류 오픈스택을 이용하여 VM 생성시 다음의 오류가 발생하는 경우가 있습니다. ╷ │ Error: Error creating OpenStack server: Bad request with: [POST https://compute.io/v2.1/XXXX/servers], error message: {"badRequest": {"code": 400, "message": "Invalid key_name provided."}} │ │ with openstack_compute_instance_v2.example-worker["example-worker-2"], │ on openstack_worker.tf line 1, in resource "openstack_compute_instance_v2" "example-wor.. 2022. 2. 15.
[terraform] 토큰 인증시 cannot use AllowReauth, when the token ID is defined and auth scope is not set 오류 테라폼 오픈스택 인증시 위와 같은 오류가 발생하는 경우 allow_reauth 값을 false 로 주면 됩니다. token 을 이용할 때는 해당 설정을 이용할 수 없기 때문입니다. 2022. 2. 14.
[terraform] 오픈스택 프로바이더 크레덴셜/토큰(credential/token) 예제 테라폼을 이용해서 오픈스택 리소스를 생성할 때 인증을 받는 방법은 여러가지가 있습니다. 키스톤에서 제공하는 인증을 설정 값에 추가하면 여러가지 인증을 이용할 수 있습니다. 그 중에서 아이디/암호, 크레덴셜 ID/시크릿, 토큰을 이용하는 방법은 오픈스택 rc 파일에 설정을 통해서 진행할 수 있습니다. 아이디/암호 OS_AUTH_TYPE=v3password OS_USERNAME=username OS_PASSWORD=password 크레덴셜ID/시크릿 OS_AUTH_TYPE=v3applicationcredential OS_APPLICATION_CREDENTIAL_ID=xxxxxxxxxxx OS_APPLICATION_CREDENTIAL_SECRET=xxxxxxxxxx 토큰 OS_AUTH_TYPE=v3token .. 2022. 2. 14.
[ansible] shell 모듈과 nohup을 이용한 하둡, 하이브 daemon 프로세스 실행 앤서블을 이용해서 하둡, 하이브 데몬을 실행할 때 nohup을 이용하지 않으면 프로세스가 정상적으로 실행되지 않습니다. 앤서블이 서버에 연결 후 프로세스를 실행하고, 연결 종료 후 프로세스가 함께 종료됩니다. 따라서 nohup을 이용하지 않으면 프로세스가 실행되지 않고, 종료됩니다. 기본적으로 shell 모듈은 서비스를 실행하기 위해 디자인된 모듈이 아니기 때문입니다. 서비스를 실행할 때는 service 모듈을 이용하는 것이 좋습니다. 이 예제는 shell 모듈을 이용해야 하는 경우에 사용합니다. 2021. 5. 26.
[에러] 구글 애드센스에서 expected expression, got '<'1 오류가 발생할 때 광고를 설정하는 구글 애드센스에서 다음과 같은 오류가 발생할때 아래의 방법으로 수정이 가능하다. SyntaxError: expected expression, got ' 2016. 2. 24.
[javascript] javascript 기초 익히기 Javascript 기초 - 데이터 타입 - http://insanehong.kr/post/javascript-datatype/ 함수 선언 vs 함수 표현 - http://insanehong.kr/post/javascript-function/ Insane Hong 님 블로그의 글 요약 1. Javascript 기초 데이터 타입 - 기초 데이터 타입 Number String Boolean Object Function Array Date RegExp Null undefined - 문자열(String)을 숫자형(Number)으로 변경하는 방법 parseInt("문자열", 진법), parseFloat("문자열", 진법) 함수로 숫자형으로 변경 진법을 입력하지 않으면 문자열에 입력된 값이 0x 로 시작하면 16진.. 2013. 8. 19.
jQgrid의 width 를 윈도우 사이즈에 맞춰서 resize 하기 참고 링크 => http://www.mindfiresolutions.com/Resize-jqGrid-width-dynamically-based-on-browser-Window-size--1172.php /* * @param string grid_id 사이즈를 변경할 그리드의 아이디 * @param string div_id 그리드의 사이즈의 기준을 제시할 div 의 아이디 * @param string width 그리드의 초기화 width 사이즈 */ function resizeJqGridWidth(grid_id, div_id, width){ // window에 resize 이벤트를 바인딩 한다. $(window).bind('resize', function() { // 그리드의 width 초기화 $('#' .. 2013. 5. 9.
.Net 의 오라클 커넥션을 이용할 때 select 문 처리중 delete 문을 이용하면 어떻게 될 까? .Net의 System.Data.OracleClient 를 이용하여 데이터를 select 하던 중 delete 문을 처리하면 오류가 생길까? 하나의 OracleConnection, OracleCommand, OracleDataReader 객체를 하나만 이용해서 처리했기 때문에 오류가 생길 것이라고 생각했었는데 테스트 해보니 문제가 없다. ㅎ 일단 테스트해본 row는 5000 row 인데 처리하는데 문제가 없는 것으로 보아 ExecuteReader() 명령이 한번에 5000개의 데이터를 다 가져와서 그렇거나, OracleCommand 객체를 이용하여 새로운 쿼리를 날리면 다른 세션을 생성해서 그런게 같다. 그리고 MSDN 예제에도 이런식으로 처리하는 예제가 있는 것으로 보아(같은 방식은 아니지만) 그냥 이.. 2013. 4. 25.
.Net에서 오라클 DB Select 하기 .Net에서 오라클에 Select 하는 쿼리는 다음과 같다. // DB연결 URL 생성 string oradb = ConfigurationManager.ConnectionStrings["stxerp"].ConnectionString; using (OracleConnection conn = new OracleConnection(oradb)) { // 커넥션 오픈 conn.Open(); // 커맨드 생성 using (OracleCommand cmd = new OracleCommand()) { cmd.Connection = conn; cmd.CommandText = "SELECT ia_key, empno ,deptcode ,apprstatecode FROM stx_ap_card_check_list2"; // .. 2013. 4. 25.
.Net ASP에서 Web.config의 appSettings, connectionStrings 활용하기 DB 주소, 아이디 등과 같이 개발 환경에 따라 값을 변경할 필요가 있는 정보를 ASP에서는 Web.config 파일에 설정하고 이를 파일에서 불러와서 사용하게 된다. 이럴때 사용하는 것이 Web.config 파일의 appSettings와 connectionSettings 설정이다. 위와같이 web.config 에 설정하고 ConfigurationManager 를 이용하여 값을 가져오면 된다. // 문자열을 이용하여 값을 가져온다. string oradb = ConfigurationManager.ConnectionStrings["stxerp"].ConnectionString; 2013. 4. 24.
.Net에서 오라클 DB에 데이터 insert와 트랜잭션 처리 우선 오라클 DB를 연결하기 위한 라이브러리를 참조한다. 프로젝트 -> 참조추가 항목을 이용하여 위의 System.Data.OracleClient 서비스를 참조한다. 참조시 주의 할 점은 이 라이브러리는 .Net 프레임워크 4이하이서만 유효하다. 상위에서는 더이상 지원을 하지 않는다. 상위버전에서는 오라클에서 제공하는 Orace Driver 를 다운로드 받아야 한다. // 오라클 커넥션 string string oradb = "Data Source=(DESCRIPTION=" + "(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=아이피)(PORT=1521)))" + "(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=사용하는SID)));" + ".. 2013. 4. 24.
.Net 에서 웹의 XML 문서를 파싱하여 필요로 하는 노드만 검색하기 목적은 웹서비스로 XML 문서를 가져와서 파싱하여 필요로 하는 노드의 정보만 가져오는 것이다. 이를 위한 코드는 다음과 같다. // url 작성 string url = ConfigurationManager.AppSettings["approval_url"] + "?FormKey=" + formKey + "&EmpNo=" + ConfigurationManager.AppSettings["emp_no"]; ; // http 연결하여 xml 문서 가져오기 WebRequest wrGETURL = WebRequest.Create(url); using (StreamReader reader = new StreamReader(wrGETURL.GetResponse().GetResponseStream())) { // XML .. 2013. 4. 24.
Oracle.DataAccess 과 System.Data.OracleClient 의 차이 Oracle.DataAccess(ODA) 와 System.Data.OracleClient(SDO) 는 둘다 .Net 에서 오라클 DB 연결을 위한 라이브러리를 제공한다. SDO는 닷넷 프레임워크에서 기본적으로 제공되는 라이브러리이고 ODA는 오라클에서 제공해준다. SDO는 닷넷 프레임워크 4 까지는 지원 되었으나, 그 이상에서는 지원하지 않을 예정이라고 한다. 따라서 되도록 이면 ODA를 사용하는 것이 좋을 것같다. ODA 다운로드 하기로그인을 해야 다운로드 할 수 있다. 로그인을 한 후 진행하는 것이 좋겠다.* 설치후 컴퓨터를 재부팅 하는 것이 좋다. 재부팅을 하지 않으면 VS가 제대로 인식하지 못하는 것 같다.** 기존에 오라클을 설치 했다면 레지스트리, 환경변수 설정등에 영향이 갈 수 있으므로 주의.. 2013. 4. 23.
jQuery 2.0 릴리스 jQuery 2.0 릴리스 4월 18일 jQuery 2.0 이 릴리스 됐다. 1.9 버전의 최신 릴리스와 함께 공개 됐다. 1.x 대의 하위버전의 업그레이드를 위해서는 jQuery Migrate plugin 을 함게 이용하도록 하자. 2.x의 가장큰 차이점은 ie 6, 7, 8을 지원하지 않는다는 것이다. 요즘 jQuery 를 이용하여 웹사이트 개발하면서 가장 큰 불만이 ie 8 이하에서는 CSS도 그렇고 뭔가 다르게 동작한다는 것이다. 레이아웃도 깨지고, 오류도 나고, 다른 로직을 추가해야 되고... 요즘 개발하면서 그게 스트레스 였는데... jQuery 개발자들은 ie 6, 7, 8은 더이상 지원해주지 않겠다고 하다니... 완전 쿨하네.. 부럽다... 클라이언트들이 ie7 에서는 왜 안되냐고 물어볼때.. 2013. 4. 19.
GET 방식으로 호출시 '&', '+' 기호 전달하기 참고1, 참고2 GET 방식으로 파라미터 전달시 &와 + 기호는 전달되지 않는다. 로컬에서 데이터를 전달하는 시점에 + 기호를 공백으로 변경하여 전달한다. 따라서 기호를 무사히 서버로 전달하려면 기호를 인코딩 해주어야 한다. 이를 위한 방법은 + 를 %2B 와 같이 서버가 인식가능한 문자로 변경하여 전달하든지, encodeURIComponent 함수를 이용하여 인코딩 하는 방식이 있겠다. function replace(inum) { // 정규식을 이용한 문자 변경 inum = inum.replace(/&/g, "%26"); inum = inum.replace(/\+/g, "%2B"); return inum; } function replace(inum) { // 인코딩 함수 이용 return encodeU.. 2013. 4. 18.
자바스크립트의 프로토타입을 이해하고 객체지향 구현하기 네이버 개발자센터 강좌 - JavaScript와 객체지향 프로그래밍 상세한 내용은 네이버의 강좌를 보면 좋을 것 같고, 아래와 같이 코드를 기반으로 이해를 해보자. 자바스크립트에서 객체지향을 구현하기 위해서 필요한 것이 프로토타입이다. 자바스크립트에서 객체지향을 구현하기 위해서 사용하는 것은 함수다. // Dog 객체 생성 var Dog = function() {}; // Dog 프로토 타입선언 Dog.prototype.bow = function() { alert('bow'); }; Dog.prototype.sit = function() { alert('sit'); }; // Cat 객체 생성 var Cat = function() {}; // Cat 프로토타입 선언 Cat.prototype = { sit.. 2013. 4. 16.
jQgrid의 지정한 칼럼, 지정한 열을 다른색으로 지정하기 사용자에게 해당칼럼이나 열의 정보를 강조하기 위해서 테이블의 배경색을 바꾸고 싶을 때는 다음처럼 처리한다. // 배경색상 css 선언 var cssGreen = {'background-color':'#6DFF6D'}; // 그리드 데이터의 ID 가져오기 var ids = $('#requestList').jqGrid('getDataIDs'); // 그리드 데이터 가져오기 var gridData = $("#requestList").jqGrid('getRowData'); // 데이터 확인후 색상 변경 for (var i = 0; i < gridData.length; i++) { // 데이터의 is_test 확인 if (gridData[i].is_test == 'Y') { // 열의 색상을 변경하고 싶을 때(c.. 2013. 4. 12.
Javascript의 Array 의 concat, $.extend 메소드 알아보기 참조링크 => 라셍님 블로그Javascript의 Array 타입이 제공해주는 기본 메소드 중에서 유용한 메소드인push, concat 에 대하여 알아보고, jQuery의 extend를 이하여 배열을 합친것과 concat의 차이점을 알아보자. 우선 기본적인 Array 타입의 형태를 알아보자.// 영화 Object 선언 var shiri = { name: '쉬리', year: '1998' }; var oldboy = { name: '올드보이', year: '2003' }; var myway = { name: '마이웨이', year: '2011' }; var masqurade = { name: '광해', year: '2012' }; var ironman3 = { name: '아이언맨3', year: '2013.. 2013. 4. 10.
목록에서 text 가 지정된 길이 이상일 때 ...(elipsis:생략부호)로 변경하기 내가 원하는 목적은 게시판의 목록을 보여주는데 일정 길이 이상이면 그 이상의 길이를 ... 으로 보여주는 것이다. 내가 원하는게 이런 모습이었는데 [타이틀][날짜]이런 형태의 HTML 로 구현하여 처리하려고 했는데 어떻게 해도 타이틀 부분의 길이가 딱 맞아 지지가 않아서 우선 CSS로 처리하려고 시도를 했다. 스택오버플로우를 보고 처리하려고 했는데 타이틀의 길이가 li 의 전체 길이에 맞춰져서 날짜와 한 라인에 맞아지지가 않아서 일단은 DB에서 타이틀을 끊어서 가지고 오는 것으로 처리하였다. 스택오버플로우의 내용은 한 라인에 타이틀만 들어갈 때 사용하면 될 것 같다. 위와 같이 워드랩을 nowrap으로 주고 처리하면된다. DB에서 타이틀을 가져올 때 다음과 같이 case 문을 이용하여 문자의 길이를 기준.. 2013. 3. 13.
80020101 오류 해결하기 웹페이지 처리중 80020101 오류메시지가 뜨면서 Javascript 오류 메시지가 나타날 경우 다음과 같이 확인을 해보자. 시작 -> 모든 프로그램 -> 보조 프로그램 -> 시스템 도구 에 보면 'Internet Explorer 추가 기능 없음' 으로 실행하여 웹서핑시 발생하는 지 확인을 합니다. 1. 추가기능없음 에서는 발생하지 않는다면, 설치된 IE 추가기능에 의한 문제라고 추측해도 되겠죠?-> 레지스트리 편집기를 통한 BHO 제거, adobe flash player 제거 후 새로 설치 등을 해보시면 될 것 같습니다. 2. 추가기능없음에서도 증상이 동일하게 발생-> 3rd party 응용 프로그램이나, 바이러스 등에 의한 방해로 발생할 가능성이 있습니다.-> msconfig 를 이용한 클린부팅 /.. 2013. 2. 15.