자바 개발자로 전향하고 (라고 해봐야 학부에서 직장에 들어간거에 불과하지만)

3년째 참가하는 JCO 처음 참가했을때 받았던 문화컬쳐는 참 충격이였다. 참가할때마다 수많은 신기술과 그걸 어떻게 벌써 알고 왔는지 알려주시는 연사님들이 참 고마웠다.


이번에도 늦지 않게 얼리버드로 등록하고 2월22일은 내 생일이지만.. 컨퍼런스에 참가하기로 결정했다.

물론 경품에는 한번도 당첨되어 본적 없지만 홍보도 하고 나도 알릴겸 블로그에 게재해본다.


안녕하세요? 
이번 제14회 한국자바개발자 컨퍼런스는 세종대학교 컨벤션센터 컨벤션 홀에서 개최하게 되었습니다.

지난해 제13회 한국자바개발자 컨퍼런스는 'Follower에서 Creator로!'라는 주제로 성황리에 개최되었습니다. 
빠르게 변화하는 IT 환경 속에서 저희 JCO는 한발 짝 더 나아가 Creator에게 필요한 자질과 개발자에게 요구되고 있는 능력에 대해 고민하였습니다.

하여, 여러 필수요소들 중에서 그 무엇보다도 ‘통찰력’(Insight)이 중요하다고 판단하였습니다. UX/UI를 고려하여 단순히 기능을 구현하는 프로그래밍이 아니라, 사용자들이 프로그램을 통해 감동을 받을 수 있게 만들어야 한다는 것입니다.

또한, 최근 이슈가 되고 있는 빅데이터 기술 역시 '통찰력'이 필요한 부분이라고 생각합니다. 대용량 데이터가 있다고 하더라도, 그 데이터로 가치 있는 서비스로 가공하여 제공하지 못한다면, 사용자를 만족 시킬 수 없습니다.

따라서 이제는 개발자가 개발에만 관심을 두는 것이 아니라 사람들이 행동하고, 이야기 하는 것과 같은 사회적 이슈, 프로그램 성능에 관한 기능적 부분, 그리고 이것에 영향을 미치는 법적인 부분 등 수많은 것을 고려해야 합니다.
그래야 사용자가 편리하게 이용할 수 있을 뿐만 아니라 창의적인 프로그램을 만들 수 있으며, 이것이 현시점에서 진정한 소프트웨어 개발자로서 인정받을 수 있는 방법이라고 생각합니다.

이러한 IT 개발 환경 가운데 이번 제14회 한국자바개발자 컨퍼런스에서는 개발자에게 필요한 통찰력을 키우려면 어떻게 해야 하는지에 대하여 함께 고민하고 심도있는 논의를 하고자 합니다.

저희는 그 중심에 '커뮤니티'가 있다고 생각합니다.
커뮤니티에서 사람들과 이야기하며, 기술을 공유하고 서로가 도움을 주면서 기술의 흐름과 현재 프로젝트의 동향 등을 파악하고 지금 자신이 개발 중인 기술이나 프로젝트와 비교하면서 스스로가 개발자로서 어떤 방향으로 나아가야 하고 어떤 것들을 공부해야 하는지도 깨달을 수 있다고 생각합니다.

더불어, 현시점에 가장 문제가 되는 부분이 개발 인력에 관한 부분입니다. 이 부분에 있어서도 ‘커뮤니티’를 통해 우수한 인력 보유 및 양성의 해법을 제시할 수 있다고 봅니다.하여 이번 주제는 ' 커뮤니티 안에서 개발자로서의 통찰력을 키우자! ' ( class Community implements Insight {} )라고 정하고 '통찰력'과 '커뮤니티 활성화'에 대해 이야기해 보려고 합니다.

함께 고민하는 시간을 통해 Creator로서, 개발자로서 필요한 능력인 통찰력에 대해 한 번 더 생각해보시고 알아가는 귀중한 시간이 되셨으면 좋겠습니다.

감사합니다.

JCO 운영진 일동


'근황' 카테고리의 다른 글

삼성 240 qhd 모니터 s32bg650  (0) 2023.01.26
Tech Planet 2016  (0) 2016.10.20
제 13회 한국 자바 개발자 컨퍼런스 (13/02/23)  (0) 2013.02.21
갤넥 젤리빈 GPS 문제  (0) 2012.10.12
신기한글자  (0) 2012.04.03

찾아봐도 잘 안나와서 예제소스를 작성하여 메모해놓음.


public void checkRegularCharactor(String path, String method) throws Exception {

        String invalidString = "|\\|:|\"|\\*|\\?|<|>|#";

        Pattern pattern = Pattern.compile(invalidString);

        if(pattern.matcher(path).find()) {

            logger.error(method + "faild. checkRegularCharactor failed. : " + resultPath);

        }

    }


path에 invalid string이 포함되어 있으면 exception 처리.


invalidString을 저렇게 썼을때 실제로 필터링 되는 문자는

\ : " * ? < > # 

이다. 메일이나 다른 경우에는 좀더 상세히 할 필요가 있겠다.

'java' 카테고리의 다른 글

GCM MismatchSenderId  (0) 2014.03.12
xmpp sasl authentication digest-md5 failed not-authorized  (0) 2014.03.04
TreeSet 을 사용한 List<> 중복 제거  (0) 2014.01.06
죽은 코드 저장  (0) 2013.12.12
InputStream을 파일로 저장  (0) 2013.11.01


노트북 무선랜을 공유기로 사용하고 싶을때


애드훅을 설정함에도 잘 되지 않으면 다음과 같이 실행하여 사용하자.



시작 > 실행 > cmd


[설정]

> netsh wlan set hostednetwork mode=allow "ssid=임시명" "key=패스워드8자리" keyUsage=persistent


[실행]

> netsh wlan set hostednetwork mode=allow "ssid=임시명" "key=패스워드8자리" keyUsage=persistent

[중지]

> netsh wlan set hostednetwork mode=allow "ssid=임시명" "key=패스워드8자리" keyUsage=persistent

#nc (netcat)

성공시 succeeded, 실패시 메시지없음


한개

#nc -z [host] [port]

ex) #nc -z daum.net 80

여러개(스캔) -속도가 오래걸린다.

#nc [host] -z [start]-[end]

ex) #nc daum.net -z 10-80

#netstat -nap 


많아서 분별하기가 힘들다면


#netstat -nap | grep LISTEN



'linux' 카테고리의 다른 글

top 5초마다 프로세스 사용량 파악  (0) 2014.02.11
원격지에 열려있는 포트 확인  (0) 2014.01.23
[퍼옴] Linux default 계정 정보  (0) 2013.11.12
cent os userdel usermod command not found.  (0) 2013.11.12
ubuntu 방화벽  (0) 2013.06.28

Open Implementation 을 Alt F3으로 맵핑해주는 플러그인을 쓰다가 

플러그인을 사용하지 않고 맵핑하는 방법이 있어 메모해놓음


interface를 추적하기 귀찮을때 필수인 Open Implementation. 

(설정 안해놓으면 컨트롤 누르고 마우스로 더듬거리고 있어야한다.)


Window > Preferences > General > Keys  (검색창에 Keys라고 쳐도 된다)


Open Implementatino 항목을 찾아 Alt F3으로 Binding 하자


결과물





private List<String> getDuplicateList(List<String> duplicateList) {

        TreeSet<String> treeSetList = new TreeSet<String>();

        List<String> retList = new ArrayList<String>();

        for (String dupl : duplicateList) {

            treeSetList.add(dupl);

        }

        Iterator<String> it = treeSetList.iterator();

        while(it.hasNext()) {

            retList.add(it.next());

        }

        return retList;

    }




코드란게 한달짜고 버릴때도 있고 일주일 짜고 폐기 될때도 있지만


그래도 짜놓은게 아까워서 폐기코드를 저장해놓음..


서버에 존재하지 않는 블럭(404)의 연속된 순서에 많은 부분의 절반부터 Sequence를 부여하는 부분


(멀티 업로드 시 협업을 위함)



    /**

     * Set Block Sequence

     * <p>

     * 

     * @author YM,Jung

     * @date 2013. 12. 10.

     * @param blockHashRefList

     * @param notFoundBlockSeqList

     * @return

     */

    private void setBlockRefSequence(List<BlockHashRef> blockHashRefList, List<Integer> notFoundBlockSeqList) {

        Iterator<Integer> blockSeqIter = getUploadBlockSequence(notFoundBlockSeqList, blockHashRefList.size());


        for (Integer notFoundBlockSeq : notFoundBlockSeqList) {

            if (blockSeqIter.hasNext()) {

                //sequence. or sort.

                blockHashRefList.get(notFoundBlockSeq).setSequence(blockSeqIter.next());

            }

        }

    }


    /**

     * 업로드 지점 정해줌. 처음 업로드의 경우 블럭의 처음 반환

     * <p>

     * (0) N번째의 경우 남은 블럭의 반 지점 반환

     * <p>

     * 일반 업로드의 경우 블럭이 업로드 안된 지점부터 끝까지.

     * <p>

     * 

     * @author YM,Jung

     * @date 2013. 12. 10.

     * @param notFoundBlockSeqList

     * @param blockTotalSize

     * @return

     */

    private Iterator<Integer> getUploadBlockSequence(List<Integer> notFoundBlockSeqList, int blockTotalSize) {

        boolean multiUpload = false;

        int returnValue = 0;

        int compare = 0;

        int chainCount = 0;

        int topCount = 0;

        if (notFoundBlockSeqList.size() == blockTotalSize) { // 전체 처음 업로드

            return getSequence(notFoundBlockSeqList, returnValue);

        }

        for (int i = 0; i < notFoundBlockSeqList.size(); i++) {

            // 연속된 수를 구함

            if (compare + 1 == notFoundBlockSeqList.get(i)) {

                chainCount++;

            } else {

                // 연속된 수가 크면 대체.

                if (chainCount > topCount) {

                    topCount = chainCount;

                    returnValue = calculateUploadBlockPointer(chainCount, i);

                    chainCount = 0;

                    multiUpload = true;

                }

            }

            compare = notFoundBlockSeqList.get(i);

        }

        if (multiUpload) {

            if (chainCount > topCount) { // 마지막까지 not found 를 위한 추가.

                returnValue = calculateUploadBlockPointer(chainCount, blockTotalSize);

            }

            return getSequence(notFoundBlockSeqList, returnValue);

        } else {

            // 없는 블럭 차례대로 업로드

            return getSequence(notFoundBlockSeqList, 0);

        }


    }



    private Iterator<Integer> getSequence(List<Integer> notFoundBlockSeqList, int firstSequenceBlock) {

        List<Integer> blockSequenceList = new ArrayList<Integer>();

        int firstSeq = 0;

        // Set first sequence point.

        for (Integer notFoundBlockSeq : notFoundBlockSeqList) {

            if (notFoundBlockSeq == firstSequenceBlock) {

                break;

            } else {

                firstSeq++;

            }

        }


        //Set sequence.

        for (int i = 0; i < firstSeq; i++) {

            blockSequenceList.add(notFoundBlockSeqList.size() - firstSeq + i);

        }

        for (int i = firstSeq; i < notFoundBlockSeqList.size(); i++) {

            blockSequenceList.add(i - firstSeq);

        }

        return blockSequenceList.iterator();

    }



    private int calculateUploadBlockPointer(int chainCount, int blockPointer) {

        int half = chainCount / 2; // 버림.

        return blockPointer - half; //남은 블럭의 반지점.

    }

'java' 카테고리의 다른 글

자바 정규표현식 필터링 Pattern 사용법 예시  (0) 2014.02.04
TreeSet 을 사용한 List<> 중복 제거  (0) 2014.01.06
InputStream을 파일로 저장  (0) 2013.11.01
동일성 동등성 == equals  (0) 2013.05.22
어노테이션 사용  (0) 2013.05.16

default 계정 삭제를 위해 찾다 나온 정보

필요시 더 추가 예정


root:x:0:0:root:/root:/bin/bash


bin:x:1:1:bin:/bin:/sbin/nologin


daemon:x:2:2:daemon:/sbin:/sbin/nologin


adm:x:3:4:adm:/var/adm:/sbin/nologin


lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin = 로컬 프린트 서버


sync:x:5:0:sync:/sbin:/bin/sync = 원격지 서버 동기화


shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown = soft 시스템 종료


halt:x:7:0:halt:/sbin:/sbin/halt = 강제시스템 종료


mail:x:8:12:mail:/var/spool/mail:/sbin/nologin = 메일 서비스 계정


news:x:9:13:news:/etc/news:/sbin/nologin


uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin = 유닉스 시스템간 파일을 복사 할 수 있는 프로토콜


operator:x:11:0:operator:/root:/sbin/nologin = 설정에 따라 다르지만 /etc/syslog.conf 에 대해서 daemon.err operator라고 표기가 되어 있다면 데몬 관련 에러를 operator계정을 이용해서 출력하라는 의미다.


games:x:12:100:games:/usr/games:/sbin/nologin


gopher:x:13:30:gopher:/var/gopher:/sbin/nologin = 웹(www)가 나오기전 대표적인 서비스중 하나 gopher사이트 접속후 잘정리된 메뉴를 이용해서 웹서핑을 즐기도록 한 서비스


ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin = ftp사용시 필요


nobody:x:99:99:Nobody:/:/sbin/nologin = 익명 연결(웹 서비스등 누구나 연결이 가능해야 되는 서비스가 있는 경우 필요)


dbus:x:81:81:System message bus:/:/sbin/nologin = 시스템 메세지 


vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin = 가상메모리 생성시 계정


rpm:x:37:37::/var/lib/rpm:/sbin/nologin = 레드헷 패키지 매니저


haldaemon:x:68:68:HAL daemon:/:/sbin/nologin = 디바이스 장치 인식을 위한 데몬


ident:x:98:98::/home/ident:/sbin/nologin inetd에서 구동되는 데몬


netdump:x:34:34:Network Crash Dump user:/var/crash:/bin/bash = 네트워크 오류를 파일로 저장하는 계정


nscd:x:28:28:NSCD Daemon:/:/sbin/nologin = 네임서비스에 대한 캐쉬기능 제공


sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin = 보안쉘 계정


rpc:x:32:32:Portmapper RPC user:/:/sbin/nologin = 원격 호출에 관한 데몬 


mailnull:x:47:47::/var/spool/mqueue:/sbin/nologin = 메일큐


smmsp:x:51:51::/var/spool/mqueue:/sbin/nologin = sendmail관련으로 메일을 보낼때 root가 아닌 smmsp로 보내게 된다


rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin 


nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin


pcap:x:77:77::/var/arpwatch:/sbin/nologin = 패킷 캡쳐 관련 라이브러리 계정


apache:x:48:48:Apache:/var/www:/sbin/nologin = httpd 사용


squid:x:23:23::/var/spool/squid:/sbin/nologin = 프록시 서버


webalizer:x:67:67:Webalizer:/var/www/usage:/sbin/nologin = 웹로그 분석 프로그램


xfs:x:43:43:X Font Server:/etc/X11/fs:/sbin/nologin = 저널링 파일 시스템


ntp:x:38:38::/etc/ntp:/sbin/nologin =  컴퓨터간 시간을 동기화 시켜주기 위하여 만들어진 Network Time Protocol 이다.


gdm:x:42:42::/var/gdm:/sbin/nologin = x-window사용


pegasus:x:66:65:tog-pegasus OpenPegasus WBEM/CIM services:/var/lib/Pegasus:/sbin/nologin =  

System Center Operation Manager가 이기종 환경을 관리할 수 있도록 확장(window에서 linux등의 

이기종 환경에 대해 Cross-Platform Extension을 제공


htt:x:100:103:IIIMF Htt:/usr/lib/im:/sbin/nologin = 한국어 일본어 중국어에 대한 입력 방식


named:x:25:25:Named:/var/named:/sbin/nologin = 도메인 서버사용시 사용하는 계정


pvm:x:24:24::/usr/share/pvm3:/bin/bash = 병렬 컴퓨팅(클러스터링 관련 계정)


출처 : http://mrain7.egloos.com/2725507

'linux' 카테고리의 다른 글

원격지에 열려있는 포트 확인  (0) 2014.01.23
현재 열려있는 방화벽 확인  (0) 2014.01.23
cent os userdel usermod command not found.  (0) 2013.11.12
ubuntu 방화벽  (0) 2013.06.28
리눅스 iptables 방화벽 설정  (0) 2013.06.28

이상하게 root 계정으로 바꿔도 해당 명령을 찾을 수 없다고 나오길래 구글링해서 나온결과


su 로 root 로그인  하면 모든 명령이 다되는줄 알았는데


root environment (환경) 까지 획득해야한다.


su - 사용해야함


su - 를 사용해야함


"su" = switch to root privileges


"su -" = switch to root privileges AND environment


'linux' 카테고리의 다른 글

현재 열려있는 방화벽 확인  (0) 2014.01.23
[퍼옴] Linux default 계정 정보  (0) 2013.11.12
ubuntu 방화벽  (0) 2013.06.28
리눅스 iptables 방화벽 설정  (0) 2013.06.28
vsftpd 유저 상위 디렉토리 접근 제한  (0) 2013.05.06

+ Recent posts