• 카테고리
    • 전체 글

    • 카테고리1
    • 카테고리2
    • 카테고리3
    • 카테고리4
  • 태그
  • 방명록

'2014/09'에 해당되는 글 7건

  • 2014.09.29 전화로 영업하는거.. 이러는 것은 아닌 듯... 2
  • 2014.09.26 개발팀 내 암적인 프로그래머
  • 2014.09.23 C# Winform(WebBrowser Control) <--> Javascript 연동 3
  • 2014.09.15 [판매완료] k램 팝니다.
  • 2014.09.09 [판매완료] XBox 360 판매합니다.
  • 2014.09.08 [판매완료] 이번에는 PSP를 팝니다. 6
  • 2014.09.06 [판매완료] 스트라이다 팝니다.

전화로 영업하는거.. 이러는 것은 아닌 듯...

잡글 2014. 9. 29. 11:41

에이스 손해 보험 유지팀인지 뭔지.. 전화가 왔다.

치아 보험 유지를 잘 하고 계시고, 치과 다녀오셔서 청구하시라고.
안그래도 치과를 갈건데 뭐...

그런데 이번에는 가족 것도 하란다. 집 사람과, 아들 이렇게...
안 그래도 튼튼한 이를 자랑하는 집사람도, 나이 먹으면 분명 필요할 것 같았고, 아들 것도 조만간 필요할 것 같다.그리고, 조만간 치아 보험 규정이 바뀌게 되어, 구강 검진 결과가 있어야 가입이 된다고 한다. 그러니, 아직 구강 검진이 필요없는 지금 시점에 가입하라고 권유를 해왔다. 가입은 필요하고 조건도 맞는 상황.

하지만, 요 근래 금액 단속 중이고, 기존 보험도 점점 정리하고 있다. 이런 상황에 뜬금없이 새로운 상품 가입이라. 물론 이야기 하고 잘 설명하면 큰 반발 없이 가입하라고 하긴 할 듯. 내 것도 아니고 아들 것이라고 하는데 뭐라 하겠는가? 하지만, 지금은 아니라는 생각이 들었고, 다음에 가입하려 했다. 그리고 이런 부분은 매 달 지출 금액이다 보니 집사람이랑 논의도 필요했다.

그런데 전화 상담원은 끈질기게 요청을 했다. 그 직업 정신은 높이 사줄만 했지만, 당장 나에게 필요없는 사항이기 때문에, 후에 다시 연락을 주었으면 하는 바램이였다. 하지만, 상담원은 이 좋은 기회 놓치면 안된다고 "구강 검진 필요"라는 카드까지 꺼내들었다. 이쯤되니 슬슬 가입은 필요없고, 전화 끊을 구색이 필요했다. 그래서 난 집사람 카드를 꺼냈다.

그러자...

"안사람 되시는 분께 제가 연락해서 말씀드려도 될까요"

란다...

아.. 이거 뭐지...  대단한 설득가 하나 나셨다는 생각이 들었다. 지가 뭔데 왜 집사람까지 연락해보겠다는 건가? 마치 내가 설득이 안먹히니 집사람을 설득해보겠다는 자신감인가? 아니면 내 말 못믿겠으니, 진짜 어려운지 확인차 하겠다는 건가.

쌍욕나올려는거 다시 마음 가라 앉히고, 다시 이야기 했다.

"필요 없구요. 만일 필요 할 즈음에 다시 연락하겠습니다. 지금 제가 가입한 것도 확인해보면 알겠지만, 가입 권유 보고 가입한게 아니고, 내가 필요해서 가입했다... "

라고 해줬다.

또 뭐시기 뭐시기 하면서 위협은 아니지만, 마치 지금 안하면 손해 보시고, 나중에 가입이 어렵다는 식이다.

아... 이렇게 더 나오면 지금 내가 가입했던 것 마저 다 해지시켜버리고 싶어진다.

어쨌던 전화는 마쳤다.

 

가입율 높이기 위한 직업 정신은 높이 사지만, 이렇게 치근덕 대는 꼴은 정말이지 보기도 싫고 원하지도 않는다.

필요하면 어련히 알아서 찾아볼까.. 가입 받으러 영업을 뛰기 보다, 정말 필요한 사람이 찾을 때 쉽고 편하게 찾아서 가입할 수 있도록 제공하는게 더 좋지 않나? ( 2011년 경에 치아 보험 가입할 때, 어디다 전화 해야 할지 모른 적이 있었다. -_-;;; )

그리고 아니라고 이야기 하면, 설득하려 하지 말고, 다음에 다시 좋은 기회 때 연락 드리겠다고 해라 좀...
지금은 아닐지도 모르지만, 나중에는 필요해질지도 모르지 않는가?

728x90
블로그 이미지

하인도1

[하인드/하인도/인도짱 의 홈페이지] 저만의 공간입니다. 다양한 소재들을 나열하는 아주 단순 무식한 홈페이지 입니다. 다양한 문서 자료도 있겠지만, 저의 푸념들도 있답니다.

개발팀 내 암적인 프로그래머

기술자료 2014. 9. 26. 14:40

예전 개발자들의 대부분의 성향은 자신이 개발하는 것에 대한 책임감이 무척 강해서, 자신이 만든 소스들이 자신의 자식인양 애지중지 한적이 많았다. 그래서 자신의 코드 부분에서 버그가 발생되면 누구보다 앞장서서 수정하고, 전반적인 책임을 가지고 진행을 하는 모습을 많이 보아왔다.

그런데, 당시에는 Unix내 모듈단위 개발이라, 실제 컴파일하기 위한 Object 파일은 많아도 50개 내외였다. 물론 코드 라인 수는 많아서, 복잡하게 보이기는 했지만, 역할이나, 기능은 요즘 통합 시스템 로직에 비하면 매무 심플한 구조였다. 요즘은 하나의 시스템 내에서 동작되는 규칙은 매우 복잡해지고, 다양한 기능을 수행하다보니, 예전 처럼 1인 프로그래머로 개발하기에는 버거운 구조를 갖추게 되었다. 최소한 2~3인이 팀이 여러 개의 팀으로 구성되어 하나의 시스템을 구축하곤 한다. 그러다 보니, 점점 자신의 코드라는 개념은 서서히 사라지고, 버그는 모두 함께 해결해야 하는 로직적 버그가 많아지기 시작했다. 혼자 해결하기는 점점 어려워지고, 같이 협업해서 없애려고 노력한다.

그런데, 간혹 구세대 프로그래머처럼 자신이 손댄 코드들은 모두 자기 것이라고 판단하고 공유하지 않은 채 혼자만 안고 가는 프로그래머들이 종종 눈에 띈다. 이해는 할 수 있다. 이 코드들은 자신이 이해해서 구성/수정하면서 구축해왔고, 자신 밖에 모르기 때문에, 자신의 자리보전을 위한 중요한 무기가 될 수 있다고 생각하는지도 모르겠다. 점점 노쇠해가는 자신의 능력 대비 서서히 줄어가는 자신의 업무를 바라보면서 말이다.

개인을 바라보면 이해는 하지만, 이것이 팀 그리고 회사의 입장에서 보면, 매우 암적인 존재라는 사실이다. 들어가면 나오지 않는 블랙홀 같은 소스 저수지가 되어가고, 그 만큼 그 사람에게 의존은 하는데, 원하는 퀄리티는 나오지 않아, 매번 회사는 고객에게 욕을 먹는다. 퀄리티가 좋아도, 기한을 맞추지 못하는 괴이한 상황에 빠진다. 그렇다고, 인원을 충원해도 방법이 없다. 블랙홀에서 나오지 않는 코드와 기술은 후임자에게 전달되지 않으니까. 결국 남는 것은 자신에게만 쌓이는 일거리들 ( 유지보수, 개선 사업 등등 )이고, 빠르게 해소되지 않는 병목의 주요한 원인이 되버리는 것이다. 프로젝트는 이 개인에 집중하게 되고, 해결, 개선은 보이지 않게 되는 것이다.

냉정하게 바라보자. 결과적으로도 문제지만, 애초의 시작자체가 잘못되었다는 것을 확인할 수 있다. 마치 자신이 손댄 코드나, 자신의 기여한 코드는 자신의 코드이므로, 이 제품자체의 소유가 자신의 것이 되었다고 생각하는 그 자체를 말이다.

진짜 자신이 손댄, 기여한 코드는 자신의 것인가? 이 질문을 던지는 원인은 바로 그 소스코드들이 생긴 흐름 전체를 바라볼 때 생각을 해보도록 하자는 것이다. 먼저 그 소스코드를 만들 때, 자신의 돈과, 시간이 전부 들었는가? 부터 시작할 수 있다. 애초에 자신이 가진 돈을 가지고 자신을 고용하고, 자신의 개인적인 시간을 투자하여 개발했냐는 것이다. 대부분 회사 내 소속된, 팀에 소속된 경우에는 애초에 이 부분에 해당되지 않는다. 돈은 고객에서부터 나와 회사에서 지급된다. 그리고 온전히 자신만의 소스라고 말하기 어려운 것은, 소규모 1인 프로젝트와 같은 것이 아닌 이상, 1인 개발로 처음부터 끝까지 하는 프로젝트는 거의 없다는 사실이다. 대부분 선임자, 혹은 후임자가 함께 설계하고, 코딩을 하고, 같이 고민해서 해결하게 된다. 물론 일부 로직은 전부 자신이 짜기도 하지만, 제품 단위로 볼 때, 과연 제품 전체 자신만의 코드들로 가득 차 있냐는 것이다.  결국 당위성을 말하기 어렵다는 것이다.

혼자 문제 수정 및 개선 작업을 했으니 이제 내 제품이 되었다고 반론하고 싶은가? 그렇다면, 무엇을 근거로 수정하고, 개선 작업을 했다는 것인가? 만일 그렇다면, 해당 소스 코드 없이, 완전히 빈 프로젝트(솔루션)을 열어 지금 자신이 수정/개선하는 프로젝트를 비슷하게라도 만들어 낼 수 있을까? 애초에 이런 것이 불가능하다면, 온전히 자신의 소스라고 말할 수 없다는 것이다.

개발작업이나 개선작업은 쭉 수행해온 부분에 대해서 존중 받아야 되며, 그 기술에 대해서 인정해주어야 한다. 하지만, 그 소스와 기술은 홀로 안지 말고, 회사 구성원, 팀 구성원과 공유해야 한다. 자신의 기술을 뺏기는 것이 아니고 나눈다고 생각하도록 한다. 평생 그 프로젝트만 하면서 노닥거릴 생각이라면 모르겠지만, 자신의 직위와 급여가 오르고, 다양한 경험을 요구 받는 입장이면, 이제 과거에 만들었던, 개선, 수정 했던 프로젝트들은 같은 구성원에게 건네 주고, 새로운 업무에 뛰어들어 더 발전된 모습을 보여주어야 한다. (그냥 무턱되고, 왜 내 급여는 왜 안 오르냐고 따지지 말고 말이다. )

이번에 사내에 프로젝트 관리 솔루션을 하나 작게 구축했다. 개인적으로 사용하던 프로젝트 관리 솔루션을 통해 얻은 경험들을 기반으로 이번에 무료 솔루션 중, 이질감이나 관리의 편의성이 좋은 제품을 도입해봤다. 구축해보고, 테스트해보고, 내가 담당한 프로젝트를 등록해봤다. 사실 프로젝트의 성공적인 수행을 위한 관리라는 포커스 보다, 프로젝트 이력 관리라는 측면을 강조한 구축이라고나 할까…
구두로 형식적인 인수인계가 아닌 실질적인 히스토리를 공유할 수 있는 그런 공간 말이다.

제발 이제 이런 암적인 존재인 프로그래머들이 이런 솔루션 속에 녹아내리면서 암적인 유전자 변이가 좀 제 정신을 차릴 수 있도록 할 예정이다..(뭐 말기면 쳐내야 겠지만 )

728x90
블로그 이미지

하인도1

[하인드/하인도/인도짱 의 홈페이지] 저만의 공간입니다. 다양한 소재들을 나열하는 아주 단순 무식한 홈페이지 입니다. 다양한 문서 자료도 있겠지만, 저의 푸념들도 있답니다.

C# Winform(WebBrowser Control) <--> Javascript 연동

카테고리 없음 2014. 9. 23. 16:07

출처 : http://tarotcrd.tistory.com/154

위의 출처에서 해당 글의 내용을 보고 참 도움을 많이 받기는 했는데, 가독성이 떨어지는데다, 해당 소스 부분을 직접 긁어 코드화 시킬 수 없어서 여기에 다시 정리해서 올린다.

Winform-WebBrowser Control을 이용하면, 웹의 내용을 그대로 띄울 수 있다.
그래서 WinForm과는 다른 유연하게 제공되는 표(Table)을 표현 할 수 있고, 각종 Form을 구성할 수도 있다.

그런데, 이런 웹 기반의 프로그램을 이런 저런 구성하다가 보면, 웹의 내용을 표출하는 것 뿐만 아니라, 웹에서 입력된 각종 값들을 WinForm에서 활용하고 싶을 때가 있다. 이 경우 Javascript를 통해 웹 상의 정보를 읽는 것은 가능한데, 이 정보를 WinForm에 어떻게 전달할까?

역으로, WinForm에서 특정 작업을 수행했는데, 이 정보를 WebBrowser Control을 통해 웹 상에 전달 하고 싶을 때는 어떻게 할까?

위의 질문에 대한 답을 아래에 제시할 수 있다.

Web(Javascript) –> WinForm(Webbrowser Control)

맨 먼저 할 작업은 웹에서 제공되는 정보를 winform에서 받아서 처리하는 방법이다.

웹에서 먼저 javascript를 구성하도록 한다.

<html>
<head>
	<title>Test Page</title>
	<script type="text/javascript">
		function submitToForm()
		{
			var textboxvalue = document.getElementById('text1').value;
			window.external.CallForm(textboxvalue);
		}
	</script>
</head>
<body>
	<form>
		<input type="text" id="text1" name="text1"></input>
		<input type="button" id="btn1" name="btn1" value="submit" onclick="submitToForm()"></input>
	</form>
</body>
</html>

HTML 소스 중, Javascript만 보면, 다음과 같은 코드가 있다.

window.external.CallForm(textboxvalue);

바로 window.external 부분이 핵심인데, window.external까지 쓰고, 그 뒤에 C# Winform 상에서 실행할 함수 명과, 값을 넘겨줄 때 사용할 파라미터를 건네면 된다.

이제 웹브라우저 컨트롤을 Windows Form에 넣고 다음과 같이 코드를 수정하도록 한다.

TestApp 라는 솔루션 내에 Form1이라는 Winform을 하나 생성한 뒤에, 디자이너 화면에서 webbrowser 컨트롤을 폼에다 넣으면 된다. 자동적으로 webBrowser1 이라는 변수가 생성이 된다.




자 이제 소스 부분을 열도록 한다. 그리고 using을 사용해서 다음 두개의 네임스페이스를 추가한다.

using System.Security.Permissions;
using System.Runtime.InteropServices;

Form1에서 Form Load 이벤트 핸들러를 생성한다. (Form1_Load 함수가 자동으로 생성된다.). 그리고 그 안에 다음과 같은 속성을 설정하도록 한다.

webBrowser1.ObjectForScripting = true;

이제 javascript에서 호출받을 함수를 만든다. 위의 Javascript에서 CallForm 이라고 만들었으므로, 여기서도 CallForm이라는 이름의 함수를 새로 만들어 추가하면 된다.외부에서 노출되어야 되기 때문에, 반드시 public으로 만들어야 하며, 파라미터가 있을 시에는 파라미터 갯수만큼 object로 변수를 만든다.

public void CallForm(object msg)
{
	string sMsg = (string)msg;
	{
		// 받은 msg 값을 가지고 처리하는 로직.
	}
}

사실 Javascript에서는 데이터 형(문자열, 숫자, 날짜 등등)에 관계 없이 무조건 쓸 수 있지만, C#에서는 그 형이 정해져야 한다. 그렇다고, Javascript에서 맞춰줄 수는 없다. 방법은 Javascript에서 파라미터를 받을 때, object로 받아, 그 값의 형에 따라 캐스팅을 하는 방법을 제시한다.

위의 수정 내용을 다 합친 코드는 아래와 같다.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Security.Permissions;
using System.Runtime.InteropServices;

namespace TestApp
{
    [PermissionSet(SecurityAction.Demand, Name="FullTrust")]
    [ComVisible(true)]
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            webBrowser1.ObjectForScripting = true;
        }

        public void CallForm(object msg)
        {
            string sMsg = (string)msg;
            {
                // 받은 msg 값을 가지고 처리하는 로직.

            }
        }
    }

WinForm –> Web(Javascript)

이제 역으로 WinForm에서 webBrowser 컨트롤 내에 띄워진 Javascript를 실행하는 방법을 제시한다.
이 부분은 앞서 설명한 방법과는 다르게 webControl에게 시키기만 하면 된다.

먼저 Winform에서는 다음과 같은 코드를 작성한다.

private void ExecJavascript(string sValue1, string sValue2)
{
	try
	{
		webBrowser1.Document.InvokeScript("CallScript", new object[] { sValue1, sValue2 });
	}
	catch
	{
        }
}

보면 Javascript를 부를 때, Document.InvokeScript를 사용한다는 것을 쉽게 알 수 있다. 해당 함수의 첫번째 파라미터에는 호출 할 Javascript의 함수 이름을 넣고, 두 번째에는 object 배열로 해서 파라미터를 넘기면 된다. ( c#의 invoke를 사용해 본적이 많으면 쉽다.) 만일 파라미터가 여러 개인 경우에는 갯수에 맞게 개수를 늘려 배열로 생성해주면 된다.

자 이제 javascript 부분을 살펴보자. 다른 HTML 부분은 필요없고, script 섹션 내에 위의 설정한 “CallScript”라는 함수를 생성해주면 된다.

function CallScrript(va1, va2)
{
	alert('Val1 : ' + val1 + " / Val2 : ' + val2);
}

이제 WinForm에서 webbrowser1.Document.InvokeScript를 실행하면, webBrowser 컨트롤 내의 HTML Script가 실행 됩니다.

 

정리

Javascript –> WinForm을 호출하는 방식은 Javascript에서 ActiveX 를 호출하는 것과 비슷하다. 보안적인 이슈만 없다면, HtML 위에 작성된 javscript 호출하는 것 역시 간단하다.사실 webBrowser 컨트롤이 WinForm과 거의 한몸이기 때문에 이런 방식이 가능하다. 

스스로 예제를 작성해서 구성해 보면 좀 더 확실하게 이해 할 수 있을 것이다. 

728x90
블로그 이미지

하인도1

[하인드/하인도/인도짱 의 홈페이지] 저만의 공간입니다. 다양한 소재들을 나열하는 아주 단순 무식한 홈페이지 입니다. 다양한 문서 자료도 있겠지만, 저의 푸념들도 있답니다.

[판매완료] k램 팝니다.

카테고리 없음 2014. 9. 15. 13:10

램 팝니다. 

이번에는 집에 묵혀져 있던 램들을 모두 처분합니다.

노트북용 

PC3-8500S 1G * 2

PC2-6400S 1G

PC2-5300S 1G * 2


데스크톱용

PC2-4200U 512M * 2

PC-3200U 1G

PC-2100U 256M * 2


문제는 램 중에서 노트북 램들은 테스트가 되었는데,

데스크톱 램은 테스트를 전혀 안해서... 사실 그냥 덤에 가까운 램들입니다.













728x90
저작자표시 (새창열림)
블로그 이미지

하인도1

[하인드/하인도/인도짱 의 홈페이지] 저만의 공간입니다. 다양한 소재들을 나열하는 아주 단순 무식한 홈페이지 입니다. 다양한 문서 자료도 있겠지만, 저의 푸념들도 있답니다.

[판매완료] XBox 360 판매합니다.

카테고리 없음 2014. 9. 9. 11:56

X360을 판매합니다.

아주 오래된 제품입니다.


판매대상은, 

본체(내부 120G 하드 포함) + 아답터

패드 2개 ( 충전기는 달려 있는데, 의미 없습니다.)

VGA 케이블

랜케이블


필요하신 분은 인터넷 공유기(Level One 10/100짜리 유선 공유기)를 같이 드립니다.















728x90
저작자표시 (새창열림)
블로그 이미지

하인도1

[하인드/하인도/인도짱 의 홈페이지] 저만의 공간입니다. 다양한 소재들을 나열하는 아주 단순 무식한 홈페이지 입니다. 다양한 문서 자료도 있겠지만, 저의 푸념들도 있답니다.

[판매완료] 이번에는 PSP를 팝니다.

카테고리 없음 2014. 9. 8. 18:32

종료!

 

스트라이다 판매 완료되었으므로, 이번에는 PSP를 판다.

역시 클리앙에 판다.

UMD : DJMAX 2, DJMAX Clazziquai, DJMAX Black Squre, 진삼국무쌍(케이스 메뉴얼 없음)

본체

로지텍 암 케이스

아답터

밧데리

4G 메모리

32M 메모리


사설 AS 받은 적있습니다. 아날로그 키가 작동하지 않는 문제가 발생해서, 수리를 했습니다.


>


>>>

>


···






728x90
저작자표시 (새창열림)
블로그 이미지

하인도1

[하인드/하인도/인도짱 의 홈페이지] 저만의 공간입니다. 다양한 소재들을 나열하는 아주 단순 무식한 홈페이지 입니다. 다양한 문서 자료도 있겠지만, 저의 푸념들도 있답니다.

[판매완료] 스트라이다 팝니다.

카테고리 없음 2014. 9. 6. 13:56

거래완료!


가격은 18만원...

클리앙에서 팝니다.

5.1 버전입니다.

















728x90
저작자표시 (새창열림)
블로그 이미지

하인도1

[하인드/하인도/인도짱 의 홈페이지] 저만의 공간입니다. 다양한 소재들을 나열하는 아주 단순 무식한 홈페이지 입니다. 다양한 문서 자료도 있겠지만, 저의 푸념들도 있답니다.

  • «
  • 1
  • »
250x250

블로그 내에 소스 코드 삽입 이사온 기념 스킨도... RSS 전문 기능 비활성화 관련. 스킨 바꾸어 보았습니다. 서버 파일 정리 좀 했습니다.

«   2014/09   »
일 월 화 수 목 금 토
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30

수 MOSS 2007 Azure Buscuit Tutorial me2sms WSS java 친구 개발환경 SharePoint Visual Studio 블로그 비스킷 매뉴얼 협업 twi2me 지름신 moss me2dayzm Google Apps Engine 오류 인터파크 불만 e-book 좀 windows 2010 것 me2photo

  • Total :
  • Today :
  • Yesterday :

Copyright © 2015-2025 Socialdev. All Rights Reserved.

Copyright © 2015-2025 Socialdev. All Rights Reserved.

티스토리툴바