이번 주는 JAVA에 대한 기초 지식과 기초 지식을 활용한 알고리즘을 공부했다.
JAVA에 대해서는 이전에 배워서 어느정도는 알고 있었으나, 배운지 오래 되어서 다시 공부하게 되었다.
선택 과정에서 JAVA, SPRING을 선택한 이유는 현재 한국 웹시장에서는 JAVA가 제일 대세라고 생각해서 선택하게 되었다.
JAVA 같은 경우에 JVM이란 JAVA 특유의 환경만 설치해준다면 어떤 환경에서도 동일하게 돌아가기 때문에 확장이 용이해서 현재 한국에서 제일 대세가 된 것 같다.
배운 내용 중 기억에 남는 것은 바로 큰 수를 활용하는 방법에 대해서이다. 컴퓨터 언어 특성상 이진수를 사용하기 때문에 소수의 표현에 있어서 약간의 신뢰성이 떨어진다고 할 수 있다. 물론 우리가 보통 사용하는 데에 있어서 그정도의 작은 오차는 문제가 되지 않겠지만 문제는 매우 큰 수를 표현할 때이다. 엄청 큰 수를 표현하는 방법은 long, float과 double 등 여러 변수형이 있지만 float과 double형의 경우 표현할 수 있는 수의 범위가 매우 넓지만 부동소수점 방식이기 때문에 소수 * 자릿 수의 방법으로 표현되는데 위에 말했듯이 이진수 특성상 소수의 표현에 약간의 오차가 발생할 수 있다. 그래서 JAVA에서는 큰 수의 정확한 계산을 위해 BigDecimal이라는 함수를 활용해서 숫자를 제일 정밀하게 표현한다.
그 외에도 학교를 다니면서 배울 때는 활용하지 않았던 ArrayList, LinkedList, Stack, Queue, Set, Map 등 을 활용하는 방법에 대해서도 배우고 해당 자료형들을 알고리즘을 구현하는데 유용하게 활용했다.
WIL