목록공부 (45)
랩터
마이크로서비스 아키텍처는 작고 독립적인 서비스들의 집합으로 구성된 애플리케이션 구조이다. 모놀리식 아키텍처 (Monolithic Architecture)모놀리식 아키텍처는 전통적인 개발 방식으로 하나의 프로젝트에 모든 기능을 함께 포함한다. 이렇게 하면 코드 베이스가 커질수록 개발 및 배포에 복잡성이 증가한다. 마이크로서비스 아키텍처 (Microservice Architecture)MSA는 여러 개의 작은 서비스로 구성되어 각 서비스가 독립적으로 개발되고 배포되는 구조이다.MSA로 구성되어 있는 애플리케이션의 경우 전체 시트템이 분산되어 있어 개발, 배포가 독립적으로 가능하며 확장성과 유지관리가 용이해진다. 모놀리틱 아키텍처와 마이크로서비스 아키텍처의 장단점을 비교해보겠다. 모놀리식 아키텍처의 장점..
이번 포스팅에서는 DTO(Data Transfer Object)가 무엇인지 알아보고, 클라이언트의 요청을 DTO로 변환한 후에 이 DTO를 다시 응답으로 변환하는 방법을 살펴보도록 하겠습니다.그리고 클라이언트의 요청 데이터에 Validation(유효성 검증)을 적용하여 요청 데이터의 안전성을 보장하는 방법 또한 살펴보도록 하겠습니다.학습 목표DTO(Data Transfer Object)DTO가 무엇인지 이해할 수 있다.DTO를 Controller 클래스에 적용할 수 있다.DTO Validation이 무엇인지 이해할 수 있다.DTO(Data Transfer Object)란?DTO란 무엇일까요? DTO는 Data Transfer Object의 약자로 마틴 파울러가 소개한 애플리케이션 아키텍처 패턴의 하나입니..
학습 목표Spring MVC가 무엇인지 알 수 있다.Spring MVC의 동작 방식과 구성요소를 이해할 수 있다.Spring MVC란?서블릿API를 기반으로 클라이언트의 요청을 처리하는 모듈이 있는데, 이 모듈이 바로 Spring MVC입니다. 서블릿이란?서블릿은 클라이언트의 요청을 처리하도록 특정 규약에 맞추어서 Java 코드로 작성하는 클래스 파일입니다. 아파치 톰캣은 이러한 서블릿들이 웹 애플리케이션으로 실행이 되도록 해주는 서블릿 컨테이너입니다. Spring MVC에 대해 두가지만 기억합시다.Spring MVC는 클라이언트의 요청을 편리하게 처리해주는 프레임워크이다.우리가 만들게 될 샘플 애플리케이션은 Spring MVC가 제공해 주는 기능을 이용해서 만든다. ModelModel은 Spring M..
https://github.com/Lifesheep1/java-collection-practice-0704.git
https://github.com/Lifesheep1/java-stream-practice-0710.git GitHub - Lifesheep1/java-stream-practice-0710Contribute to Lifesheep1/java-stream-practice-0710 development by creating an account on GitHub.github.com
자바는 C++처럼 객체지향 프로그래밍이 가능하면서도, 운영체제로부터 독립되어 있으므로, 자바로 소스 코드를 한 번만 작성하면 어떤 운영체제에서도 코드를 수정할 필요 없이 프로그램을 실행시킬 수 있습니다. 이와 같은 운영체제로부터의 독립성은 JVM이라는 별도의 프로그램을 통해서 구현됩니다.학습 목표JVM이 무엇인지 이해한다.JVM의 메모리 구조를 개괄적으로 이해한다.가비지 컬렉션이 무엇인지 이해한다.JVM이란?JVM(Java Virtual Machine)은 자바 프로그램을 실행시키는 도구입니다. 즉 JVM은 자바로 작성한 소스 코드를 해석해 실행하는 별도의 프로그램입니다. JVM은 자바 프로그램과 운영체제 사이에서 일종의 통역가 역할을 수행합니다. JVM 구조 JVM의 내부 구조 그림입니다. 자바로 소스..
어떤 애플리케이션이 실행되면 운영체제가 해당 애플리케이션에 메모리를 할당해 주며 애플리케이션이 실행되는데, 이처럼 실행 중인 애플리케이션을 프로세스라고 합니다. 그리고, 프로세스 내에서 실행되는 소스 코드의 실행 흐름을 스레드라고 합니다.단 하나의 스레드를 가지는 프로세스를 싱글 스레드 프로세스, 여러 개의 스레드를 가지는 프로세스를 멀티 스레드 프로세스라고 합니다. 어떤 프로세스가 멀티 스레드로 동작한다는 것은 해당 애플리케이션이 동시 작업을 할 수 있다는 것을 의미합니다. 즉, 여러 코드를 각 스레드에 분배하여 동시에 실행시킬 수 있는 것이죠. 지금까지 우리가 봐왔던 코드들은 싱글 스레드코드입니다. 이번에는 멀티스레드를 활용할 수 있게 스레드를 생성하고 실행하는 배워보겠습니다. 학습 목표스레드가 무엇..
파일 입출력을 정리해보겠습니다. 학습 목표바이트 기반 스트림의 간단한 입출력 코드를 이해하고 활용합니다.문자 기반 스트림의 간단한 입출력 코드를 이해하고 활용합니다.파일 클래스를 이해하고 활용합니다. InputStream, OutputStream자바에서는 입출력을 다루기 위한 InputStream, OutputStream을 제공합니다. 가장 많이사용되는 FileInputStream과 FileOutputStream을 살펴보겠습니다. FileInputStream터미널에 echo code >> java.txt를 입력하면, code라는 문자열이 입력된 java.txt라는 파일을 생성합니다. import java.io.BufferedInputStream;import java.io.FileInputStream;pu..
Optional은 NullPointerException(NPE), 즉 null값으로 인해 에러가 발생하는 현상을 객체 차원에서 효율적으로 방지하고자 도입되었습니다. 연산 결과를 Optional에 담아서 반환하면, 따로 조건문을 작성해주지 않아도 NPE가 발생하지 않도록 코드를 작성할 수 있습니다. OptionalOptional 클래스는 모든 타입의 객체를 담을 수 있는 래퍼클래스입니다. package Stream;import java.util.Arrays;import java.util.List;import java.util.Optional;public final class OptionalExample { public static void main(String[] args) { List ..
forEach()메서드는 대표적인 최종 연산자입니다.스트림에는 forEach() 메서드 외에도 다양한 최종 연산자들이 존재합니다.기본 집계(sum() , count() , average(), max() , min())숫자와 관련된 기본적인 집계의 경우에는 대부분 최종 연산자라고 생각해도 됩니다. package Stream;import java.util.Arrays;import java.util.OptionalDouble;public class TerminalOperationExample { public static void main(String[] args) { //int형 배열 생성 int[] intArray = {1, 2, 3, 4, 5}; //카운팅 ..