안드로이드2018. 6. 19. 13:45

더이상 STAND-ALONE SDK TOOLS 만을 다운로드하는 걸 구글에서 지원하지 않는다.

따라서 안드로이드 스튜디오를 설치한 후에 아래 링크를 다운 받아서 Sdk가 설치된 폴더에 설치하면 된다.


installer_r24.4.1-windows.exe


[다운로드]

Posted by 홍규홍규
잡다한팁들2018. 5. 31. 13:50



자동 로그인으로 잘 사용하고 있다가 어느날부터 갑자기 부팅할 때 마다 위 화면이 뜬다.


아래의 방법으로 해결하면 된다.


1. 윈도우 버튼 + R 키를 눌러서 control userpasswords2 를 입력하고 확인을 클릭한다.



2. 그럼 아래와 같은 화면이 뜨는데 나의 경우 이미 자동로그인 기능을 사용 중이었기 때문에 

[사용자 이름과 암호를 입력해야 이 컴퓨터를 사용할 수 있음] 항목이 체크 해제되어 있다.

이걸 체크 설정을 하고 확인을 누른다. 



3. 그럼 바탕화면으로 돌아오는데 여기서 다시 윈도우 + R을 눌러 같은 명령어를 실행한다.

그럼 다시 2번 창이 뜨는데 이번에는 아까와 반대로 체크 해제를 한다.

그리고 확인 버튼을 누른다.



4. 확인 버튼을 누르면 위 창이 뜨는데 여기에서 사용자 계정과 암호를 입력하고 확인 버튼을 클릭.



이제 컴퓨터를 시작해도 더 이상 나를 귀찮게 하지 않는다.



'잡다한팁들' 카테고리의 다른 글

윈도우 10 성능 안정화 팁 1  (0) 2018.01.24
Posted by 홍규홍규
안드로이드2018. 5. 1. 14:25

Generate Signed Apk 를 통해 빌드한 apk를 앱에 설치하려고 하면 해당 에러가 나타나면서 설치가 안 된다.


안드로이드 스튜디오로 빌드할 때 설치 기기의 안드로이드 버전 7.0 미만에서만 나타나는 문제로 원인은 다음과 같다.


Signature Versions 옵션의 V1 과 V2 옵션 체크 문제인데,

V2만 체크해도 정상적으로 빌드가 되고 설치가 된다.

그러나 이것은 안드로이드 7.0에 맞춰진 옵션으로 7.0 미만 버전에서는 정상적으로 작동하지 않는다.


따라서 아래 그림처럼 V1과 V2 모두 체크해줘야 앱이 설치가 된다.



출처 : StackOverFlow [바로가기]

Posted by 홍규홍규
안드로이드2018. 5. 1. 00:46

안드로이드 스튜디오로 Bitbucket에 리파지토리를 생성하고 데이터를 올리려는데 갑자기 푸시가 거부된다.


Push rejected: Push to origin/master was rejected.


한참을 헤매다가 ...

리파지토리를 생성할 때 무심코 만들었던 Readme.md 파일 때문이라는 것을 알게 되었다.


바보냐.....

Posted by 홍규홍규
안드로이드2018. 4. 29. 18:32

이클립스로 안드로이드 개발은 거의 없어지는 추세지만..

아직 간간이 하는 분들도 계시더라.



간단하게 원하는 색상으로 변경 가능.


Posted by 홍규홍규
MySQL2018. 4. 24. 00:37

MySQL에서도 if나 case 같은 조건문을 사용할 수 있는데 XML에서의 if문 사용한 것을 복습해본다.

기본적인 테이블 데이터 선택 방법은 아래와 같이 간단하다.

<select id="list" parameterType="Member" resultMap="MemberMap" >
  SELECT * FROM MEMBER
</select>

여기에서 조건을 추가해본다. 

만약에 타입이라는 조건이 있고 이 조건을 넣었을 때, 안 넣었을 때의 데이터를 뽑아야 한다고 가정하면 아래와 같다.

<select id="list" parameterType="Member" resultMap="MemberMap" >
  SELECT * FROM MEMBER
  <choose>
    <when test="type.equals('')">
      WHERE type LIKE "%"
    </when>
    <otherwise>
      WHERE type=#{type}
    </otherwise>
  </choose>
</select>

조건을 넣지 않았을 때는 모든 데이터를 가져오는 WHERE 절을 넣으면 된다.

보통 조건을 넣지 않을 때는 검색을 안 하면 되는데 나의 경우 조건이 4가지였다.


조건1, 조건2, 조건3, 조건4


그래서 기준이 되는 조건을 type으로 정해두기 위해서 저렇게 짠 거다. 

이게 내가 생각해낸 한계치...


이제 조건2, 3, 4에 대한 중복 조건인데 다음과 같이 짜면 된다. 

어차피 몇 개가 되든 if문이 똑같이 들어가기 때문에 상관없다.

<select id="list" parameterType="Member" resultMap="MemberMap" >
  SELECT * FROM MEMBER
  <choose>
    <when test="type.equals('')">
      WHERE type LIKE "%"
    </when>
    <otherwise>
      WHERE type=#{type}
    </otherwise>
  </choose>
  <if test="!createDate.equals('')">
    AND cre_dt=#{createDate}
  </if>
  <if test="!createDate.equals('')">
    <!-- 조건 3.. -->
  </if>
  <if test="!createDate.equals('')">
    <!-- 조건 4.. -->
  </if>
</select>

이렇게 하면 4가지 조건에 대한 16가지 경우의 데이터를 쿼리문 하나로 추출할 수 있다.

처음엔 무식하게 16가지 경우의 수에 대한 쿼리문을 다 작성하려고 했었는데

MySQL 같은 걸 만든 사람이 이런 기능을 안 만들었을리가 없다고 생각해서 공부했다.


까먹지 말자 ..

'MySQL' 카테고리의 다른 글

MySQL + MyBatis INSERT 성공 후 Primary Key 값 받아오기  (0) 2017.12.13
Posted by 홍규홍규
Java & Spring2018. 3. 31. 00:36

HttpURLConnection Request Header 설정하는 방법

// HttpURLConnection 객체 생성.
HttpURLConnection conn = null;
 
// URL 연결 (웹페이지 URL 연결.)
conn = (HttpURLConnection)url.openConnection();
 
// TimeOut 시간 (서버 접속시 연결 시간)
conn.setConnectTimeout(CONN_TIMEOUT * 1000);
 
// TimeOut 시간 (Read시 연결 시간)
conn.setReadTimeout(READ_TIMEOUT * 1000);
 
// 요청 방식 선택 (GET, POST)
conn.setRequestMethod(GET);
 
// Request Header값 셋팅 setRequestProperty(String key, String value)
conn.setRequestProperty("NAME", "name");
conn.setRequestProperty("MDN", "mdn");
conn.setRequestProperty("APPID", "appid");
 
// 서버 Response Data를 xml 형식의 타입으로 요청.
conn.setRequestProperty("Accept", "application/xml");
 
// 서버 Response Data를 JSON 형식의 타입으로 요청.
conn.setRequestProperty("Accept", "application/json");
 
// 타입설정(text/html) 형식으로 전송 (Request Body 전달시 text/html로 서버에 전달.)
conn.setRequestProperty("Content-Type", "text/html");
 
// 타입설정(text/html) 형식으로 전송 (Request Body 전달시 application/xml로 서버에 전달.)
conn.setRequestProperty("Content-Type", "application/xml");
 
// 타입설정(application/json) 형식으로 전송 (Request Body 전달시 application/json로 서버에 전달.)
conn.setRequestProperty("Content-Type", "application/json");
 
// 컨트롤 캐쉬 설정
conn.setRequestProperty("Cache-Control","no-cache");
 
// 타입길이 설정(Request Body 전달시 Data Type의 길이를 정함.)
conn.setRequestProperty("Content-Length", "length")
 
// User-Agent 값 설정
conn.setRequestProperty("User-Agent", "test");
 
// OutputStream으로 POST 데이터를 넘겨주겠다는 옵션.
conn.setDoOutput(true);
 
// InputStream으로 서버로 부터 응답을 받겠다는 옵션.
conn.setDoInput(true);
 
// Request Body에 Data를 담기위해 OutputStream 객체를 생성.
OutputStream os = conn.getOutputStream();
 
// Request Body에 Data 셋팅.
os.write(body.getBytes("euc-kr"));
 
// Request Body에 Data 입력.
os.flush();
 
// OutputStream 종료.
os.close();
 
// 실제 서버로 Request 요청 하는 부분. (응답 코드를 받는다. 200 성공, 나머지 에러)
int responseCode = conn.getResponseCode();
 
// 접속 종료
conn.disconnect();

출처 : http://arabiannight.tistory.com/204

Posted by 홍규홍규
HTML, CSS2018. 3. 30. 13:17

position 속성을 사용한 경우에만 해당 속성이 적용된다.

사용 안 하면 아무리 높은 값 줘도 적용 안 됨.

(O) element { position: absolute; z-index: 10; }
(O) element { position: relative; z-index: 10; }
(O) element { position: fixed; z-index: 10; }
(X) element { z-index: 10; }

간단한 거지만 기억 백업을 위해.

Posted by 홍규홍규
JavaScript2018. 2. 26. 01:03

each()문을 실행할 경우 결과에 관계없이 넘어가기 때문에 

each()문에서 별도의 프로세스를 거치려면 다음과 같은 방법을 사용한다.

function a() {
  var result = true;
  $(selector).each(function() {
    if(condition) {
      result = false;
      return result;
    }
  }
  if(!result)
    return;

  // 다음에 수행할 프로세스
}

이렇게 처리해야 다음에 수행할 프로세스에 도달하지 못하고 a() 함수가 끝난다.


※ each() 문에서 return false;는 break; 기능과 동일. 

   따라서 each() 문에서의 return으로는 수행되는 기능의 진행을 막을 수 없다.

Posted by 홍규홍규
잡담2018. 2. 24. 04:50

너무나 명경기였지.. 다시 없을..



'잡담' 카테고리의 다른 글

2년만에 찾은 폐가 ..  (0) 2021.02.26
Posted by 홍규홍규