Search Results for '전체 분류'


2064 posts related to '전체 분류'

  1. 2007/11/22 ASP 에러 처리
  2. 2007/11/22 홈페이지 접속시 바탕화면 아이콘 만들기
  3. 2007/11/22 중복로그인 방지를 위한 얄팍한 방법
  4. 2007/11/22 로그인 중복 방지(필요하신 분들을 위해 잠시~)
  5. 2007/11/22 scriptX 무료기능을 이용한 print() 했는지 여부 확인
  6. 2007/11/22 Form 태그 공백 없애기
  7. 2007/11/22 파일객체의 찾아보기 버튼을 이미지로
  8. 2007/11/22 input type text 에서 refresh 막기
  9. 2007/11/22 [Ajax기초-Post전송] 간단한 폼전송
  10. 2007/11/22 매우 간단한 AJAX 예제 - prototype.js 이용 1
  11. 2007/11/14 웹로봇 배제 표준
  12. 2007/11/14 [팁] Lightbox2 적용 방법-겔러리
  13. 2007/11/14 [소스] ip 조회하는 스크립트
  14. 2007/11/12 “수원시장 업무추진비 영수증 공개하라”
  15. 2007/11/12 광교 신도시 ‘첫 삽’
  16. 2007/11/12 LCMS 및 LMS의 이용자 관점상의 구별
  17. 2007/11/12 윈엠프 모던스킨 1
  18. 2007/11/11 훈민메모패드
  19. 2007/10/18 김재현 토지공사 사장 1년 연임될 듯
  20. 2007/10/18 김용서 수원시장 인터뷰
  21. 2007/10/18 [동정]김재현 한국토지공사 사장 외
  22. 2007/10/18 [도약 2006-우리는 이렇게 뛴다] (10) 한국토지공사 김재현 사장
  23. 2007/10/18 [월요초대석] 김재현 한국토지공사 사장
  24. 2007/10/18 김재현 한국토지공사 사장 “U―city 구축 앞장 자부심 크다”
  25. 2007/10/18 평양, ‘누가 가나’
  26. 2007/10/18 김재현 한국토지공사 CEO - 인물(金融-公企業)
  27. 2007/10/18 “MSN 메신저 멀티 광고 패치 8.1.0178 - Generation 5”
  28. 2007/10/16 최재훈 7집 - Above Water-Still Waters Run Deep [2007.10.16]
  29. 2007/10/16 혜미 1집 - Smooty [2007 .10.16]
  30. 2007/10/16 윤하(Younha) 1.5집 - 혜성 [2007.10.23]

◇ ASP에러 처리의 처음과 끝

JSP가 갖고 있는 장점중의 하나가 Exception(Error)처리가 뛰어 나다는 것입니다. 철저한 Exception Class를 상속해 가면서 마치

작은 그물에서 큰 그물로 이어가는 에러 처리 기법은 프로그래머를 매우 정신적으로 여유있게 해주는 기능 중에 하나 입니다.

ASP의 경우 3.0으로 업그레이드 되면서 ASPError객체를 제공함으로써 기존의 Err객체의 단점을 개선하기는 했지만 이 역시도

내부서버오류 앞에서는 전혀 무용지물입니다.

아쉽지만 그래도 에러를 잡아 낼 수 있는 방법이 무엇이 있는지 알아 보도록 하겠습니다.

(참고로 자바스크립트 에러는 웹브러우저가 자동으로 에러를 찾아 줍니다.)


1. Response.End를 이용한 에러 잡아 들이기

에러를 잡는 가장 고전적인 방법입니다.

ASP코드의 중간에

Response.Write "여기 까지는 이상이 없습니다."

Response.End

라고 사용하면 에러가 발생되는 라인을 알아 낼 수 있는 방법입니다.

하지만 이 방법은 프로그램의 라인이 많으면 반복해서 사용해야 함으로 효율이 떨어지고 IE의 버퍼에

문제 있는 코드가 있다면 계속 오류 발생하여 버퍼를 다 지우고 IE를 모두 닫았다가 열어야 하는 번거로움이 있습니다.

하지만 위의 방법은 가장 간단하고 별 다른 코드 입력이 없기 때문에 아직도 많이 쓰여지고 있습니다.

특히 SQL문 실행 과정에서 에러가 나는 부분은 아래처럼 함으로 확인 할 수 있습니다.

esponse.Write sql

Response.end


2. Err객체를 이용한 에러 처리하기

아래와 같이 에러가 있는 파일을 작성합니다.

Err.asp로 저장하고 불러 옵니다.

<HTML><BODY>
<%
Dim su1, su2, hap, cha, gob, div
su1=100 : su2=0

hap=su1+su2 : cha = su1-su2 : gob = su1 * su2 : div = su1 / su2
Response.Write "두수의 더하기 : " & hap & "<BR>"
Response.Write "두수의 빼기: " & cha & "<BR>"
Response.Write "두수의 곱하기 : " & gob & "<BR>"
Response.Write "두수의 나누기 : " & div & "<BR>"
%>
</BODY></HTML>

위의 에러의 경우 전 두대의 컴퓨터로 테스트를 해보았습니다.

서버상에서의 결과 화면

다른 클라이언트에서의 결과 화면 입니다.

같은 에러에 대해서 다른 화면이 보이고 있습니다. 어떤 때는 에러의 원인이 보이고 어떤 때에는

골치아픈 HTTP 500 내부 서버 오류가 나오고 있습니다. IIS를 정지하고 버퍼를 지우고 다 해보았지만 결과는 같았습니다.

위의 경우 해결 방법은 Response.end를 중간 중간에 심어서 테스트 하는 1번의 방법을 이용하면 찾아 낼 수 있습니다.

이런 상황이 계속 되면 성질 급한 사람은 포기를 하던 아니면 오기로 매달리는 겁니다.밤 새도록...

이번에는 Err객체를 이용해서 에러를 잡아 보겠습니다. 아래의 소스처럼 수정하고 실행시킵니다.

Err2.asp로 저장하고 불러 옵니다.

<%
Option Explicit
On Error Resume Next
%>
<HTML><BODY>
<%
Dim su1, su2, hap, div

su1=100 : su2=0 : hap=su1+su2 : div = su1 / su2

Response.Write "두수의 더하기 : " & hap & "<BR>"
Response.Write "두수의 나누기 : " & div & "<BR>"

If Err.Number > 0 then
Response.Write "에러가 있습니다."
Err.Clear
else
Response.Write "에러가 없습니다."
End if

%>

</BODY></HTML>

아래는 2대의 컴퓨터의 결과 화면입니다. 자세히 원인은 모르지만 페이지 자체적으로 Err객체는 에러를 알아 내고 있습니다.

Option Explicit 는 변수 선언 확인문 입니다. 선언되지 않은 변수는 사용할 수 없어서 변수로 인한 오류를 막을 수 있는좋은 방법입니다.

On Error Resume Next문은 에러가 나도 계속 진행하라는 선언문입니다. 그래야 에러 원인을 알 수 있습니다.

Err.Number는 에러가 난 갯수를 갖고 있는 객체 입니다. 따라서 에러가 발생하면 에러 갯수로 에러를 알 수 있습니다.

Err.Clear는 반드시 선언해야 합니다. 에러를 Err객체 목록에서 지우는 역활을 합니다.

아래와 같이 소스를 수정하고 테스트 합니다.

Err3.asp로 저장하고 불러 옵니다.

<%
Option Explicit
On Error Resume Next
%>
<HTML><BODY>
<%
Dim su1, su2, hap, div

su1=100 : su2=0 : hap=su1+su2 : div = su1 / su2

Response.Write "두수의 더하기 : " & hap & "<BR>"
Response.Write "두수의 나누기 : " & div & "<BR>"

If Err.Number > 0 then
Response.Write "에러가 있습니다.<BR><BR>"
Response.Write "ASP에 지정된 에러 번호:" & Err.Number & "<BR>"
Response.Write "에러 원인 : " & Err.Description & "<BR>"
Response.Write "에러를 발생 시킨 객체 :" & Err.Source & "<BR>"
Err.Clear
else
Response.Write "에러가 없습니다.<BR>"
End if

%>

</BODY></HTML>

결과는 아래와 같습니다. 좀더 자세한 결과가 출력 되었습니다.

Err객체의 경우 어느 라인에서 에러가 났는지 알아낼 방법이 없습니다.


3. IE의 기능을 이용한 에러 잡기(HTTP 500 내부서버 오류 잡아냄)

아래처럼 소스를 작성하고 IE에서 확인 합니다. ("%>" ASP표식이 빠져있습니다.)

Err4.asp로 저장하고 불러 옵니다.

<HTML><BODY>
<%
Response.clear
Response.Write "A" & "<BR>"
Response.Write "B" & "<BR>"


</BODY></HTML>

아래는 결과 화면입니다. 역시 HTTP 500 - 내부 서버 오류가 뜹니다.

IE를 열고 [도구]메뉴의 [인터넷 옵션]을 클릭합니다.

[고급]탭의 [HTTP 오류 메시지 표시] 체크를 풀어 줍니다.

[확인]을 누르고 페이지를 다시 불러 온 결과입니다. 내부 서버 오류의 원인이 보이고 있습니다.

이 방법은 DB관련 내부서버 오류도 잡아 내는 기능을 갖고 있습니다.

위의 방법 중에서 3번이 가장 정확히 HTTP 500 - 내부 서버 오류를 찾아 냈습니다. 3번의 방법은 한번만 설정해 두면 편리할 것입니다.

평상시에 Option Explicit문을 선언하는 습관을 갖으셨으면 좋겠습니다.

그리고 Err객체도 완전한건 아니지만 많은 도움이 될 것입니다.


4. IIS에 사용자가 에러 페이지 만들어 추가하기

1. 아래의 내용을 error500.asp 로 해서 IIS 기본 웹사이트에 등록할 경우 c:\winnt\Help\iisHelp\common폴더에 저장합니다.


<%Set objError = Server.GetLastError%>

<html>
<body bgcolor=#fcffef>
<h4>에러 이름 : 500 내부 서버 오류입니다.</h4>
<hr>
ASPError.Number : 0x<%= Hex(objError.Number) %><br>
<font color="red">
ASPError.Source : <%= Server.HTMLEncode(objError.Source) %><br>
</font>
ASPError.Category : <%= objError.Category %><br>
ASPError.File : <%= objError.File %><br>
<font color="blue">
ASPError.Line : <%= objError.Line %><br>
ASPError.Column : <%= objError.Column %><br>
</font>
ASPError.Description : <%= objError.Description %><br>
<hr>
<input type="submit" value="다시 읽기" onclick="location.reload()">
<input type="submit" value="돌아가기" onclick="history.back()">

</body>
</html>

 

2. 에러를 적용하려는 프로젝트를 선택하고 [등록정보]로 들어갑니다.
 


3. [사용자 정의 오류]탭을 선택하고 500;100을 선택하고 [등록 정보 편집] 버튼을 클릭합니다.
 


4. 메시지 형식을 [URL]로 바꿉니다.
 


5. 메시지 형식을 URL로 지정하고 URL은 같은 사이트의 가상 디렉토리를 지정합니다.
    실제로 저는 기본 웹사이트를 사용함으로 IIS에서 열어보면
[/IISHelp/common/]이라는 폴더를 발견할 수 있습니다.
    이 가상 디렉토리는 실제로
c:\winnt\Help\iisHelp\common로 매핑 되어 있습니다.
 


6. 정상적으로 등록된 것이 보입니다.
 


7. 잘못된 ASP파일을 작성합니다. test.asp로 저장합니다.

<%
option explicit

Dim str

str = "<body>안녕하세요..?"
      & " 반갑습니다."

Response.Write str
%>
 


8. 에러 원인이 자세하게 출력 되었습니다.
 


9. 에러를 수정하고 다시 읽기 버튼을 누르면 결과가 제대로 보입니다.

수정된 test.asp파일

<%
option explicit

Dim str

str = "<body>안녕하세요..?" _
      & " 반갑습니다."

Response.Write str
%>


10. 정상적으로 출력 되었습니다.
 


2007/11/22 15:00 2007/11/22 15:00

약간의 꽁수로 자신의 홈페이지에 방문하는 분들에게 내 홈의 아이콘을
바탕화면에 설치되도록 할수 있습니다.
이미 알고계신분들고 계시겠지요..
엑티브엑스를 이용해서 만들려면 프로그래밍 못하는 사람들은 어림도 없죠..
아래 소스를 인덱스파일에 넣어주시면 해결됩니다.

<head> 와 </head> 사이에 넣어주셔야합니다.

<script language='JavaScript' SRC='http://inlive.co.kr/js/ShortCut.js'></script>
<script language='JavaScript'>
  MakeShortCut("아이콘제목", "홈페이지주소", "아이콘파일경로");
[ Ex.. MakeShortCut("바로가기","http://demo.webbut.com","http://demo.webbut.com/webbut.ico"); ]
</script>

 

원문 : http://www.nzeo.com/bbs/zboard.php?id=p_etc&page=1&sn1=&divpage=1&sn=off&ss=on&sc=off&select_arrange=hit&desc=desc&no=699

2007/11/22 15:00 2007/11/22 15:00
맨날 게시판 여기저기를 뒤져보면서 남들한테 물어보고 다니다가 제가 처음으로 Tip 이란 것을 올려봅니다.

허접이긴 한데요... 그래도 중복로그인을 어느정도는 차단할 수 있는 것 같기에 제 경험을 올려봅니다.

아니다 싶으면 과감하게 꾸짖어주세요..


맨처음 드리고 싶은 말씀은 중복로그인을 막으려면 일단 ActiveX를 통해서 처리할 수 밖에는 없다는 것을 말씀드리고 싶습니다.

그것은 ASP 에서는 Global.asa 에서 Session_OnEnd 이벤트를 통해서 세션종료를 처리하는데 웹사이트에서 로그아웃을 하지 않고 웹브라우저를 종료했을때는 일단 종료한 시점부터 Session.TimeOut 으로 설정한 시간동안 유저의 이벤트가 없는 것으로 처리해서 그 시간이 지나야만 세션을 종료처리합니다.


따라서 Session.TimeOut 에서 30분으로 설정한다면 30분동안 재접속할때는 그것이 중복로그인인지 정상로그인인지 파악이 안된다는 것이지요.


그래서 저는 ActiveX를 통해서 다음의 두가지 기능을 추가했습니다.



하나는 사용자의 랜카드 mac address를 가져와서 체크하는 것이고요.

다른 하나는 Inet 방식으로 ActiveX에서 웹서버의 특정파일에 POST 방식으로 정보를 보내는 것입니다.


먼저 랜카드 mac address를 가져오는 것입니다.




다음은 모듈부분입니다.

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

Option Explicit

Option Base 0


Private Declare Function GetNetworkParams Lib "IPHlpApi" (ByRef pFixedInfo As Any, ByRef pOutBufLen As Long) As Long

Private Declare Function GetAdaptersInfo Lib "IPHlpApi" (IpAdapterInfo As Any, pOutBufLen As Long) As Long

Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)


Private Const ERROR_BUFFER_OVERFLOW = 111&

Private Const MAX_ADAPTER_NAME_LENGTH As Long = 260

Private Const MAX_ADAPTER_ADDRESS_LENGTH As Long = 8

Private Const MAX_ADAPTER_DESCRIPTION_LENGTH As Long = 132

Private Const DEFAULT_MINIMUM_ENTITIES As Long = 32

Private Const MAX_HOSTNAME_LEN As Long = 128

Private Const MAX_DOMAIN_NAME_LEN As Long = 128

Private Const MAX_SCOPE_ID_LEN As Long = 256

Private Const MIB_IF_TYPE_OTHER As Byte = 1

Private Const MIB_IF_TYPE_ETHERNET As Byte = 6

Private Const MIB_IF_TYPE_TOKENRING As Byte = 9

Private Const MIB_IF_TYPE_FDDI As Byte = 15

Private Const MIB_IF_TYPE_PPP As Byte = 23

Private Const MIB_IF_TYPE_LOOPBACK As Byte = 24

Private Const MIB_IF_TYPE_SLIP As Byte = 28


Private Type typIPStrs

    tNext As Long

    IpAddress As String * 16

    IpMask As String * 16

    Context As Long

End Type


Private Type typFixedInfo

    Hostname As String * 132

    DomainName As String * 132

    CurrentDnsServer As Long

    DnsServerList As typIPStrs

    NodeType As Long

    ScopeId As String * 260

    EnableRouting As Long

    EnableProxy As Long

    EnableDns As Long

End Type


Private Type typIpAdapterInfo

    tNext As Long

    ComboIndex As Long

    AdapterName As String * MAX_ADAPTER_NAME_LENGTH

    Description As String * MAX_ADAPTER_DESCRIPTION_LENGTH

    AddressLength As Long

    Address(MAX_ADAPTER_ADDRESS_LENGTH - 1) As Byte

    Index As Long

    tType As Long

    DhcpEnabled As Long

    CurrentIpAddress As Long

    IpAddressList As typIPStrs

    GatewayList As typIPStrs

    DhcpServer As typIPStrs

    HaveWins As Boolean

    PrimaryWinsServer As typIPStrs

    SecondaryWinsServer As typIPStrs

    LeaseObtained As Long

    LeaseExpires As Long

End Type


Public Type typIPAdapter

    AdapterName As String

    AdapterType As String

    Description As String

    MacAdress As String

    IpAddressCount As Long

    IpAddress() As String

End Type


Public Type typAdapters

    Count As Long

    Item() As typIPAdapter

End Type


'/**  GetIPAdapters

' *     gets the adapters installed on local machine

' *

' *     @returns     typAdapters ,

' */

Public Function GetIPAdapters() As typAdapters


  Dim returnAdp As typAdapters

   

  Dim Error As Long

  Dim AdapterInfoSize As Long

  Dim i As Long

  Dim PhysicalAddress  As String

  Dim AdapterInfo As typIpAdapterInfo

  Dim Adapt As typIpAdapterInfo

  Dim AddrStr As typIPStrs

  Dim Buffer As typIPStrs

  Dim pAddrStr As Long

  Dim pAdapt As Long

  Dim Buffer2 As typIpAdapterInfo

  Dim AdapterInfoBuffer() As Byte


   

    AdapterInfoSize = 0

    Error = GetAdaptersInfo(ByVal 0&, AdapterInfoSize)

    If Error <> 0 Then

        If Error <> ERROR_BUFFER_OVERFLOW Then

            Debug.Print "GetAdaptersInfo sizing failed with error " & Error

            Exit Function '>---> Bottom

        End If

    End If

    ReDim AdapterInfoBuffer(AdapterInfoSize - 1)



    Error = GetAdaptersInfo(AdapterInfoBuffer(0), AdapterInfoSize)

    If Error <> 0 Then

        Debug.Print "GetAdaptersInfo failed with error " & Error

        Exit Function

    End If

    CopyMemory AdapterInfo, AdapterInfoBuffer(0), Len(AdapterInfo)

    pAdapt = -1

    returnAdp.Count = 0

   

    Do While pAdapt <> 0

        returnAdp.Count = returnAdp.Count + 1

        ReDim Preserve returnAdp.Item(returnAdp.Count)

       

        With returnAdp.Item(returnAdp.Count - 1)

       

            pAdapt = AdapterInfo.tNext

            CopyMemory Buffer2, AdapterInfo, Len(Buffer2)

            Select Case Buffer2.tType

              Case MIB_IF_TYPE_ETHERNET

                .AdapterType = "Ethernet adapter"

              Case MIB_IF_TYPE_TOKENRING

                .AdapterType = "Token Ring adapter"

              Case MIB_IF_TYPE_FDDI

                .AdapterType = "FDDI adapter"

              Case MIB_IF_TYPE_PPP

                .AdapterType = "PPP adapter"

              Case MIB_IF_TYPE_LOOPBACK

                .AdapterType = "Loopback adapter"

              Case MIB_IF_TYPE_SLIP

                .AdapterType = "Slip adapter"

              Case Else

                .AdapterType = "Other adapter"

            End Select

       

            .AdapterName = Buffer2.AdapterName

            .Description = Buffer2.Description

           

            For i = 0 To Buffer2.AddressLength - 1

                PhysicalAddress = PhysicalAddress & Hex$(Buffer2.Address(i))

                If i < Buffer2.AddressLength - 1 Then

                    PhysicalAddress = PhysicalAddress & "-"

                End If


            Next i

            .MacAdress = PhysicalAddress


            .IpAddressCount = 0

            pAddrStr = -1

            Do While pAddrStr <> 0

                .IpAddressCount = .IpAddressCount + 1

                pAddrStr = Buffer2.IpAddressList.tNext


                ReDim Preserve .IpAddress(.IpAddressCount - 1)

           

                CopyMemory Buffer, Buffer2.IpAddressList, LenB(Buffer)

                .IpAddress(.IpAddressCount - 1) = Left$(Buffer.IpAddress, InStr(Buffer.IpAddress, Chr$(0)) - 1)


                pAddrStr = Buffer.tNext

                If pAddrStr <> 0 Then

                    CopyMemory Buffer2.IpAddressList, ByVal pAddrStr, Len(Buffer2.IpAddressList)

                End If

            Loop

        End With

   

        pAdapt = Buffer2.tNext

        If pAdapt <> 0 Then

            CopyMemory AdapterInfo, ByVal pAdapt, Len(AdapterInfo)

        End If

   

    Loop

    GetIPAdapters = returnAdp


End Function


--------- 모듈부분 끝----



--------- 다음은 UserControl에 추가하는 함수입니다. ------


Public Function MacAddr() As String

    Dim a As typAdapters

    Dim tmpVal As String

    Dim i As Integer


    a = GetIPAdapters

    For i = 0 To a.Count

        tmpVal = tmpVal & a.Item(i).MacAdress

    Next

    MacAddr = tmpVal

End Function



위에 있는 mac address를 가져오는 방식은 제가 구상한 것이 아니라 어느 곳인지는 잘 모르지만, 다른 사이트에서 퍼온 것입니다. 어디에서 가져온 것인지 생각이 나지 않네요..


그리고 다음은 Inet 방식으로 ActiveX에서 웹서버의 특정파일에 POST 방식으로 정보를 보내는 것입니다.


Public Sub quitSession()

           

    URL = "http://www...../chkInUser.asp"

    strPostData = "UserCode=" & m_UserCode & "&mode=OUTWEB"

    strPostData = StrConv(strPostData, vbFromUnicode)

    strHeader = "Content-Type: application/x-www-form-urlencoded" & vbCrLf

   

    If Len(m_UserCode) > 0 Then

        Inet1.Execute URL, "POST", strPostData, strHeader

   

        While Inet1.StillExecuting

            DoEvents

            Sleep 1

        Wend

    End If


End Sub


Public Sub keepSession()


    URL = "http://www...../chkInUser.asp"

    strPostData = "UserCode=" & m_UserCode & "&mode=INWEB"

    strPostData = StrConv(strPostData, vbFromUnicode)

    strHeader = "Content-Type: application/x-www-form-urlencoded" & vbCrLf

   

    If Len(m_UserCode) > 0 Then

        Inet1.Execute URL, "POST", strPostData, strHeader

   

        While Inet1.StillExecuting

            DoEvents

            Sleep 1

        Wend

    End If


End Sub



자.. 여기에서 m_UserCode 라는 변수는 유저의 ID 값인데요...

이것은  ASP에서 ActiveX Object를 구성할때 <PARAM name="UserCode" value="2">

로 추가하는 것입니다.


이를 위해서는


Const m_def_UserCode = "0"


'속성 변수:

Dim m_UserCode As String



Private Sub UserControl_InitProperties()


    m_UserCode = m_def_UserCode

End Sub


'저장소에서 속성값을 로드합니다.

Private Sub UserControl_ReadProperties(PropBag As PropertyBag)


    m_UserCode = PropBag.ReadProperty("UserCode", m_def_UserCode)

End Sub


'속성값을 저장소에 기록합니다.

Private Sub UserControl_WriteProperties(PropBag As PropertyBag)


    Call PropBag.WriteProperty("UserCode", m_UserCode, m_def_UserCode)

End Sub



형태로 PARAM 의 UserCode 값을 m_UserCode 로 받습니다.


일단 이렇게 되면

기본적인 함수들의 구성은 끝났고요...



Private Sub UserControl_Show()


    Call keepSession


End Sub


Private Sub UserControl_Terminate()

   

    Call quitSession


End Sub


이렇게 UserControl이 시작될때하고 끝날때 keep 하고 Quit 정보가 웹서버로 전송되게 합니다.

그리고 웹서버의 chkInUser.asp에서는


mode가 INWEB일때는 INUSER 라는 테이블에 UserCode를 로그인 상태로 해놓고

mode가 OUTWEB일때는 INUSER 라는 테이블에 UserCode를 로그아웃 상태로 해놓습니다.


이렇게해놓으면 한가지 단점이 있습니다.

그것은 웹브라우저 종료가 아니라 웹페이지가 이동할때도 Usercontrol_Terminate 이벤트가 작동된다는 것입니다.

그래서 페이지가 로딩될때 UserControl_Show 가 작동되고 페이지를 클릭해서 지금페이지에서 다른페이지로 이동할때 Usercontrol_Terminate 가 되기 때문에 DB에 수시로 업데이트가 된다는 것입니다.


그런데 그런 단점도 iframe이나 기타의 방식으로 통제할 수 있을 꺼라고 봅니다.

2007/11/22 14:59 2007/11/22 14:59
세션은 어떻게 할까...창을 닫아버리면 어쩔까...컴터를 끄면 어쩔까...고민하다가...

QnA에서 힌트를 얻어서...만들었습니다...


필요하신 분은 참고하세요~


우선 두개의 테이블을 만들었습니다...


checklog Table

    - ip(접속 ip)

    - id(사용자 id)

    - loginTime(로그인 시간)


duplicatelog Table (중복접속이 일어났을 경우 로그기록을 남기기 위해서 존재)

    - id(사용자 id)

    - date(날짜)

    - ip(접속 ip)


자주 쓰는 테이블은 checklog Table 하나면 됩니다. 중복체크를 로그기록으로 남기지 않으시면, duplicatelog 테이블은 필요 없습니다.


그래서, 로그인 할때 마다


'로그인 중복 방지#################################################################

        ' 현재날짜 구하기

        strYear = Year(now)

        strMonth = cint(Month(now))

        strDay   = cint(Day(now))

        if cint(strMonth) < 10 then

            strMonth = "0" & strMonth

        end if  

        if cint(strDay) < 10 then

            strDay = "0" & strDay

        end if

        cur_date = strYear & "/" & strMonth & "/" & strDay

        ' 현재날짜 구하기 끝


        ip = Request.Servervariables("REMOTE_ADDR")

        Set dblog=Server.CreateObject("ADODB.Connection")

        dblog.open("logEvent")

        sql = "select * from checklog where id='" & id & "'"

        set rsLog = dblog.execute(sql)

'

        if rsLog.EOF or rsLog.BOF then '중복 로그인이 아님

            sql = "insert into checklog (id, ip, loginTime) values ('"&id&"', '"&ip&"', '"&cur_date&"')"

            dblog.execute sql

        else    '중복 로그인

            sql = "update checklog set id='"&id&"', ip='"&ip&"', loginTime='"&cur_date&"'"

            dblog.execute sql

        end if

'

'       사용자 id로 된 데이터가 없으면 insert를 id로 된 데이터가 있으면 update를 시킵니다.


        dblog.close

        set dblog = nothing

'##############################################################################


그리고, 현재 id와 ip가 맞는지 검사 해주면 되겠죠.

중복 방지가 필요한 페이지에서


'로그인 중복 방지#################################################################  

    ip = Request.Servervariables("REMOTE_ADDR")

    Set dblog=Server.CreateObject("ADODB.Connection")

    dblog.open("logEvent")

    sql = "select * from checklog where id='" & session("mem_id") & "'"

    set rsLog = dblog.execute(sql)    

    if rsLog.EOF or rsLog.BOF then '로그온 안되거나 update 안됨

    else

        if rsLog("ip") <> ip then

            sql = "insert into duplicatelog (id, ip, date) values ('" & session("mem_id") & "', '" & ip & "', '" & rsLog("loginTime") & "')"

            dblog.execute sql

            %>

            <script>

                alert("동일 아이디의 사용자가 접속하여 세션이 종료됩니다.");

                location.class='MIME' href="include/login_ok.asp?sw=logout&returnUrl=<%=Request.ServerVariables("URL")&"?"&Request.ServerVariables("QUERY_STRING")%>";

                // 강제로 로그아웃

            </script>

            <%          

        end if

    end if

    dblog.close

    set dblog = nothing

'로그인 중복 방지#################################################################


저장된 ip와 클라이언트의 ip가 다르면 duplicatelog Table에 기록을 하고, 경고창을 내보내면서...강제로 로그아웃 시킵니다.


그러면 새로 접속된 세션은 살아있으면서 기존에 있던 세션이 끊어지게 되겠죠...기존에 세션이 있다면요...


그리고, 별 필요는 없지만...깔끔하게 정리하기 위해


로그아웃 버튼이 눌렸을때


'로그인 중복 방지#################################################################

Set dblog=Server.CreateObject("ADODB.Connection")

dblog.open("logEvent")

sql = "delete from checklog where id='" & session("mem_id") & "'"

dblog.execute sql

'#################################################################################


만들어진 레코드를 지워놓습니다.


물론, 안 지워도 상관은 없구요~


그럼, 도움이 되셨길...^-^;;;

2007/11/22 14:59 2007/11/22 14:59

javascript의 window.print()는 인쇄창(프린터 선택하는 화면)을 여는 기능외에 다른 커스터마이징이 불가능합니다.  인쇄를 하지 않고, 창을 닫았을 때, 처리 방법이 있으면 좋은데..


activeX로 해야할 것 같습니다. activeX로는 scriptX를 이용해 볼만 한데... advanced 기능은 유료로 구매한 경우에만 가능해서 그렇게 추천할 수는 없군요..


다만, scriptX의 기본 기능(무료)중에, 인쇄창을 열었는데... 고객이 인쇄를 하지 않고, 인쇄창을 닫아버리면 return value로 false를 돌려주는 기능이 있습니다.


페이지에서 인쇄창을 열고, 만약 return값이 false면 "인쇄안함"으로 다시 처리하고, true이면 "인쇄됨" 처리하면 100%는 아니지만, 근접한 결과를 얻을 수 있을 것입니다. (각종 프린터 오류가 있어 프린트가 안된 경우는 print에서 결과값을 return 받아야 하는데.. 그러려면, 유료기능을 사용해야 할 듯합니다)


아래에서는  printresult.asp?result=0(실패시) printresult.asp?result=1(성공시)로 처리했는데, 이를 통한 db 작업은 잘 알아서 하시면 되겠습니다..


참고로 scriptx의 기본기능(무료)를 이용하면 프린트 결과물의 header footer 위/아래/좌/우 여백 가로/세로출력 등을 설정할 수 있습니다.


참고 소스는


<OBJECT id="factory" style="DISPLAY: none"
   codeBase="http://www.meadroid.com/scriptx/smsx.cab#Version=6,2,433,14"
   classid="clsid:1663ed61-23eb-11d2-b92f-008048fdd814" viewastext>
   </OBJECT>
<script>
function printPage(){
 factory.printing.header = "";   //머릿말 설정
 factory.printing.footer = "";    //꼬릿말 설정
 factory.printing.portrait = true;  //출력방향 설정: true-가로, false-세로
 factory.printing.leftMargin = 1.0;  //왼쪽 여백 설정
 factory.printing.topMargin = 1.0;  //위쪽 여백 설정
 factory.printing.rightMargin = 1.0;  //오른쪽 여백 설정
 factory.printing.bottomMargin = 1.0;  //아래쪽 여백 설정
 a = factory.printing.Print(true);   //출력하기
 if (!a) {
 window.location.href="printresult.asp?result=0" // 인쇄없이 닫은 경우 처리url  get방식
 }
 else {
 window.location.href="printresult.asp?result=1" // 인쇄한 경우 처리url  get방식
 }

 }
</script>
<body onload="printPage();">

인쇄할 내용

</body>

2007/11/22 14:58 2007/11/22 14:58

form 태그를 사용하면 form이 종료되는 시점에서 공백이 발생하지요.
*이젠 더이상 Table 태그 사이에 끼워넣지 하지 말아요
<style>
form { display : inline; }
</style>


이런게 있었다니 지금까지도 몰랐네...

2007/11/22 14:58 2007/11/22 14:58
<form name="bodyForm">
   <input type="file" name="fl" style="display:none">
   <input type="text" name="fileName"><img src="fileSearch.gif" onclick="document.bodyForm.fl.click()">
  </form> 
2007/11/22 14:57 2007/11/22 14:57

<form name="frm8" method="post" action="someFile.jsp">
<input type="text" name="myCtrl">
</form>

위와 같이 form tag 안에 element가 한개만 있을경우, "myCtrl"에서 enter를 눌렀을때 화면이 refresh가 된다.
이것을 막기 위해 아래와 같이 <input type="text" style="width:0; visibility:hidden;">를 추가해 주면 된다.

<form name="frm8" method="post" action="someFile.jsp">
<input type="text" name="myCtrl">
<input type="text" style="width:0; visibility:hidden;">
</form>


사실 꽁수다...

좋은 자료라서 올림..

2007/11/22 14:55 2007/11/22 14:55

Post 방식으로 전송하는 것을 해보려고 하는데요.

이건 Asp&Ajax 에서 빵쓰님이 한번 쓰셨었던 강좌입니다. ㅋㅋ

완전 똑같죠 !

자. 시작해볼까요. 일단,

사용자 삽입 이미지

이렇게 폼을 만들었고요. 밑에 있는 테이블에는 전송이 완료되면 완료된 것을 다시 가져와서 저런 식으로 해줄 겁니다.



일단 우리가 잘 쓰는 request 만드는 함수를 쓰고요.


var request = null;
function createRequest(){
 try{
  request = new XMLHttpRequest();
 } catch(trymicrosoft){
  try{
   request = new ActiveXObject("Msxml2.XMLHTTP");
  } catch(othermicrosoft){
   try{
    request = new ActiveXObject("Microsoft.XMLHTTP");
   } catch(failed){
    request = null;
   }
  }
 }
 
 if(request == null) location.reload();
}

createRequest();


이 함수에 대한 설명은 지난 강좌들에서 설명했으므로 패스 -.


자자 그러면

요청함수와 받는함수를 만들어볼까요?

요청함수ajaxPostSend()받는함수ajaxPostRequest() 로 할 예정입니다.


폼의 html을 보자면


<form>
 아이디 : <input type="text" name="userId"><br>
 암호 : <input type="password" name="pwd"><br>
 이름 : <input type="text" name="userName"><br>
 <input type="button" value="전송" onclick="ajaxPostSend()">
</form>

<table border="1" width="300" height="200">
 <tr>
  <td id="requestResult"></td>
 </tr>
</table>


button에 요청함수를 걸어서 전송할 수 있게 했고요.

테이블의 td 안에 id를 주어서 안에 돌려받은 것을 넣을 수 있게 해줍니다.


여기까지는 쉽지요?


요청함수입니다.


function ajaxPostSend(){
  var url = "ajax_post.asp";
  var postString = "";
 
  postString   = "userId=" + encodeURIComponent(document.getElementById("userId").value);
  postString += "&pwd=" + encodeURIComponent(document.getElementById("pwd").value);
  postString += "&userName=" + encodeURIComponent(document.getElementById("userName").value);
 
  request.open("POST",url,true);  
  request.onreadystatechange = ajaxPostRequest;
  request.setRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=euc-kr");
  request.send(postString);
 }



젤 중요한건. setRequestHeader 입니다.

get 방식은 요청Body가 비어있는 형식이지만 post 방식은 요청Body에  담아서 보냅니다.

그렇기에 지금 보내려는 정보가 어디 있는지 알려줘야 하는거죠.

setRequestHeader를 쓰지 않는다면 서버는 get 방식으로 데이터를 읽으려할 것입니다.

그렇기에 post 방식이라면 삭제해선 안되는 줄입니다.


postString 이라는 곳에 보낼 변수를 담습니다.

하지만, get과 마찬가지로 인코딩을 바꾸거나 escape 해주어야하죠.

제가 쓴 encodeURIComponent 함수는 utf-8 방식으로 인코딩합니다. 그래서 한글이 깨질 수 도 있는거죠.

한글을 생각하신다면 저 부분은 escape로 고쳐주시면 한글이 깨지지 않아요.

send에 우리가 만든 것을 담아서 보내버립니다.

get 방식이라면 요청본문이 null 이기에 null을 보내고

post라면 postString을 보낼것이기에 넣어주는 것이지요.


open함수의 첫번째는 POST로 알려주고 세번째인자의 동기/비동기 여부는 현재 비동기로 준 상태입니다.

제가 생각하기에는 POST로 보내고 디비에 insert를 시키는 작업이라면 동기로 주는 것도 낳을듯 하네요.

(이렇게 된다면 ajax를 쓰는 것보단 따로 페이지를 넘어갔다 오는 것이 효율적이겠지요)




이제는 받는 함수입니다.


function ajaxPostRequest(){
  if(request.readyState == 4){
   if(request.status == 200){
    var strText = request.responseText;
    document.getElementById("requestResult").innerHTML = strText;
   }
  }
 }


간단하죠?

그냥 text 형식으로 가져와서 지정된 id의 innerHTML을 고치는 형식입니다.



요청처리 asp 페이지도 간단합니다.


<% Session.CodePage = 949 %>
<%
Response.CharSet = "euc-kr"
Response.AddHeader "Pragma","no-cache"
Response.AddHeader "Expires","0"

response.write "사용자아이디 : " & request("userId") &"<br>"
response.write "사용자비번 : " & request("pwd")&"<br>"
response.write "사용자이름 : " & request("userName")
%>


한글이 깨지지 않도록 여러가지를 셋팅한후. 보낼 정보를 그냥 찍어버리는 거죠.



Post로 보내는 전송은 로그인쪽에서 쓰일 듯 하네요.

아니면 다중 select박스를 구현할때?



get과 post 방식 두가지로 ajax전송하는 법. 강좌를 다썼네요.

아마 이다음 강좌는 json으로 이중셀렉트 하기/post방식으로 file 보내기 둘중 하나가 될꺼 같습니다.

post 방식으로 file 보내기는 빵스님이 해주셨으면 하는 바램이 살-짝 있습니다. ㅎㅎ


2007/11/22 14:51 2007/11/22 14:51
출처 http://webarty.com



AJAX에 대해서 인터넷 검색을 하다 여기저기에 있는 것들을 허락없이 재구성했습니다.ㅜㅜ
활용처는 개발자의 상상력과 응용력에 따라 무한히 확장될 수도 있겠네요.
prototype.js를 이용하여 확장한 것이 바로 아래 것들,
http://script.aculo.us/
http://openrico.org/
여기 나온 예제들도 함 봐보세요. 이런 걸 RIA라고들 하네요.
http://wiki.script.aculo.us/scriptaculous/show/Demos
http://openrico.org/rico/demos.page
몇 년전만 해도 정말 이런거 할려면 삽질에 삽질을 거듭해야 했는데...
세상 너무 좋아졌습니다...ㅜㅜ

AJAX는...
- 동일 도메인 내에서만 가능합니다.(웹 C/S라고들 하던데...)
(만약 서버투서버(자바<->ASP)로 데이터 통신을 하고 싶다면 XML-RPC를 이용해 보세요.
순수 ASP로만 짜여진 것도 존재합니다.)
- XMLHTTPRequest를 이용하여 HTTP로 통신합니다.
: XMLHTTPRequest는 utf-8로 처리합니다.
- AJAX를 이용한 MVC 모델2 패턴 개발 방법이 가능합니다.
- 자바스크립트로 서버측 데이터를 핸들링합니다.
- 자바스크립트로 OOP도 하네요...ㅡㅡ;


아래 샘플은 prototype.js 파일이 있어야 실행가능합니다.
www.prototypejs.org에서 prototype.js 파일을 다운로드 받으세요.^^

아래 샘플 이외에 Ajax.PeriodicalUpdater 함수도 함 사용해보세요.
지정한 초마다 응답 페이지에서 서버쪽 데이터를 끌어옵니다.
물론 페이지 리프레쉬없이요.
이외에도 다른 함수를 보면 여러개의 이벤트를 동시에 실행할 수 있습니다.
api 참조하세요.
http://www.prototypejs.org/api

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=euc-kr" />
<script src="lib/prototype/prototype.js" type="text/javascript"></script>
<script language="javascript">
function ajaxRequest(strResponseURL)
{
var httpObj = new Ajax.Request
(
strResponseURL,
{
// 기본값은 비동기식, 동기식으로 작성할려면, api 참조
// method:'post', // post가 기본값이므로 생략 가능
parameters:Form.serialize('frm'),
// form의 요소들을 통째로 응답페이지로 전송
onSuccess:displayJson,
// 성공했을 경우, displayJson 함수 호출
// onSuccess:displayTextHtml // 일반 텍스트나 html 형식을 경우
onFailure:displayError
// 실패했을 경우, displayError 함수 호출
}
);
}


function displayJson(responseHttpObj)
{
var returnData = responseHttpObj.responseText;
// 만약 XML 형태로 데이터를 받아온다면 responseHttpObj.responseXML

returnData = eval("(" + returnData + ")");

switch (returnData.dataType)
{
// 사실 응답 페이지가 utf-8로 저장되었다면 decodeURIComponent를 안써도 상관없지만,
// 그래도 혹시나 하여 사용
case 'one' : $("results").innerHTML = decodeURIComponent(returnData.response);
break;

case 'array' : viewResponse(returnData.response);
break;

default : $("results").innerHTML = decodeURIComponent(returnData);
}
}


function displayTextHtml(responseHttpObj)
{
var returnData = responseHttpObj.responseText;

$("results").innerHTML = decodeURIComponent(returnData);
}


function viewResponse(data)
{
var intLength = data.length;
var strHTML = "";

for(var i=0; i<intLength; i++)
{
strUserID = decodeURIComponent(data[i].userID);
strUserName = decodeURIComponent(data[i].userName);

strHTML += "ID : " + strUserID + '<br>';
strHTML += "이름 : " + strUserName + '<br>';
}

$("results").innerHTML = strHTML;
}


function displayError()
{
$("results").innerHTML = 'AJAX failed';
}

/*
// 2번과 3번은 skip해도 됩니다.

1. AJAX 응답 페이지는 utf-8로 인코딩하여 저장
: 한글 처리를 위해서 반드시 필요
: 여기서는 json.asp, json2.asp, json3.asp을 utf-8 인코딩 형식으로 저장하였음.
2. 응답 페이지에서 단일값을 전송할 경우, displayJson
{
"dataType":"one",
"response":"realsnake"
}
3. 응답 페이지에서 배열로 전송할 경우, displayJson
{
"dataType":"array",
"response":
[
{
"name":"realsnake",
"height":"???"
}
]
}
4. 응답페이지에서 text나 html을 통째로 전송할 경우 : displayTextHtml
*/
</script>
</head>
<body>
<h3>AJAX in prototype.js Example</h3>
<p>
prototype.js를 이용한 AJAX 예제
</p>
<form id="frm">
<!--
<input type="text" id="test" size="10">
form의 요소의 값들을 전송한다면, 받는 페이지에서는 strTest = Request("test")와 같이,
일반적인 get/post 방식으로 받으시면 됩니다.
//-->
<p><input type="button" value=" 확인 " onclick="ajaxRequest('json3.asp');"></p>
</form>
<div id="results">[Results Area]</div>
<!--
위 div 태그 안의 내용은 AJAX로 받아온 데이터로 변경됩니다.
//-->
</body>
</html>



<!-- 이하 파일들은 반드시 utf-8 인코딩 방식으로 저장 //-->

json3.asp
<%
' ---------------------------------
' asp 파일에서 DB 처리를 하고 결과 값을 넘겨도 잘 됩니다.
' 옵션대신 DB 처리결과를 함 넣어보세요.
' 그냥 일반 text만 써도 되고 아래처럼 html 태그를 같이 써도 됩니다.
' 아래 html코드와 텍스트가 그대로 위 div 태그에 페이지 리프레쉬없이 입력됩니다.
%>
<select name id="selectID" style="font-size:12px;">
<option value="1">옵션</option>
</select>
<%
' ---------------------------------
%>


json2.asp
<%
' 아래 예제들은 json(javascript object notation) 형태의 예제입니다.
' -------------------------------------
' 호출하는 페이지의 viewResponse 함수를 볼 것
%>
{
"dataType":"one",
"response":"응답"
}
<%
' -------------------------------------
%>


json.asp
<%
' -------------------------------------
' dataType이니 response니 하는 것들은 나름대로 데이터를 구조화하기 위하여
' 임의적으로 작성하여 사용한 것입니다.
' 호출하는 페이지의 viewResponse 함수를 볼 것
%>
{
"dataType":"array",
"response":
[
{
"userID":"realsnake",
"userName":"누구신지"
}
]
}
<%
' --------------------------------------
%>
2007/11/22 14:48 2007/11/22 14:48
출처 http://webarty.com

방법 1. 웹로봇 배제 표준(Robot Exclusion Standard)에 의한 방법

- 웹로봇의 수집과 검색노출을 원치 않는 경우, 우선 해당 웹페이지가 위치한 최상위 디렉토리에 아래의 내용이 포함된 robots.txt 파일을 저장하시기 바랍니다. 
User-Agent:*
Disallow:/ 

만약 웹로봇이 방문한 이후에 robots.txt 의 로봇배제관련 표준이 적용되었다면, 검색결과에 적용되기까지는 다소 시간이 걸릴 수 있습니다. 자세한 로봇배제에 대한 표준은 www.robotstxt.org 를 통해 알 수 있습니다. 

- 특정한 페이지에 대해 웹로봇의 색인이나 링크분석을 막고 싶은 때는 경우에 따라 아래와 같은 메타태그를 HTML 문서의 <HEAD> 부분에 추가하시면 됩니다. 

웹페이지를 검색결과에 노출하고 싶지 않을 때
<META NAME="robots" CONTENT="noindex"> 
 

웹페이지 내에 포함된 링크를 따르는 수집도 막고 싶을 때 <META NAME="robots" CONTENT="noindex, nofollow">
2007/11/14 17:08 2007/11/14 17:08
출처 http://webarty.com



Lightbox 는 사진 감상시 놀라운 효과를 나타낼수 있도록 도와주는 자바스크립트 라이브러리 입니다.
외국에서 제작된 것으로 링크1 을 클릭하시면 제작자 홈페이를 방문하실 수 있습니다.
Lightbox 를 프로그램에 적용하는 것은 메뉴얼에 나와있는 것처럼 매우 쉽습니다.
최근에 Lightbox 에 이어 Lightbox2 가 출시되었고 이 문서는 이에 대하여 설명합니다.
(Lightbox2 의 저작권은 Creative Commons Attribution 2.5 License 를 따르고 있다고 제작자 홈페이지에 나와있습니다.)

우선 위에 첨부파일을 다운로드 합니다.
Lightbox2 를 적용할 계정에 업로드하고 적용할 페이지에 스크립트 코드를 삽입합니다.
이때 js/ 디렉토리는 자신의 경우에 맞게 수정하셔야 합니다.

<script type="text/javascript" src="js/prototype.js"></script>
<script type="text/javascript" src="js/scriptaculous.js?load=effects"></script>
<script type="text/javascript" src="js/lightbox.js"></script>

이로써 Lightbox2 를 적용할 준비는 완료되었습니다.
Lightbox2 의 효과를 나타낼 이미지를 다음과 같이 링크하기만 하면됩니다.

<a href="images/image-1.jpg" rel="lightbox"><img src="images/thumbnail-1.jpg"></a>
<a href="images/image-2.jpg" rel="lightbox"><img src="images/thumbnail-2.jpg"></a>
<a href="images/image-3.jpg" rel="lightbox"><img src="images/thumbnail-3.jpg"></a>

경로나 파일명은 자신에게 맞게 수정하여야 한다는 것을 잊지마세요.
2007/11/14 17:04 2007/11/14 17:04

출처 http://webarty.com

<head>
<script language="javascript">
function check_ip(ipval){
    document.isp_form.action='http://whois.nic.or.kr/result.php';
    document.isp_form.method='post';
    document.isp_form.target='_blank';
    document.isp_form.domain_name.value = ipval;
    document.isp_form.submit();
    document.isp_form.action='';
    document.isp_form.method='';
    document.isp_form.target='';
}
</script>
</head>

<body>
<form name="isp_form"><input type=hidden name="domain_name" value=""></form>

<a href='javascript:void(0)' OnClick="check_ip('아이피주소')">아이피주소</a>
</body>



Post로 ip 값을 넘겨줘야함..

Get방식은 안먹음.

출처 http://webarty.com

2007/11/14 16:56 2007/11/14 16:56
“수원시장 업무추진비 영수증 공개하라”
윤경선 시의원, 시정질의 촉구

시의회 일각에서 수원시장 업무추진비 공개를 촉구, 귀추가 주목되고 있다.

수원시의회 윤경선 의원은 오는 31일 열리는 제250회 제2차 본회의에서 시정질문을 통해 수원시장의 업무추진비 사용내역에 관한 영수증 공개를 시집행부에게 요구한다고 최근 밝혔다.

윤 의원에 따르면 현재 수원시장의 업무추진비로 책정된 금액은 1억원에 달하고 있으며, 공적자금인 업무추진비의 사용내역은 시민들에게 구체적으로 공개할 필요가 있다는 것.

윤 의원은 이에 따라 이를 상임위원회에서 논의한 뒤 본회의 의결을 통해 시집행부에게 전달한다는 방침이다.

만약 시집행부가 이같은 요청에 대해 거부할 경우, 시의회는 의장의 권한으로 법적 대응을 할 수 있다.
따라서 시집행부의 시장 업무추진비 공개 수위 여부에 관심이 집중되고 있다.

한편 타 지자체 역시 시장 업무추진비 공개와 관련해 논란이 일고 있다.

ⓒ리더
유진상 기자  유진상
2007-10-25 오후 5:45:38

2007/11/12 09:40 2007/11/12 09:40
명품 도시로 조성 … 내년 9월부터 분양

명품 신도시로 관심을 모았던 광교 신도시가 마침내 첫 삽을 떴다.
경기도와 경기지방공사는 5일 오전 수원시 영통구 이의동 광교신도시 건설현장에서 김문수 지사를 비롯한 김용서 수원시장, 서정석 용인시장, 권재욱 경기지방공사 사장, 지역주민 등 500여명이 참석한 가운데 광교신도시 기공식을 가졌다.
수원시 이의·원천동과 용인시 상현·영덕동 일대 1128만㎡에 조성될 광교신도시는 내년 9월 부터 분양이, 2011년부터 입주가 시작된다. 아파트 2만2469가구, 단독주택 758가구, 연립주택 2313가구, 주상복합 437가구, 업무복합주택 1423가구 등 3만1000가구가 건립된다.
녹지율은 41.4%로 판교(35%), 분당(20%), 일산(22%)에 비해 월등히 높고 ㏊당 인구밀도는 68.7명으로 가장 낮다. 또 업무기능 확충을 위해 경기도청과 수원지검·수원지법 등의 행정 타운과 호텔·컨벤션, IT·BT·NT 등 연구개발단지, 비즈니스 파크, 상업단지 등이 건설된다.
특히 신도청사에서 컨벤션 센터와 비즈니스 파크로 이어지는 1.4㎞의 중심가로는 프랑스의 라데팡스나 독일 베를린의 포츠담 광장을 능가하는 세계적인 명소로 만들어진다.
또 원천 유원지 주변에 들어서는 비즈니스 파크는 품격있는 도심형 워터프론트를 형성, 일본의 록본기 힐스와 같은 국제경쟁력을 갖춘 복합업무단지로 조성된다.
이날 김문수 지사는 “세계에서 가장 아름다운 자연과 훌륭한 설계자, 건축가, 일꾼들이 다 있는데 왜 명품 도시를 만들지 못하냐”며 “광교신도시는 집만 좋은 것이 아니라 대한민국 인재, 세계의 인재가 와서 더 훌륭한 결과를 만들어 내는 도시가 되어야 한다”고 말했다.
한편 경기지방공사가 지난달 25일 신도시내 공동주택부지 1차분 5개 필지 분양신청을 마감한 결과, 판교 경쟁률보다 3배 높은 65:1에 달해 광교 신도시에 대한 관심이 뜨거운 것으로 나타났다.
선상원 기자 won@naeil.com
Copyright ⓒThe Naeil News. All rights reserved.
2007/11/12 09:39 2007/11/12 09:39

먼저 LCMS(Learning Content Management System)란 무엇인가?


e-learning의 가장 기본적인 인프라인 LCMS에 대해 알아보고, 이러닝 시스템의 구축에 필요한 기본적인 인프라의 구조를 이해해보자.


 

•LMS (학습이 잘 일어 날 수 있도록 지원하는 역할을 하는 플렛폼)   +  CMS(대용량의 컨텐츠를 효율적으로 관리하기 위해서 사용되는 시스템)
•e-Learnig컨텐츠를 학습자의 필요에 맞게 학습객체(LO)로 생성, 저장, 조합, 전달할 수 있는 플렛폼


LCMS와 LMS의 차이는 전자가 학습컨텐츠만을 다룬다는 점이다.


LCMS의 특징


1. 학습객체를 구조화하여 저장, 검색하는 데이터베이스 시스템이 필요.
2. 학습자에게 최적의 학습활동이 이루어질 수 있도록 학습객체를 전달.
3. 컨텐츠와 컨텐츠를 통제하는 로직을 분리, 다양한 전달방법이 가능
4. 학생 신상, 성적, 학습 진도 등 기본적 행정기능 내장.


관점상의 구분


그림을 보면 쉽게 이용자 관점상에서 LMS와 LCMS를 구분할 수 있다.



사용자 삽입 이미지

LMS, LCMS의 세부 설명


학습관리시스템(LMS)


LMS는 블랜디드 러닝을 관리하는 중앙행정시스템이다. 이 시스템의 역할은 코스 카탈로그를 생성하고, 학습자들이 등록 및 수강신청을 하며, 진행 상황과 점수를 확인하고, 학습 관련 비즈니스 절차를 실행하는 것이다. 모든 행정적인 학습 정보의 데이터 저장소인 것이다.

LMS업체들은 전체 플랫폼을 상품으로 하지만, 사실 LMS의 주요 기능은 행정적인 부분을 다루는 것이다. 많은 회사들이 LMS없이 프로그램을 관리하지만 다양한 프로그램, 학습자, 비즈니스 절차를 관리하려면(유료훈련, 자격증 프로그램, 여러 학습 경로, 선수학습, 스킬 중심의 프로그램) LMS가 필요하다.


많은 비즈니스 절차(Business Process)들이 교육과 관련되어 있다. 블랜디드 러닝의 관점에서 LMS는 다음과 같은 것들을 관리한다.

- 스케쥴이 정해진 이벤트(강의식, 실시간 이러닝)
- 자율 학습 프로그램(웹기반의 코스)
- 참고자료(웹페이지)
- 오프라인 교재(책)


실시간의 웹기반의 코스, 책이 블랜디드된 한 프로그램의 진행 과정을 LMS에서 트래킹하기를 원하는가?


LMS에서 학습자의 진행 과정을 리포팅하기를 원하는가?


컨텐츠 전달 시스템(CMS)


- 학습자들은 LMS의 과정소개서를 통해 과정이나 절차를 확인한다.
- 학습자들이 등록을 하고 과정이나 각 장의 URL을 클릭하면 LMS가 등록을 추적한다.
- URL을 따라 미디어 컨텐츠의 첫 페이지를 열어주거나 실시간 웨비나의 경우 학습자들에게 창을 열어준다.
- 사용자들은 컨텐츠를 클릭하며 다음 장으로 넘어가고, 연습 문제를 풀고 평가를 받는다.
- 컨텐츠가 진행되는 동안 “데이터를 추적하는” 흐름은 다시 LMS로 넘어가서 북마크, 진행상황, 점수, 수료 등을 저장하는 것이다.
- 사용을 마치면 컨텐츠가 끝나고 LMS에 북마크가 된다.


학습 컨텐츠 전달 시스템(LCMS)


컨텐츠 개발 인프라는 컨텐츠 개발자 및 교수설계자들이 사용하는 개발툴 자체와 개발 과정에서 작업을 하게 되는 컨텐츠 관리시스템의 두 가지 구성요소로 이루어진다. 많은 과정들과 컨텐츠 개발팀의 관리를 돕는 이러닝 인프라로 비교적 새로운 영역이다. 최근 점점 더 LCMS를 사용하는 추세다.

개발툴은 당연히 중요하다. 이는 선택한 미디어를 구축할 수 있도록 한다.
LCMS는 업무 과정의 저장소 기능을 하기 때문에 한 개발자가 그래픽 작업을 하는 동안 다른 개발자는 평가 부분 작업을 할 수 있다. 또한 코스의 구성요소가 통일감 있는지를 확인해서 나중에 수정과 유지보수를 쉽게 할 수 있도록 한다.

많은 경우에서 코스웨어의 어떤 부분이 동작하지 않으면 학습자들은 그 코스를 수강하지 않고, 다시는 돌아오지 않음을 발견했다. 학습자의 경험이 부정적이면 영원히 그 학습자를 놓치게 된다.


LMS의 필수 기능


융통성 있고 사용하기 쉬운 과정 소개서
등록 및 과정을 시작하기 쉬운 사용자 인터페이스
학습 경로 및 커리큘럼별로 과정을 그룹화할 수 있는지
c-Learning이 포함된 하나의 프로그램과 통합하고 스케쥴을 잡을 수 있는지
자원(웹페이지, 문서)등을 과정에 포함시킬 수 있는지
평가툴이 있는가
AICC표준을 통해 추적이 가능한지
리포트나 분석 시스템이 훌륭한지(대부분 간과하지만, 보급 후 가장 많이 사용하는 부분)
학습자 피드백 취합 – 설문
수강생 대상 이메일 발송


LMS가 정말 필요한가?


재미있고 효과적인 프로그램 중에 많은 경우 LMS를 전혀 사용하지 않는다.
다시 말하지만 여러 개의 학습 프로그램을 관리, 추적, 정리하는 것이 LMS의 역할이다.
두 세가지 정도의 미디어와 약간의 보조 문서로 구성된 하나의 블랜디드 러닝 프로그램을 개발, 실행해야 한다면 LMS없이도 가능하다.

교육 훈련을 측정하기 위한 방법은 여러가지가 있으며, 측정의 단계는 등록, 활동, 수료, 만족도, 점수 또는 학습, 업무나 비즈니스에 미친 영향(ROI)이 있다.


LMS측정 포인트


등록 측정
활동 측정
수료 측정
만족도 측정
점수 측정
비즈니스 영향 측정(ROI)


교육 훈련의 핵심은 교수설계이다. 프로그램 설계와 전달에 있어서 가장 중요한 사람은 개발자나 기술자가 아니라 여전히 강사와 내용전문가이다.

사람들은 경험을 통해서 학습한다. 아무리 많은 서적, 비디오, 애니메이션도 경험학습을 대체할 수 는 없다. 따라서 경험학습을 위한 방안을 끊임없이 고민해야 한다.

사람마다 학습의 형태가 다르다. 어떤 미디어도 모두를 충족시킬 수 없다. 따라서 미디어를 섞음으로써 보다 많은 사람을 충족시킬 수 있다.

관리가 중요하다. 현장 관리자들은 어떤 훈련 프로그램도 만들 수 있고, 망칠 수도 있다. 그들은 사람들의 수행을 증진시키는 방법을 가장 잘 알고 있다.

LMS 회사로부터 출시된 새로운 플랫폼이란 패키지 안에 필요한 모든 요소들이 들어가 있는 것으로 프로그램을 블랜드하거나 학습상황의 모니터, 측정, 평가를 용이하게 해준다.

2007/11/12 09:33 2007/11/12 09:33
 
사용자 삽입 이미지
Aero Compact 1.1 for Winamp by ~nyolc8

우선 설치하시면 한글이 깨질꺼에요..

Winamp Modern 에서 제목 표시창에 한글이 보이게 할려면
① 윈엠프플레이어 Options - Modern Skins - Font Rendering -
Internal TTF Renderer 바로 아래에 있는
Use FreeType internal TTF rendering <-- 이곳의 첵크를 지우세요.
② Alternate Fonts에서 두개 모두 첵크하시면 바로 한글이 보일겁니다
다른건 첨 상태로 건들지 마시구요

그리고 투명도 설정은

Options - Modern Skins - Alpha Blending
에서 Enable Desktop Alpha blending에 체크해주시면 됩니다.


ps, 이렇게 폰트 설정을 해주면 한글이 제대로 보이는 대신에 시간 표시가 짤리네요. 이건 어쩔 수 없나 봅니다.


2007/11/12 00:01 2007/11/12 00:01

전에 개발 할때 사용했었는데 .. 지금 막상 없으니 허전 하더군요 그래서.. ..

훈민 XP에서 추출 했습니다..

지금 무료로 받는 것도 있지만 광고가 있어서.. ..이건 가볍고 쓸만 해요 ..ㅎㅎ


컴퓨터에서 간단하게 사용할 수 있는 메모패드입니다.


원래는 훈민정음 스케줄러 패키지안에 들어 있던것 입니다.


지저분한 포스트잇으로 모니터를 채우지 마시고, 깔끔하게 메모패드를 써보세요.


단 바탕화면에 너무 많은 메모가 있으면 느려질 수 있습니다.

2007/11/11 19:44 2007/11/11 19:44
사용자 삽입 이미지
정부는 개성공단 2단계 사업과 해주특구사업 등 대북사업의 원활한 추진을 위해 김재현 한국토지공사 사장을 연임시키기로 한 것으로 알려졌다.

건설교통부는 11월 임기가 끝나는 김 사장을 연임시는 방안을 최근 기획예산처 공공기관운영위원회에 제출했다.

오는 16일 공공기관운영위의 심의.의결을 거쳐, 대통령이 임명하면 연임이 이뤄진다.

공기업 사장은 임기가 3년이지만 연임될 경우에는 임기가 1년이다.

2004년 11월 말 토지공사 사장으로 선임된 김재현 사장은 10월 초 남북정상회담에 특별수행원 자격으로 방북하기도 했다.
CBS경제부 박종환 기자 cbs2000@cbs.co.kr 박종환의 블로그 가기
(대한민국 중심언론 CBS 뉴스FM98.1 / 음악FM93.9 / TV CH 412)
저작권자 ⓒ CBS 노컷뉴스 (www.nocutnews.co.kr) 무단전재 및 재배포 금지
2007/10/18 14:38 2007/10/18 14:38
사용자 삽입 이미지
수원=뉴시스】

다음달 1일로 민선4기 취임 1주년을 맞는 김용서 수원시장이 지난 1년간 추진한 행정 성과를 설명하고 있다. /강종민기자 ppkjm@newsis.com <관련기사 있음>

2007/10/18 14:24 2007/10/18 14:24
[동정]김재현 한국토지공사 사장 외

사용자 삽입 이미지
▲김재현 한국토지공사 사장=24일 경기 화성시 동탄 신도시 현장을 방문, 입주 종합상황실과 교통상황실 등을 둘러본 뒤 관계자들에게 입주민들이 불편함을 느끼지 않도록 만전을 기해 달라고 당부할 예정이다.

▲박재규 경남대 총장=26일 오후 4시 서울 조선호텔 2층 라일락 룸에서 북한대학원 초빙교수 30여명과 함께 ‘남북관계 전망과 남남갈등 해법’이라는 주제로 연찬회를 개최한다.

ⓒ 세계일보&세계닷컴(www.segye.com), 무단전재 및 재배포 금지

<세계닷컴은 한국온라인신문협회(www.kona.or.kr)의 디지털뉴스이용규칙에 따른 저작권을 행사합니다.>

2007/10/18 14:20 2007/10/18 14:20
사용자 삽입 이미지
[서울신문]“행정복합도시·혁신도시건설의 기반을 다지는 한해가 될 것입니다. 주거 안정을 위한 2기 신도시 개발사업에도 역량을 집중할 것입니다.”

김재현 한국토지공사 사장은 올해 일복이 터졌다. 고유 업무인 택지개발사업 외에도 추진해야 할 국책사업이 산더미처럼 쌓였다. 행정복합도시·혁신도시건설 등을 성공적으로 이끌기 위한 기반을 다져야 한다. 택지 1650만평을 사들이고,590만평을 새로 개발한다. 공급하는 택지만 해도 620만평에 이른다.

국책사업 기반 구축에 역점

국토 균형발전을 위한 첫 단계인 행복도시 사업의 기반을 다지는 데 주력한다. 지난해 시작된 용지보상을 마칠 계획이다. 보상은 강제 수용을 최대한 줄이고 가능하면 100% 협의보상을 이끌어낸다는 방침이다. 보상비 지급에 따른 주변 땅값 상승을 막기 위한 대책도 함께 마련된다. 행복도시 건설은 자족적 도시기능과 미래지향도시 인프라 구축에 역점을 둔다.

김 사장은 “행복도시 건설은 지난해 테이프를 끊은 데 이어 보상이 순조롭게 진행되고 있다.”면서 “세계 어디에 내놓아도 빠짐없는 일터·쉼터·놀이터가 어우러진 명품도시로 조성할 것”이라고 밝혔다.

공공기관 지방이전과 함께 산·학·연·관이 연계되는 혁신도시 건설도 김 사장이 애정을 갖고 챙기는 사업이다.

우선 토공이 이전하는 전북지역에 혁신도시 모델을 제시할 계획이다. 다른 지역 혁신도시 개발도 지방자치단체와 협의를 통해 주변 환경에 맞는 최적의 활용방안을 마련키로 했다.

남북경제협력의 상징인 개성공단 조성사업을 차질없이 추진하는 것도 토공의 중점 사업이다. 올해 공단 터닦기 공사를 마치고 지난해 본 단지 100만평 중 1차분 5만평을 분양한 데 이어 나머지 부지도 모두 분양할 예정이다. 내년 상반기 완료 예정인 공단 기반시설 설치 공사도 역점 사업이다. 올해 숙박시설 등 생활편익시설을 지어 입주기업의 불편이 없도록 할 방침이다. 인천 청라·영종지구 및 부산·진해경제자유구역 건설도 차질없이 추진한다.

김포·남양주 신도시 개발

수도권 주택난 해소를 위한 신도시 건설도 멈추지 않는다. 판교신도시는 다음달 중대형 아파트 용지를 공급할 계획이다. 동탄신도시는 부지조성공사를 진행 중이며 12월부터 입주를 시작한다. 김포신도시 개발사업도 보상을 시작하는 등 첫 삽을 뜬다.

사용자 삽입 이미지

쾌적한 도시환경을 갖춘 100만평 이상의 신도시급 국민임대주택단지도 개발한다. 남양주 별내(154만평)는 지난해 이미 개발계획승인을 받아 본격적인 보상에 착수했다. 고양 삼송지구(148만평)와 대구 신서지구(133만평)는 올해 개발계획승인을 받고, 삼송지구는 올해 보상에 들어간다.

8·31대책 후속조치의 일환으로 토지비축을 확대하고, 국토정보화 사업도 적극 지원할 계획이다. 지난해 87개 지자체에 대한 토지종합정보망을 추가로 구축한 데 이어 올해는 전국 250개 지자체로 확대해 완벽한 토지전산망 구축사업을 완료한다.

용인죽전·용인동백·화성동탄·대전엑스포 등 프로젝트파이낸싱 사업도 성공적으로 마무리짓기로 했다. 김 사장은 “택지원가 공개 등 외부의 공격이 거세지고 있는 만큼 경영의 투명성 제고와 윤리경영의 틀을 다지는 데도 신경을 쓸 것”이라고 말했다.

류찬희기자 chani@seoul.co.kr

- Copyrights ⓒ서울신문사. 무단 전재 및 재배포 금지 -

2007/10/18 14:18 2007/10/18 14:18
사용자 삽입 이미지
“모든 국민이 판교 신도시를 주목하고 있다고 해도 과언이 아닙니다. 토지공사는 정부의 계획에 맞춰 주택건설 업체들의 판교 신도시 분양이 차질 없도록 공동 주택 용지 공급에 역량을 모아나갈 것입니다.”

지난해 11월 내부 승진으로는 한국토지공사의 최고경영자 자리에 오른 김재현(61ㆍ사진) 사장. 그는 판교 신도시 개발과 개성공단, 경제자유구역 사업 등 주요 현안을 해결할 적임자로 평가 받고 있다.

김 사장은 “판교 신도시는 주택시장 안정을 위해 분양가 상한제와 채권 및 분양가격 병행심사제가 처음 적용되는 사업지구인 만큼 정부와 긴밀하게 협의하고 있다”며“토공이 시행하는 공동주택용지를 6월에 공급, 오는 11월께 아파트 일반 분양이 가능하도록 하겠다”고 말했다.

올해를 ‘경영혁신 원년’으로 선포한 김 사장은 토지공사 개혁에 나섰다. 그는 “대기업도 한 순간의 변화 시기를 놓치면 무너지는 시대에서 공기업도 예외가 될 수 없다”며 “사업, 조직, 인사 등 경영 전반에서 키워야 될 부분은 적극 키우고 도려내야 할 부분은 아픔이 있더라도 과감히 도려내겠다”고 강조했다.

-판교 신도시가 ‘로또’로 불리면서 전국민의 관심을 불러 일으키고 있습니다. 판교 신도시 분양 계획에 대해 말씀해 주십시요.

▲판교 신도시 사업은 현재 98%의 보상 진척률 보이고 있고, 올해 상반기 중에 공사에 착공할 예정입니다. 분양 일정에 대해서는 정부에서 사업시행목적, 추진일정 그리고 주택가격 정책 등을 종합적으로 감안, 분양계획을 수립하여 발표하고 있습니다. 사업시행을 맡고 있는 토지공사는 정부와 긴밀하게 협의하여 11월 중 아파트 일괄 분양이 가능토록 모든 역량을 모아 나갈 것입니다.

-일반인들은 판교 신도시 분양가에 민감할 수 밖에 없습니다. 정부는 채권입찰제 적용 아파트를 1,500만원 수준에서 묶겠다고 발표하기도 했는데요. 판교 신도시에서 택지 공급가격은 어느 수준이 될까요.

▲보상이 완료된 후 감정평가를 실시해야 정확한 주택용지 공급 가격을 알 수 있습니다. 아직 정확한 것은 아니지만 공급가격이 평당 대략 800~900만원 사이가 될 듯 합니다. 여기에 용적률 160%를 적용하면 분양 아파트 평당 토지가격은 약 500만원 정도 될 것으로 예상합니다.

-판교 신도시는 어떻게 개발되는 지요.

▲판교신도시는 2만9,000세대에 8만9,000명 정도를 입주시킬 계획이며, 인구밀도는 ha당 96인으로 198명인 분당의 절반수준입니다. 용적율 또한 160% 수준으로 185%인 분당보다 훨씬 낮으며 녹지율도 35%나 되는 등 선진국형 저밀도 주거문화 창출을 선도할 수 있을 것으로 기대됩니다.

선진 전원도시로 개발되는 판교신도시는 우선 주택을 배치할 때 바람 길을 고려, 주변 산에서 불어오는 신선한 공기가 도심지 내부를 통과하여 순환될 수 있도록 할 계획입니다. 광통신 인프라를 구축하여 원격검침, 디지털 홈서비스, 방범 등에 대해 유비쿼터스 환경을 조성, 디지털도시를 구현할 것입니다. 또 배출쓰레기를 지하 수송관로를 통하여 집하장까지 자동 수집되도록 함으로써 쓰레기 차가 보이지 않는 ‘클린시티’로 조성하려고 합니다.

-주택업체 들은 택지 조성원가에 비해 토지공사의 아파트 용지 공급가격이 너무 높다고 합니다. 건설업체 들의 지적처럼 분양가 책정이 과다한 것은 아닌지요.

▲토지공사가 조성 공급하는 택지의 공급가격은 택지개발촉진법에 의해 결정됩니다. 전체사업 면적의 45%를 도로, 공원 등으로 지방자체단체에 무상귀속하고 있으며, 30%는 이주대책용, 임대아파트, 공용의 청사 부지 등으로 조성원가 이하로 공급하고, 20%를 감정평가를 통한 감정가격으로 공급하고 있습니다.

택지원가는 토지보상비와 건물 등의 간접보상비, 주변지역의 교통망 확충을 위해 투입되는 간선시설비 등이 포함됩니다. 자체재원으로 정책사업을 수행하고 있는 토지공사는 여기에 적정수준의 수익성도 확보되어야 합니다. 그래야만 지자체에 무상으로 귀속되는 공공시설용지 및 조성원가 이하로 공급되는 임대아파트 용지 등에서 발생하는 손실을 충당할 수 있는 것입니다.

-토지공사가 적정한 수준에서 공급했다는 택지에서 공급된 일반 아파트의 분양가는 매우 높습니다.

▲시민단체 등의 제기한 문제에서도 알 수 있듯이 대부분의 이익은 토지공사가 조성한 택지를 공급 받은 주택건설 업체가 적정원가 개념을 적용해서 분양가를 책정하지 않고 주변지역의 아파트 시세에 맞추어 가격을 책정함으로써 발생한 문제라고 보고 있습니다. 즉, 토지공사가 공급하는 택지가격이 비싼 것이 아니라 분양가격 자율화 이후 건설업체의 과다한 이윤추구에 기인한 것으로 보입니다.

-주택시장 안정을 위해서는 지속적인 택지 개발이 필요합니다. 토공에서 추진중인 대규모 사업은 어떤 것이 있는지요.

▲토공은 ‘2기 신도시’ 사업으로 화성(동탄)신도시에 이어 판교 신도시와 함께 김포ㆍ파주 신도시 개발을 순차적으로 진행하고 있습니다. 이와 함께 경기도와 평화신도시, 국제자유도시 개발을 추진하고 있습니다. 평화신도시는 미군 기지가 이전하는 평택 지역발전을 위해 기지 주변에 500만평 규모의 배후도시를 건설하는 사업으로 구체적인 검토작업을 벌이고 있습니다. 국제자유도시는 주한 미군이 이전한 뒤 경기북부 지역의 발전 여건을 확충하고 대북 교류 기반을 조성하기 위해 추진되는 것으로, 동두천ㆍ의정부ㆍ양주 일대의 500만평에 국제도시를 건설하는 개발사업입니다.

-경제자유구역 사업에 대한 추진방향과 토지공사의 역할에 대하여 말씀하여 주십시오.

▲2003년 경제자유구역법령이 시행되어 인천, 부산진해, 광양만권 등 3개의 경제자유구역이 지정되어 있습니다. 토지공사가 사업 참여하기로 확정된 지구는 인천청라(541만평), 인천영종(570만평) 및 서부산유통단지(25만평), 진해남양(9만평) 등이며 부산권과 진해권에 추가참여를 검토 중에 있습니다.

토지공사는 경제자유구역 개발사업에 적극 참여, 외자유치를 위해 외자유치팀을 설치하고 국제 프로젝트파이내닝(PF)를 추진하고 있으며, 재경부와 함께 미국, 중국, 동남아 등의 유수기업 들을 방문하여 직접투자(FDI)를 적극 유치하고 있습니다. 청라지구를 중심으로 대형 테마센터 및 차이나시티 등의 유치를 추진, 미 HRH사와 MOU체결했으나 외자유치 실현단계까지는 연결되지 못하고 있습니다.

-개성공단 사업은 통일을 대비하기 위한 국가적인 프로젝트입니다. 개성공단 사업의 현황과 전망을 말씀해 주십시오.

▲개성공단은 2002년 북측과 개발업자 지정 합의서를 체결한 이후 끈기 있게 사업을 준비해 온 결과 작년 4월에 부지조성공사에 착수하여 현재 2만 8,000평의 시범단지에 15개 업체가 입주를 준비하고 있습니다. 이미 2개 업체는 제품을 생산 하고 있으며 2007년까지 개성공단 1단계 사업을 준공할 계획입니다.

토지공사는 개성공단 입주기업의 원활한 생산활동을 지원하기 위하여 지난해 말 북측과 전력ㆍ통신시설 공급에 대한 합의서를 체결했습니다. 또 공장용지 1차분 5만평을 올해 3월 중 분양하는 것을 시작으로 나머지 공장용지, 지원시설용지 등 약 60여 만평을 입주수요와 현장 여건을 감안하여 단계적으로 분양해 나갈 계획입니다.

-올해로 토지공사가 창립 30주년을 맞습니다. 30년을 맞는 의미와 영속기업으로서의 향후 발전계획에 대해 들려 주십시오.

▲토지공사는 75년 설립이래 총 1억4,000만평의 토지를 개발, 국민 10명중 1명은 토지공사에서 조성한 도시에 거주하고 있을 만큼 도시용지의 안정적 공급에 절대적으로 기여했습니다. 이와 함께 3,600만평의 산업ㆍ과학단지 등을 조성, 경제발전의 견인차 역할을 담당하여 왔습니다. 최근에는 개성공단, 경제자유구역, 지역종합개발사업 등 국가정책적 사업을 차질 없이 수행함으로써 명실상부한 국민의 공기업으로 거듭나고 있습니다.

하지만 그 동안 수 차례에 걸친 경영혁신 노력에도 불구하고 비능률적인 업무관행에서 완전히 벗어나지 못한 것도 사실입니다. 이러한 상황인식 하에 ‘변화와 혁신’을 최우선적 경영방침으로 정하고, 획기적인 경영혁신을 해나갈 계획입니다. 경영혁신을 통하여 세계 유수의 기업과 당당하게 경쟁할 수 있는 초일류 공기업으로 성장ㆍ발전시켜 나갈 계획입니다.

-취임 후 중점을 두고 추진해 오신 경영혁신 사례나 새로 도입한 시스템에 대해 설명해 주십시오.

▲먼저 다양한 조직 및 업무수요에 부응하는 탄력적이고 선진화된 인사정책을 위해 조직역량을 극대화할 수 있는 인사제도를 개발하고 기존 제도를 과감하게 개선하고 있습니다. 최근 단행한 정기인사에서도 사전에 인사의 원칙을 공개하고 직종간 교차보직이동, 직위 공모제 등 투명성과 공정성을 위한 제도를 시행했습니다.

윤리경영에 대한 시스템 정비도 중요한 과제 중 하나입니다. 이를 위해 자체적인 ‘부패방지팀’과 ‘클린신고센터’를 설치하는 등 제도적 보완을 계속하고 있지만 무엇보다 중요한 것은 직원 개인의 자기정화 노력이므로 직원들이 공직자로서의 사명감을 가지고 높은 수준의 도덕성을 유지할 수 있도록 지속적으로 지도할 계획입니다.

-고객만족 경영에도 많은 비중을 두고 계신다고 들었는데 어떤 방향으로 구상하고 계십니까?

▲그 동안 토지공사는 고객만족, 고객감동을 위해 꾸준히 노력해 왔지만 아직 고객만족도는 만족스럽지 못합니다. 토공은 앞으로 고객불만은 신속히 접수하여 통보할 수 있도록 불평처리제도와 시스템을 대폭 개선, 고객이 감동하는 수준까지 올릴 생각입니다. 제도적인 개선과 함께 고객 접점에 있는 현장부서 직원들의 자세가 무엇보다 중요하므로 ‘찾아가는 서비스’, ‘발로 뛰는 서비스’가 될 수 있도록 독려하고 지도할 것입니다.

-최근 단행된 정기인사를 외부의 청탁이나 간섭 없이 투명하게 처리했다는 평가를 받고 있습니다. 공정한 인사체제를 앞으로 어떻게 정착시켜 나가실지 말씀해 주십시요.

▲최근 이루어진 승진, 보임인사에서 인사행정의 투명성과 공정성을 제고하고, 업무능력 위주의 선발제도를 확립하기 위해 다양한 제도개선이 있었습니다. 창립 30주년이 되는 올해에는 최초로 여성부장까지 탄생, 최근 여성직원 비율이 10% 이상으로 늘어나고 있는 상황에서 업무에 대한 열정과 능력만 있다면 여성직원도 승진기회를 가질 수 있다는 사례를 보여줬습니다. 또한 전통적인 사무직군인 인사관리처장을 기술직군으로 발령하는 등 직종간 벽 허물기와 경영혁신 마인드 제고를 도모했습니다. 직위공모제 활성화를 위해 기존 7개 직위에 더하여 핵심직위 6개 직위에 대하여 공모를 추가 확대 시행, 전문적인 식견과 일에 대한 열정을 지닌 인재가 선발될 수 있도록 개선하기도 했습니다.





대담:윤종열 부동산부장 yjyun@sed.co.kr정리=문병도 기자 do@sed.co.kr
2007/10/18 14:16 2007/10/18 14:16
사용자 삽입 이미지

“우리나라는 유비쿼터스도시(U-city)를 선도할 수 있는 충분한 능력을 갖추고 있고 한국토지공사가 U-city구축에 앞장서고 있다는 데 큰 자부심을 느낀다.”

한국토지공사 김재현(사진) 사장은 15일 내년초부터 본격 시범가동되는 화성동탄 U-city가 성공적으로 운용되면 앞으로 토공이 역점적으로 추진하고 있는 행정복합도시와 혁신도시를 비롯한 신도시들은 국민들이 풍요로운 U-라이프를 즐길 수 있는 본격적인 U-city로 조성해나갈 것이라고 밝혔다. U-city란 첨단정보통신인프라와 언제 어디서나 원하는 정보를 얻을 수 있는 정보서비스가 어우러진 21세기형 최첨단 도시를 말한다.

김 사장은 “현재 우리 사회는 인터넷 쇼핑과 전자금융거래 등 정보통신기술의 발달로 생활양식과 소비패턴이 급격하게 변하고 있으며 이에 따라 국민의 주거문화도 빠르게 변하고 있다”며 “보다 편리하고 안락한 최첨단 도시환경에 대한 시민들의 관심과 욕구는 점점 더 커지고 있다”고 강조했다.

특히 토공은 분당과 일산 등 각종 신도시건설과 대규모 택지사업을 시행해온 풍부한 경험을 바탕으로 기존택지개발방식에 새로운 흐름인 IT기술을 도시개발기법에 접목해 이같은 욕구를 충족시켜줄 수 있는 새로운 차원의 U-city를 건설하고 있다고 설명했다.

김 사장은 여러 지자체들이 다양한 계획을 내놓고 있지만 토공이 개념차원에서 머물고 있는 U-city를 의욕적으로 추진할 수 있는 힘은 지난해 국가기관 경영평가에서 1위를 차지할 정도로 끊임없는 혁신을 해온 데서 찾아볼 수 있다고 말했다.

30년간 토공맨으로 근무해 조직의 잠재력과 약점을 속속들이 알고 있는 김 사장은 2004년 11월 취임하자마자 혁신기획팀을 설치해 강도높은 혁신과제를 추진해왔다.

특히 지난해에는 아래에서 위로 다양한 의견을 제시하는 참여정책(Bottom up),리더십배양,경영시스템 강화와 정보화 혁신 등을 주내용으로 하는 ‘블루프린트 10C’운동을 펼쳤으며 올해는 이를 바탕으로 전사적 위험관리시스템 구축,산하기관인 국토도시연구원 개편등을 통해 급격하게 변화하는 환경을 예측할 수 있는 능력과 전문성을 강화하는데 주력하고 있다.

김 사장은 이같은 혁신은 국토의 균형발전을 통해 우리 국토의 경쟁력을 강화하고 국민 모두가 괘적하게 살수 있는 공간으로 만들어간다는 토공의 기본정신을 이행하기 위한 것이라고 말했다.

토공은 지난해부터 시작된 행정복합도시 용지 보상을 올해 마무리하고 사업시행자로 내정된 6개 혁신도시를 산·학·연·관이 네트워크화 되는 새로운 모델의 도시를 건설하는 사업을 본격적으로 시작할 계획이다. 개성공단조성사업도 부지조성공사를 마무리하고 본단지 100만평 가운데 잔여공장용지 60여만평을 올해내로 분양할 예정이다. 또 동북아 경제중심국가건설에 핵심적인 역할을 하게 될 경제자유구역 건설사업에도 박차를 가해 인천청라지구개발사업자 선정을 최근 마무리했다. 또 토공이 심혈을 기울이고 있는 수도권 주택난 해소를 위해 제2기 신도시건설계획도 꾸준히 추진한다.

토공은 부동산시장 안정을 위해 토지비축분을 늘리는 데도 심혈을 기울이고 있다. 김 사장은 “토지비축규모를 지난해 5만평에서 올해는 30만평으로 대폭 늘렸다”며 “개발가능지를 사전에 비축하고 이를 활용한 국토균형발전을 통해 부동산 가격상승을 근본적으로 방지해나갈 계획”이라고 말했다.

최현수 기자 hschoi@kmib.co.kr

<GoodNews paper ⓒ 국민일보. 무단전재 및 재배포금지>

2007/10/18 14:15 2007/10/18 14:15


KTV 국정와이드  (2007.09.28) 
평양, ‘누가 가나’

 다음주 화요일이면 모두 298명의 방북 수행단이 노무현대통령 내외와 함께 평양으로 향합니다.

문현구 기자>

`2007 남북정상회담`의 수행원 선발기준은 회담의 특수성을 감안해 역할과 기능별로 효율적 보좌가 가능한 인원으로 정해졌습니다.

정상회담 의제와 직접 관련된 관계부처 장관과 청와대 보좌진으로 구성된 공식수행원은 모두 13명으로, 권오규 경제부총리, 김우식 과기부총리, 김만복 국가정보원장, 성경륭 청와대 정책실장 등이 포함됐습니다.

재계 인사들은 구본무 LG그룹 회장, 윤종용 삼성전자 부회장을 비롯해 정몽구 현대자동차회장, 최태원 SK회장, 이구택 포스코 회장, 김기문 개성공단입주기업협의회장 등입니다.

이번 회담에서 다양한 경협방안이 논의될 것으로 예상됨에 따라 대기업 대표와 업종별 대표 등 18명이 경제분야 특별수행원으로 나선 것입니다.

특히 구본무 회장과 윤종용 부회장은 지난 2000년 정상회담에도 참여한 바 있습니다.

이와 관련해 남북정상회담 준비기획단측은 실질적인 남북협력이 가능하도록 현재 대북사업을 하고 있거나 투자의사가 있는 기업 대표 위주로 구성했다고 밝혔습니다.

이같은 진용이 짜여짐에 따라 남북한 경제공동체 건설이 이번 회담의 중요 의제 중 하나로 다뤄질 것으로 전망됩니다.

한편, 정부는 이번 정상회담 특별수행원에 김재현 한국토지공사 사장을 추가로 포함시켰습니다.

토지공사는 개성공단 건설의 설계와 분양 등을 담당하고 있어 제2의 개성공단이나 경제특구 제안 등이 예상되고 있습니다.

이는 최근 대통령의 발언에서도 강조된 적이 있습니다.

아울러 사회와 문화, 여성계를 대표하는 인사들도 북측 해당 분야 대표들과 활발한 논의를 통해 향후 다양한 협력사업들을 전개할 것으로 보입니다.

이밖에 일반수행원 88명은 청와대, 통일부, 국정원 등 실무진으로 구성됐으며, 남북정상회담을 취재할 방북기자단 규모는 50명입니다.


(한국정책방송 KTV 위성방송 ch520 www.ktv.go.kr )
< 저작권자 ⓒ 한국정책방송원 무단전재 및 재배포 금지 >
 
 


 

2007/10/18 14:10 2007/10/18 14:10

김재현(金在炫) 

사용자 삽입 이미지

생년월일-1945/06/24
출생지-전남 고흥
 
[학력]   
1964 순천농림고졸
1969 조선대 토목공학과졸
 
[경력]   
1993 한국토지공사 지원사업처장
1994 한국토지공사 전남지사장
1996 한국토지공사 품질관리처장
1997 한국토지공사 사업개발본부장
1999 한국토지공사 택지본부장 
2001 한국토지공사 부사장
2004 한국토지공사 사장

2007/10/18 14:05 2007/10/18 14:05
MSN 라이브 메신저 멀티 로그인 광고패치 8.1.0178 버전용입니다.

사용자 삽입 이미지




전에 글을 올린줄 알았는데 없네요;;; 이런..
암튼 유용하게 쓰세요~ ㅎㅎ
2007/10/18 13:40 2007/10/18 13:40
사용자 삽입 이미지
어느덧 10여 년을 훌쩍 넘겨버린 베테랑 뮤지션, 최재훈 7집 [Above Water-Still Waters Run Deep]

‘널 보낸 후에’, ‘외출’, ‘함께 있으면 좋을 사람’, ‘비의 랩소디’ 등 듣기만 하여도 그 가창력과 음색이 귀에 맴도는 히트곡을 다수 발표하며 대한민국 락발라드계의 중심이었던 가수 최재훈이 지난 해 5년 만에 다시 돌아왔다. 오랫동안 기다려온 많은 팬들은 여전히 건재한 그의 가창력과 매력적인 보이스컬러에 박수를 보내며 이제는 꾸준한 활동을 할 것을 당부했다. 이에 아무리 힘든 가요계의 현실 속에서도 2007년에는 7집을 발표할 것을 약속했고 이에 보답하는 음반을 들고 다시 찾아왔다.
지난 6집 음반이 오랫동안의 공백을 깨고 준비한 종합 선물 셋트와 같은 음반이었다면 이번 7집 음반의 화두는 최재훈의 음악이다. 음악활동을 시작한지 어느덧 10여 년을 훌쩍 넘겨버린 베테랑 뮤지션으로서의 음악에 대한 고민과 노력, 그리고 앞으로 나아가야 할 방향에 대한 이정표와 같은 음반이 이번 7집 음반 [Above water-still waters run deep]이다. 음반의 제목에서도 알 수 있듯이 긴 공백을 깨고 수면위로 올라와 가요계에 큰 파장을 일으키고자 하는, 비록 한국가요계 전체의 위기 속에서도 자신의 음악을 지켜내며 알려내고자 하는 의지인 것이다.
장나라, 버블 시스터즈의 음반 프로듀서로 활동하고 주얼리, 동방신기 등 인기 가수들의 음반 작업에 참여했던 MINUKI 가 작곡하고 김진아가 작사한 ‘철부지’. 사랑이 끝이 났지만 그 사랑 속에서 헤어나오지 못하는 마음과 다시 돌아올 수 없다 해도 기다릴 수 밖에 없는 영원한 사랑에 대한 아픔을 최재훈 특유의 부드럽지만 애절한 목소리로 노래한다. 그 동안의 명성과 내공이 느껴지는 보이스가 최고의 곡과 가사를 만나 2007년 가을을 수놓을 명품 발라드라는 수식어가 무색하지 않은 최고의 노래가 될 것이다. 이 밖에 ‘제발 부탁해’(‘널 보낸 후에’작곡자 김형준), '안개눈'(신상근 작곡, 최재훈 작사), ‘부디’(김진구 작곡, 가수 이세준 작사), ‘우리 두 사람’(Sato 작곡, 최재훈 작사), ‘이별의 친구’(최규성 작사, 김진아 작곡) 등의 주옥 같은 발라드와 경쾌한 템포의 ‘누가 그래’(윤재상 작곡, 정진환 작사) 의 총 7곡의 신곡과 4곡의 리메이크 곡, 2곡의 2006년 콘서트 라이브 실황 음원이 실렸다.
2007/10/16 21:07 2007/10/16 21:07
사용자 삽입 이미지
우리를 즐겁게 해주는 신인의 등장은 언제나 우리를 설레게 만든다. 여기 우리의 눈과 귀를 즐겁게 해줄 신인이 등장하였으니 그녀가 바로 ‘혜미’ 이다.

2006년 발매 되었던 레인보우 듀엣 앨범 중 타이틀곡인 프리스타일의 ‘이게 나라는 남자야’ 라는 곡과 견우와 비바소울이 참여, 올해 발매된 디지털싱글 ‘The KISS’에서 ‘독한 이별’ 이란 곡을 선보이며 이미 그녀의 예사롭지 않은 존재감을 알리며 중성적 보이스 컬러로 대한민국 대중 음악계에 조심스럽게 모습을 드러낸 그녀가 인고의 세월과 오랜 준비를 마치고 그녀의 1집 정규 앨범을 발표한다.
그녀의 이번 앨범의 특색은 ‘밴드 친화적’ 이라는 것이다.

단순 세션의 느낌이 아닌 그녀를 위해 준비된 어쿠스틱 기반의 사운드가 음악적 완성도를 더욱 높여 주었으며, 또한 곡 마다 각각 다른 느낌의 보이스 컬러를 연출해 내어, 전체 앨범을 듣고 있자면 마치 한편의 음악 소설을 읊조리듯 각기 다른 느낌으로 한 곡씩 불러 나가며 우리의 귀를 쫑긋 세우게 만들어주는 느낌 마저 들 정도이다.


전 세계를 주름잡고 있는‘미니멀’한 편곡 트렌드를 이번 앨범에 응용하여 한 곡 한 곡 작업에 임했으며, PK헤만과 케이윌 등의 피처링을 통해 앨범의 완성도를 한층 더 끌어올렸다.

혜미. 단순하게 나왔다가 사라지는 신인가수는 분명 아니다.
우리 곁에서 오래도록 달콤하게 우리의 기분을 Up 시켜줄, 그녀가 이번 앨범에서 들려주고 있는 ‘Smoothy’라는 곡의 가사처럼 말이다.

2007/10/16 21:02 2007/10/16 21:02


사용자 삽입 이미지
가요계 혜성처럼 떠오른 대형 신인 윤하 1.5집 ‘혜성’
오리콘 Top 10에 오른 일본 발매 앨범 ‘Go! Younha’ 한국어 버전!
경쾌한 피아노록 ‘혜성’ 드디어 한국어로 탄생!

비밀번호 486’으로 국내 데뷔 3개월 만에 온/오프라인을 휩쓸고 대형 신인으로 떠오른 윤하의 일본 앨범 ‘Go! Younha’의 한국어 버전 앨범이 출시된다. 이번 앨범은 2004년부터 올해까지 일본에서 발매됐던 싱글과 앨범에 수록된 곡들 중에서 일본 특유의 음악적 색깔을 지니고 있으면서도 한국 정서에 잘 맞는 곡들을 엄선하여 한국어로 다시 녹음한 앨범이다.

‘오리콘 혜성’이라는 타이틀을 얻게 한 ‘혜성(호오키보시)’을 비롯, 앨범에 수록된 곡들이 주를 이루고 있으며 ‘손을 잡아 준다면(테오츠나이데)’와 신곡 발라드 등 총 15곡이 수록되어 있다. 특히 ‘혜성’은 한국과 일본에서 큰 인기를 얻고 있는 애니메이션 ‘블리치’의 엔딩 곡으로 사용돼 일본에서 많은 사랑을 받았으며 작년 국내 온라인 사이트에서 음반으로 발매됐을 당시 5주간 1위를 석권하는 경이적인 기록을 세우기도 했다.

전곡 한국어로 부른 이번 앨범에서는 일본에서 발매됐던 앨범보다 한층 더 깊어진 감성과 파워풀하게 다듬어진 윤하의 가창력을 유감없이 들을 수 있다. 아련하고 순수한 느낌의 멜로디 라인이 살아있는 일본 스타일의 발라드, 파워풀하고 강한 피아노 록 음악에 덧입혀진 윤하의 한국어 노래들이 가을 감성을 자극하며 매력적으로 다가온다.

특히 이번 1.5집은 윤하가 일본에서 녹음할 당시의 이야기, 비하인드 스토리 등 자신의 주관적인 생각들이 적혀있어 음악을 감상하는 중간 중간 더욱 쏠쏠한 재미를 즐길 수 있다. 1.5집은 윤하가 국내 1집 앨범을 작업하면서 작업을 시작, 활동을 하면서 틈틈이 준비한 앨범으로 오랜 기간 동안 고민한 흔적이 역력하며 소장가치가 충분이 있는 앨범이다.
2007/10/16 20:57 2007/10/16 20:57