Skip to main content

Android Studio, IntelliJ 에디터 계열 복사 갯수 늘리기

복붙…. 그렇다 복사해서 붙여넣기…..

Android Studio, PyCharm 등 IntelliJ 계열 툴에서 클립보드 기능을 활용해 보았습니다.

-ㅅ-) ..

복사는 Ctrl + C 이고 여러번 복사 해보면 툴 자체의 클립보드에 누적되게 됩니다.

Ctrl + V 했을 때는 최근 것이 붙여 넣어지지만

Ctrl + Shift + V 하게되면 그동안 복사 했던 것을 선택해서 붙여넣기를 할 수 있습니다.

기본적으로  5개 밖에 안되고 Ctrl + C 할 때마다 갱신됩니다.

물론 세팅에서 바꿀 수는 있습니다.

메뉴에서 File > Settings > Editor > General > Limits > Maximum number of contents keep in clipboard

갯수를 조정하시면 됩니다. +ㅁ+)

 

굿잡 -ㅅ-)b

PyCharm 개발환경 설정

안녕하세요.

주선입니다. … 라고 인사하기에는 제 블로그라서 -_- 너무 오랜만에 글을 적네욥…

Python을 이용한 개발시에 유용할 것 같아서 기록해둡니다.

 

1.Python 설치

우선 Python은 설치되어있어야합니다. 2.7 대와 3.6대 2가지 있습니다만..

취양에 따라서 설치하시고, 툴을 사용시에 프로젝트에 따라 고를 수 있음으로 둘다 설치하셔도 무방합니다.

제가 알기로는 두 버전의 차이는 사용할 수 있는 라이브러리가 한정되어있음으로 목적에 따라서 설치하시면 됩니다.
(맞나 -_-a )

다운로드 페이지  : https://www.python.org/downloads/

 

2. PyCharm 설치

개발 IDE입니다.  이것저것 써봤는데… 이것 저것 연습할 때 가장 좋았습니다.

다운로드 페이지 : https://www.jetbrains.com/pycharm/download/

이 페이지에도 링크가 2개나 있습니다… 여기서는 커뮤니티 에디션을 사용하도록 할께요…
설치프로그램은 (다음)(다음) 눌러서 진행해주세욥 ^^

설치후 프로그램을 실행해보면 다음과 같은 창을 볼 수 있는데요..  단축키, 테마 에디터 색상을 정 할 수 있습니다.

검은색 에디터 창을 선호하시면 드라큘라 테마를 이용해보세요.. ^^

 

3. Python 프로젝트 생성

PyCharm이 실행된 첫화면 입니다. 아..물론 Create New Project를 눌러야겠죠…  클릭합니다.

 

[…] 아이콘을 눌러 프로젝트를 생성할 경로를 지정해줍니다. (적당히 알아 볼 수 있는 곳에 지정해주세요)

그리고 가상환경을 설정하기 위해서 그 아래 있는 톱니바퀴를 클릭합니다.

그러면 다음과 같이 메뉴가 뜨는데, 여기서 Create VirtualEnv를 선택합니다. 가상환경을 설정하는 이유는 Python은 기본 문법만으로 개발 하는 것이 아닌 여러 모듈을 사용해서 개발하게 됩니다. 모듈은 pip라는 페이지로 관리되게 되는데, 가상환경을 설정하지 않고 사용하게 되면, 공용(Global)영역에 설치되어, 다른 프로젝트에 영향을 줄 수 도 있습니다. (특히 모듈의 버전…)  여러 사람이 동시에 작업하는 환경에서 모듈의 버전이 특정 지어졌는데, Global영역에 다른 버전이 설치되어있으면 프로젝트에 영향이 오겠지요…

프로젝트폴더와 다른곳에 지정을 해보았습니다. 같은 곳의 하위폴더로 지정하여도 작동에는 문제가 없었으나…  파일이 많아져서 복잡해지더군요..  Inherit global site-packages 체크박스는 기존에 Global(공용)으로 지정된 모듈들을 같이 가상화 시킬 것인지 여부 입니다.

기다립니다. -ㅅ-)

모든 과정이 완료되게 되면, 아래에 Create 버튼을 클릭하여 설정을 마무리합니다.

 

4. Python 코딩하기 & 코드 실행

우여곡절 끝에 에디터가 실행되었습니다만… 아무것도 없습니다.  다른 프로젝트 툴과는 다르게 프레임워크를 상속하지 않기 때문에
폴더만 가지고 있습니다. 만약에 만약에 말입니다. django 와 같은 프레임 워크로 개발해야 한다면, 해당 구조에 맞는 파일과 폴더를 작성해줘야 합니다. 우선은 Python 파일 하나만 코딩해봅시다.

빈 폴더에서 마우스 오른쪽을 클릭하고 [New > Python file] 을 클릭합니다.

마음에드는 이름으로 지어줍니다.  전 간단한 크롤링 툴을 만들어보기위해 crw_test라고 지었어요…

 

뭐 이렇게 코딩하고는 싶은데 … 시작하자마자 온통 빨간색이군요… ㄷㄷㄷ .. (쿨럭..)
패키지가 존제하지 않기 때문에 툴에서 오류로 인식하고 있습니다. 빨갛게 된 텍스트 위에서 Alt + Enter를 눌러봅니다.

무려 requests 패키지를 자동으로 인스톨 해줍니다. +ㅁ+)  실제로 코딩할 때는 프롬프트에서 pip install requests를 입력해서 설치해줘야하지만, 간편하게 설치할 수 있습니다. (간편간편…. ) 이래서 IDE를 쓰는거 아니겠습니까 ㅋㅋㅋ

 

설치가 완료되면 에디터 하단에 성공했다는 메시지를 보여줍니다. 나머지 패키지들도 같은 방법으로 설치해봅시다.

 

대략 간단하게 코딩해봤습니다.  소스는 제 블로그에서 게시글의 링크만 가져오는 소스입니다. (여..역시.. 헤커의 언어인가 -ㅅ- )
Python은 텝이 정말 중요합니다. if문이나 for문 그리고 def를 이용한 함수정의에서의 단락이 끝나는 지점은 탭으로 구분되게 됩니다.
또 한가지 jetbrains사의 툴들로 코딩을 해보면, 코딩을 할 수록 점점 툴이 몸에 맞아지는 느낌이 납니다. 사용하는 라이브러리(모듈)들이 점점 많아지고, 자주 쓰는 것들은 자동완성 되는 느낌이랄까… 코딩시에 [객체.메서드] 의 형식을 코딩할 때 [객체.]까지 코딩하면 객체 내의 메서드 들을 알려줍니다. 오류로 빨간색 밑줄이 있는 코드들에서 Alt + Enter키를 누르면 가이드도 잘 해주죠 ^^

코딩도 했으니 실행을 한번 해봅시다.  Alt + Shift + F10 입니다. 혹은 메뉴중 Run에서 실행 해볼 수 있습니다.

실행은 아래에 창이 하나 더 열리면서 실행되게 됩니다.

오늘은 여기까지….

Android layout Attribute deprecated.

첨에는 좀 난감했는데 -_-;;

EditText에 사용하는 속성들이 변경사항이 있어 기록해 둘려고 합니다.

EditText에 사용하는 비밀번호 폼으로 만들기 위한 android:password=”true” 는 더이상 사용이 안되는거 같네요…
android:inputType=”textPassword” 로 교체되었고 경우에 따라서 android:inputType=”numberPassword”를 사용할 수도 있습니다.
inputType속성은 이메일을 입력 받거나 날짜 등등…. EditText를 탭시 나타나는 키보드의 레이아웃을 조정할 수 있습니다.

그리고 EditText 특성상 엔터가 들어가면 여러줄로 늘어나기도 하는데 이때 사용하는 android:singleLine=”true”도 Deprecate 되었습니다.
대신, android:maxLines=”1″ 을 사용할 수있게 되었어요….

빌드하다 오류는 나지 않지만 코드상에서 drprecated…. 라며 사선이 끄여져 있어 신경쓰여서 수정해보았습니다. ㅎㅎ

Android Studio에서 preview 한글 문제

안드로이드 스튜디오에서 SDK 버전업을 하고나서 갑자기 한글이 안되서 그대로 사용하고 있었는데

찾아보니 방법이 있어서 해결봤습니다.

다만… 약간의 삽질이 있어서 글로 기록해둘려고 포스팅 해봅니다.
ㅋㅋㅋ

우선 한글 적용 방법은

<안드로이드 스튜디오 홈폴더>\plugins\android\lib\layoutlib\data\fonts\fonts.xml 파일을 에디터 합니다.

그리고 다음 부분을 찾아주세요… lang=”ko” 대략 248번째줄쯤 되네요…

    
        NotoSansCJK-Regular.ttc
    
    
        NotoSansCJK-Regular.ttc
    
    
        NotoColorEmoji.ttf
    

이 부분에 폰트 부분을 NanumGothic.ttf로 바꿉니다. 원래폰트는 ttc 인데 ttf로 바꾸는겁니다. ^^


    
        NotoSansCJK-Regular.ttc
    
    
        NanumGothic.ttf
    
    
        NotoColorEmoji.ttf
    

자세히 안보고 확장자를 그대로 두어서 -_-
해도 안되는구나 생각했는데 확장자 문제 때문에 안되고 있었네요 ㅋㅋ

설정도 꼼꼼하게 코딩도 꼼꼼하게 -ㅅ-)b

PHP 에러, Cannot execute queries while other unbuffered queries are active.

PHP-PDO, mySQL에 대한 이야기 입니다. -ㅅ-)

프로젝트를 다른서버로 이전 작업도중에 다음과 같은 오류를 겪게 되었습니다.

PDOException: SQLSTATE[HY000]: General error: 2014 Cannot execute queries while other unbuffered queries are active. Consider using PDOStatement::fetchAll(). Alternatively, if your code is only ever going to run against mysql, you may enable query buffering by setting the PDO::MYSQL_ATTR_USE_BUFFERED_QUERY attribute.

열심히 구글링 해본결과 … 특별히 해결법을 찾을수가 없었네요…

다만 반복적인 쿼리를 2번이상할 때, 발생하는 것으로 확인했습니다.

전 서버에서는 무리 없이 잘되었는데…. (핑게 핑게..ㅋㅋ )

개발할 때 ORM에서 쿼리를 블럭 단위로 사용하게 되는데 insert하기전에 타임존을 설정하는 쿼리가 반복되어 생기는 문제였습니다. -_-;

SET time_zone='GMT';
  INSERT INTO
    `tr_clas_attend`
  (`cls_idx`, ~ 생략 ~ 

뿐만 아니라 set names utf8; 도 마찬가지더군요….

쿼리 시작시 한번만 적용하도록 수정하여 잘 해결되었습니다.

환경이 바뀌면 시스템이 잘못되었다고 생각할 때가 있는데, 하나하나 되집어보는 습관을 들여야 할 거 같네요…

무엇보다 개발할때, 전체를 생각하면서 개발해야하는데, 부분적인 것만 보고 개발해서 그랬던거 같습니다. -ㅅ-)

해결 과정중에 PDO::MYSQL_ATTR_USE_BUFFERED_QUERY 요놈을 PDO 인스턴스의 어트리뷰트로 설정했는데 일단 한글이 작동하지 않았고, 여러가지 문제가많이 생기더군요…

삽질기 끝….