기본 콘텐츠로 건너뛰기

2017의 게시물 표시

Redhat 7, CentOS 7 이상버전의 locale 설정 (언어설정)

레드햇과, 센트오에스 6점대 버전까지는

/etc/sysconfig/i18n 이곳에 인코딩설정을 해서 처리했었지만

7부터는 i18n을 사용하지 않는다.

필요할법한 명령어들을 정리해봤으니 참고해서 사용하면 되겠다.

1. 현재 언어셋팅상태 확인
env |grep -e LANG -e LC
또는
locale

2. 시스템에서 지원 가능한 캐릭터셋 확인
localectl list-locales

3. 콘솔명령어를 통해 locale설정 변경
localectl set-locale LANG={적용할 캐릭터셋}

ex) localectl set-locale LANG=ko_KR.euckr

4. 캐릭터셋 수동설정
vi /etc/locale.conf 로 파일을 연다음 아래 내용을 작성
LANG={적용할 캐릭터셋}

ex) LANG=ko_KR.euckr

설정 완료후 재부팅시 locale명령을 통해 원하는 캐릭터셋이 유지되는지 확인



Android - [cordova-plugin-googleplus] 10 error solution !!

SHA1 지문을 등록하는것으로 해결된다.
아마 아래 설명한 case1, case2 는 매뉴얼대로 하다보면 진행하게될탠데
case3 가 생소할수있다

Android 앱 배포시점에 내가 가지고있는 keystore가 아니라, Android에서 keystore를 관리한다는 옵션을 선택하게 될경우 앱 배포시점에서 아래와같이 엉뚱한걸로 다시 앱서명이 발생한다.

따라서 저 지문들도 등록을 해줘야, 구글플러스에서 인증된 어플로 인식하고
로그인처리를 진행해주게 된다.

---------------------------------------------------------------------------------------------

SHA1 fingerprint registration (지문)

case1) android debug kestore SHA1 fingerprint
keytool -exportcert -list -v -alias androiddebugkey -keystore %USERPROFILE%\.android\debug.keystore

*** debug key password : android

case2) android distribution keystore SHA1 fingerprint
keytool -exportcert -list -v -alias {keystore_alias} -keystore {keystore_path}


★★★ case3) Signing an App Managed by Google Playling


RESULT



IONIC - Android Studio Error : ":processDebugGoogleServices" Please fix the version conflict either by updating the version of the google-services plugin

IONIC - Android Studio Error :
":processDebugGoogleServices"
Please fix the version conflict either by updating the version of the google-services plugin

이 질문이 진짜 많다
저 오류로 고생하는 이들이 엄청나단건데
한국어로 블로깅된 내용이 없어서 정리해봅니다

1. 원인
cordova-plugin-fcm
cordova-plugin-googleplus
위 두개의 플러그인을 사용할 경우 발생한다

1. Cause 

cordova-plugin-fcm

cordova-plugin-googleplus
Occurs when two plugins are used

2. 해결방법 (Solutions)

1) build.gradle(Module:android) OPEN

2) dependencies modify
buildscript { repositories { mavenCentral() } // Switch the Android Gradle plugin version requirement depending on the // installed version of Gradle. This dependency is documented at // http://tools.android.com/tech-docs/new-build-system/version-compatibility // and https://issues.apache.org/jira/browse/CB-8143 dependencies { classpath 'com.android.tools.build:gradle:1.5.0' classpath 'com.google.gms:google-services:3.1.0' } } // Allow plugins to declare Maven dependencies via build-extras.gradle. repositories { mavenCen…

xcode 에서 업로드 했는데 itunes에 바이너리가 확인되지 않는 현상

"ios 밸드후 배포해도 itunes에서 안보여요"
"xcode에서 앱 빌드 , 제출, 업로드, 배포, itunes, 노출, 안보임, "

아 정말 이것때문에 오늘 정확히 12시간을 뻘짓했다.

우선.. 증상은
개발완료 후  xocde 8.3 에서  배포용 사인으로 변경 후  product -> archive 선택후 빌드성공 xcode:Organizer 창에서 빌드된 어플 선택 후 Upload 선택 
업로드 성공!!!!!
itunes 접속 아무리 기다려도.. 내가 심사로 제줄하고자 하는 앱에 빌드영역에  어플이 올라오질 않음 

처음엔 인증서 문제인가 ? 사인 문제 ?  모든 인증서 다지우고 프로파일 다시다 새로만들고 뻘짓해도 안됨..

https://raspberrybiscuit.wordpress.com/2016/09/28/xcode8%EC%97%90%EC%84%9C-%EB%B9%8C%EB%93%9C-%ED%9B%84-%EC%8A%A4%ED%86%A0%EC%96%B4-%EB%93%B1%EB%A1%9D-%EC%8B%9C-%EC%95%B1-%EB%85%B8%EC%B6%9C%EC%95%88%EB%90%98%EB%8A%94-%ED%98%84%EC%83%81-%EA%B1%B4/
위 블로그를 우연히 발견
info.plist 를 열어보자  그럼 key값이 privacy 로 시작하는 녀석들이 잇을것이다 
나같은경우 privacy - Photo Library Usage Description privacy - Camera Usage Description privacy - Location When in Use Usage Description
위 세개가 있었고 각각 value 영역에
To take pictures of your face
To check access times
To bring your picture
라는 이유들을 작성해줬따. 
그러고 다시 빌드해서 업로드하니까
한 3분 ? 도 안되서 바로 빌드내용이 확인됐다 아..대박

xc ios :xxx.xxx.xxx provisioning profile

이게 뭐지 ?

"xc ios : xxx.xxx.xxx"

xcode에서 빌드한 archive 를 업로드 하려는데
갑자기 저 profile을 사용해서 업로드하려고 한다

아 뭔가 기분나쁘고 찜찜하다

프로피저닝 프로파일을 지우고 다시깔고를 반복해도 자꾸 생긴다



결론은...

맥북에 설치된 모든 키체인 제거
프로비저닝 프로파일 기존것들 모두 제거
리부팅
프로비저닝 프로파일 재생성
다시반영

아 근데.. 한가지 또 다른게 있다면

기존엔 맥북에 비번이 안걸려잇었다 (엔터만으로 로그인함)

그런데 뭔가 이게 이슈일까 싶어서
맥북 로그인계정에 비번을 걸고 진행하고난뒤
저 절차를 밟는바람에..

이게 원인인지..
다 지우고 다시해서 해결이된건지..

더이상 xc ios 라는 프로비저닝 프로파일을 생성하지 않는다.

xcode splash image (or launch image) setting

iPhone Portrait iOS 5,6@1x: 320x480 iPhone Portrait iOS 5,6@2x: 640x960 iPhone Portrait iOS 5,6@Retina 4: 640x1136 iPad Portrait Without Status Bar iOS 5,6@1x: 768x1004 iPad Portrait Without Status Bar iOS 5,6@2x: 1536x2008 iPad Portrait iOS 5,6@1x: 768x1024 iPad Portrait iOS 5,6@2x: 1536x2048 iPad Landscape Without Status Bar iOS 5,6@1x: 1024x748 iPad Landscape Without Status Bar iOS 5,6@2x: 2048x1496 iPad Landscape iOS 5,6@1x: 1024x768 iPad Landscape iOS 5,6@2x: 2048x1536 iPhone Portrait iOS 8,9@Retina HD 5.5: 1242x2208 iPhone Portrait iOS 8,9@Retina HD 4.7: 750x1334 iPhone Landscape iOS 8,9@Retina HD 5.5: 2208x1242 12.9-inch iPad Pro Portrait: 2048x2732 12.9-inch iPad Pro Landscape: 2732x2048 iPhone Portrait iOS 7-9@2x: 640x960 iPhone Portrait iOS 7-9@Retina 4: 640x1136 iPad Portrait iOS 7-9@1x: 768x1024 iPad Portrait iOS 7-9@2x: 1536x2048 iPad Landscape iOS 7-9@1x: 1024x768 iPad Landscape iOS 7-9@2x: 2048x1536

웹페이지 이미지 붙여넣기 - javascript - HTML paste image into img tag, from blob data

웹페이지 이미지 붙여넣기 - javascript - HTML paste image into img tag, from blob data 말그대로... 스크린샷이던.. 뭐던 일단 복사한 이미지를 웹브라우저에 붙여넣기 기능입니다 컨트롤V 또는 붙여넣기를 사용하면 아래 onpaste 이벤트가 발동하면서 이미지 테그에 blob데이터를 사용해서 이미지를 로딩시킵니다.
이상 !

<html> <head>
<script> document.onpaste = function(event){ var items = (event.clipboardData || event.originalEvent.clipboardData).items;         console.log(JSON.stringify(items)); // will give you the mime types for (index in items) { var item = items[index]; if (item.kind === 'file') { var blob = item.getAsFile(); var reader = new FileReader();                         reader.onload = function(event){                                 console.log(event.target.result)                         }; // data url!                         reader.readAsDataURL(blob); var urlCreator = window.URL || window.webkitURL; var imageUrl = urlCreator.createObjectURL(blob); var img = document.getElementById("image");                         img.src =imageUrl;                        …

AIX to LINUX makefile migration (AIX소스 리눅스용 메이크파일 만들기)

AIX에서 빌드하던 C소스를 LINUX로 가져와야 하는 상태에서
열심히 빌드시도 > 실패 > 시도 > 실패 (겁나 삽질)을 반복하고있다..

일단.. 컴파일러와, OS차이도 있겠지만..옵션도 모양이 약간씩 다르기에 !
기초부터 공부하고 makefile 을 기존에 사용하던것을 모두 버리고 새로 작성하기로함

막막한 상태일지언정 한가지만 집고 넘어가자
focus) CC와 GCC의 차이
 - CC는 유료, GCC는 무료
 - CC와 GCC간에 컴파일가능한 문법차이가 존재한다
예를들면..
GCC는 int foo(int value){}
CC는 foo(value) int value {} 를 허용한다.. 아 왜 이런 변태같은 문법으로 코딩을 한거야 ?
지금 내가 접하고있는 소스가 딱 저모양인데 접할때부터 나를 혼란스럽게 만들었다
현재 Redhat 상용버전을 사용하고있으며 다행히 AIX에서 사용하던 컴파일러인 CC가 Redhat에서도 지원이 되길래 큰 소스수정 없이 빌드를 시도할 수 있는상태

필수 참고자료 "플랫포별 컴파일 옵션 차이"
http://www.fortran-2000.com/ArnaudRecipes/sharedlib.html

그럼이제 가장 피곤하고 까다롭게 굴었던 라이브러리 빌드를 속성과정으로 학습!
사실 처음부터 아래 내용을 알고 시작했더라면 여태껏 삽질은 안해도 됐을것이다..
역시 아는게 힘인듯

[소스작성]

라이브러리 해더
vi mysum.h
int ysum(int a, int b);

라이브러리 소스
vi mysum.c
#include "mysum.h"
int ysum(int a, int b)
{
    return a + b;
}

라이브러리를 참조하여 ysum을 수행하는 테스트소스
vi test.c
#include "mysum.h"
#include <stdio.h>
int main()
{
        printf("%d + %d = %d \n", 1, 2, ysum(1,2)…

앱 아이콘 크기별 자동생성 (Android, IOS)

앱 개발후 배포과정에서 빠질수없는 과정이죠

스토어에서 요구하는 여러 사이즈의 아이콘이미지 !

1024x1024 png 파일 하나만 만들면
나머지는 알아서 생성해주는 사이트가 있어서 공유 합니다!

"앱 아이콘 제작 툴(도구)"

http://icon.angrymarmot.org/

MongoDB C driver 사용법 6 - REMOVE

mongoc_collection_delete() 이것도 있는것 같지만 이놈은 Deprecated 됐습니다!
mongoc_collection_remove() 이놈을 사용해주세요!
그럼 remove는 예제소스로 간결하게 지나가 보겠습니다!

#include <bson.h> #include <mongoc.h> #include <stdio.h> #define SERVER "mongodb://localhost:27017/" #define DATABASE "MY_MONGO" #define COLLECTION "MY_MONGO_COLLECTION" int main (int argc, char *argv[]) { mongoc_client_t *client; mongoc_collection_t *collection; bson_error_t error; bson_t *doc; // mongoDB C driver 초기화 + DB 클라이언트 생성 mongoc_init (); client = mongoc_client_new (SERVER); mongoc_client_set_appname (client, "find_example"); // 컬랙션에 접근할 객체 생성 collection = mongoc_client_get_collection (client, DATABASE, COLLECTION); // 지울 대상을 찾을 조건 데이터 작성 doc = bson_new (); BSON_APPEND_UTF8 (doc, "uid", "user4"); if (!mongoc_collection_remove (collection, MONGOC_REMOVE_SINGLE_REMOVE, doc, NULL, &a…

MongoDB C driver 사용법 5-2 - FIND (SELECT)

"MongoDB C driver 사용법 5-1 - FIND (SELECT)"에서
기본적인 select만 했다면

내가 원하는 필드만 찾고,
정렬도 하고,
최대 탐색수도 설정할수있도록
옵션을 지정해보겠습니다.

예제소스 고고

#include <bson.h> #include <mongoc.h> #include <stdio.h> #define SERVER "mongodb://localhost:27017/" #define DATABASE "MY_MONGO" #define COLLECTION "MY_MONGO_COLLECTION" int main (int argc, char *argv[]) { mongoc_client_t *client; mongoc_collection_t *collection; mongoc_cursor_t *cursor; mongoc_read_prefs_t *read_prefs; bson_iter_t iter; bson_iter_t value; const bson_t *doc; bson_t *filter; bson_t *opts; bson_error_t error; char *str; // mongoDB C driver 초기화 + DB 클라이언트 생성 mongoc_init (); client = mongoc_client_new (SERVER); mongoc_client_set_appname (client, "find_example"); // 컬랙션에 접근할 객체 생성 collection = mongoc_clien…

MongoDB C driver 사용법 5-1 - FIND (SELECT)

NoSQL은 FIND
RDB는 SELECT

뭐가 다르다고.. 표현을 달리했을까 ?
암튼.. 익숙한 select라는 표현을 더 자주쓰게되는것 같다

select 에 요점은..
원하는걸 찾아서 필요한 데이터만 추출
원하는 데이터를 정렬 정도 이려나 ?

우선은 완전 기본적인 select 예제를 작성해봤습니다.
(미리 birth_year:2001 이라는 데이터 두개를 삽입해둔 상태에서 아래 소스를 실행합니다)



#include <bson.h> #include <mongoc.h> #include <stdio.h> #define SERVER "mongodb://localhost:27017/" #define DATABASE "MY_MONGO" #define COLLECTION "MY_MONGO_COLLECTION" int main (int argc, char *argv[]) { mongoc_client_t *client; mongoc_collection_t *collection; mongoc_cursor_t *cursor; bson_iter_t iter; bson_iter_t value; const bson_t *doc; bson_t *filter; bson_error_t error; char *str; // mongoDB C driver 초기화 + DB 클라이언트 생성 mongoc_init (); client = mongoc_client_new (SERVER); mongoc_client_set_appname (client, "find_example"); // 컬랙션에 접근할 객체 생성 …

MongoDB C driver 사용법 4 - UPDATE

UPDATE !

보통 업데이트라 함은
기존 내용에 일부를 변경할때 사용한다

그런데 이번 예제를 작성하면서는
기존 내용을 덮어쓰기 (overwrite)하는 현상때문에 해결방법을 찾느라 삽질을 좀했다..

삽질과정
update 함수의 플래그 변경을통한 update 시도도 해보고
다른 업데이트 함수가 있는지 찾다가
mongoc_collection_save함수가잇어서 사용하려고했더니
"Deprecated" 될거라고 하고 -_-
update문을 사용하려면 기존내용을 일단 select 해와서 동일 객체를 만들어서 일부만 변경된 값을 반영해야하나 ? 하고 고민고민고민...

다행히도 일부만 update 할수있도록 제공해주고있는걸 발견해서 아래 내용에 정리해보았다

그럼 예제소스 고고 ~


#include <bson.h> #include <mongoc.h> #include <stdio.h> #define SERVER "mongodb://localhost:27017/" #define DATABASE "MY_MONGO" #define COLLECTION "MY_MONGO_COLLECTION" int main (int argc, char *argv[]) { mongoc_client_t *client; mongoc_collection_t *collection; bson_error_t error; bson_t reply; bson_t *doc; bson_t child; bson_t *query; // mongoDB C driver 초기화 + DB 클라이언트 생성 mongoc_init (); client = mongoc_client_new…

MongoDB C driver 사용법 3 - BSON 객체 만들기 그리고 INSERT

MY_MONGO 라는 데이터베이스에
 - MY_MONGO_COLLECTION 이라는 컬레션을 만들었습니다.

그럼이제
MY_MONGO_COLLECTION에
bson_t 구조체로 문서(document)를 만들어서 insert 하는 방법을

예제소스와 함께 설명해보겠습니다.

[참고]
bson_t 객체를 만드는 방법은 3가지가 있습니다.
1. 함수를 사용하는방법
2. BCON을 사용하는 방법
3. JSON 문자열을 BSON으로 전환하는 방법
아래 소스에 주석으로 세가지방법이 안내되어있습니다.

#include <bson.h> #include <mongoc.h> #include <stdio.h> #define SERVER "mongodb://localhost:27017/" #define DATABASE "MY_MONGO" #define COLLECTION "MY_MONGO_COLLECTION" int main (int argc, char *argv[]) { mongoc_client_t *client; mongoc_collection_t *collection; bson_error_t error; bson_oid_t oid; // BSON Ojbect ID Abstraction bson_t *doc; // mongoDB C driver 초기화 + DB 클라이언트 생성 mongoc_init (); client = mongoc_client_new (SERVER); mongoc_client_set_appname (client, "insert_example"); // 컬랙션에 접근할 객체 생성 collection =…

MongoDB C driver 사용법 2 - create collection and key

MongoDB 서버 구축 완료
MongoDB C Driver 를 구비 완료
그럼 데이터베이스를 쌓아야겠죠 ?

우선 간단하게 집고넘어갈 개념을 MySQL 과 MongoDB를 비교해서 알려드릴께요

1. ----- 
MYSQL : 데이터베이스 = MongoDB : 데이터베이스
MYSQL : 테이블 = MongoDB : 컬레션

명칭이 다르긴한데.. 음..비슷한 개념이라고 이해하면 됩니다

2. ----- 
MongoDB 는 Document 기반 DB입니다.
Document라 함은 JSON 데이터 라고 생각하시면 되구요
mongoDB에서는 Binary JSON 이라고해서 BSON 이라는걸 사용하고있습니다

3. ----- 
따라서 아래와같은 간단한 설명을 할 수 있게됩니다
MYSQL : 데이터베이스에 테이블을 만들고 row 단위로 insert, update, select, delete를 한다.
MongoDB : 데이터베이스에 컬렉션을 만들고 document 단위로 insert, update, find, remove를 하다

여담. -----
RDB는 insert 뒤에 그 내용을 기반으로 update 를 하지만
NoSQL 에서는 insert 된게 없어도 update 시도하면
insert+update 가된느 upsert라는 개념이있다곤 하던데

그래서 찾아봤더니 _id 필드가 존재하면 update, 없으면 insert 하는 기능에
mongoc_collection_save() 함수가 있는데
이는.. 없어질것이니 사용하지말라고 권고되어있다.
(http://mongoc.org/libmongoc/current/mongoc_collection_save.html)

대신에 mongoc_collection_update() 함수 사용시
flag 파라미터를 MONGOC_UPDATE_UPSERT 로 설정하면 
upsert 를 수행한다


설명은 예제소스와 함께 주석으로 작성되며
동일한 기능에 대한 다른방식에 소스도 함께 작성해봤습니다.


주제 : 콜렉션 생성 및 키 설정
(키를 설정하게되면 키를 기준으로 인덱싱이…

MongoDB C driver 사용법 1 - 설치

MongoDB 서버를 설치했다면
Driver를 사용해서 서버에 접근해야할것이다.

아래 이미지에서 보여지듯이 다양한 언어를 지원하는 MongoDB Driver 종류를 볼수있는데요
저는 그중에서 C언어 기반에 MongoDB C Driver 1.6.3 을 사용하려고 합니다.



MongoDB C Driver Github :
https://github.com/mongodb/mongo-c-driver

드라이버 소개 페이지 :
http://mongoc.org/libmongoc/current/index.html



저는 MongoDB C Driver 소개페이지에서 안내하고있는 설치방법 중에서
소스설치 방법을 작성해보려 합니다.

초간단 드라이버 설치 시작 ! 

$ wget https://github.com/mongodb/mongo-c-driver/releases/download/1.6.3/mongo-c-driver-1.6.3.tar.gz

$ tar xzf mongo-c-driver-1.6.3.tar.gz

$ cd mongo-c-driver-1.6.3

$ ./configure --disable-automatic-init-and-cleanup

$ make

$ sudo make install

끝 ! 


그럼 컴파일할때 어떻게 참조 하나요 ? 

만약 C 로 코딩해서 test.c 라는 소스를 작성했다고 했을 때 
아래와같이 수행하면 됩니다. 

gcc -o test test.c -I/usr/local/include/libmongoc-1.0 -I/usr/local/include/libbson-1.0 -L/usr/local/lib/ -L/usr/lib64 -lmongoc-1.0 -lbson-1.0








MongoDB Server 설치 (몽고DB 서버 설치)

MongoDB Server 설치 (몽고DB 서버 설치)
[설치환경]
운영체제 : LINUX - Redhat 7.3 64bit (리눅스 레드햇)  설치방식 : 소스설치 ("mongodb-linux-x86_64-3.2.13.tgz")

아래 순서대로 차근차근 따라오시면 정상적으로 설치 가능하실거에요 ! 

[설치]
*** 모든 절차는 ROOT 계정으로 수행 합니다 ***
1. 소스 다운로드 (다운로드 경로는 임의로 / (root) 경로로 지정하겠습니다) $ cd / $ curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.2.13.tgz
2. 압축 해제 후 디렉토리명칭 변경 $ tar -zxvf mongodb-linux-x86_64-3.2.13.tgz $ mv mongodb-linux-x86_64-rhel70-3.4.4/ mongodb
3. 환경변수 등록 $ vi ~/.bashrc (아래 내용을 "~/.bashrc" 파일에 작성) export PATH=/mongodb/bin:$PATH
4. bashrc 적용 $ source ~/.bashrc
5. 설치확인 $ mongo --version  (버전출력되면 정상)
[DB 설정파일 작성 및 실행]
6. 변경 전 open file 수 변경확인 (아마 1024 일것이다) $ ulimit -a
7. linux open file 수 설정  $ ulimit -n 65536 (리눅스 오픈파일수 최대치)
$ vi /etc/security/limits.conf   nproc) (재부팅 후에도 반영될수있도록 아래내용 작성) (혹시모르니 openfile 말고도 open proccess 도 변경함) root          soft    nproc           65536                root          hard    nproc           65536 root          soft    nofile          65536 r…

[IONIC 개발팁]아이오닉 프레임워크 라이프사이클 (ionic framework lifecycle)

뷰에 접근하고, 나오기까지에 라이프사이클 정보입니다.

컨트롤러에서 화면 또는 데이터를 제어하고싶을때 꼭 필요한 정보이기에 공유해봅니다

[ 종류 ]

loaded
beforeEnter
enter
afterEnter
beforeLeave
leave
afterLeave

이름만 봐도 대충 짐작이 가시겠죠 ? ㅎㅎ
사용방법은 아래와 같습니다
◆◆◆◆◆ 영역에 위 이벤트를 작성하시면 해당하는 타이밍에 동작해요



$scope.$on('$ionicView.◆◆◆◆◆', function(){
});

[compressor.io]이미지 압축 온라인 툴

https://compressor.io/
손실 압축이라고는 하지만 거의 무손실에 가까운 화질 유지에  평균적으로 45% 수준의 용량감소 효과를 가져온다 
요즘 만들고있는 앱에 적용할수있을까 싶어서 찾아봤지만 별다른 소스코드는 제공하지 않는것 같고...
그냥 온라인에서 사용하는 이미지 압축도구 ?  정도로 생각하면 될것같다
완전 추천 !!! 

[ionic - 개발] 화면전환 애니메이션 제거 꿀팁

주제 : $state.go() 실행시 애니메이션 제거

Topic : Remove animation when running $state.go


ionic 은 화면관리를 ui-router 로 작동한다

이때 화면전환을 위해
$state.go("state_name"); 을 사용하게 되는데

화면전환시 멋대로 우에서 좌로 (forward)
또는 좌에서 우로 (back) 이동하는
애니메이션 효과가 발생한다


해결책 (solution)

$ionicViewSwitcher.nextDirection('none');
$state.go("state_name");

하.. 정말 화면전환 애니메이션 뻘짓때문에
처음에는
$ionicHistory.clearCache() 를 사용했었다...........


그리고..
IONIC - v1 으로 열심히 앱을 개발중입니다.
개발하면서 알게된 소소한 팁들 차차 공유해나가도록 해보겠습니다

그럼 이만 !

버츄얼박스(VirtualBox) 가상머신 세션을 열 수 없습니다 오류 해결방법

버츄얼박스(VirtualBox) 가상머신 세션을 열 수 없습니다 오류 해결방법

저의 경우는

가상머신 {name} 세션을 열 수 없습니다.
VT-x is not available

이런 메시지가 나왔습니다.

비쥬얼스튜디오에서 하이브리드앱 개발을하려고 cordova를 설치하고 재부팅했을뿐인데..
이것때문일까?

아무튼 원인은

윈도우에서 Hyper-V가 사용하도록 되어있을경우
윈도우가 가상화 기능을 사용하기 위해 선점했다는 의미로 해석되며
버츄얼박스가 가상화기능을 사용할수없는 상태가 됨을 뜻한다고 함



해결방법
1. 명령프롬프트를 관리자권한으로 실행


2. Hyper-V 기능 끄기명령 실행
명령프롬프트상에서 경로를 C드라이브 경로로 이동 후 아래 명령 입력
dism.exe /Online /Disable-Feature:Microsoft-Hyper-V


3. 혹시나 다시 키고싶을경우엔 아래명령 사용
dism.exe /Online /Enable-Feature:Microsoft-Hyper-V

Visual Studio Cordova project 실행 에러 (Google Chrome이 앱을 실행하도록 요청하지만 이 컴퓨터에 chrome이 설치되어 있지 않습니다.)

Visual Studio Cordova project 실행 에러 (Google Chrome이 앱을 실행하도록 요청하지만 이 컴퓨터에 chrome이 설치되어 있지 않습니다.)


해결방법

1. 실행명령 입력창 열기 : "윈도우+R"
2. regedit 입력 후 확인


3. 레지스트리 수정
경로 : HKEY_LOCAL_MACHINE\SOFTWARE\Clients\StartMenuInternet\Google Chrome
데이터(Value)에 해당하는 값을 Chrome 에서 Google Chrome 으로 수정