전체 글
-
[Java] 공식문서 보는 법Java 2021. 11. 7. 18:25
개요 보통 구글링 하여 클래스나 메서드의 사용방법을 찾아보면 쉽게 정리된 글을 찾을 수 있지만 많은 사람들이 다루지 않은 클래스, 메서드 또는 새롭게 나온 기술의 경우에는 정리된 글을 찾을 수 없기 때문에 공식문서 보는 연습을 시작하기로 하였습니다. API 사용방법 알아보기 API는 Application Programming Interface의 약자입니다. 자바의 공식 사용 설명서는 검색창에 api documentation java라고 입력하면 Oracle에서 제공하는 Java 문서 사이트를 찾을 수 있습니다. 버전은 자신이 사용하는 Java의 버전에 맞게 선택해서 참고하면 됩니다. 참고자료 https://velog.io/@muz/Java-%EA%B3%B5%EC%8B%9D%EB%AC%B8%EC%84%9C..
-
[Java] 자바 컬렉션 프레임워크(Java Collections Framework)Java 2021. 11. 7. 03:36
개요 다양한 알고리즘 문제를 접하게 되면서 문제를 이해하고 쉽게 푸는 측면에서와 시간 복잡도 측면에서 어떤 자료구조를 사용하는 것이 효율적인지 고민하게 되어서 JCF(java collections framework)에 대해 찾아보게 되었습니다. Java Collections Framework(JCF)란 무엇일까? 배열을 사용하다가 보면 크기가 고정적이어서 메모리가 낭비되거나 크기를 넘어서게 될 때 데이터를 저장할 수 없어서 비효율적인 문제가 발생하는데 이를 해결하기 위해 자료구조를 바탕으로 객체나 데이터들을 효율적으로 관리(추가, 삭제, 검색, 저장)할 수 있는 자료구조를 만들어 놓았으며 이 라이브러리를 컬렉션 프레임워크라고 합니다. 자바에서의 자료구조 유형 순서가 있는 목록인 List 순서가 중요하지 ..
-
[Java] Scanner 와 BufferedReader의 차이점Java 2021. 11. 5. 13:45
두 클래스는 모두 자바에서 입력을 받는 데 사용이 됩니다. BufferedReader 우선 BufferedReader는 InputStreamReader에 버퍼링 기능이 추가된 Class입니다. 사용자가 요청할 때마다 데이터를 읽어 오는 것이 아닌 일정한 크기의 데이터를 한 번에 읽어와 버퍼에 보관한 후, 사용자의 요청이 있을 때 버퍼에서 데이터를 읽어오는 방식으로 동장 합니다. 입력받은 타입은 String 타입으로 공백의 경우에도 String으로 인식하여 받아들입니다. InputStreamReader란? 문자열은 character 단위로 읽어 들입니다. 이는 긴 문자열을 읽을 때 비효율적이어서 이를 보완하고자 BufferedReader가 존재합니다. Scanner 공백과 줄 바꿈을 모두 입력값의 경계로 ..
-
[Java] equals 와 ==의 차이점Java 2021. 11. 3. 18:15
개요 알고리즘 문제를 풀다 ==의 경우에 풀리지않고 equals를 써야 풀리는 부분이 있어 궁금해서 찾아보게 되었습니다. 공통점 이 둘은 모두 양쪽의 내용을 비교하여 boolean type으로 반환한다는 공통점을 가집니다. 차이점 1) 형태의 차이 - (메소드와 연산자) equals() 는 메소드 이며 == 은 비교를 위한 연산자입니다. 2) 주소값 비교와 내용 비교 equals 메소드는 대상의 내용 자체를 비교하지만, == 연산자는 비교하고자 하는 대상의 주소값을 비교합니다. *Object 클래스에서는 주소값을 비교하지만 String클래스에서는 equals 메소드를 오버라이딩하여 내용을 비교하도록 합니다. 실습 예를 들어, String 클래스를 이용해 문자열을 생성해보겠습니다. String a = "a..
-
기업들은 왜 Spring Framework를 사용할까?Spring Framework 2021. 11. 2. 15:12
이전글에서 Framework란 무엇인지에 대해서 알아보았습니다. 국내의 많은 기업들이 Java 기반의 Spirng Framework를 사용하는데 왜 Nodejs의 express, Python에서의 Django, Flask를 사용하지 않는지 궁금해서 찾아보게 되었습니다. 1. 정적 언어타입으로의 강점 자바는 함수의 입력과 출력이 어떤 타입을 가져야 하는지 강제하기 때문에 다른사람들과의 협업 또는 오랜 시간 작업을 할 때, 규모 있는 서비스 개발을 할 때 정적타입언어가 선호됩니다. 하지만 js에서도 TypeScript라는 언어를 내놓았기 때문에 스프링이 주류인 충분한 이유가 되지 않습니다. 2. 컴파일된 언어로서의 장점 js, python과 구별되는 특징은 컴파일이된다는 점으로 C/C++에 준하는 성능까지는..
-
프레임워크(Framework)란?Spring Framework 2021. 11. 1. 13:40
프레임워크란? Frame(틀 ) + work(일하다)로 일정하게 짜인 틀, 뼈대를 가지고 일한다라는 느낌으로 장난감 키트를 예시로 들어보면 장난감 키트는 부품과 매뉴얼을 제공하고 사용자는 이를 통해 다양한 형태의 장난감을 만들 수 있습니다. 따라서 프레임워크(Framework)란 일정한 형태의 틀, 부품을 가지고 다양한 형태의 결과물을 만드는 것이라고 할 수 있습니다. IT에서 개발자들이 말하는 프레임워크는 Spring, Django, Ruby on RAils, Node.js 등등이 있습니다. 사전적 정의로는 소프트웨어의 구체적인 부분에 해당하는 설계와 구현을 재사용이 가능하게끔 일련의 협업화된 형태로 클래스들을 제공하는 것으로 프레임워크(Framework)란 개발을 편하게 해주는 도구입니다. 그러면 우..
-
[Java] 자바의 Hello WorldJava 2021. 10. 29. 03:02
개요 자바에서 기본적으로 제공해주는 public static void main 구문에 대한 궁금증이 생겨 왜 그렇게 사용하는지 알아보고자 합니다. 자바 Public Class와 소스파일 네이밍 class Hello { public static void main(String[] args) { System.out.println("Hello, world."); } } 위는 Java를 사용하여 Hello, world. 를 출력하는 코드입니다. 자바에서 모든 코드는 반드시 클래스 안에 존재해야 하며, 이 클래스들이 모여 하나의 Java 애플리케이션을 이룹니다. 하나의 소스파일에 하나의 클래스만을 정의하는 것이 보통이지만, 하나의 소스파일에 둘 이상의 클래스를 정의하는 것도 가능합니다. 이때 주의해야 할 점은 '소..
-
[Java] 자바의 특징Java 2021. 10. 29. 00:20
개요 자바 공부를 시작하고자 자바의 여러 특징에 대해 알아보며 자바를 이해하는 시간을 가져보려 합니다. 운영체제에 독립적 JVM(자바 가상 머신)을 활용하여 응용프로그램이 운영체제와 통신할 수 있도록 합니다. 하지만 JVM자체는 운영체제에 종속적이어서 설치는 운영체제에 따라 다른 버전의 JVM을 설치해야 합니다. JVM이란? Java Virtual Machine의 줄임말로 자바로 작성된 애플리케이션은 모두 JVM에서만 실행됩니다. 일반 애플리케이션은 바로 OS -> 하드웨어로 전달됩니다. 하지만 자바 애플리케이션은 JVM -> OS -> 하드웨어로 JVM을 추가적으로 거쳐야 합니다. [위 그림 참조] 속도가 느리다는 단점을 가지고 있지만 바이트코드(컴파일된 자바 코드)를 하드웨어의 기계어로 바로 변환해주..