FreeWrite2008. 8. 27. 10:16
<신입>
입사후에 하게 되는 업무에는 어떠한 것이 있습니까?
주요업무는 채용공고문에 알려진것이 전부입니까?
주 5일제 근무의 시행여부?
입사후 복리후생에 대해서 알고싶습니다.
입사후 수습기간과 수습기간의 급여는 어떻게 됩니까?
4대보험의 가입/적용여부
입사후 사원 교육은 어떻게 실시됩니까?


<경력자>
이 자리가 어떻게 해서 공석이 된 것인지 궁금합니다.
사원들이 해주길 바라는 목표에는 어떤 것이 있습니까?
사원들이 당신과 어떻게 의사소통을 하기를 바라십니까?
사원들이 어떻게 평가되고 승진이 됩니까?
승진 시 실질적으로 걸리는 시간은 어느 정도 입니까?
회사 내 승진에 대한 정책이 마련되어 있습니까?
미래성장을 위한 귀사의 계획에는 어떤 것이 있습니까?


<공통>
야근에 관한 질문 - 면접관들의 마인드를 알수있음
연봉협상은 언제 어떤방법으로 하는지, 인상률은 평균 어느 정도인지

데브피아의 표병철님글중에서...
Posted by penguindori
DataBase/Oracle2008. 8. 14. 18:18

우선 Trigger을 하계된 계기는 Hynix에서 MDM 장비 통합 작업을 하는데 해당 MDM에서 우리쪽 DB로 데이터를

Insert 혹은 Update를 할 경우 우리쪽 관련 Table의 정보역시 변경혹은 삽입을 해야 할 경우가 발생하여

알게 되었다.


1. 우선 두개의 Table을 만들어 봅시다.

====================================

CREATE TABLE SW_TEST
(
   OK VARCHAR2(10)
)

CREATE TABLE SW_TEST2
(
   OK VARCHAR2(10)
)

====================================


2. Trigger를 만들어 봅시다.
====================================
CREATE OR REPLACE TRIGGER TEST_TRIGGER  -- 트리거를 만들고 이름은 TEST_TRIGGER
AFTER INSERT OR UPDATE                                -- INSERT 또는 UPDATE할때 EVENT 발생
ON SEWOO.S_TEST
REFERENCING NEW AS NEW OLD AS OLD           -- :NEW.   :OLD.  <-- 이거 이름 설정할때..
FOR EACH ROW                                                -- 각각의 행에 대해 실행 한다.
DECLARE                                                         -- 요고 위쪽에 변수 선언 가능 : EX) OK NUMBER;
BEGIN                                                              -- 요고 와 END 사이에 PLSQL 작성
INSERT INTO
S_TEST2
(OK) VALUES (:NEW.OK);
END TEST_TRIGGER;
/
====================================

3. 실행해 봅시다.

INSERT INTO S_TEST (OK) VALUES ('ABC')

4. 확인해 봅시다.

SELECT * FROM S_TEST


ABC   <-- 나온다 ㅎㅎ

짝짝짝 끝이에요;

Posted by penguindori
DataBase/Oracle2008. 8. 6. 21:58


1. 해당 컬럼의 속성 변경 하기
ALTER TABLE midas_usemanagement MODIFY (ITEM01 VARCHAR2(40));

2. 해당 컬럼의 이름 변경하기
ALTER TABLE midas_usemanagement RENAME COLUMN ITEM01 TO IPADDR

3. 신규 컬럼 추가 하기
ALTER TABLE midas_equipment ADD MASTER_KEY VARCHAR(10);

4. 컬럼 삭제 하기
ALTER TABLE midas_equipment DROP COLUMN MASTER_KEY



5. 기본키 추가 하기
ALTER TABLE midas_equipment add constraint pk_midas_equipment primary key (컬럼1, 컬럼2,...);

Posted by penguindori
2008/C#2008. 8. 1. 10:50
Posted by penguindori
2008/C#2008. 8. 1. 09:04

파일 읽어 들이기 (라인수 계산)

using (FileStream fs = new FileStream(@"C:\Windows\Help\tvt_help.js", FileMode.Open, FileAccess.Read, FileShare.Read))
{
    byte[] buffer = new byte[64000];
    int read = 0, count = 0;

    while ((read = fs.Read(buffer, 0, buffer.Length)) > 0)
    {
        for (int i = 0; i < read; i++)
            count += (buffer[i].Equals((byte)'\n') ? 1 : 0);
    }
}

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

using System;
using System.IO;
using System.Collections.Generic;
using System.Text;

namespace Position_Chase
{

    class clsLog
    {
       
        private const string FILE_NAME = @"C:\Documents and Settings\Administrator\바탕 화면\보고자료\LogFile\Log_File.txt";
        FileStream mstm_Log;

        private void FileOpen()
        {
            //FileStream stm = new FileStream(@"C:\tmp\log.txt", FileMode.Create);
            //mstm_Log = new FileStream(FILE_NAME, FileMode.Create);
            mstm_Log = new FileStream(FILE_NAME, FileMode.Append);
        }

        public void WriteTextMsg(string pMsg)
        {
            byte[] myB;
            string lp_LogMsg;

            FileOpen();

            lp_LogMsg = pMsg + '\t' + '\n';
            myB = Encoding.GetEncoding("euc-kr").GetBytes(lp_LogMsg);

            mstm_Log.Write(myB, 0, myB.Length);
            FileClose();
        }

        private void FileClose()
        {
            mstm_Log.Close();
        }
    }
}

Posted by penguindori
DataBase/Oracle2008. 7. 31. 13:56
우선 내가 사용 하는 것을 적어 보도록 하자.
게시판에서 글이 등록되면 자동으로 그 글에 대한 번호를 1번 2번 식으로 순서가 매겨지면서 등록이 되도록
하게 할려고 확인하다가 오라클에서는 SEQUENCE를 사용하는 방법이 있다는것을 확인 할 수 있었다.

[예제]
1. 시퀀스 생성
create sequence sw_num
     increment by 1   -- 1씩 증가하라는거고요
     start with 1        -- 1부터 시작이고요 100 시작할려면 100 이라고 쓰시면 됩니다.
     nomaxvalue       -- 최대값 제한이 없다
     nocycle            
     nocache;

2. 실지 활용 예제
Insert into SW_Board (number, username) values (sw_num.nextval, '박세우')

3. 좀더 상세한 정보 오라클클럽 출처 ^^/


 시퀀스란?

유일(UNIQUE)한 값을 생성해주는 오라클 객체입니다.

◈ 시퀀스를 생성하면 기본키와 같이 순차적으로 증가하는 컬럼을 자동적으로 생성할수 있습니다.

◈ 보통 primary key 값을 생성하기 위해 사용합니다.

◈ 메모리에 Cache되었을 때 Sequence 값의 액세스 효율이 증가 합니다.

◈ Sequence는 테이블과는 독립적으로 저장되고 생성됩니다. 따라서 하나의 sequence를
    여러 테이블에서 쓸 수 있습니다.
 



시퀀스 생성




START WITH : 시퀀스의 시작 값을 지정합니다. n을 1로 지정하면 1부터 순차적으로
                     시퀀스번호가 증가 합니다.

INCREMENT BY : 시퀀스의 증가 값을 말합니다. n을 2로 하면 2씩 증가합니다.
                        START WITH를 1로 하고 INCREMENT BY를 2으로 하면 1, 3, 5,7,.. 이렇게
                       시퀀스  번호가 증가하게 됩니다.

MAXVALUE n | NOMAXVALUE : MAXVALUE는 시퀀스가 증가할수 있는 최대값을 말합니다.                                             NOMAXVALUE는 시퀀스의 값을 무한대로 지정합니다.

MINVALUE n | NOMINVALUE : MINVALUE는 시퀀스의 최소값을 지정 합니다.
                                      기본값은 1이며, NOMINVALUE를 지정할 경우 최소값은 무한대가 됩니다

 


 SQL>CREATE SEQUENCE emp_seq
        START WITH 1
        INCREMENT BY 1
        MAXVALUE 100000 ;

      sequence created.

     시작 값이 1일고 1씩 증가하고, 최대값이 100000만이 되는 시퀀스를 생성했습니다.


 SQL>INSERT INTO emp(empno, ename, hiredate ) VALUES(emp_seq.NEXTVAL, ’julia’ , sysdate);

    empno는 컬럼값을 입력할 때 일일이 다음 값을 기억하지 않아도 NEXTVAL을 사용하여
    자동으로 입력할 수 있습니다.

  현재 값을 반환 합니다. .
   NEXTVAL현재 시퀀스값의 다음 값을 반환 합니다.


 SQL>SELECT emp_seq.CURRVAL FROM DUAL ;

        CURRVAL
        ---------
                  1

 SQL>SELECT emp_seq.NEXTVAL FROM DUAL ;

       NEXTVAL
     ---------
                 2
 
:
 CURRVAL :



사용규칙 

  ◈ NEXTVAL, CURRVAL을 사용할 수 있는 경우
    - subquery가 아닌 select문
    - insert문의 select절
    - insert문의 value절
    - update문의 set절


  ◈ NEXTVAL, CURRVAL을 사용할 수 없는 경우
    - view의 select절
    - distinct 키워드가 있는 select문
    - group by, having, order by절이 있는 select문
    - select, delete, update의 subquery
    - create table, alter table 명령의 default값


시퀀스의 수정 및 삭제




START WITH는 수정할수 없습니다.
START WITH 절이 없다는 점을 빼고는 CREATE SEQUENCE와 같습니다.
 


 SQL>ALTER SEQUENCE emp_seq
         INCREMENT BY 2
         CYCLE;

      sequence altered.

      2씩 증가하고, 최대값을 넘으면 다시 처음부터 순환하도록 수정하였습니다.


      DROP 문을로 필요하지 않은 시퀀스는 삭제 할수 있습니다.

 SQL>DROP SEQUENCE PRD_SEQ;
        sequence dropped.
 

Posted by penguindori
2008/JAVA2008. 7. 30. 20:58

-----------------------------------
우선 먼저 입력 할 수 있는 화면을 만들어 보자.
인터넷을 이용하면 가장 먼저 입력 하는 화면이 나와야 한다.
-----------------------------------
Part #1 소스 부분
<% String strUrl ="/NewBoard.NewBoardServlet?wrk=newboard&cmd=insertArticle"; %>
<html>
<head>
<title>글쓰기</title>
<meta http-equiv="Content-Type" content="text/html; charset=euc-kr">
<link href="/NewBoard/Board.css" rel="stylesheet" type="text/css">
<script language=javascript src="JScommon/CheckMethod.js"></script>
<script language ="javascript">
<!--
 
 function doSubmit()
 {
  var frm = document.formboard
  frm.action = '<%=strUrl%>'
  if(doCheck())
  {
   if(confirm('등록하시겠습니까'))
   {
    frm.submit();
   }
  }
 }
 
 function doCheck()
 {
     with(formboard)
     {
      if (!txtName.value){alert("이름을 입력해 주세요."); txtName.focus(); return false;}
      if (!txtMail.value){alert("메일을 입력해 주세요."); txtMail.focus();return false;}
      if (!txtSubject.value){alert("제목을 입력해 주세요."); txtSubject.focus(); return false;}
      if (!txtContent.value){alert("내용을 입력해 주세요."); txtContent.focus(); return false;}
      if (!txtPWD.value){alert("비밀번호 입력해 주세요."); txtPWD.focus(); return false;}
      
      if(!toMailchk(txtMail.value))
      {
       alert("Mail주소 입력 형식이 잘못 되었습니다."); txtMail.focus(); return false;
      }
     }
     return true;
 }  
 
-->
</script>

</head>

<body>
  
 <table cellSpacing="0" cellPadding="0" width="600" border="0">
  <Tr>
    <td align="center">
     <table cellSpacing="0" cellPadding="0" width="100%" border="0">
      <tr>
    <td align="center" bgColor="#cccccc" height="1"></td>
         </tr>
         <tr>
          <td align="center" height="34">&nbsp;</td>
         </tr>
         <tr>
    <td bgColor="#88a4b3" height="3"></td>
         </tr>
         <tr>
          <td align="center">
        <!-- **************** Form ************** -->
     <form enctype="multipart/form-data" name="formboard" method="post">
     <!-- **************** Form ************** -->
           <table cellSpacing="0" cellPadding="4" width="100%" border="0">
   <tr>
    <td width="100"><IMG height="18" src="../Images2/writer.gif" width="41"></td>
    <td width="500"><input name="txtName" size="17" Class="input"></input></td>
   </tr>
   <tr>
    <td bgColor="#eeeeee" colSpan="10" height="1"></td>
   </tr>
   <tr>
    <td width="100"><IMG height="18" src="../Images2/email.gif" width="41"></td>
    <td width="500"><input name="txtMail" size="35" Class="input"></input></td>
   </tr>
   <tr>
    <td bgColor="#eeeeee" colSpan="10" height="1"></td>
   </tr>
   <tr>
    <td width="100"><IMG height="18" src="../Images2/title.gif" width="41"></td>
    <td width="500"><input name="txtSubject" size="50" Class="input"></input></td>
   </tr>
   <tr>
    <td bgColor="#eeeeee" colSpan="10" height="1"></td>
   </tr>
   <tr>
    <td vAlign="top" width="100"><IMG src="../Images2/file.gif">
     <br>
     <IMG id="PrevImg" src="../Images2/blank.gif">
    </td>
    <td vAlign="top" width="500">
    <table id="AttFiles" cellSpacing="0" cellPadding="0" border="0">
     <tr>
      <td width="500">
     <input type="file" name="AttFile[]" size="40" onChange="CheckImage()"  class="input">
     <input type="button" value="파일추가" onclick="AddFile();" class="input">
      </td>
     </tr>
    </table>
     </td>
    </tr>
    <tr>
     <td height="1" colspan="10" bgcolor="#eeeeee"></td>
    </tr>
       <tr>
     <td width="100"><img src="../Images2/text.gif" width="41" height="18"></td>
     <td width="500">
      <Input type="checkbox" name="UseHTML" Class="input"></Input><label class="txt01" for="UseHTML">HTML을 사용합니다</label>
     </td>
    </tr>
    <tr>
     <td height="1" colspan="10" bgcolor="#eeeeee"></td>
    </tr>
    <tr>
    <td width="100"><img src="../Images2/contents.gif" width="41" height="18"></td>
    <td width="500">
        <textarea name="txtContent" Rows="10" style="width=420;BORDER-RIGHT:#dadada 1px solid; BORDER-TOP:#dadada 1px solid; BACKGROUND-IMAGE:url(../Images2/line.gif); BORDER-LEFT:#dadada 1px solid; BORDER-BOTTOM:#dadada 1px solid; FONT-FAMILY:돋움; BACKGROUND-COLOR:#f9f9f9"></textarea>
    </td>
    </tr>
    <tr>
      <td height="1" colspan="10" bgcolor="#eeeeee"></td>
    </tr>
    <tr>
    <td width="100"><img src="../Images2/password.gif" width="52" height="18"></td>
    <td width="500">
        <input name="txtPWD" Class="input" Width="100px" Type="password"></input>
       </td>
    </tr>
    <tr>
    <td height="1" colspan="10" bgcolor="#eeeeee"></td>
    </tr>
     </table>
          </td>
         </tr>
         <tr>
          <td height="15" bgcolor="#888888"> </td>
         </tr>
 </table>
 
 <table cellSpacing="0" cellPadding="5" width="600" border="0">
  <tr>
  <td align="right" colSpan="2">
         <A href="#" OnClick="doSubmit()"><img id="OnSubmit" src="../Images2/submit.gif"></A>
      <%--<input id="OnSubmit" type="image" src="Images/submit.gif" value="전 송" runat="server">--%>  
   <A href="#"><IMG id="btnList" src="../Images2/list.gif" border="0" width="44" height="42"></A>
   <A href="#"><IMG id="btnReset" src="../Images2/reset.gif" border="0" width="44" height="42"></A>
  </td>
  </tr>
    </table>
    </form>
   </td>
  </Tr>
 </table>
</body>
</html>

Posted by penguindori
2008/JAVA2008. 7. 29. 17:32

package midas.modules.util;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public interface Manager {
 public PageForward execute( HttpServletRequest objRequest,
        HttpServletResponse objResponse,
        String strCmd) throws Exception;
}
---------------------------

package midas.modules.util;

public class PageForward
{
 private boolean bIsRecirect = false;
 private String strPath = null;

 public boolean isRedirect()
 {
  return bIsRecirect;
 }

 public String getPath()
 {
  return strPath;
 }

 public void setRedirect(boolean bValue)
 {
  bIsRecirect = bValue;
 }

 public void setPath(String strValue)
 {
  strPath = strValue;
 }
}

Posted by penguindori
2008/JAVA2008. 7. 28. 17:26

            while(rs.next()){
                PMSheetData objData = new PMSheetData();
               
                objData.fabid       = StringUtil.nvl( rs.getString("FABID") );
                objData.eqid        = rs.getInt("EQID");
                objData.eqcode      = StringUtil.nvl( rs.getString("EQCODE") );
                objData.eqtype      = StringUtil.nvl( rs.getString("eqtype") );
                objData.eqmn        = StringUtil.nvl( rs.getString("eqmn") );
                objData.version     = rs.getInt("version");
                objData.sheetdate   = StringUtil.nvl( rs.getString("SHEETDATE") );
                objData.reguserid   = StringUtil.nvl( rs.getString("REGUSERID") );
                objData.regusername = StringUtil.nvl( rs.getString("REGUSERNAME") );
                objData.regdate     = StringUtil.nvl( rs.getString("REGDATE") );
                objData.plandate    = StringUtil.nvl( rs.getString("PLANDATE") );
               
                objList.addElement(objData);
            }
        }
        catch (SQLException se)
        {
            se.printStackTrace();
            throw new MidasException("PMSheetDAO.getPmSheetApproval()", se);
        }
        catch (Exception e)
        {
            e.printStackTrace();
            throw new MidasException("PMSheetDAO.getPmSheetApproval()", e);
        }
        finally
        {
            try
            {
                //=======================================================
                // PrepareStatement, Record Set 초기화.
                //=======================================================
                if(rs!=null) { rs.close(); rs = null; }
                if(pstmt != null) { pstmt.close(); pstmt = null; }
            }
            catch (SQLException se)
            {
                se.printStackTrace();
            }
        }

        return objList;
    }

    /**
     * 장비코드 콤보리스트 조
     *
     * @param objConn
     * @return
     * @throws Exception
     */
    public static Vector getEqcodeList(Connection objConn
                                     , String selectedfabid
                                     , String selectedeqtype
                                     , String selectedeqmodel ) throws Exception {
       
        PreparedStatement pstmt = null;
        ResultSet rs = null;

        Vector objList = new Vector();

        try
        {
            //-------------------------------------------------------
            // Query 생성. 데이터를 가져온다.
            //--------------------------------------------------------
            StringBuffer strQry = new StringBuffer();
            strQry.append(" SELECT distinct a.EQCODE                        \n");
            strQry.append("   FROM MIDAS_EQUIPMENT    a                     \n");
            strQry.append("      , MIDAS_PMSHEET_BODY b                     \n");
            strQry.append("  WHERE a.AREAID   = '분석'                       \n");
            strQry.append("    AND A.EQMN     = B.EQMN                      \n");
            strQry.append("    AND B.ISTREND  = 'Y'                         \n");
            strQry.append("    AND (? is null or a.FABID = ?)               \n");
            strQry.append("    AND (? is null or a.EQCODE LIKE '_").append(selectedeqtype).append("___')  \n");
            strQry.append("    AND (? is null or a.EQMN = ?)                \n");

//            Object[] bind = new Object[] {
//                     selectedfabid
//                    ,selectedfabid
//                    ,selectedeqtype
//                    ,selectedeqmodel
//                    ,selectedeqmodel
//            };
//
//            System.out.println("================== 장비코드 콤보리스트 조회 ====================");
//            System.out.println(SqlUtil.generateSqlQuery(objConn, strQry.toString(), bind));
//            System.out.println("==========================================================");
           
            pstmt = objConn.prepareStatement(strQry.toString());

            pstmt.setString(1, selectedfabid);
            pstmt.setString(2, selectedfabid);
            pstmt.setString(3, selectedeqtype);
            pstmt.setString(4, selectedeqmodel);
            pstmt.setString(5, selectedeqmodel);
            //-------------------------------------------------------
            // Query 실행.
            //-------------------------------------------------------
            rs = pstmt.executeQuery();

            while(rs.next()){
                PMSheetData objData = new PMSheetData();
                objData.eqcode = rs.getString("EQCODE");
                objList.addElement(objData);
            }
        }
        catch (SQLException se)
        {
            se.printStackTrace();
            throw new MidasException("PMSheetDAO.getEqcodeList()", se);
        }
        catch (Exception e)
        {
            e.printStackTrace();
            throw new MidasException("PMSheetDAO.getEqcodeList()", e);
        }
        finally
        {
            try
            {
                //=======================================================
                // PrepareStatement, Record Set 초기화.
                //=======================================================
                if(rs!=null) { rs.close(); rs = null; }
                if(pstmt != null) { pstmt.close(); pstmt = null; }
            }
            catch (SQLException se)
            {
                se.printStackTrace();
            }
        }

        return objList;
    }

}

Posted by penguindori
2008/JAVA2008. 7. 28. 17:08

package midas.pm;

import java.sql.ResultSet;

import javax.servlet.http.HttpServletRequest;

import midas.admin.UserData;
import midas.modules.util.Korean;
import midas.modules.util.StringUtil;

public class PMSheetData {
 public static final int PM_STATE_REG   = 0; //등록완료
 public static final int PM_STATE_DRF   = 1; //기안완료
 public static final int PM_STATE_REV_REJ = 2; //검토부결
 public static final int PM_STATE_REV  = 3; //검토완료
 public static final int PM_STATE_APR_REJ = 4; //승인부결
 public static final int PM_STATE_APR  = 5; //승인완료
 
   
 public int eqid = 0;
 public int version = 0;
 public String regdate = null;
 public String reguserid = null;
 public String regusername = null;
 public String approve = null;
 public String itemname = null;
 public String tolerancetype = "";
 public String trtstatus = null;
 public String trtmemo = null;
 public String trtresult = null;
 public String fabid = null;
 public String eqcode = null;
 public String sheetdate = null;
 
 public String eqtype   = "";
 public String eqmn     = "";
 public String plandate = "";
 
 public int up = 0;
 public int down = 0;
 
 public PMSheetData() {
  eqid = 0;
  version = 0;
  regdate = "";
  reguserid = "";
  regusername = "";
  approve = "";
  itemname = "";
  trtstatus = "";
  trtmemo = "";
  trtresult = "";
  fabid = "";
  eqcode = "";
  sheetdate = "";
  up = 0;
  down = 0;
 }
}

Posted by penguindori