구글 캘린더 사용법은 :

https://developers.google.com/google-apps/calendar/v3/reference/events/list


위 사이트에서 우측 패널의 "Try this API" 를 활용해서 테스트해볼 수 있고,

활용 코드는 "샘플" 탭에서 확인 가능하다.


events.list 호출해서 각 항목(response.items[i]) 하나에 대해 찍어보았을 때

내부 구조는 아래와 같다.


{

        "kind":"calendar#event",

        "etag":"\"1234567890123456\"",

        "id":"blarblar",

        "status":"confirmed",

        "htmlLink":"https://www.google.com/calendar/event?eid=blarblar",

        "created":"2017-01-01T00:00:00.000Z",

        "updated":"2017-01-01T00:00:00.000Z",

        "summary":"title",

        "creator":{

            "email":"blarblar@group.v.calendar.google.com",

            "displayName":"calendar_name",

            "self":true

        },

        "organizer":{

            "email":"blarblar@group.v.calendar.google.com",

            "displayName":"calendar_name",

            "self":true

        },

        "start":{"date":"2017-01-01"},

        "end":{"date":"2017-01-02"},

        "transparency":"transparent",

        "visibility":"public",

        "iCalUID":"blarblar@google.com",

        "sequence":0

}



참고로, 위의 구조는 "종일" 인 이벤트의 경우이고,

샘플 소스를 참고 해볼 때 종일이 아닌 이벤트는

start.date, end.date 대신 start.dateTime, end.dateTime 로 구성되었으리라 추측한다.

( 샘플 소스에서 start 획득 : start = event.start.dateTime || event.start.date )




로컬 상태로 원격 저장소를 덮어씌우고 싶을 때


git push -f <remote> <branch>



반대로,

원격 저장소 상태로 로컬을 초기화 하고 싶을 때


git reset --hard <remote>/<branch>


'Programming > Git' 카테고리의 다른 글

untracked working tree files would be overwritten by checkout  (0) 2017.02.10


git 에서 checkout (HEAD branch change) 하려고 했더니


untracked working tree files would be overwritten by checkout


와 같은 에러가 나면서 진행이 안된다.



구글링 해보고

git rm --cached 

진행해 보았지만 여전히 마찬가지.



track 중인 파일의 대소문자가 변경된 경우에도 이 현상이 발생한다고 한다.

core.ignorecase 설정을 true 로 변경해서 진행 가능하다고.


 git config --global core.ignorecase true


위와 같이 설정할 수 있다.


설정된 상황은

 git config --global --list 

로 확인 가능하다.



해보니 git checkout 할 때 더이상 문제가 발생하지 않는다!!!!!



출처 : http://belouder.blog.me/220694793552

'Programming > Git' 카테고리의 다른 글

git 강제 push (Local -> Remote)  (0) 2017.06.12



$ grep . /etc/*-release



결과 예시)


/etc/lsb-release:DISTRIB_ID=Ubuntu

/etc/lsb-release:DISTRIB_RELEASE=14.04

/etc/lsb-release:DISTRIB_CODENAME=trusty

/etc/lsb-release:DISTRIB_DESCRIPTION="Ubuntu 14.04.3 LTS"

/etc/os-release:NAME="Ubuntu"

/etc/os-release:VERSION="14.04.3 LTS, Trusty Tahr"

/etc/os-release:ID=ubuntu

/etc/os-release:ID_LIKE=debian

/etc/os-release:PRETTY_NAME="Ubuntu 14.04.3 LTS"

/etc/os-release:VERSION_ID="14.04"

/etc/os-release:HOME_URL="http://www.ubuntu.com/"

/etc/os-release:SUPPORT_URL="http://help.ubuntu.com/"

/etc/os-release:BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"


'Programming' 카테고리의 다른 글

About "Expert Beginner"  (0) 2018.10.04
좋은 프로그램의 척도  (0) 2018.01.31
javascript / normalizeForIE  (0) 2017.12.27
기술자 등급분류 기준  (0) 2016.02.11
C# 과 C++에 관한 고찰...  (0) 2014.02.14



다른 사람들은 별도의 설정 없어도 정상적으로 메이븐 빌드가 되는데

나의 경우에는 자꾸 package does not exist 에러가 났다.

(여기서 package는 커스텀 패키지로 .jar의 형태)


프로젝트 속성 -> Java Build Path 에 보면,

해당 라이브러리가 Web App Libraries 하위에 포함되어 있음에도 그랬다.


심지어 바로 어제는 Build Path 에 추가해주는 것만으로도 처리 됐는데,

오늘이 되자 이 방법으로는 어떻게 해도 진행 불가.


그래서 [Add JARs...] 를 눌러서 명시적으로 해당 파일을 추가해줘도 마찬가지.


내 개발환경은

* mac air

  - os : el capitan(10.11.6)

* eclipse mars

* spring framework 3.8.1

* maven 은 별도로 설치 하지 않음

  - spring IDE Maven Integration 으로 포함

  - 프로젝트 실행에 이상 없으나 명령줄에서 mvn -version 사용불가

  - 추가 설치(maven : 3.3.9, 연결된 java : 1.8)했으나, 실제 프로젝트 컴파일 시 영향이 있는지는 모르겠음.

* Java Build Path

  - JRE System Library : Java SE 7 (1.7.0_79)

* Java Compiler

  - Compiler comliance level : 1.5

* 구동 환경 : Tomcat 7






구글링 해서 결국 꾸역 꾸역 돌아가는 방법을 찾았다.


pom.xml 파일에


ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

<properties>

<!-- 라이브러리 위치 -->

<webapp.lib>${basedir}/src/main/webapp/WEB-INF/lib</webapp.lib>

</properties>


<!-- for Libraries (lib/Libraries.jar) -->

<dependency>

<groupId>whatever</groupId>

<artifactId>whatever</artifactId>

<version> whatever </version>

<scope>system</scope>

<systemPath>${webapp.lib}/Libraries.jar</systemPath>

</dependency>

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ


강제로 추가하는 방법으로 clean 및 install 완료하고 war 로 추출하기 성공했다.




...그런데 왜 남들은 이 설정 안해줘도 되는데 나는 안되는건지 모르겠다 -_ㅠ




ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ


위와 같은 방법으로 진행시, 메이븐 빌드는 가능하다.

하지만 실제로 만들어진 WAR 파일로 배포는 할 수 없다.

서버에 올릴 때 에러가 발생.

어딘가 플러그인이 꼬인 것 같다.


이클립스 마켓플레이스 말고,

Install New Software 에 [ http://m2eclipse.sonatype.org/sites/m2e ] 를 입력해서 나오는

Maven Integration for Eclipse 체크해서 다운로드 중.


이후 과정은 해보고 다시 포스팅....


ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ


플러그인이 꼬인게 아니라, 역시 설정의 문제였음.


전제 1. 모든 파일은 SVN 에 연결하여 Checkout 하므로 다른 사람들과 동일한 파일을 가지고 있다.

   (pom.xml 등의 파일을 건드려서 처리하면 안 된다.)

전제 2. 프로젝트에서  톰캣 서버를 통해 Run 시킬 때는 이상이 없다. 고로 프로젝트 상 문제는 아니다.

   (=배포(Maven Build)의 문제다.)


위와 같은 추론을 해서 그동안 계속

해당 프로젝트의 Context 메뉴에서 Properties 쪽 문제일 것 같아 살펴봤는데


* Deployment Assembly

: 경로들에 문제는 없으나, [pom.xml (우클릭) ㅡ Maven ㅡ Update Project..] 진행한 경우 목록에 [Maven Dependencies] 가 보이지 않을 수 있음.

=> [Add ㅡ Java Build Path Entries (Next) ㅡ Maven Dependencies (Finish)] 하여 처리


* Java Build Path

- Tomcat 7.0 바운딩 완료

  : Unbound 이면 더블 클릭 또는 [Edit...] 를 눌러 연결

- JRE System Library [Java SE 7 (1.7.9_79)] 바운딩 완료

  : Unbound 혹은 다른 버전이면 더블클릭 또는 [Edit...] 를 누르고 Alternate JRE 에서 명시적으로 지정, [Installed JREs...] 버튼을 눌러 선택한 것과 동일한 JRE 선택 후 [Apply] 및 [OK] 


* Java Complier

: 실제 배포될 자바 버전을 선택. (필자는 1.5)


* Server

: 서버 목록이 비어있다면, Servers 윈도우에서 [우클릭 ㅡ New ㅡ Server] 로 추가 가능


ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ


But...


위 목록들 전부 이상이 없었다.

더이상 커스텀 할 무언가도 없는데 뭐가 문제인가.....


구글링을 한 결과....


(대부분 pom.xml을 바꾸는 문서라 찾기가 엄청 어려웠지만)


JRE System Library 에 외부 라이브러리를 추가 해줄 수 있다.


[ Java Build Path ㅡ JRE System Library (Edit...) ㅡ Installed JREs... ㅡ (자바 버전 선택 후) ㅡ Edit... ]

로 들어가서 해당 언어에 속하는 라이브러리를 선택할 수 있는 것.


[ Add External JARs... ] 버튼을 눌러 WEB-INF/lib 안에 있는 커스텀(혹은 3rd party) 라이브러리를 추가한 후 [ Finish ㅡ Apply ㅡ OK ㅡ Finish ㅡ Apply ] 를 순서대로 눌러 프로젝트 속성 창을 닫고


프로젝트 클린 및 빌드, 메이븐 클린 및 패키지(혹은 인스톨) 하면, 타겟 폴더에 드디어 WAR 가 추출된다!!!!!!!!!!



성공!!!!!!!!!!!!!



기술등급

기술자격자

학력·경력자

 기술사

기술사
 

 특급

기술자

- 기사 자격을 취득한 자로서 10년이상 해당 분야의 업무를 수행한 자

- 산업기수자격을 취득한 자로서 13년 이상

- 박사학위를 가진 자로서, 3년이상 경력자

- 석사학위를 가진 자로서, 9년이상

- 학사학위를 가진 자로서, 12년이상

- 전문대학을 졸업한 자로서, 15년이상

- 고등학교를 졸업한 후 18년 이상

 고급

기술자

- 기사 자격을 취득한 자로서 7년 이상

- 산업기사자격을 취득한 자로서 10년 이상

- 박사학위를 가진 자

- 석사학위를 가진 자로서, 6년이상

- 학사학위를 가진 자로서, 9년이상

- 전문대학을 졸업한 자로서, 12년이상

- 고등학교를 졸업한 후 15년 이상

 중급

기술자


- 기사의 자격을 취득한 자로서 4년 이상
- 산업기사의 자격을 취득한 자로서 7년 이상

- 석사학위를 가진 자로서, 3년이상

- 학사학위를 가진 자로서, 6년이상

- 전문대학을 졸업한 자로서, 9년이상

- 고등학교를 졸업한 후 12년 이상

 초급

기술자

- 기사 자격을 취득한 자

- 산업기사의 자격을 취득한 자로서 2년 이상

- 학사 이상의 학위를 가진 자

- 전문대학을 졸업한 자로서, 3년이상

- 고등학교를 졸업한 후 3년 이상

 고급

기능사

- 산업기사의 자격을 취득한 자로서 4년 이상 소프트웨어 기능 분야에서 일정기간 경력을 갖추거나 근무한 사람

- 기능사의 자격을 취득한 자로서 7년 이상 소프트웨어 기능 분야에서 일정기간 경력을 갖추거나 근무한 사람

 

 중급

기능사

- 산업기사의 자격을 취득한 자
- 기능사의 자격을 취득한 자로서 3년 이상 소프트웨어 기능 분야에서 일정기간 경력을 갖추거나 근무한 사람

 

 초급

기능사

 기능사의 자격을 취득한 자

 


> 상급자의 기본 베이스는 하급자 + 경력 3년

'Programming' 카테고리의 다른 글

About "Expert Beginner"  (0) 2018.10.04
좋은 프로그램의 척도  (0) 2018.01.31
javascript / normalizeForIE  (0) 2017.12.27
Linux 버전 확인 명령어  (0) 2016.10.14
C# 과 C++에 관한 고찰...  (0) 2014.02.14


프로그램을 영문으로 입력했을때 대안 프로그램을 찾아주는 사이트


http://alternativeto.net


단, 외국 사이트라서 국내 프로그램은 거의 없음


참조 : http://sharingtime.kr/773


프로그램을 만들다보면 예외처리를 해야되는데,

테스트 하다보면 출력창에는 "예외가 발생했습니다"라고 뜨면서

실제로 그 예외가 발생한 곳이 어딘지 알 수 없는 경우가 있다.


별도로 설정해주지 않으면 예외 상황에서 중단점이 걸리지 않기 때문인데

(실제로 배포할때는 비정상 종료되는 부분이다;;)

이걸 설정하기 위해서는


Visual Studio 에서 Ctrl + Alt + E 를 눌러서 확인할 항목들을 체크하고 확인을 누르면

해당 예외가 발생할때 중단점이 걸려서, 예외가 발생하는 부분이나 호출 스택을 확인할 수 있다.


전에는 설정 해두고 써서

노트북에서도 당연히 되야 하는데...

라고 생각하면서 왜 안되는지 몰라서 헤멤...

다시 찾느라고 한참...


그래서 또 까먹을까봐 포스팅~


MySQL이 오라클로 넘어가면서 유료화 되었다.

그래서 무료로 사용하기 위해서는 MariaDB를 사용하여야 하는데,

MySQL과 MariaDB는 구조적으로 동일하기 때문에 연동하는 방법도 같다.


http://dev.mysql.com/downloads/connector/net/

위 경로에서 닷넷 커넥터 설치파일을 받아서 설치한 후,


mysql-connector-net-6.9.7.zip

mysql-connector-net-6.9.7.z01


(오라클 로그인 절차가 번거로우시면 위 파일을 다운받아 주세요.
용량이 10MB를 초과하여 분할압축 하였으며,

2015.08.24 기준 Generally Available (GA) Releases 버전입니다.)


C:\Program Files (x86)\MySQL\MySQL Connector Net 6.4.6\Assemblies


위 경로에 있는 dll을 참조에 추가해주면 된다.

(.NET framework 버전에 따라서 2.0 과 4.0 중 골라서 추가)



만약, dll 추가후

참조된 어셈블리 "~"이(가) 현재 대상 프레임워크 ".NETFramework,Version=v4.0,

Profile=Client"에 없는 "System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=~"에 종속되어 있기 때문에 확인할 수 없습니다. 대상 프레임워크에 없는 어셈블리에 대한 참조를 제거하거나 프로젝트의 대상을 다시 지정하십시오.

라는 경고가 뜬다면,

프로젝트 속성에서 "대상 프레임워크"를 Client 버전에서 full 버전으로 변경해주면 된다.

(full 버전 framework는 무거워서... 일단 경고이므로... 저는 client 버전으로 개발 속행...

후에 문제생기면 재 포스팅 하겠습니다)

출처 : http://hippochart.tistory.com/411


만약(2), dll 추가후

warning MSB3276: 같은 종속 어셈블리의 서로 다른 버전이 충돌합니다. 프로젝트 파일에서 "AutoGenerateBindingRedirects" 속성을 true로 설정하십시오.

라는 경고가 뜬다면,

응용 프로그램의 구성 파일(App.config 또는 Web.config)에 바인딩 리디렉션을 추가하면 된다.

(아래 더보기를 참조하여, 동일한 색은 동일한 문구로 대체해야 한다)




참고) 연동 code


    using MySql.Data.MySqlClient;

    string MyConString = "SERVER=localhost; DATABASE=dbname; UID=userid; PASSWORD=passwd;";
    MySqlConnection connection = new MySqlConnection(MyConString);
    MySqlCommand command = connection.CreateCommand();
    MySqlDataReader Reader;
    command.CommandText = "select * from tablename";
    connection.Open();
    Reader = command.ExecuteReader();

    StringBuilder sb = new StringBuilder();

    while (Reader.Read())
    {
      string thisrow = "";
      for (int i = 0; i < Reader.FieldCount; i++)
              thisrow += Reader.GetValue(i).ToString() + ",";
      sb.AppendLine(thisrow);
    }
    connection.Close();

    return sb.ToString();

> 연동 code 출처는 기억이 안나네요 ^^; 포스팅할 생각을 못했을 때라...




윈폼 기본 컨트롤을 사용하다가 기본 컨트롤을 상속받아 재정의 해서 써야 할 일이 종종 있었다.

그냥 보통 구현의 경우 상관없지만, 생성자를 재정의(오버라이딩), 혹은 중첩정의(오버로딩) 할 경우

디자이너까지 손대야 하는데...


내 경우에는 매개변수가 있는 생성자를 써야 했기 때문에 디자이너를 건드렸고,

저장 직후 디자인이 이상 없이 보였으나, 다시 닫고 .designer.cs를 열었더니 알아서 뭔가 정리(?)가 되었고,

이 후에는 디자인이 제대로 열리지 않았다.


그래서 디자인을 열려고 하면


"디자이너 변수를 선언하거나 할당하지 않았습니다"


경고던가? 이 글귀와 함께 디자이너 에러....

스택 추적도 애매하고...


열심히 고민해 본 결과 원인은 .designer.cs의 자동 정리(?)에 있었다.


생성자가 필요할 때는 new로 실제로 할당할 때인데,

이걸 

InitializeComponent();

안에서 해줘야 하는데 에러인지 버그인지,

나는 분명 내부에서 할당해 준 것 같은데

외부에 선언될 때 new가 되어 있었다.


그래서 함수 내부에서 new 해주니 그때부터 이상없이 잘 작동.

'Programming > C#(with .NET)' 카테고리의 다른 글

ASP 0178 : 80070005 에러  (0) 2017.12.12
C#(WinForm)과 MariaDB(MySQL)의 연동  (0) 2015.04.03

+ Recent posts