본문 바로가기

JAVA

(17)
Java - Jackson = Jackson이란? : Json, XML, YAML, CSV 등 다양한 확장자를 가지고 있는 데이터의 처리를 지원하는 라이브러리. 스트림 방식이므로 속도가 빠르고 유연하며, 다양한 third party 데이터 타입을 지원하며, annotation 방식으로 메타 데이터를 기술할 수 있다. 스프링부트에서는.. Json -> Object, Object -> Json 변환작업을 할 수 있도록 설정이 되어있는데 # Gradle 기준 implementation 'org.springframework.boot:spring-boot-starter-web' spring-boot-starter-web에 jackson 라이브러리가 포함되어있다. @RestController Annotation을 사용하는 경우, POJO C..
Java - Enum enum 이란? : enum의 정의는.. Enumerated Type (열거형 타입)을 줄인 용어이며, 상수 값을 대표하는 이름의 멤버들로 집합을 이루는 열거 자료형 타입이다. - 자바 1.5버전부터 새롭게 추가된 개념으로, 열거형 상수라고 불린다. - 자바에서는 상수값을 정의할 때 final static String ~ 와 같은 방식으로 정의했는데, enum을 사용해서 대체가 가능하다. - Class 처럼 정의하는 상수, 서로 관련 있는 상수들끼리 묶을 수 있다. 그럼 enum은 언제 사용할까? 상수값 중에서 비슷한 종류(서로 관련 있는)의 상수를 묶어놓기 위해 사용 // 로또 프로그램에서 1등부터 5등까지를 의미하는 등수와 각 등수가 만들어 지는 조건, 그리고 각 등수에 해당하는 상금을 묶어낼 필요가..
Java - 로컬환경 자바프로젝트 세팅 (with Docker) ※ mac os 기준이며, IDE는 Intellij 기준으로 작성했습니다. 회사에서 로컬환경 설정하면서, 정리했던 내용입니다. 1] 자바 설치 # ------ bash를 통한 brew 설치 ------ $ bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)" # ------ mac 계정 password 입력후 / Enter ------ Password: ...... ...... ==> Installation successful! ==> Homebrew has enabled anonymous aggregate formulae and cask analytics. Read the analytics ..
Java - 자바 객체 지향의 원리와 이해(개념정리) - 2편 안녕하세요~ 개발을 잘하고싶은 개발자입니다. 1편에 이어서 2편 이야기를 진행합니다. [1편 참조] 자바 객체 지향의 원리와 이해(개념정리) - 1편 안녕하세요~ 개발을 잘하고싶은 개발자입니다. 여기에서는 책을 통해서 기본 개념을 정리해보는 시간을 가지도록 하겠습니다. 제가 읽을 책은 [스프링 입문을 위한 자바 객체 지향의 원리와 이 xggames.tistory.com - 객체지향 프로그래밍 기본 지식 두번째 이야기 abstract - 추상 메서드와 추상 클래스 : 추상 메서드(Abstract Method)는 선언부는 있는데 구현부가 없는 메서드를 말한다. 추상 메서드를 하나라도 갖고 있는 클래스는 반드시 추상 클래스(Abstract Class)로 선언해야 한다. - abstract Class, Meth..
Java - 자바 객체 지향의 원리와 이해(개념정리) - 1편 안녕하세요~ 개발을 잘하고싶은 개발자입니다. 여기에서는 책을 통해서 기본 개념을 정리해보는 시간을 가지도록 하겠습니다. 제가 읽을 책은 [스프링 입문을 위한 자바 객체 지향의 원리와 이해] - 김종민지음 입니다. 자바와 친해지기 위해 책을 읽고 관련 지식을 정리해놓고자 합니다. (JAVA 카테고리이기때문에, 스프링 관련 내용은 정리하지 않았습니다) - 자바 프로그램의 개발과 구동 JVM : (Java Virtual Machine) 자바 가상 기계. JRE : (Java Runtime Environment) 자바 실행 환경. => 윈도우, 리눅스, 애플 Mac OS등 각 플랫폼마다 JAVA에서 사용할 수 있도록 한다. JDK : (Java Development Kit) 자바 개발 도구. [현실 세계] 프로..
Java - lambda와 Stream JAVA 8에서 추가된 새로운 개념들중.. 람다식(lambda)와 스트림(Stream)에 대한 정리 람다식이란? : 메소드를 하나의 간결한 식으로 표현한 것..함수를 변수처럼 사용할 수 있다. 익명 함수(anonymous function)라고도 불린다. 람다는 오직 1개의 메서드만을 가지는 인터페이스(아래에서 다시 설명하는데, 이러한 인터페이스를 Funcation Interface라 한다)의 익명 클래스 구현체를 우아하게(?) 치환할 수 있는 표현법으로, 람다식은 이 인터페이스의 인스턴스가 된다. - 람다식의 기본구조 (타입 매개변수, ..) -> { 실행문;.. }; Test test = (int num) -> {System.out.println("number: "+num);}; // 자료형 생략 Te..
Java - JVM(Java Virtual Machine)의 메모리 영역 - 간단 정리 = 힙 영역(Heap Area) : JVM이 시작될 때 생성되어 애플리케이션이 동작하는 동안(=런타임) 동적으로 할당하여 사용되는 메모리 영역. - 힙 영역에 생성된 인스턴스와 배열은, 스택 영역의 변수나 다른 객체의 필드에서 참조한다 - new 연산자로 생성된 객체(인스턴스)와 배열을 저장 - 힙 영역의 사용기간 : 참조하는 변수나 필드가 없다면, 의미 없는 객체가 되어 GC의 대상이 되어버린다. GC는 이 Heap영역에서 발생한다. - 힙 영역은 모든 스레드에서 공유한다. 그 이유는, 스레드는 메모리 구조에서 스택(Stack)영역을 분할하여 메모리를 사용하기 때문이다. 스레드는 각각의 스택영역을 가지지만, 힙(Heap) 영역은 하나로 공유해서 사용하기 때문이다. 따라서 멀티 프로세스(여러개의 프로세스..