오늘은 ChatGPT에게 엘지 찐팬으로써 가장 자랑스러운 순간에 대해 알아보기로 합니다

 

아주 표준적인 대답
wow~

 

역대급 경기력!!

그런데...

두산...?
6:3..

???

 

 

 

 

 

그래.. 니가 알고있는 걸로 한번 에세이를 부탁해... ㅠㅠ

 

 

 

사족 :

chatgpt는 한글 관련 데이터가 많이 학습되어 있지 않음. 결과에 오류가 있을 수 있음. 언어생성모델이기 때문에  "언어생성"을 잘 활용하면 좋을 것 같네요 

,


아직 DBCP 와 Connection Pooling 의 차이를 잘 모르겠지만 일단 기초적인 Connection Pooling 을 사용하고 있다.

다음은 Connection Pooling 을 지원하는 클래스이다.

ConnectionManager.java


package net.rukikuki.db;

import java.sql.Connection;
import java.sql.SQLException;

import snaq.db.ConnectionPoolManager;

/**
 * Connection Pooling의 Connection 객체를 관리하는 클래스.
 */
public class ConnectionManager {
   
    /**
     * Connection 객체를 반환하는 메써드.
     * @return
     * @throws SQLException
     */
    public static Connection getConnection() throws SQLException {
       
   
        ConnectionPoolManager dbm = ConnectionPoolManager.getInstance();
         return dbm.getConnection("mysql");
        }
}

이 ConnectionManager 를 사용하기 위해서는 일단 dbpool.properties 를 설정해서 jdbc드라이버를 통해 DB에 접속해야 한다.

오늘 MySQL 에 간단한 질의를 던지고 결과를 받는 프로그램을 만들어 봤다. 폼에 검색조건을 입력하고  버튼을 누르면 데이터를 가져오는 프로그램이다.

문제는 submit 하면 다음 페이지로 넘어가지도 않고 Exception 도 발생하지 않는 애매한 상황이 발생했다.

일단 my.cnf 에 Error Log 외의 일반 로그도 기록하도록 설정했다.

[mysqld]
log            = /opt/local/var/run/mysql5/mysql/mysqld.log   //일반로그
log-error    = /opt/local/var/run/mysql5/mysql/mysqld.err   //에러로그


일반로그의 내용은 주로 쿼리의 실행과 결과를 리턴하는 과정이다.

추적하여 얻어낸 결론은 JDBC 설정의 지정된 인코딩과 DB의 인코딩이 다르면 UserID 와 Password 가 제대로 전달되지 못해 로그인 처리에 실패한다는 것이다.

 26925 Init DB     Access denied for user ''@'localhost' to database 'devspace'
          26926 Connect     nobody@localhost as anonymous on

=>  사용자 아이디 가 전달되지 않았다.

3003 Connect     Access denied for user '"devid"'@'localhost' (using password: YES)

=> mysql.user="devid" 로 설정했을 때 (아이디를 "devid"  로 인식)


47639 Connect     Access denied for user 'devid'@'localhost' (using password: YES)

=> mysql.password="패스워드" 로 설정했을때 (패스워드를 "패스워드" 로 인식)


여튼 다음과 같이 설정하면 된다.


dbpool.properties

drivers=org.gjt.mm.mysql.Driver
 
#mysql.url=jdbc:mysql://localhost:3306/devspace?useUnicode=true&characterEncoding=utf8
mysql.url=jdbc:mysql://localhost:3306/devspace?useUnicode=false&characterEncoding=euckr

mysql.user=devid

mysql.password=1234321

mysql.initsize=5

mysql.maxpool=10


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

my.cnf


[mysqld]
#skip-networking
#user                           = mysql
default-character-set          = euckr
character-set-server           = euckr
default-collation              = euckr_korean_ci
#port                           = 3306
#default-character-set          = utf8
#character-set-server           = utf8
#default-collation              = utf8_general_ci
#socket                         = /opt/local/var/run/mysql5/mysqld.sock
socket                         = /tmp/mysqld.sock
#pid-file                       = /opt/local/var/run/mysql5
log-error                      = /opt/local/var/db/mysql5/mysqld.err
log                            = /opt/local/var/db/mysql5/mysqld.log
datadir                         = /opt/local/var/db/mysql5
#default-character-set           = utf8
lower_case_table_names=1

#Path to the character-sets directory.
character_sets-dir=/opt/local/share/mysql5/mysql/korean




[client]
#default-character-set=utf8
character-sets-dir=/usr/share/mysql/charsets
default-character-set=euckr

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

euc-kr 환경과 utf8 환경으로 바꾸려면 각각의 코멘트처리를 바꿔주면 된다.







,
원글 : http://wiki.bawi.org/index.php/MacPorts


1. xcode 다운로드 및 설치 / X11 설치
   
    - 처음 샀을때 동봉된 xcode 보단 최신버전 쓰는게 좋다.
    - X11 은 DVD에 있는거 쓰는게 나은듯.


2. MacPorts 다운로드 및 설치
 
    - Leopard / Tiger / 10.4 이전버전 용이 따로 준비되어 있으니 알맞는걸 설치


3. 명령어 소개

   - 설치
     port -v install    [패키지 명]
     port -v upgrade [패키지 명]
  
  
  - 정보갱신
     port -v selfupdate
     패키지 트리를 갱신한다.

  - 현황파악
     port -v outdated
        최신버전이 나와, 구버전이 되어버린 패키지를 확인
     port -v upgrade outdated
        구 버전이 된 패키지들을 업그레이드함.
     port -vf uninstall inactive
        구 버전이 된 패키지들을 삭제.
 
  - 패키지 정보 파악
     port -v  info [패키지 명]      -  패키지 정보 파악
     port -v  deps [패키지 명]     -  패키지 의존성 정보 파악

  - 기타 옵션
      -v   :  Vervose
      -f    : Force
      -u   : upgrade 시 Deactivated 된 패키지 자동삭제


원글 : http://wiki.bawi.org/index.php/MacPorts
원글을 제가 다시 요약한 것입니다.


  


,


크게 바이너리 설치와 소스 설치로 나눌 수 있다.

바이너리 패키지는 설치가 쉬운 반면, 업그레이드 시 기존 DB를 덮어쓰는 문제가 있다고 한다.

소스설치는 번거롭긴 한데, 업그레이드가 쉽고 세밀하게 권한설정을 줄 수 있어 좀 더 보안성을 높일 수 있고, 그밖에도 여러모로 유연한 점이 많은 모양이다.

이런 소스설치의 강점과 바이너리 패키지의 편리함을 같이 누릴 수 있는 방법이 있는데 BSD계열의 ports 패키지 관리시스템을 사용하는 것이다.

일단 ports를 설치하고 설정(요약본)한 다음 MySQL을 설치해 보자.

I. 설치

sudo port -v upgrade mysql5 +server

II. 환경설정

/opt/local/etc/mysql5/my.cnf 에 환경설정.
(Mac OS X 10.4 Tiger 의 경우에는 /etc/my.cnf 에 설정파일이 있었던걸로 기억한다)

환경설정 파일 예제(my.cnf)
------------------------------------------------------------------
[mysqld]
#skip-networking
user                           = mysql
#default-character-set          = euckr
#character-set-server           = euckr
#port                           = 3306
#socket                         = /opt/local/var/run/mysql5/mysqld.sock
#socket                         = /tmp/mysqld.sock
#pid-file                       = /opt/local/var/run/mysql5
log-error                      = /opt/local/var/db/mysql5/mysqld.err
log                              = /opt/local/var/db/mysql5/mysqld.log
datadir                         = /opt/local/var/db/mysql5
default-collation               = utf8_general_ci
default-character-set           = utf8
lower_case_table_names=1

[client]
default-character-set=utf8

------------------------------------------------------------------
위는 my.cnf 예제이다 기동을 위해 필수적인 기본사항만 여기서 일단 소개하기로 한다.
(# 은 아시다시피 주석입니다. 아래 내용을 참고하여 자신의 상황에 맞게 설정하시고 주석을 해제하셔야 합니다!! )

1. 인코딩 설정

ㄱ, EUC-KR

default-chracter-set = euckr
character-set-server = euckr
default-collation = euckr_korean_ci
default-character-set = euckr


ㄴ. UTf-8

default-character-set = utf8
character-set-server  = utf8
default-collation         = utf8_general_ci
default-character-set           = utf8


2. Logging 설정

log-error                      = /opt/local/var/db/mysql5/mysqld.err
log                              = /opt/local/var/db/mysql5/mysqld.log


여기서 log-error 지시자는 mysql 쿼리중 에러만 기록하는 로그파일을 지정한다
log 지시자는 mysql 접속부터 쿼리 내역, 성공적인 실행 여부까지 저장하는 로그파일을 지정한다

물론 log 지시자는 Deployment 머신에서 쓰면 로그파일로 루트드라이브가 꽉 찰 수 있으니 개발시에만 사용하도록 하자.

3. MySQL DB 유형 및 세부셋팅

MySQL 에서 DB타입이 3가지가 있다는 것은 알고 계실것이다.
각 타입에 맞는 cnf 파일이 /opt/local/share/mysql5/mysql 디렉토리에 있으니 참조하시길 바란다.
--------------

III. 기본 데이터베이스 설치 및 관리자 암호 설정

그리고 기본 DB를 install

sudo -u mysql  mysql_install_db5 --user=mysql

(만일 뒤에 --user 스위치를 붙이지 않고 실행했다면.. DB디렉토리 및 하위파일의 소유자를 mysql:admin 으로 바꿔줘야 한다. )


IV. MySQL 기동 및 관리자 암호 설정

mysql5.wrapper 스크립트를 /opt/local/bin 으로 카피.

sudo -u mysql mysql5.wrapper start 로 띄워보자.

만약 설치 명령시 +server 라는 Variant 를 추가해서 설치하지 않았다면 mysql5.wrapper 가 없을 것이다. 그럴 경우 아래 명령을 통해 기동할 수 있다

cd /opt/local ; /opt/local/lib/mysql5/bin/mysqld_safe &


만약 실패한다면 다음것을 체크.
1) /opt/local/var/run/mysql5 디렉토리가 존재하며 소유자가 mysql:admin 인가.

2)  /opt/local/var/db/mysql5 (DB디렉토리) 가 존재하며 소유자가 mysql:admin 인가.

그래도 뭔가 문제가 있다면, /opt/local/var/db/mysql5 내에 로그파일이 생성되나 확인하고 생성된다면 tail  이나 콘솔로 에러를 확인해 본다.


DB 기동을 확인했다면 마지막으로 mysql 관리자 암호를 설정해야 한다.

sudo /opt/local/lib/mysql5/bin/mysqladmin -u root password '암호문자열'


원격 호스트의 암호를 변경하려면 아래와 같이 호스트를 지정할 수 있다

/opt/local/lib/mysql5/bin/mysqladmin - u root -h '호스트이름' password 'new-password'
(위의 명령은 한줄이다.. 한줄에 다 칠 것 -_-;;; )

여기서 new-password 부분을 자신의 암호로 대체해서 명령하면 된다

암호문자열 부분을 여러분이 원하는 암호로 치환하여 관리자 암호를 설정한 다음  접속해 보자

mysql5 -u root -p

암호를 물을것이다. 정한 암호를 넣어  콘솔이 기동된다면 성공.

만약 기동되지 않는다면 /opt/local/var/run/mysql5/mysqld.sock 파일이 생성되었는지 확인할 것.
my.cnf 에서 이 소켓파일 생성을 지정하였음에도 불구하고 생성되지 않았다면 시스템상에 다른 문제가 있는것이다.


끗. ㅋㅋ

----------------------
내가 설정한것

1.  시스템 시작시 MySQL 이 시작되게 하지 않는다.
     Lingon 에서 자동시작 끔.
     아니면 /opt/local/etc/LaunchDaemons/org.macports.mysql5/org.macpots.mysql5.plist 를
     Property List Editor 나 vim 으로 RunAtLoad 항목을 No 로 설정하면 된다.
  
2.  소켓이 /tmp 에 생성되어야  CocoaMysql 을 사용할 수 있다고 한다.
     다른 프로그램들도 /tmp/mysqld.sock  을 많이 찾는다는 듯
    
my.cnf 에서 소켓파일생성을 지정한 부분에서 기본값을  /tmp/mysqld.sock  로 바꾸고 mysql5.wrapper 시작시 /tmp/mysqld.sock -> /opt/local/var/run/mysql5/mysqld.sock 으로 심볼릭링크를 작성하게 함
 
   

3. 인코딩 euckr 설정.  잘 된다.
4. 일반쿼리로그 작성.
    일단 위의 my.cnf 대로 하면 로그인,쿼리내역등이 로깅된다. 필요할 때만 활용하자.
5. ODBC로 데이터가 깨져서 들어갈때 인코딩 주의할 것. (서버인코딩과 클라이언트 ODBC 드라이버 인코딩이 일치해야 함)


----------------
ports 같은 사심어린 툴 따위 사용하지 않고, 직접 소스컴파일 설치하시겠다는 분들은 여기.
또는 인스톨 프로그램을 사용하지 않고,  직접 바이너리 설치하시겠다는 분들은 이것을 참고하세요
추가로 MySQL 보다는 "남자라면 오라클" 이라고 하시는 분들은... Mac OS X Server 를 구매하셔야 합니다 ;;


사족 :

이번에 제 머신에 재 설치를 하기위해 이 메뉴얼을 보다가, 최근에 변경된 부분인, 환경설정 파일의 경로와 이전에 미쳐 신경쓰지 못했던 관리자암호 변경 부분을 추가했습니다.

환경설정 파일 내역은 당연히 사용하시는 분들께서 customize 하실거라고 생각해서 저렇게 주석을 포함한 상태로 보여드렸었는데,  한번도 mysql 을 *nix 계열에서 설치해 보지 않으신 분들께 혼란을 드릴 여지가 있기에 설명을 추가했습니다.
,

지금의 심정

from My Life 2007. 12. 14. 04:09
Frog? or Bird?

사용자 삽입 이미지
,

아키텍트가 필요해

from My Life 2007. 6. 16. 04:45
,

전략이란?

from My Life 2007. 5. 21. 18:47
전략이란?

두개의 상반된  의지가 힘을 사용 분쟁을 해소코자 하는 변증법적인 술이다. (보프르)

전략에 정도란 없다.
좋은 지휘관은 주어진 요소들을 고려, 그 상황에 맞는 전술을 짠다.
,

Mac OS X 에서 NTFS Read/Write 가 된다며 기뻐하시던 많은 분들께 이 글을 바칩니다.

얼마전 NTFS-3g 를 통한 엑세스를 소개해 드렸습니다만, 한글 파일을 읽거나 쓰는데 많은 불편함이 있었던게 사실입니다.

어떤 때는 인식조차 안되기도 하고, 파일이름이 깨져  chkdsk 에 의해 뜯겨나가는 경우도 많았습니다만, 여튼 NTFS-3g 를 사용해 한글 파일을 사용하기 입니다.

아래와 같은 명령어를 터미널에서 타이핑 후 엔터 해주시면 되겠습니다.

echo 'ko_KR.UTF-8' > /Volumes/드라이브볼륨이름/.ntfs-locale


출처 : http://x86osx.com/bbs/view.php?id=osxtips&no=258&ksn=0&kss=0&ksc=0&kst=1&ksm=0&kw=:ntfs:


,

비운의 회사원은 없다!!

from My Life 2007. 3. 21. 13:00
출처 : http://news.chosun.com/site/data/html_dir/2007/03/20/2007032001156.html

  • 비운의 회사원’은 없다 ‘순진한 회사원’이 있을뿐…
  • 나, 일 잘한단 소리 들었어… 동료들과 가족처럼 지냈어… 근데 왜!!

    “당신을 보는 수천개의 눈에 눈떠라” 직장내 살아남기 전략
  • 김윤덕 기자 sion@chosun.com
    입력 : 2007.03.20 23:38 / 수정 : 2007.03.21 12:14
    • ‘능력이 뛰어나면 승진은 따논 당상?’ ‘직장에 언론의 자유는 있다?’ ‘직접 하기 어려운 말은 이메일로 전달한다?’ ‘직장 사람들은 가족이나 마찬가지?’ ‘내가 옳다면 회사는 상사보다 내 편을 들어줄 것이다?’ ‘휴가는 재충전의 시간이므로 충분히 즐기고 온다?’…. 이중 하나 이상의 항목에 ‘예(Yes)’라고 답했다면 당신은 지금 ‘위험한 상태’다.

      미 국의 기업 컨설턴트이자 인사 분야 베테랑인 신시아 샤피로(Shapiro)의 충고. 샤피로는 국내 출간 3주 만에 7만 부가 팔려나간 ‘회사가 당신에게 알려주지 않는 50가지 비밀’(서돌)의 저자다. 그런데 샤피로의 지침은 미국 기업문화에서만 통용되는 건 아닐까? 21세기가 시작된 지 한참이 지났는데, 386들이 기득권자가 된 세상인데, 기업의 ‘잣대’도 바뀐 건 아닐까? 그래서 10년 이상 국내 기업에서 인사 관련 업무를 해온 베테랑들에게 물었다. 각론은 달랐지만, 모두가 동의한 사실은 있었다. “회사엔 당신을 지켜보는 수천 개의 눈이 있고, 이에 대비한 서바이벌 전략을 반드시 세워야 한다는 것!”
    • 일러스트=김의균 기자 egkim@chosun.com
    • ◆능력과 실적이 전부 아니다…α(알파)를 찾아내라

      샤 피로는 우선 “고용주의 눈으로 자신을 평가하라”고 강조한다. 국내 인사 베테랑들도 이에 기꺼이 동의한다. CJ그룹에서 15년간 인사 관련 업무를 해온 이종기 부장은 “능력과 역량이 기본 베이스이지만 직급이 올라갈수록 ‘다른 관점’이 생겨난다”고 말한다. ‘다른 관점’이란 회사에 대한 주인의식과 충성심. 구시대적 발상처럼 들리지만 “회사의 비전, 중장기적 전략에 대한 이해와 지지가 높은 직원을 특별 대우하는 경향은 시간이 흐를수록 더더욱 강화될 것”이라고 설명한다.

      세 군데 기업에서 14년간 인사 업무를 담당해온 강경원 풀무원 인사팀장은 “우리 기업 문화는 능력 외에 상사·동료와의 원만한 관계, 회사 방침에 대한 우호적 태도 등 공통의 가치를 중시한다”면서 “능력이 아무리 뛰어나도 회사에 대한 불만을 노골적으로 표출하고 다니는 직원은 ‘그 친구 성과는 어떠냐’는 질문이 상부에서 내려오고 바로 조회에 들어간다. 대안 없는 비판은 삼가라”고 귀띔했다.

      ◆‘블랙리스트’를 두려워 말고 ‘핵심인재 리스트’를 노려라

      직 원을 관리하는 비밀지침과 블랙리스트는 존재할까? 전문가들은 “경영진의 인사 철학에서 비롯된 ‘비공개 지침’이 존재하는 건 사실”이라고 입을 모은다. 왓슨 와이어트의 최현아 컨설턴트는 “한국처럼 소유와 경영이 분리되지 않은 기업문화에서는 경영주의 평소 철학과 인재를 평가하는 주관적 안목이 중시될 수밖에 없다”면서 “그런 기업일수록 사소한 인터랙션에 주의를 기울여야 한다”고 조언한다. 이를테면 술 마신 뒤의 행동, 스트레스 표출 방법, 심지어 밥을 함께 먹을 때의 태도가 평가 대상이 될 수 있다는 것. 인사 실무자들은 “블랙리스트는 없다”면서도 “연봉제로 인한 조직원 평가 기록이 매년 누적되면 블랙리스트는 자연히 노출되기 마련”이라고 답했다. “단, 블랙리스트 대신 핵심인재 리스트에 관심을 가지라”고 조언하는 강경원 팀장은 “어떤 일이든 기꺼이 일을 떠맡을 자세, 회사의 문제를 마치 내 문제인 양 달려드는 태도가 핵심인재로 가는 지름길”이라고 조언했다.

      ◆진짜 MVP가 되고 싶다면 상사를 돋보이게 하라

      ‘예 스 맨’이 되란 뜻은 아니다. 강 팀장은 “상사가 시키는 일에 일단 ‘예’라고 답하되 시간이 지나 협의점을 찾는 태도가 필요하다”고 조언한다. 샤피로의 표현을 빌자면 “권력자들은 순종하지 않는 자에게 냉정하다. 회사의 눈에는 당신 상사의 눈에 비친 당신이 전부”다. 승승장구하는 사람들의 공통점은 자신의 공을 상사에게 돌려 조직에서 상사를 돋보이게 하는 전략을 즐긴다는 것. 최현아 컨설턴트 역시 “상사의 마음에 드는 것은 필요하다. 무조건은 아니더라도 잘 지내라”고 충고한다. 일한 만큼 회사에서 인정받지 못한다고 느낀다면, 경영주가 자신을 바라보는 시선이 곱지 않다고 느낀다면 상사와의 관계를 재점검할 필요가 있다. 일단 자신을 낮추고 상사의 조언을 구하라. 진심을 담아 터놓고 이야기하라. 승진에서 누락되었다고 상사에게 공식적으로 불만을 드러내서도 안된다. 승진을 요구하는 순간 기회는 사라지므로!

      ◆비용청구서, 이메일, 그리고 당신의 외모

      인사 베테랑들은 “비용 청구서는 회사가 당신의 충성도를 재는 비밀척도”라는 샤피로의 주장에 대부분 동의했다. 이미 법인카드나 비용 청구서에 대한 기업의 모니터링이 강화되고 있으며, 지침을 어겼을 경우 별도의 징계위원회가 가동되고 있는 게 현실. 따라서 “개인적 한계 범위를 조금이라도 넘길 경우, 그것이 업무상 인정된다 할지라도 위험할 수 있다는 생각을 해야 하며, 경영진에게 자신이 회사 돈을 최대한 아껴서 쓰고 있다는 인상을 심어줘야 한다”고 충고한다.

      샤피로는 또 회사 이메일에는 비밀스러운 내용을 적지 말라고 경고한다. 개인 이메일을 회사가 볼 수 있다는 사실을 모르는 직장인들이 많다는 것. 국내 실무자들은 “회사가 이메일까지 체크하지는 않는다”면서도 “회사 이메일은 공적인 업무 내용으로 용도를 국한시키는 게 좋다”고 조언한다. ‘외모가 생각보다 중요하다’는 데에는 모든 전문가들이 일치했다. “그 사람의 이미지가 곧 회사의 이미지이니까요. 외모, 옷차림, 언어적 감각, 매너 모든 면에서 조직이 원하는 밸류에 적합한 사람을 선호하는 건 당연합니다.”

      너무 강퍅하고 비굴한가? 물론 당신이 ‘영원히 떠나고 싶지 않은 회사’를 다니고 있을 경우에만 참조하라. 
,
예전에 windows에서 경로의 최대 길이(MAX_PATH)가 너무 작아서 고생을 한적이 한번 있다. 실제로 사용할수 있는 최대 길이는 230자가 조금 넘었던 걸로 기억하는데, 그 한계를 극복할 만한 해결책을 결국은 못 찾아서 결국은 꼼수로 피해가고 말았었는데, 그 한계를 피해 가는 방법을 우연히 발견했다.


여기에서 보다시피 경로명의 시작을 "//?/"로 하면, 즉 "\\?\D:\" 처럼 써주면 win32 api level에서는 32,000자까지 받아 들인다고 한다(중간의 shell이 잘라먹지 않는이상).

출처 : http://reply.tistory.com
,