목록Java (11)
살아가는 이야기
Java 개발 도구로는 IDE를 사용하는 것이 좋다. 예전엔 Eclipse가 최강자였지만, 지금은 IntelliJ IDEA가 떠오르고 있다. NetBeans IDE도 평이 괜찮은 편이다. 그럼에도 불구하고 어떤 이유에서든 단순 편집기를 선호하기도 한다. 나는 Vim을 사용하는 편이지만, 이런 거친 환경에 익숙하지 않은 사람은 GUI 느낌이 충만한 Visual Studio Code(VS Code)를 선호하기도 한다. Vim과 VS Code의 중간 정도 위치에 있는 것이 Sublime Text다. Sublime Text에는 이미 JavaC라는 빌드 메뉴가 추가되어 있다. 따라서 단순히 컴파일만 할 거라면 그냥 JavaC 메뉴를 사용하면 된다. 하지만 컴파일과 실행을 함께 진행하고 싶다면 다음 메뉴를 선택하여..
2021년 추석 기념으로 프로그래밍 언어 인기도를 게시한다. 한동안 저장하지 못했던 프로그래밍 언어 인기도를 올해는 생각이 나서 측정해 보았다. 최근 게시글과 마찬가지로 TIOBE 인덱스(https://www.tiobe.com/tiobe-index/) 기준이다. 작년에 비해 조금 낮아지긴 했지만 아직 C가 부동의 1위이다. Fortran과 Delphi, Visual Basic의 약진이 놀랍다. 이후 50개의 인기 언어는 다음과 같다. 상위 10위 표에 작년 순위가 함께 게시되어 있어서 다행이라고 생각했었는데, 장기간 순위가 별도로 나와 있었다. 그래서 그것도 함께 게시한다. 장기간 순위를 보면 C/C++와 Java의 영향력이 독보적이다. 아직 대세는 C 언어 그룹임을 알 수 있다. 배우기 쉬운 BASIC..
Eclipse는 Java 코딩에 아직도 많이 쓰이고 있다. Eclipse에서 여러 재미있는 단축키가 많이 있는데, 예컨대 코드 일정 부분을 선택한 후 Ctrl+I를 누르면 해당 부분의 들여쓰기가 예쁘게 조정된다. 코드 개발 중에 많이 사용하는 단축키로 F3이 있다. 메소드나 필드 이름에 커서를 놓은 후 F3를 누르면 해당 이름을 정의한 부분을 찾아준다. 찾은 후에 원래 위치로 다시 돌아가려면 Alt+←를 누르면 된다. 예전에 Unix에서 비슷한 일을 하려면 ctags라는 프로그램을 사용했었는데, 정말 편리한 세상이다.
인터넷과 웹이 발전함에 따라 이제 프로그래밍도 웹으로 할 수 있게 되었다. 대표적인 언어에 대해 온라인 컴파일러(인터프리터) 목록을 여기 정리한다.Python: https://repl.it/languages/python3C/C++: http://cpp.sh/Java: https://www.compilejava.net/Prolog: https://swish.swi-prolog.org/기타 다양한 언어: https://tio.run/첫 번째 사이트인 repl.it에는 Python 외에도 상당히 많은 언어를 지원하고 있다. 또 마지막 사이트 tio는 상당히 투박한 사이트이지만 엄청나게 많은 언어를 지원하고 있다.이제 간단한 프로그램은 온라인에서 거의 모두 테스트해 볼 수 있다.
Java의 BigInteger를 이용하면 오버플로우 없이 계산을 할 수 있다. 하지만 사용법이 까다로워 잘 모르는 사람들이 많은 것 같다. BigInteger를 이용하여 계승(factorial)을 구하는 프로그램을 예로 들면 다음과 같다.import java.math.*; public class FactorialBig { public static BigInteger factorial(BigInteger n) { if (n.equals(BigInteger.ZERO)) return BigInteger.ONE; else return n.multiply(factorial(n.subtract(BigInteger.ONE))); } public static void main(String[] args) { for (i..
eclipse가 설치된 후에 JDK를 업그레이드 했다면, 그리고 예전 JRE를 지웠다면 JRE unbound 오류가 발생할 수 있다. 이럴 때는 'Project -> Properties' 메뉴를 클릭하여 왼쪽의 'Java Build Path'를 선택하고 오른쪽에서 Libraries 탭을 클릭한다(아래 그림 참고). 여기서 'Add Library...'를 클릭하고 나온 대화창에서 'JRE System Library'를 선택한 후 'Next >'를 누른다. 여기서 'Alternate JRE'를 선택하고 'Installed JREs...' 버튼을 눌러(아래 그림 참고) 설치된 JDK 폴더 내의 JRE를 바르게 선택해 주면 된다.
C 표준 라이이브러리에는 문자의 형태를 검사하는 함수들이 있다. 이 함수들은 에 정의되어 있는데, 대표적인 함수들을 예로 들면 다음과 같다. isalnum(); isalpha(); iscntrl(); isdigit(); isgraph(); islower(); isprint(); ispunct(); isspace(); isupper(); isxdigit(); tolower(); toupper(); Java에도 비슷한 역할을 하는 메소드들이 정의되어 있는데, 이 메소드들은 Character 클래스에 정의되어 있다. 예컨대 isdigit()은 Character.isDigit()처럼 쓰면 된다. 물론 C 처럼 많은 함수들을 지원하지는 않고 isDigit(), isLetter(), isWhitespace(), i..
C 프로그램 내의 특정 지점에서 만족해야 할 조건을 제시할 때 assert 매크로를 이용한다. 이 매크로는 를 #include하면 사용할 수 있다. 구닥다리 Java에는 assert가 없지만 최신 Java에는 assert가 언어 수준에서 제공된다. 다음 프로그램은 assert를 이용하여 작성한 피보나치 수열 프로그램이다. public class Fib { static public void main(String[] args) { for (int n: new int[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}) { System.out.printf("fib(%d)=\t%d%n", n, fib(n)); } } static public int fib(int n) { assert(n >= 0); ret..