아.. 속상하다 진짜.ㅠㅠ 게을러서 망함 ㅠㅠ

코드 테이블에 관련된 부분을 보고 있는데 자꾸 iBatis에서 본 적도 없는 에러가 나는 것이었다.

 에러 내용인즉슨..

org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.jdbc.UncategorizedSQLException: SqlMapClient operation; uncategorized SQLException for SQL []; SQL state [null]; error code [0];   

--- The error occurred in sqlmap/dummy.xml.  

--- The error occurred while applying a result map.  

--- Check the code.CodeResult.  

--- The error happened while setting a property on the result object.  

--- Cause: net.sf.cglib.beans.BulkBeanException; nested exception is com.ibatis.common.jdbc.exception.NestedSQLException:   

--- The error occurred in sqlmap/dummy.xml.  

--- The error occurred while applying a result map.  

--- Check the code.CodeResult.  

--- The error happened while setting a property on the result object.  

--- Cause: net.sf.cglib.beans.BulkBeanException



였다.

인터넷에는

1. 아마 ResultMap에 property랑 매치가 안될 것이다
2. 네가 ResultMap 지정해 준 클래스에 getter, setter가 제대로 지정이 안 되있을 것이다
3. ResultMap에 쓸 class랑 ResultMap의 property수가 맞지 않을 것이다

였는데 다 안되는거였다.

찾아오는 멘붕.. 

알고보니까 INT형 값에 기본값이 들어있지 않으면 에러가 나는거였다. 

다른걸 하고 있다가 번뜩이며 생각나서 그냥 막 값을 넣어보았더니 갑자기 하나는 받아오는데 성공하고 다음꺼부터 실패하더라 ㅠㅠ

이제 웹/웹서버 개발 나름 만 3년 정도 채운 것 같은데..

스프링은 배운지 아직도 채 1년이 되지 않았기 때문에 삽질이 너무 많아서 작업 속도가 영 안나오는 것 같다.

대형 프레임웍을 수용할 수 있으려면 게임 서버를 만들건 뭘 만들건 스프링같은 프레임웍을 쓰는게 좋을 것 같은데...

php처럼 막 짤 수가 없는 부분이 답답하다. 그렇다고 Servlet을 쓰자니 php하는 만 못하는 것 같고... 언제쯤 능숙해질까? 걱정이다. 

spring에러는 ASP보다 해석하기가 더 어려운 것 같다 -_- ASP구버전도 에러 해석할 때 정말 힘들었는데..

어쨌든 오늘은 글자 하나 써주긱 귀찮아서 삽질을 좀 오래 했다.

오늘의 교훈: column에 default value 설정을 꼼꼼히 해주자 

 

Posted by TY
,

열심히 코딩을 하다가 갑자기 거지같은 에러가 났다. 별로 수정하지도 않았는데 -_- 위와 같은 에러가 났다.

Files의 "<<<<<<< .mine" 값이 잘못되었습니다. 경로에 잘못된 문자가 있습니다.

라는 에러였는데 ...

프로젝트 정리(Project clean)을 해도 , 솔루션 정리를 해도 해결이 되지 않았다.

그래서 열심히 인터넷을 뒤졌는데 MSDN에도 안나오더라 -_-; 그래서 한글 검색을 끄고 영어 검색을 했더니 인터넷 많은 결과물이 있길래 ..

stackoverflow 에서 찾아봤더니, 클린을 하라는 것이다. 그래도 안되길래 계속 그 글을 보다가 아래 구석 댓글에

bin폴더를 지우라는 말이 있었다.

그래서 bin과 obj를 모두 지우고 했더니 다시 되더라.

아마 svn에 bin과 obj를 모두 포함시켜 업데이트 할 때 문제가 생기지 않았나 싶다.

거지같네..;;
Posted by TY
,

MS SQL Server 2008을 사용 도중 기본키(Primary Key)에 Auto increment 옵션을 지정하는 법을 도통 몰라서 한 참을 헤맸다.

처음엔 insert into table values((select count(*) from table)+1, value ...)
와 같은 방식을 이용하려 했으나 이것이 심히 무식하고 대책없는 방법이라는 걸 깨닫고 외국 웹사이트를 검색하다가... 디자인 에디터로는 안되고 직접 쿼리를 때리라는 글을 보았다.

다음과 같은 방식을 선택하면 된다.


CREATE TABLE [dbo].[test] (
 idx int IDENTITY(1,1) PRIMARY KEY CLUSTERED,
 value int NOT NULL
)

찾고 나서

만든 테이블 다 지우고 다시 만들고 하느라 쌩쑈를 했더니 눈물이...
Posted by TY
,



화면 한 가운데 이미지나 테이블이나 div를 놓고 싶을 때가 가끔 있다.

주로 보안상으로 로그인창만 나와야 하는 페이지들이 이러한데, position과 margin을 이용하면 될 것 같아서 해봤더니 뭐 나쁘지 않은 것 같다.

css는 다음과 같다.

position:absolute; top:50%; left:50%; width:[본인이원하는가로크기]; height:[본인이원하는세로크기]; margin-left: -[본인이 원하는 가로크기/2]; margin-top: -[본인이 원하는 세로크기/2];

이렇게 했더니 정 중앙에 잘 박히는 것 같다.

 

'IT > note' 카테고리의 다른 글

네이버 개발자 센터의 SVN 서버와 Tortoise SVN 연동하기  (0) 2011.11.08
Posted by TY
,
위 에러는 Jackson json 라이브러리와 java쪽을 연동했을 때 나오는 에러이다.

위 에러가 나는 이유는 흔한 인터넷 검색(stackoverflow  이나 springform 같은 사이트들)에서는 다음과 같이
이야기한다.

1. 네가 멤버 변수의 이름을 잘못 적었어(userIdx인데 usreIdx로 적었다던가, model이나 json보내는 쪽 둘다를
  확인하라 한다)
2.  Getter와 Setter가 제대로 있긴 한거야? 
3. 클래스의 이름이 틀린거 아냐? 대소문자를 제대로 구별하라고!

그러나 나는 위와 같은 사실들을 검색하기 정네 모두 확인을 하고 뻐킹 인터넷을 외칠 수 밖에 없었다.

그리고 오늘 하다가 아는 고수분께 질문을 했다.

위의 3가지 통과의례를 거치고, 내 json부분 처리랑 json data를 보여드렸더니 하시는 말씀이...

"Java 네이밍 규칙에 맞지 않아. Jackson json도 Java 네이밍 규칙을 따를테니 한 번 수정해봐." 라고 하셨다.

약간의 착오로  DB를 생성할 때 첫 글자를 모두 대문자로 해서 통일성을 위해 DB와 연동되는 Model부분도
모두 대문자로 작성하고 그와 연동되는 부분도 모두 대문자로 작성했다.

그랬다! 변수는 첫 글자를 대문자로 쓰지 말고 소문자로 써야했던 것이다.

이 부분을 수정했더니 잘 되더라.

어머 신기해라... 
Posted by TY
,
아오...

정말 많은 헤맴을 거쳤다.

일반적으로 프로토콜이 svn:// 도 아니며, 주소 그대로도 아님에 조금 놀랐다. 물론 도움말을 열심히 보지 않은 나의 책임이라고 생각한다. -_-

SVN을 평탄하게 설치하고, Checkout을 할 때 도메인을 입력할 때 다음과 같이 입력하면 된다.

https://dev.naver.com/svn/[프로젝트명]

여기서 프로젝트 명은

http://dev.naver.com/projects/[프로젝트명]

이다.

그러면 아이디 비번을 치는데...

만약 저장소 비번을 변경한 적이 있다면 그걸 쳐야하고 아니라면 원래 비밀번호를 쳐보자.

안된다면 다시 변경을 신청하고 15분 동안 놀면 되겠다.

오늘의 30분에 걸친 삽질 끝

'IT > note' 카테고리의 다른 글

css 를 이용한 가로 세로 중앙 정렬하기  (0) 2011.11.26
Posted by TY
,
윈도우나, 리눅스나 내가 개발하던 환경에서는 늘상 아이콘을 두 개를 누르면 이클립스는 2개가 떠서 나를 화나게 한 적이 많았다.

음... 하지만 맥은 2개가 되지 않아서 나를 화나게 했다. 그래서 뭐 이것 저것 해보았지만, 안되는 것에 대해 고민을 하다가.....

결국 또 구글의 도움을 받았다.

1. 이클립스 1개를 켜놓고 터미널을 열자. 
2. 터미널에서 이클립스가 깔린 폴더를 찾자(보통은 Applicatoins/eclipse 라는데 나는 /eclipse에 깔았었다)
3. open -n Eclipse.app 를 입력!
하면 2개가 켜진다.

내가 왜 이런 불우한 삽질을 했을까. 문득 슬퍼진다.

그리고 맥용 Eclipse에서는 트리 보는게 Flat이건 Hierachy이건 나의 말을 듣지 않는 것 같다.

몹시 슬프다... 
Posted by TY
,
 고백하자면 저는 10년 5월까지는 어플리케이션을 개발하기 위해서는 win32api를 쓰던 사람입니다. 그러나 군에서 뭔가 거대한 어플리케이션을 만들어야 하는데 몹시 노가다스러운 프로그램이었습니다. 개발 계획서를 살펴보니, '아.. 이걸 다이얼로그 박스로 하면 나는 죽겠구나..' 라는 생각이 들었습니다. 그래서 결국 저는 군대에서 꺼려하던 2가지를 모두 하게 되었습니다. 하나는 웹이고, 하나는 닷넷이지요. 둘 다 하게 되었습니다. 하하.

 저는 내부적으로 컨트롤 할 수 있는 상황을 좋아합니다. win32api를 좋아했던 이유도 제 맘대로 지지고 볶고 할 수 있었기 때문인데요. 하지만 사람이 편리함 앞에서는 한낮 미물이 되나 봅니다. 써보니 참 편하더군요 닷넷.. 으음..

 어쨌든 이번에 일이 있어서 PictureBox로 동적으로 무언가를 생성해야 하는 일이 있었습니다. 제가 군에서 만들었던 어플리케이션과 제가 만든 웹 페이지들은 특별한 요구가 없는 이상 '그림'이 없습니다. 저는 그림을 싫어하니까요. 못 그리는 데다가 예쁘게 꾸밀 미적 감각도 없습니다. 그러니까 안 넣어요. 저는 단색 조합이 좋으며, 넣어봤자 파스텔톤의 연녹색 같은 것 밖에 색을 넣지 않습니다. 그 외에는 저에겐 너무 무리한 요구입니다. 어려워요.

 어쨌든 제가 만들고 있는 건 현재 '초 허접' 맵 에디터입니다. 요 근래 독감도 들고, 악재가 겹쳐서 진도가 몹시 안 나가지만 그래도 하루에 순수 집중하는 시간으로는 3~4시간, 뻘 행위를 하면서 이걸 하고 있다는 위안으로 웹 서핑과 메신저를 하는 시간을 포함하면 6~7시간은 이걸 잡고 있는 것 같습니다. 

 저는 배치해놓은 컨트롤을 이용해서 지지고 볶는 건 자신 있습니다. 즉 노가다는 자신이 있습니다! 그러나 동적으로 그림을 넣어야 한다는 사실은 저를 몹시 힘들게 했습니다. 아오 힘들어. 하지만 뭐 동적으로 다른 컨트롤이야 몇 개 추가해 봤으니까 이런 일은 쉽지 않을까 싶더군요.

 우선 제가 만들고 있는 맵에디터(라고 부르기 부끄러운)의 스크린 샷입니다.


 초.. 허접한 그림의 퀄리티. 그러나 저는 분명히 저것을 그리기 위해 타블렛과 2시간을 씨름을 했습니다. 그 거대하고 비싼 타블렛으로 저런 그림을 그리려니 참으로 타블렛에게 미안한 생각 뿐이었습니다. 그 타블렛은 제 모니터 만했지요...

 음.. 이미지를 저렇게 이미지 위에 동적으로 할당을 해야 하는데, 저는 PictureBox 컨트롤을 이용해서 했습니다. 

우선 가장 큰 문제는 이것이었습니다. 

"이미지를 어떻게 동적으로 추가하지?"

이 부분에 대해서는 저번글에도 언급되는 실명으로 부르지 않아 부끄러운 다람군(-_-;) 이 도움을 주었습니다. 저는 win32api를 하듯 그냥 dc를 얻어서 뿌리면 되겠지! 라고 생각했지만 땡이더군요. 

일단 그래서 무작정 개체를 생성해서 띄워보기로 했습니다.

아. 안나와요. 뭐야 이거. -_-

그랬더니 다람군이 this.Controls.Add 라는 메서드를 호출해 보라고 하더군요. 하지만 역시 안나와요.

그래서 '안나와!'라고 했더니, 컨트롤 위에 추가할 꺼면 컨트롤 마다 저 메서드가 있을 것이라며 저에게 알려주었습니다.

오오 되더군요.

그래서 저의 해결 방식은 다음과 같았습니다. 

syntaxHighlighter를 지우고 이건 Windows Live Writer로 쓰는 것도 아니니 소스가 안 예쁜건 양해를 바랍니다 - -;

우선.... 그려야 할 것 들을 List 를 이용해 등록을 합니다. 맵 에디터다 보니까 화면에 표현을 할지 말지도 결정을 해야하고, 그 화면에 나올 것들만 출력해야 하므로 우선 리스트로 정리를 합니다.

PictureBox p = new PictureBox();
                    p.Left = el.m_coordinate.X - m_mapCoordinate.X - imageSize.X / 2;
                    p.Top = el.m_coordinate.Y - m_mapCoordinate.Y - imageSize.Y / 2;
                    p.Width = imageSize.X;
                    p.Height = imageSize.Y;

                    p.Image = image;
                    p.Visible = true;

                    p.BackColor = Color.Transparent;

                    p.Click += new EventHandler(clickObject);

                    p.Show();

                    m_drawingList.Add(p);

그리고 나서 아래 리스트에서 컨트롤에 등록을 해 줍니다.

foreach (PictureBox p in m_drawingList)
            {
                pictureBox1_map.Controls.Add(p);
            }


그렇게 했더니 위에와 같이 출력이 가능하게 되었습니다. 올레!

뭐 사실 블로그에 적는 이유는 나중에 똑같은 삽질을 할 때 찾아보자는 의도이지만, 뭐 어쨌든 그렇습니다.

저렇게 해서 해결을 봤습니다.

* 음.... 틱톡이란 주제로 글을 썼더니 투데이가 갑자기 급상승하는군요... ( - -); 다음부터 좀 이런 주제로 글을 써 볼까 생각 중입니다. 그러나 저의 게으름엔 자비가 없죠.

 
Posted by TY
,

안녕하세요?^^

간만에 프로그램 관련된 글을 쓰는 것 같습니다. 으음.... 오는 사람은 없지만 그래도..


아르바이트를 좀 하고 있는데, MS-SQL과 JSP라는 알 수 없는 조합을 가진 사이트를 살~짝 손대는 일입니다. 뭐 그렇게 어렵거나 중한 임무가 아니라서 설렁설렁 하고 있지요.. :)


제가 DBMS Client는 거의 MySQL GUI TOOLS 5.x 만 사용했습니다. 물론 MS-SQL SMSE도 많이 썼지만, 그래도 DBMS에 직접 관계한 것 보다는 ODBC연결해서 프로그램에서 쿼리를 쏜게 더 많았나봅니다.

하지만 이런 충격적인 사실이 있더군요..

SELECT * FROM A WHERE B LIKE "%HELLO%"

이거 안되는 쿼리입니다... 왤까요?

SELECT * FROM A WHERE B LIKE '%HELLO%'

MS-SQL 클라이언트에서는 작은따옴표(',single quote)만 된다는 겁니다. 이럴수가! 큰따옴표(", double quote)로 묶으면, 대괄호([])로 처리가 됩니다. 그러면서 에러가 나더군요..

워낙 프로그래밍할때 '무조건 큰따옴표로!'라는 그게 있는지라, 저는 거의 웹 언어 딴에서 출력 문장 내에서 따옴표를 출력해야 할 때도 \" 로 처리했지 '로 처리한 적은 없어서요.. 버릇처럼 큰따옴표로 처리했기 때문에, 이해할 수 없는 현상이었습니다. ㅎㅎ

저만 이럴 수도 있겠지만, 혹시 저 같은 분이 계실까봐. ^^

결론은..

Microsoft SQL Server Management Studio Expess 2005 에서는 LIKE의 문장을 묶을 때 큰따옴표를 쓰면 안된다!

입니다.^^
Posted by TY
,

제가 최근에 준비하고 있는 프로젝트에 대한 알파 버전을 작성하고 있을 때였습니다

제가 하고 있는 일이 자바스크립트에서 리스너를 이용해서 객체를 옮기는 기능이 있는데요.

현재 좌표를 얻어오려고 하는데 되지 않더라구요.

제가 원래 썼던 구문은 다음과 같습니다.

<style type="text/css">
	#box1
	{
		border:1px solid #FFFFFF;
		background-color:#333333;

		width:60px;
		height:30px;

		position:absolute;
		left:100px;
		top:100px;
	}
	#box2
	{
		border:1px solid #FFFFFF;
		background-color:#666666;

		width:60px;
		height:30px;

		position:absolute;
		left:100px;
		top:100px;
	}
	#box3
	{
		border:1px solid #FFFFFF;
		background-color:#999999;

		width:60px;
		height:30px;

		position:absolute;
		left:100px;
		top:100px;
	}
	#box4
	{
		border:1px solid #FFFFFF;
		background-color:#BBBBBB;

		width:60px;
		height:30px;

		position:absolute;
		left:100px;
		top:100px;
	}
</style>

<script type="text/javascript">
var arDiv = document.getElementsByTagName("div");

for(i=0;i<arDiv.length;i++)
{
	var obj = arDiv[i];

	alert(i+" : "+obj.style.left+","+obj.style.top);
}
</script>

<body>
	<div id="box1"></div>
	<div id="box2"></div>
	<div id="box3"></div>
	<div id="box4"></div>
</body>




그런데 이게 제 생각에는

1: 100,100
2 : 200,200
3 : 300,300
4 : 400,400

나와야 하는게 맞는데 ..  결과값이

1 : ,
2 : ,
3 : ,
4 : ,

이렇게 4개가 나오더라구요. 그래서 이상하다 싶었는데 제가 갖고 있는 자바스크립트 사전을 찾아보고 했는데 도통 방법이 없다고 하더라구요.  그래서 제가 언제나 웹 프로그래밍에서 이와 같은 벽에 부딪힐 때 뒤져보는 레퍼런스인 JavaScript & DHTML Cookbook (2/E) 를 뒤져서 찾아봤습니다.(영어라서 저도 해석이 되는 부분은 직접적으로 도움을 받지만해석이 안되는 부분은 힌트만 얻고 구글링을 하는 편입니다)

그랬더니 currentStyle이라는 멤버 객체가 있다는 식으로 적혀있는겁니다. 그래서 style으로 접근하는 부분을 currentStyle로 접근하니 잘 접근이 되었습니다.


뭐 그 후 이리저리 알아본 결과, 중요한 것이 2가지가 있는 것 같습니다.

1. 자바스크립트에서 직접 스타일로 접근하면 인라인(inline)으로 부여한 속성은 표기가 되는데 CSS를 통해서 부여된 속성은 style 속성에서 얻어올 수 없고, currentStyle 속성에서 얻어와야된다는 것이었습니다. :)

2. 만약 left, top 등의 값을 넣지 않을 경우 currentStyle에서 'auto'라고 return되는 경우가 있다고 합니다.
Posted by TY
,