Computer 그리고 Developer 76

[IntelliJ] 사용하지 않는 import문 자동으로 삭제되도록 설정

사용하던 코드를 삭제한 경우 아래처럼 import문이 그대로 남아있는 경우가 있습니다. IntelliJ > Code > Optimize Imports 인 단축키 control + option + O(mac 키보드 기준)를 사용할 수도 있지만.. 자동으로 설정하기 위해 Preferences > Editor > General > Auto Import > Optimize Imports on the fly을 클릭해주면 됩니다. (단, 언어를 여러개 사용중이시라면 언어별 Editor별로 Optimize Imports on the fly에 체크!를 해야합니다.) Java Editor 를 사용중이시라면 Java 영역의 Optimize Imports on the fly에 체크! Kotlin Editor를 사용중이시라면..

[IntelliJ] Plugin - Grep Console

인텔리제이에서 수많은 로그속에서 허덕이다 보면, 꼭 필요한 플러그인이 있다. 바로 Grep Console. 로그 레벨(log level)에 따라서 다른 백그라운드 색으로 설정을 해서 로그레벨을 인지 할 수가 있다. 또 많은 터미널의 로그 중에서 내가 grep 해서 보고 싶은 것만 오른쪽 클릭해서 볼 수 있고 예) TIMESTAMP라는 텍스트만 grep 해서 보고 싶다면 이렇게 해당하는 텍스트만 필터링해서 쓸 수 있다. 초 간단! 설치는 IntelliJ IDEA Plugin - marketplace에서 "Grep Console" https://plugins.jetbrains.com/plugin/7125-grep-console Grep Console - IntelliJ IDEs Plugin | Marketp..

MacOS Mojave 업데이트 후 Git 오류 - xcrun: error: invalid active developer path

MacOS를 Mojave로 업데이트 후에 IntelliJ IDEA에서 Git 오류가 발생했다. Terminal을 열어서 git 명령어를 쳐도 같은 오류가 나타난다. # git xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun Xcode Command Line Tools와 dependency 때문에 생기는 문제인 것 같다. Xcode 전체 설치하면 시간이 오래걸리니, Xcode Command Line Tools만 설치하는 걸로(이것도 1시간은 걸린다..) # xcode-select --in..

코드 리뷰 가이드라인 - Part 1(Code review guidelines)

사내에서 코드리뷰 가이드라인에 대한 좋은 글을 공유하여서 번역하여 공유하면 좋을것같아 발번역을 해본것을 블로그에 공유하여 올린다. 왜 리뷰가 중요한가?(Why Reviews are important?) 부분은 제외한 모든 부분을 번역하였다 Code review guidelines – Part 1원문 :http://insidecoding.com/2013/01/07/code-review-guidelines/최초작성일 : 2014.2.9 작성자:버리야 날자 코드 리뷰가 무엇인가? 코드 리뷰는 컴퓨터 소스의 체계적인 검사이다(peer review로 알려져있다). 코드 리뷰는 초기 개발단계에서 간과한 실수를 찾고 수정하고, 전체 소프트웨어의 품질과 개발자의 기술 모두를 개선하기 위한것이다. 왜 리뷰가 중요한가?Q..

OS X Mountain Lion에서 프로그램 설치시 '확인되지 않은 개발자가 배포했기 때문에 열 수 없습니다.'

OS X Mountain Lion에서 Eclipse를 Download받고, Eclipse를 실행하였더니 이 에러를 뱉는다.프로그램 설치시 '확인되지 않은 개발자가 배포했기 때문에 열 수 없습니다.'이 문제는 Mountain Lion에서 보안 이슈로 인해 추가된 Gatekeeper과 연관된 것인데, 시스템 환경설정> 보안 및 개인 정보에서 '다음에서 다운로드한 응용 프로그램 허용'에서 기본값으로 'Mac App Store 및 확인된 개발자'인데,이것을 '모든곳' 으로 바꾸어 주면 된다. 물론, 보안상으로 좋지 않은 방법이지만, 출처 Mountain Lion: Hands on with Gatekeeper

구글 메일 로그인시, 계정 아이디에 대한 불편한 진실~

지금까지 속아온 듯한 이 느낌은 뭘까~ 구글에 처음 가입할 당시, 이름.성@gmail.com으로 이름과 성 사이에 .(dot)을 넣어서 계정을 생성하였기때문에, 로그인할때, 이름.성@gmail.com으로 항상 썼는데, 얼마전 트윗을 보다가 알게된 사실. 내부적으로는 .(dot)이 있던 없던 상관없이 사용자의 순수 아이디만 들어간다는 사실 즉, .(dot)없이 이름성@gmail.com도 되고, 이.름.성@gmail.com도 되고, 이.........름성@gmail.com도 로그인이 가능하다는 점~ 좋은것 같기도 하고, 지금까지 몰랐던게 아주~ 조금 억울한 것 같기도 하고~ 앞으로는 좋은게 좋은거지만..

OS X Mountain Lion에서 Java 설치

Mountain Lion 버젼 전에는 Java가 기본으로 설치되어있었던 것 같은데,기존 버젼에서 upgrade할때 Java를 지우고 아예 이번버젼은 설치되어 있지 않다., Flashback trojan과 같은 malware나 바이러스등의 보안 문제때문에 자바가 기본으로 설치되어있지 않다고 한다. 그리고 대부분의 사용자는 Java를 사용하지 않기 때문이라고~ Java설치를 위해선, 간단하게 터미널에서 Java를 치면, 현재 설치되어있지 않다고 메시지를 보여주고 설치할지 창을 자동으로 띄워주고 최신 버젼의 Java를 설치한다. 설치 후 , 터미널에서 java -version 해보면~ 성공! 출처 Install Java in OS X Mountain Lion

Ubuntu 12.04와 Windows 멀티 부팅 순서 변경

부팅시 Ubuntu와 Windows로 선택하는 메뉴에서 시간내에 선택하지 않으면 기본적으로 Ubuntu 부팅이 아닌,Windows로 부팅으로 순서 변경시 $sudo gedit /etc/default/grub 파일에서 GRUB_DEFAULT = 0 이라고 되어 있는것을 변경하면 된다. 나는 부팅시 보여지는 리스트 중 7번째에 WIndows가 있기 때문에 GRUB_DEFAULT = 6 이라고 설정했다. (중요! 부팅 순서는 0부터 시작) 순서를 모를시에는 /boot/grub/grub.cfg 파일을 참조해 윈도우 관련 엔트리를 확인하면 된다. 저장 후, update시켜준다. $ sudo update-grub

디버깅

우연히 10년전에 배웠던 프로그래밍 책을 보다가 발견한 "디버깅"챕터에서의 내용이다. 디버깅 프로그램 제작에서 가장 어려운 부분은 설계나 코딩이 아니라 바로 디버깅 단계다. 이 단계에서, 프로그램이 실제 작동하는지(작동된다고 생각하는 것이 아니라)를 알아낸다. ...... 대화형 프로그램의 경우는 버그를 다시 보인다는 것 자체가 문제 해결의 90%를 차지할 수 있다. 이 말은 특히 그 분야에 있는 사용자가 보고한 버그를 처리할 때 그렇다. 다음은 버그를 발견했다고 전화한 사용자의 전형적인 대화 내용이다. 사용자: 당신들이 만든 데이터베이스 프로그램이 이상합니다. 프로그래머: 무슨 문제가 있습니까? 사용자: 가끔 정렬을 하면 이상한 순서로 정렬됩니다. 프로그래머: 사용한 명령어는 무엇입니까? 사용자: so..

한국 구글 검색 결과 페이지의 'HOT 토픽'

최근에 추가된 한국 구글 검색 결과 페이지에 나타나는 오른쪽 관련검색 밑의 HOT토픽! 스폰서 링크는 눈에 거의 들어오지 않아서 별 문제 없는데 가십거리 위주로 올라오는 HOT 토픽이 정말 맘에 안든다. 난 누가 성형했는지 관심없고, 품절녀의 블로그도 관심없고, 천정명이 전역해서 뭐라고 했는지도 관심없다. 매번 낚을려고 하는 기사들과 광고들을 극도로 싫어해서 그러는지 모르겠지만, 검색 결과를 보다보면 짧게 함축된 단어에 궁금하기도 하여 누르고 싶지만 누르고 나면 낚시성에 별일 아닌일을 크게 와전하는 일도 많아서 괜히 시간만 정말 아깝다. 거기에 집중력을 흐트린다. 안보이면 정말 궁금하지 않을것을, 이 서비스 자체가 나쁘다고는 생각하지 않는다. 나와 반대로 현재 이슈가 되는 일에 관심이 많은 사람들에겐 참..

[Windows] Vista에서 명령프롬프트창의 글꼴 바꾸기

Vista에서 기본으로 제공해주는 글꼴이 영~ 맘에 들지않아, 구글링을 해보니, 역시나 맘에 안드는 사람이 많나보군요. 간략하게 정리해보자면, 한글 Vista인 경우!!!를 전제로, 실행(Run) -> regedit 명령어를 치면 레지스트리 편집가능하게 되고 HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\Console\TrueTypeFont 경로로 가서 키가 949인 변수의 값을 바꿔준다. (원하는 글꼴로, 글꼴은 이미 설치되어있어야겠죠~) 그리고 재부팅하면 끝~ 저는 한글 Vista인데 영문 Vista인 경우의 글을 따라해서 자꾸 실패했는데, 그거에 따라 키가 다릅니다.(아마도~) 자세한 건 여기를 참고하세요. 정리가 잘 되어있는듯 해요~

[dW] JUnit과 TestNG 자세히 살펴보기

JUnit 테스트 픽스쳐는 특정 로직이 테스트 전후에 실행되도록 보장하는 하나의 약정이므로 손쉽게 재활용할 수 있다. JUnit 4 이전 버전에서는 setUp() 메소드에서 각 메소드마다 필요한 일들을 명시하면, 각 테스트 메소드가 실행되기 전에 각각 한번씩 실행이 되었다. 하지만 픽스쳐에 따른 상당한 오버헤드가 있었고 이 메소드를 한번만 하게 하려면 한번만 실행되도록 지정하는 방법이 번거로웠지만, JUnit 4에서는 모든 테스트에 대해 또는 전체 클래스에 대해 한 번 픽스쳐를 실행하거나, 아예 실행하지 않을 수 있도록 좀더 유연해 졌다. 클래스를 겨냥한 @BeforeClass, @AfterClass : 한 클래스에서 한번만 일어나도 되는 일들을 정의 메소드를 겨냥한 @Before, @After : 각 ..

[dW] 사람을 위한 자동화: 연속 테스팅

개발자라면 프로그램을 짤때마다 항상~ 고민되는 테스트를 어떻게 최대한 구멍없이 하여 멀쩡한 프로그램을 짤까~~가 늘~ 고민중의 하나이겠지요. Junit을 이용하여 단위테스트를 하긴 하지만, Database를 사용한다면 기본적인 CRUD 테스트 메소드 말고 내 눈에 안보이는 구멍난 부분을, 더 많은 기능을 복잡하게 하는 부분을 어떻게! 어떻게!! 테스트해야할까.. 고민에 빠져서 자료를 찾아보니... 사람을 위한 자동화: 연속 테스팅 (한글) 이 글에선 많이 유명한 Junit과 DbUnit을 쓰라는 간략적인 내용이 나와있고, 또 성능에 대한 고민은 JUnitPerf이라는 성능 테스트 도구를 이용하면 되는군요. JUnitPerf는 Junit과 함께 작동하는 프레임워크로 미리 정해진 시간 안에 테스트가 미쳐 다..

[dW] 초보자를 위한 유닉스 팁과 기교, Part 4

이 튜토리얼에선 본(Bourne) 셸 스크립트로 프로그래밍을 작성하여 처리하는 예제가 있습니다. 제가 모르는 것만 정리해 둡니다~ 더 자세한 내용은 링크를.. 이용해 주세요^^ 주석 : 셸에서 # 기호는 주석 행을 뜻한다. (쓸일이 없어서 몰랐군..) bc를 이용하여 진법 변환하기 bc는 임의의 정밀도를 제공하는 계산기 언어(arbitrary precision calculator language)로, 대다수 유닉스 배포판에서 제공한다. 출력 진법을 지정할 수 있으므로 10진법 이외에 다른 진법으로 결과를 출력할 때 유용하다. 인라인 입력 Here-document를 생성하려면 명령행에서 셸 연산자

[dW] iBatis에 관한 글들

iBatis에 관한 글을 찾다가 좋은 글 발견!~ dW에 있는 내용인데 보려면 로그인이 필요하지만 단계별로 따라하기 좋은 문서이다. Improve persistence with Apache Derby and iBATIS, Part 1: Initial configuration, semantics, and a simple test - What is iBatis? - Advantages of iBatis - iBatis Data Mapper semantics - Configure derby and iBatis - Test derby and iBatis Improve persistence with Apache Derby and iBATIS, Part 2: Data definition in Derby - JPet..

[dW] Dojo concepts for Java developers

자바 개발자를 위한 Dojo 컨셉 - Declaring classes and setting context 자바에 익숙한 개발자가 Dojo를 이용한 자바스크립트를 사용할 때 차이점과 혼돈을 해결해주기 위해~ Dojo 컨셉을 설명해 주는 영문 article이 있길래~ 간추려 남겨봅니다. 1. The JavaScript hash Hash는 curly brace ({})사이에 attribute의 set으로 표현된다. hash는 6개의 attribute로 이뤄져 있다. string, integer, boolean, undefined attribute, 다른 hash, function Listing 1. Example JavaScript hash var myHash = { str_attr : "foo", int_a..

[dW] IBM campus wizard 모집

어느덧~ 2008년의 마무리를 알려주는 2009년 4기의 IBM campus wizard 모집을 하는군요. 대학생만 대상으로 하는거라, 저는 참여할 수 없지만 제가 대학생일때 이런게 있었다면, 참여를 꼭 했을텐데.. 그땐 하지도 않았고, 정보에 지금보다 더 뒤지고 있을때라..^^ 못해봤지만, 디벨로퍼웍스를 모니터링만 하는것으로도 현재 흐름을 파악하기에 좋은 것 같아요. 더구나 좋은 글도 많고~ 자기 능력을 올리는데 많은 도움이 될 듯 합니다.^^ 전국에서 모이는 대학생들과의 교류도 재미있을 것 같고~ 관심있으신 분들은 신청해보세요~^_^ 신청 -> http://www.ibm.com/developerworks/kr/event/monitor/4th/

[dW] XML 구문을 분석할 때 발생하는 오류 처리하기

어떤 프로그램이던지 오류가 있기 마련이고, 그에 대한 해결을 얼마나 어떻게 잘해야하는건 프로그래머에게 달려있다. 프로그램을 짜는 사람이 사용자입장에서 보아도 제일 화가나는 프로그램은 이런 오류가 있다! 하고 그냥 죽어버린다거나, 심지어는 오류를 뱉어내지도 않고 그냥 죽는 프로그램일 것이다. 이러한 오류를 처리하기 위해선, 우수한 오류 처리 코드 요건이 있는데.. 사용자를 우선한다. 뉴저지 주에 사는 컴퓨터 사용자든, 3층에 있는 웹 개발자든, 뉴욕 증권 거래소 소장이든, 일단 내 고객이 누구인지 파악하고나면, 해당 고객이나 고객층을 고려하여 코드를 작성한다. 내 고객이 일반 컴퓨터 사용자라면 프로그래밍 용어를 배제하고 이해하기쉬운 오류 메시지를 제공한다. (꼭 필요하지 않는 한) 프로그램 흐름을 방해하지..

[dW] 아파치 더비를 이용한 오프라인 Ajax

아파치 더비를 이용한 오프라인 Ajax apache derby인 Java 1.6에선 JavaDB로 포함되어 있는 database를 클라이언트 측의 캐시로서 이용하는 예가 나와 있습니다. derby에 대해서, 또는 Ajax에 대해서 많은 부분이 나와 있는 건 아니지만, derby를 오프라인일 때 로컬 데이터캐시로 활용할 수 있다~ 라는 아이디어를 보여주는 것 같군요. 비중으로 따지면 applet이 더 많이 나와 있는듯...하군요..

The Eclipse executable launcher was unable to locate its companion shared library. Error

Eclipse launcher 실행 중의 오류~ 환경은 MacOS X, Eclipse v3.4.1 eclipse에서 plugin update를 하고 난후 restart를 한 후 갑자기 "The Eclipse executable launcher was unable to locate its companion shared library" 이런 메세지를 흘리면서 아무것도 안될때! 검색해보니, MacOS X에서의 eclipse bug로 올라와 있군요. 터미널에서 /Applications/eclipse/Eclipse.app/Contents/MacOS 폴더에서 eclipse.ini 파일을 한 줄만 수정해 주면 되는군요~ --launcher.library ../../../plugins/org.eclipse.equino..

디벨로퍼웍스 늦가을 행사 “개발자들의 수다” 행사를 하는군요.

이번주 토요일 재미있는 행사를 하는군요 그러나 전 잠시 주말에 지방에 다녀와야해서 참석은 못하겠지만, 수다 예고편을 보니 재미있겠는데요.. 개발자들도 예쁜 옷 입고 앉아서 할려나?ㅎㅎㅎㅎㅎ 머 거기까진 아니겠지만, (밑의 그림을 보니..) 못가는 게 너무 아쉽습니다.ㅠㅠㅠ 일 시: 11월 8일 토요일 오후 2:00~6:00 장 소: 도곡동 군인공제회관 23층 온디맨드홀 (약도 참고) 참가 신청 참가 신청은 전자우편(dWkorea@kr.ibm.com)으로 해주시고, 신청시 이름, 소속, 연락처 등을 적어서 보내주시기 바랍니다. 장소 관계상 참가 신청은 선착순 200명으로 한정하니, 빠른 신청을 부탁드립니다. 그 동안 developerWorks에 기고하였던 김도형, 김석준, 김승권, 김영후, 김창준, 박재호..

[dW] 자바스크립트 개발 툴킷(JSDT) 살펴보기

Eclipse 3.4 Ganymede에 새로 추가된 자바스크립트 개발 툴킷(JavaScript Development Toolkit, JSDT)에 대한 소개가 dW 글에 올라왔군요. 자바스크립트 개발 툴킷(JSDT) 살펴보기 Javascript는 loosely typed이라 에디터를 제공하기 위해선 어려움이 많기 때문에 정말 많이 쓰이는 언어이지만 에디터는 그에 반해 너무 없는게 안타까운게 현실이지요. JSDT는 자바스크립트 언어를 모델링하고 클래스 구조를 실시간으로 반영한다고 하는데 잘~~~반영해 줄련지... 에디터로서 반드시 갖춰야 할 덕목! 자동완성, 문법에러, 플로우분석, 퀵픽스등의 기능을 제공하고, 문법 하이라이팅 폴딩/라인 넘버 전체 아웃라이닝, 클래스 , 함수, 필드 보여주기 대응하는 소괄호/..

[dW] 자바로 만든 자바스크립트 엔진, 리노

2회(2008년10월): 자바로 만든 자바스크립트 엔진, 리노 리노(Rhino)는 1997년 넷스케이프에서 '자바로 만든 자바스크립트 엔진'으로 스파이더 몽키(SpiderMonkey)를 본따 개발되었다. 자바 1.6에서는 javax.script 패키지에 포함되어 있다. 리노는 자바스크립트에서 자바 라이브러리를 사용할 수있게 해주고, 자바에서 자바스크립트 코드를 불러오고 실행할 수 있다. 자바 바이트코드로 컴파일할 수 있을 뿐 아니라 인터프리터를 이용할 수도 있다. 이런 내용이!

[dW] 다시 보는 자바스크립트의 역사

1회(2008년9월): 다시 보는 자바스크립트의 역사 하루종일 자바스크립트하고 노는데, 늘~ 알수없는 녀석이 어떻게 살아왔나 익히 들어와서 대충 알고있긴 하지만, 이렇게 정리되어 있어 한번 쭈욱 읽고나니 조금 더 묘한 느낌(지금 째즈음악을 듣고 있어서 그런가...)이 납니다. 역사 얘기도 나오고 자바스크립트의 특징도 살짝 나오고,, 지금은 비록 모습이 많이 없지만, 프로토타입 기반 객체지향 개념을 내세운 자바스크립트, 아이오(Io) 언어에 의해 계승되고 있다는 셀프(self)언어를 꺼내며 프로포타입 기반의 객체지향과 클래스 기반의 객체지향에 대해서도 살짝 나오고 있습니다.

[dW] RESTful한 웹 서비스 만들기

RESTful한 웹 서비스 만들기(REST와 RESTlet 프레임워크에 대한 소개) REST란 동사(verb)라고 볼 수 있는 이러한 요청들과 명사(noun)라 볼 수 있는 자원을 연결함으로써 행동(behavior)을 논리적으로 표현한다. * CRUD/HTTP 간의 대응 애플리케이션 작업 HTTP 명령 Create POST Read GET Update PUT Delete DELETE 장점 메시지가 아닌 이름이 부여된 자원에 REST가 의존하기에 애플리케이션 디자인 측면에서 볼 때 느슨한 결합이라는 게 쉽게 가능해지는데, 이는 하부를 떠 받치는 기술이 무엇인지 노출되지 않기 때문이다. REST의 아름다움은, 자원은 어떤 것이든 될 수 있고 표현될 수 있는 방식도 다양하다는 점이다. 바로 전에 보았던 예에서..

[dW] XML을 사용하는 좋은 습관 열가지

어쩜 이런글은 지나다니다 많이 본 글인 것 같은데.. 오늘도 역시 지나다가 한번 훑어보고 나중에 보기위해 포스팅합니다. [dW] XML을 사용하는 좋은 습관 열가지 1. XML과 인코딩을 정의하라 이런식으로 써주면 XML 구문분석기가 문서를 잘못 분석할 가능성을 줄일 수 있다. 2. DTD 또는 XSD를 사용하라 DTD를 정의하면 XML 문서 구조를 검증해 문제를 찾아내기 쉬워진다. 일부 XML 편집기는 자동 완성 기능에 DTD를 요구하는 반면, 스키마를 사용하면 실제 문서 구조를 설계하기가 훨씬 편리해진다. DTD를 사용할지 XSD를 사용할지 여부는 개발자가 처한 상황에 달렸다. 3. 항상 검증하라 JSLint는 자주 쓰는데 xmllint도 있군요. Validation xmllint는 libxml2 툴..