ORACLE 정보 (OBJECT / Index / Comment )

Database/Oracle 2021. 12. 28. 11:11
-- Comment 보기
select * from ALL_COL_COMMENTS 
select * from ALL_TAB_COMMENTS​
--테이블 정보
select * from tabs ;
select* from user_tables;
-- Synonyms
SELECT * FROM ALL_SYNONYMS
-- Object 정보
select * from user_objects;
-- 인덱스
CREATE UNIQUE INDEX idx_tablename ON tablename ( col1, col2);
DROP index idx_tablename
-- 컬럼정보 
SELECT * FROM COLS WHERE TABLE_NAME LIKE '%%';
SELECT * FROM ALL_TAB_COLUMNS WHERE TABLE_NAME LIKE '%%';
-- Table 생성
CREATE TABLE table_name
(
  column1 datatype null/not null,  
  ...
  CONSTRAINT constname PRIMARY KEY (col1,...., coln )
);
--제약조건 ( PK 등등)
ALTER TABLE table_name 
ADD CONSTRAINT constraint_name 
PRIMARY KEY (column1, column2, ... column_n);
 
ALTER TABLE table_name
DROP CONSTRAINT constraint_name;
--인덱스
CREATE (unique) INDEX idxname ON tablename (hiredate)
Drop Indexname
posted by Keep It Simple Stupid

BaseURL 가져오기

카테고리 없음 2021. 12. 23. 09:19

.Net4.0 c#

   public static string GetBaseUrl()
        {
            string protocol;

            if (HttpContext.Current.Request.IsSecureConnection)
                protocol = "https";
            else
                protocol = "http";

            System.Text.StringBuilder uri = new System.Text.StringBuilder(protocol + "://");

            string hostname = HttpContext.Current.Request.Url.Host;
            uri.Append(hostname);
            int port = HttpContext.Current.Request.Url.Port;
            if (port != 80 && port != 443)
            {
                uri.Append(":");
                uri.Append(port.ToString());
            }
            return uri.ToString();
        }

 

posted by Keep It Simple Stupid

레노버 P11 (4G + 64G) LTE 롬 설치

4.IT 2021. 9. 2. 23:49

https://blog.naver.com/roxjffla/222487785108

 

[레노버 P11] 글로벌 LTE롬 설치

중요! 롬설치 과정에는 기기 먹통의 위험성이 있으며, 발생하는 모든 문제에 대해서는 블로그에서 책임지지...

blog.naver.com

[출처] [레노버 P11] 글로벌 LTE롬 설치|작성자 개털림

위 블로그 내용입니다. 원본을 보시려면 위 링크로 이동하세요.

중요 : 제가 받은 태블릿의 화면이 설명과 일치하지 않아 힘들었습니다.

Developer Mode 나 USB 연결 설정은 감으로 대충 했어요.. (아래)

Setting-> About -> ZUI Version 을 터치 ( already ... 나올때까지.. 3번이상 하며 나옴)

Setting 에서 검색창에 develop 입력해서 developer option 찾아서 USB Debugging 활성화 시킴.

컴퓨터랑 패드 연결시 다운로드 모드라고 하는데 전원 꺼진 상태에서 볼륨업 누르고 USB 연결하면 진동이 생기면 됨.

(USB 1.0 드라이버 설치되어 있어야 함. 패드의 USB 설정이 사라질수도 있으니 계속 안되면 패드 켜서 한번 확인.)

전 다운로드 모드가 안되어서 헤맸습니다. 

준비 과정

1. https://www.mediafire.com/file/220h5xaxi1gd55m/QPST_2.7.496.zip/file

위 링크에서 QPST 2.7.496버전을 다운로드 받고

압축을 풀면 QPST.2.7.496.1.exe와 Driver 폴더에 Qualcomm USB Driver V1.0.exe

두 개의 설치파일이 나옵니다. 빠짐없이 둘 다 설치해주세요.

2. https://mirrors.lolinet.com/firmware/lenovo/Tab_P11/TB-J606L/

위 링크에서 TB-J606L_S120184_210520_ROW.zip을 다운로드 받고 압축을 풀어줍니다.

압축을 푼 경로에는 한글이 전혀 없어야 하기 때문에 C드라이브의 최상단을 추천합니다.

3. 설정 -> 시스템 -> 태블릿 정보 -> 빌드 번호를 여러번 터치하면 개발자 옵션이 활성화 됩니다.

이전 화면으로 돌아가서 시스템에 보면 개발자 옵션이 활성화 되어 있습니다.

개발자 옵션에 들어가서 USB 디버깅을 체크해줍니다.

이제 P11의 전원버튼을 길게 눌러서 태블릿을 완전히 종료합니다.

내수용 영문롬의 경우 Settings -> System -> About tablet -> Build number를 여러번 터치한 후

이전 화면으로 돌아가서 System -> Developer options에서 USB debugging을 체크하시면 됩니다.

이제 P11의 전원버튼을 길게 눌러서 태블릿을 완전히 종료합니다.

여기까지가 준비 과정입니다.

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

 

설치 과정

1. 위의 준비 과정을 거치고 전원이 꺼진 P11을 볼륨업 버튼만 누른채로 PC와 연결합니다.

(이때 USB 포트는 메인보드와 직결되는 데스크탑의 후면 포트를 권장합니다.)

볼륨업을 누른채로 PC와 연결하면 태블릿에서 짧게 진동이 울릴텐데

PC에서 USB 연결음이 들릴 때까지 볼륨업 버튼을 계속 누르고 있어야 합니다.

2. 윈도우 시작메뉴에서 준비 과정에서 설치한 QFIL을 우클릭해서 관리자 권한으로 실행합니다.

3. QFIL을 실행하고 스크린샷과 같이 [Select Port ...] 버튼을 눌러서

QDLoader 9008(COM8)을 선택한 후 OK를 눌러줍니다.

만약 위와 같은 목록이 나오지 않는다면

준비 과정에서 Qualcomm USB Driver 설치가 누락되었거나

USB디버깅 체크 혹은 볼륨업 버튼을 제대로 누르지 않고 연결한 것이므로

위와 같은 목록이 제대로 나올때까지 준비 과정을 다시 점검해야 합니다.

4. 여기까지의 모든 과정이 정상적으로 진행 되었다면

위 스크린샷에 표기한 순서대로 진행하시면 됩니다.

혹시 표기하지 않은 부분이더라도 스크린샷과 다르게 체크되어 있는 부분이 있다면

하나도 빠짐없이 스크린샷과 동일하게 체크해줘야 합니다.

마지막으로 스크린샷의 [6]에 해당하는 Download Content 버튼을 누를 경우

약 5분에서 10분간 롬을 플래싱하게 됩니다. 버튼을 누르기 전에 체크 항목을 충분히 확인하세요.

설치 도중에는 절대로 PC와 연결이 해제되어서는 안 되며

아래의 스테이터스바가 천천히 진행되기 때문에 완료 전까지는 건드리면 안됩니다.

5. 정상적으로 롬설치가 완료되었을 경우 P11이 재부팅되며 레노버 로고가 뜨게 됩니다.

첫부팅에 해당되는 만큼 레노버 로고에서 오랜 시간이 지체될 수 있으니

정상적으로 부팅이 완료되기 전까지는 여유를 가지고 기다리는 것이 좋습니다.

첫부팅은 약 5분 이내로 완료됩니다.

[출처] [레노버 P11] 글로벌 LTE롬 설치|작성자 개털림

'4.IT' 카테고리의 다른 글

Window : 포트(port) 상태확인 netstate  (0) 2020.10.06
posted by Keep It Simple Stupid

xml의 element에 공백 -> _x0020_

카테고리 없음 2020. 10. 21. 09:05

<my_x0020_Name />  -> my Name

 

posted by Keep It Simple Stupid

Window : 포트(port) 상태확인 netstate

4.IT 2020. 10. 6. 12:05

 netstat : port  사용하는 PID 리스트 검색

netstat -ano | findstr :포트번호

taskkill : pid를 강제 종료

taskkill -pid  123123 /f

'4.IT' 카테고리의 다른 글

레노버 P11 (4G + 64G) LTE 롬 설치  (0) 2021.09.02
posted by Keep It Simple Stupid

Get IP Address with c#

5.Developement 2020. 9. 4. 10:24
    public static string GetIPAddress(string hostName)
        {
            var host = Dns.GetHostEntry(Dns.GetHostName());
            return (from ip in host.AddressList where ip.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork select ip.ToString()).FirstOrDefault();
        }

 

'5.Developement' 카테고리의 다른 글

Java Script - 글자수 제한  (0) 2019.09.25
posted by Keep It Simple Stupid

Java Script - 글자수 제한

5.Developement 2019. 9. 25. 15:51

function chkByte(name, msgMax) {
    var msgList = name.value;  // 글자가 입력되는 이벤트가 발생되는 value 값
    var msgListLength = msgList.length;  // 입력 되는 글자의 전체 길이
    
    var limitSize = msgMax;  // 제한 할 글자 길이
    var charOne = "";  // 한 글자씩 검사하기 위한 변수
    var charByte = 0;  // 입력 되고 있는 문자의 길이(바이트) 를 저장할 변수
    var msgLen = 0;  // 입력 내용을 담아 subString 할 변수
    var msgLast = "";  // 글자수가 초과 할 경우, 제한 할 마지막 글자 까지 보여준다
    
    for(var i = 0; i < msgListLength; i++) {  // 입력 되고 있는 글자의 전체길이를 루프를 돈다.
     charOne = msgList.charAt(i);  // 한글자씩 읽음
    
     // 한글은 2byte 이므로, 한글이 입력 되고 있을 경우 2를 더한다.
     if(escape(charOne).length > 4) {
      charByte += 2;
     } else {
      charByte++;  // 그 외에 경우에는 1byte. 1을 더한다.
     }
     
     if(charByte <= limitSize) {  // 전체 크기가 제한 글자 길이를 넘지 않는다면..
      msgLen = i + 1;
     }
    }
    
    if(charByte > limitSize) {
     alert(limitSize + " 글자를 초과 입력 할 수 없습니다.");
     msgLast = msgList.substr(0, msgLen);
     name.value = msgLast;
     charByte = limitSize;
    }
    
    document.getElementById("write").value = charByte;
   }.

.
.
.

body 부분.
.
.
.
< body>
  길이제한 Test<br><br>
  <textarea rows="20" cols="40" name="msg" -nkeyup="chkByte(this, 300)"></textarea><br>
  <input type="text" id="write" value="0" readOnly style="border: 0; text-align: right; height: 17px; width: 25px;" /> / 300byte
 </body> 

출처: https://minineko.tistory.com/entry/JavaScript-텍스트-입력시-길이-제한 [MiniNeko :: =^..^=]

'5.Developement' 카테고리의 다른 글

Get IP Address with c#  (0) 2020.09.04
posted by Keep It Simple Stupid

8D란? 8 Dicipline Report

4.IT/1.IT 이야기 2018. 7. 26. 13:55

8D report란 ..

 

8 Dicipline report의 약자로, 어떠한 품질이나 documnent 상에 문제가 있을시 SCAR ( Supplier Corrective Action Request )를 해당 업체에게 issue하게 되면 8D report ( Corrective & Preventive action report )의 양식에 맞추어 시정조치 및 재발방지책을 작성하게 되는데 이때 사용되는 양식을 일컬어 8D ( 8 Dicipline , 총 8 단계의 보고서)라고 합니다.

 

참고로 최초 issue를 받은날로 부터 24 hrs 내로 4D ( 최조 4단계)를 제출하고, sample을 받고 working 7 calendar day 내에 8D 를 제출하는 것이 일반적입니다. 긴급 혹은 critical 혹은 automotive device에는 좀더 시간이 짧아 지기도 합니다.

 

각 단계별 내용은 아래와 같습니다.

( 각 제조사별 제품에 따라 내용은 변할수 있으나 보통 아래와 같은 8D 양식을 사용)

 

1. Use of Team approach

2. Problem description

3. Containment action

4. Define root cause

5. Permanent corrective actioni

6. Define methods to verify effectiveness of correctiveness action

7. Prevent recurrence

8. Approval ( Congratulation)

 


(Dicipline - 훈련

posted by Keep It Simple Stupid

비주얼 스튜디오 오라클 한글 깨진경우

4.IT/5.DataBase 2017. 11. 3. 15:51




비주얼 스튜디오에서 오라클 조회시 한글이 깨진경우 설정.


1. 서버의 캐릭터셋 확인

SELECT *  FROM nls_database_parameters

db의 파라미터 값을 확인.


    - NLS_LANGUAGE

    - NLS_TERRITORY

    - NLS_CHARACTERSET


2. 레지스트리 변경


HEKY_LOCAL_MACHINES \ SOFTWARE \ ORACLE

HEKY_LOCAL_MACHINES \ SOFTWARE \ ORACLE \ HOME1


개인 환경에 따라 다름.


DB의 파라미터 값이 아래와 같다면 레지스트리 NLS_LANG의 값에 KOREAN_KOREA.KO16MSWIN949 저장.


NLS_LANGUAGE : KOREAN

NLS_TERRITORY : KOREA

NLS_CHARACTERSET : KO16MSWIN949



NLS_LANGUAGE_NLS_TERRITORY.NLS_CHARACTERSET 


_(언더바)하고 .(마침표)로 연결해줍니다


이걸로 해결이 안되면.


3. 환경변수에 등록


NLS_LANG 환경 변수에 KOREAN_KOREA.KO16MSWIN949 값을 저장



;

위 내용과 별도로 아래 코드로 사용하여 데이타 조회/

위 코드 사용한 프로그램 수행시 다른 프로그램에서 동이한 환경으로 적용 되는지 확인 필요.

-> 2,3번 설정을 되돌렸지만 원래 코드상에서 깨어지던 한글이  깨어지지 않음. 

Environment.SetEnvironmentVariable("NLS_LANG", "KOREAN_KOREA.WE8DEC");



posted by Keep It Simple Stupid

SW회사 '사수 부사수 시스템'의 문제점

[전규현 칼럼] 군대서 유래…비효율적인 면 많아

http://www.zdnet.co.kr/column/column_view.asp?artice_id=20170918134302

우리나라 회사에서 후배를 키우는 가장 흔한 방법은 '사수 부사수 시스템'이다필자도 오래 전부터 사수 부사수 시스템을 많이 봐왔고지금도 매우 일반적인 방식이다.

이 용어는 군대에서 유래했다. M60 기관총 등 중화기들은 대부분 2명 이상이 운용해야 하고 사수와 부사수가 같이 장비를 다룬다영화 속 람보는 M60 기관총을 혼자서 양손에 하나씩 두개를 들고 쐈지만원래는 2명이 쏴야 하는 무기다.

이런 사수 부사수 시스템에서는 사수는 주업무를 하고 부사수가 보조 업무를 하며 업무를 익힌다. 1, 2년 후에는 부사수가 사수가 되어 또 다시 부사수를 교육하는 시스템이다.

소프트웨어 회사에서도 비슷한 시스템을 가지고 있는 경우가 많다공식적이든 비공식적이든 사수 부사수 시스템을 가지고 있는 소프트웨어 회사에서는 신입개발자가 들어오면 회사에서 사수를 지정해준다사수 옆자리나 근처에 자리를 배정하여 사수와 많은 시간을 보내면서 하나씩 업무를 배워나갈 수 있도록 한다사수는 부사수에게 개발하고 있는 소프트웨어의 구조부터 기능소스코드빌드 방법업무지식회사의 시스템 사용법 등 많은 것을 가르쳐준다.

사수 부사수 시스템이 장점이 없는 것은 아니지만 많은 문제점을 가지고 있다어떤 문제를 가지고 있는지 알아보자.

● 사수, 즉 선배가 후배 교육에 너무 많은 시간을 소비해야 한다후배 교육은 회사 입장에서 투자이기도 하지만 큰 비용이다선배는 오랜 기간동안 지속적으로 시간을 빼앗긴다.

● 후배가 제대로 일을 하기까지 교육을 하는데 시간이 너무 많이 걸려서 현장 투입이 늦어진다회사마다 개인마다 다르기는 하지만 작게는 몇주부터 몇달이 걸리곤 한다부사수는 교육과 훈련을 어느 정도 받기 전까지는 제대로 일을 하기 힘들다.

이때까지는 한사람의 개발자가 들어온 것이 아니고 0.5 또는 0.3 인원이기도 하고심지어는 사수의 시간을 너무 많이 빼앗어서 마이너스 인력이 경우도 있다후배가 없을 때보다 전체 개발 기간을 더 지연시키기도 한다.

● 후배가 들어올 때마다 매번 반복적으로 가르쳐야 한다부사수가 다시 사수가 되어 후배를 가르치려면 상당한 시간이 걸리기 때문에 여전히 고참 개발자가 교육을 계속 해야 하고 시간 간격을 두고 5명의 개발자가 입사를 하면 교육 시간이 5배 들어간다.

● 사수도 많은 정보를 잊어버려서 제대로 교육을 하기가 쉽지 않다사수는 핵심 개발도 하고 교육도 하느라고 바빠서개발을 하면서 문서를 제대로 작성할 시간도 없다그래서 악순환이 반복된다아무리 후배를 교육해도 결국 모든 문제 해결 요청은 고참에게 몰려서 고참은 여전히 더 바쁘다.

● 부사수는 너무 자주 물어보면 사수의 시간을 빼앗는 것 같아 미안해서 잘 물어보지 않게 된다뻔뻔한 후배는 궁금한 것이 있을 때마다 잘 물어보겠지만사수가 얼마나 바쁜지를 매일 보게 되면 사수의 시간을 빼앗는 것을 미안해하곤 한다그래서 일을 그르쳐 문제를 만들고 나중에는 사수의 시간을 더 빼앗곤 한다.

■ 사수-부사수 한계 극복하려면 개발때 분석-설계 제대로 해야

경영자는 그동안 문서가 너무 없어서 이런 일이 벌어진다고 생각하고 기존 소프트웨어의 문서를 만들라고 하는데 이미 개발된 시스템의 문서를 나중에 많는 것은 헛수고다문서는 원래 개발 전에 만들어야 제대로 만들 수 있다개발 후 만드는 문서는 필요한 정보의 10%나 제대로 적을 수 있을까 의문이다.

또한제대로 분석설계를 하지 않고 이미 만들어진 소프트웨어는 시간을 아무리 많이 준다고 하더라도 다시 문서로 정리하기 어려운 구조로 되어 있는 경우가 많다그래서 악순환이 계속되고 사수 부사수 시스템에서 영원히 벗어나기 어렵게 된다.

이런 사수 부사수 시스템을 계속 유지하는 한 기업은 현재 수준에서 벗어나기 어렵다회사를 조금만 키워도 개발 효율성은 점점 떨어져서경쟁력 저하를 가져온다사수 부사수 시스템을 유지하는 회사에서의 후배에게 정보를 전달하는 방법의 비율을 보면 다음과 같다.

문서/시스템 : 직접 교육/코칭 = 2:8 또는 1:9

문서나 시스템을 통해서는 10~20% 정도의 정보밖에 전달을 못하고 나머지는 사수가 직접 가르쳐야 한다이상적인 비율은 반대가 되어야 한다, 8:2 정도가 되는 것이 좋다.

대부분의 정보는 문서나 시스템을 통해서 얻어야 하고문서를 봐도 잘 모르겠는 정보는 멘토나 선배에게 물어보는 것이 좋다이것을 10:0 또는 9:1로 만드는 것은 거의 불가능하다오히려 더 비효율적이다.


8:2 정도만 되면 위에서 언급한 문제점의 대부분이 해결된다고참 개발자의 시간을 너무 많이 빼앗지 않게 되고신규 입사자가 아무리 못해도 마이너스 인력이 되지는 않는다스스로 공부를 할 수 있으니 후배의 노력에 따라서 얼마든지 빨리 배울 수도 있다또한 입사 후 실전 개발에 투입되는 시간은 훨씬 빨라진다.

그럼 사수 부사수 시스템을 탈피하는 방법은 무엇일까분석설계를 제대로 해서 개발을 하는 것이다말은 참 쉽다하지만 실제는 정말 어렵다물론 이슈관리시스템이나 위키시스템 등 소프트웨어 회사에 필수적으로 필요한 시스템은 잘 구축되어 있어야 한다.

분석설계 문서는 SW를 개발하는데도 필요하면 이 문서들은 나중에서 신입 사원을 교육시키는데도 매우 유용하다이런 체계를 갖춘 회사에서는 신입개발자가 입사를 해도 바로 개발에 투입이 가능하다물론 개발 능력을 갖춘 신입개발자여야 한다개발 능력 자체가 부족하다면 얘기가 안된다한사람 몫을 하려면 상당히 시간이 걸리기는 하겠지만 고참을 그렇게 많이 방해하지는 않는다궁금한 것이 있으면 문서나 시스템을 통해서 스스로 배울 수도 있고설계가 잘 된 시스템에서는 개발을 할 때 알아야 할

정보의 범위가 작다자신이 개발해야 할 시스템의 인터페이스와 요구사항만 알면 된다.

대부분의 외부 인터페이스가 잘 정의 되어 있고유닛 테스트는 이미 작성이 되어 있는 경우도 많다신입 개발자에게 시스템 내부의 하위 설계는 직접 맡기는 경우도 있다또는 고참 개발자가 내부 설계까지 해주고 내용만 채우도록 하는 경우도 있다시스템이 작은 서브시스템으로 잘 나눠져 있기 때문에 신입 개발자라도 개발에 참여하기 쉽고 문제가 생겨도 전체 시스템에 큰 영향을 주지는 않는다.

물론 이렇게 하려면 분석설계를 매우 잘해야 한다모든 회사가 성숙도와 역량이 달라서 회사마다 벌어지는 현상은 다르다필자는 상당한 성숙도를 가진 회사를 기준으로 설명을 하고 있다이우소프트도 그러한 방향을 향해 발전해 가고 있는 진행형이다.

아직 제대로 된 시스템도 구축이 안되어 있고 분석설계 문서도 제대로 쓴적이 없는 회사라면 어떻게 할까한번에 극복할 수는 없다새로운 제품부터 분석설계를 하나씩 제대로 하는 습관을 들여야 한다방법론과는 상관이 없이 분석설계를 적절히 제대로 하는 것은 소프트웨어 개발의 기본이다이렇게 하나씩 제대로 해나가면 지식정보가 축적되고 점차 사수 부사수 시스템에서 벗어날 수 있을 것이다.

posted by Keep It Simple Stupid