Til 7

[TIL] Jackson, Controller, DTO, JDBC

Jackson Jackson은 `JSON` 데이터 구조를 처리해주는 라이브러리이다. Object를 JSON 타입의 String으로 변환해줄 수 있다. 반대로 JSON 타입의 String을 Object로 변환해줄 수 있다. Spring은 3.0버전 이후로 `Jackson`과 관련된 API를 제공함으로써, 직접 코드를 작성하여 JSON 데이터를 처리하지 않아도 자동으로 처리해주고 있다. 직접 처리해야 할 때는 Jackson 라이브러리의 `ObjectMapper`를 사용하면 된다. Object To JSON @Test @DisplayName("Object To JSON : get Method 필요") void test1() throws JsonProcessingException { Star star = new..

기타/개발일기 2024.01.18

[TIL] Gradle, Tomcat, 테스트 코드, Lombok, Spring MVC, 정적 및 동적 페이지

Gradle Gradle은 작성한 Java 코드를 설정에 맞게 자동으로 빌드해 주는 빌드 자동화 시스템이다. Build란 소스 코드를 실행 가능한 결과물로 만드는 일련의 과정 `(java -> jar)` build.gradle build.gradle은 Gradle 기반의 빌드 스크립트이다. 이 스크립트를 작성하면 소스 코드를 빌드하고 라이브러리들의 의존성을 쉽게 관리할 수 있다. 개발을 하면서 필요한 외부 라이브러리들을 `dependencies` 부분에 작성하면 Gradle이 해당 라이브러리를 Maven Repository와 같은 외부 저장소에서 자동으로 다운로드해온다. 다른 라이브러리들과의 의존성을 자동으로 관리해 주기 때문에 라이브러리들간의 충동 걱정없이 개발에만 집중할 수 있다. Gradle이 다운..

기타/개발일기 2024.01.17

[TIL] 모던 자바(Java 8)

모던 자바 : 자바 8 변경점 자바는 진화하는 언어이며, 가장 큰 진화는 Java 8에서 이루어졌다고 한다. 함수형 프로그래밍 함수를 일급 값으로 프로그래밍에서 지원하는 모든 연산을 지원하고 있고, 이러한 연산을 모두 지원하는 “값”들을 일급 시민, 또는 일급 객체라고 한다. 하지만 특정한 연산을 지원하지 않는 값이기 때문에 메서드는 이급 시민으로 볼 수 있다. 결론 : Java 8에 메서드 참조 기능이 도입되었다. 람다 : 익명 함수 람다는 익명함수를 지칭하는 말 익명함수란 말 그대로 이름이 없는 함수를 뜻하며, 일급 객체로 취급 함수를 값으로 사용 할 수도 있으며 파라미터에 전달 변수에 대입 하기와 같은 연산들이 가능 Javascript ES6의 Arrow function과 같다. 스트림 스트림은 데..

기타/개발일기 2024.01.05

[TIL] 프로세스와 쓰레드

프로세스와 쓰레드 프로세스 : 운영체제로부터 자원을 할당받는 작업의 단위, 실행 중인 프로그램을 의미 쓰레드 : 프로세스가 할당받은 자원을 이용하는 실행의 단위, 프로세스내에서 일하는 일꾼(코드실행의 흐름) OS가 프로그램 실행을 위한 프로세스를 할당해줄때 프로세스안에 프로그램 Code와 Data 그리고 메모리 영역(Stack, Heap)을 함께 할당해준다. 프로세스가 작업중인 프로그램에서 실행요청이 들어오면 쓰레드(일꾼)을 만들어 명령을 처리하도록 한다. 프로세스 안에는 여러 쓰레드(일꾼)들이 있고, 쓰레드들은 실행을 위한 프로세스 내 주소공간이나 메모리공간(Heap)을 공유받는다. 추가로, 쓰레드(일꾼)들은 각각 명령처리를 위한 자신만의 메모리공간(Stack)도 할당받는다. Java는 이와 같이 JV..

기타/개발일기 2024.01.04

[TIL] 예외처리, 제네릭

예외처리 확인된 예외처리 (Checked Exception) 컴파일 시점에 확인하는 예외. 반드시 예외 처리를 해줘야하는 예외. 미확인된 예외 (Unchecked Exception) 런타임 시점에 확인되는 예외. 예외 처리가 반드시 필요하지 않은 예외. 예외 정의 class OurBadException extends Exception { public OurBadException() { super("위험한 행동을 하면 예외처리를 꼭 해야합니다!"); } } super를 통해 Exception 클래스에 해당 문자열을 넘겨준다. throws throw 메서드 이름 뒤에 붙어 이 메서드가 어떠한 예외사항을 던질 수 있는지 알려주는 예약어. 메서드 안에서, 실제로 예외 객체를 던질 때 사용하는 예약어. 여러 종류..

기타/개발일기 2024.01.03

[TIL] 클래스, 상속, 인터페이스

누구나 아는 이야기는 글만 길어질 것 같아 생략하고 중요한 키워드나 내가 모르는 것을 정리해보고자 한다. 클래스 오버로딩 오버로딩은 하나의 메서드가 하나의 기능만을 하지 않고 다양한 기능을 가지는 것이다. 한 클래스 내에 이미 사용하려는 이름과 같은 이름을 가진 메서드가 있더라도, 매개변수의 개수 또는 타입, 순서가 다르면 동일한 이름을 사용해서 메서드를 정의할 수 있다. 조건 메서드의 이름이 같고, 매개변수의 개수, 타입, 순서가 달라야 한다. '응답 값만' 다른 것은 오버로딩을 할 수 없다. 접근 제어자만 다른 것도 오버로딩을 할 수 없다. 결론, 오버로딩은 매개변수의 차이로만 구현할 수 있다. 장점 메서드 이름 하나로 상황에 따른 동작을 개별로 정의할 수 있다. 메서드의 이름을 절약할 수 있다. 인..

기타/개발일기 2024.01.02

[TIL] JVM과 기본 문법

오늘의 키워드 JVM 자바 기본 문법 JVM JVM은 `Java Virtual Machine`의 약자로 자바 가상 머신이다. 간단하게 JVM 동작을 이해할 수 있는 그림이다. 대충 이야기하자면 자바 컴파일러로 변환된 바이트 코드를 클래스 로더를 통해 메모리에 보내준다. 인터프리터는 바이트 코드를 가져와 기계어로 번역을 하고, JIT 컴파일러가 이를 보조하여 도와준다. 또 메모리에서 안쓰는 데이터를 처리해주는 Garbage Collector가 있다. 더 자세하게 JVM에 대해 공부할 수 있도록 글을 따로 정리해두었다. 2023.12.21 - [Language/Java] - JVM JVM JDK, JRE, JVM JDK, JRE, JVM에 대한 용어를 정리하자면 JDK : Java Development Ki..

기타/개발일기 2023.12.29