반응형

java 28

Java Stream

Java Stream은 컬렉션, 배열 등의 데이터를 다룰 때 사용되는 API로서, 람다식과 함수형 인터페이스를 이용하여 데이터 처리를 더욱 간결하고 효율적으로 할 수 있도록 지원합니다. Stream 개요 Stream은 크게 중간 연산과 최종 연산으로 구성됩니다. 중간 연산은 Stream을 반환하며, 최종 연산은 다른 타입의 값을 반환합니다. 이때, 최종 연산이 수행되기 전까지는 중간 연산이 실행되지 않습니다. Stream API에서 제공하는 대표적인 중간 연산과 최종 연산은 다음과 같습니다. 중간 연산 filter(Predicate predicate): 조건에 맞는 요소만을 Stream에 남깁니다. map(Function mapper): 각 요소를 매핑하여 Stream을 반환합니다. flatMap(Fun..

java 2023.03.28

블로킹(Blocking)? 논블로킹(Non-Blocking)?

블로킹(Blocking) 블로킹이란, 어떤 작업이 수행될 때 해당 작업이 완료될 때까지 프로그램이 다른 일을 할 수 없는 상태를 말합니다. 즉, 입출력 작업을 수행할 때 결과가 반환될 때까지 대기하는 것입니다. 이러한 블로킹 모델은 I/O 작업이 끝날 때까지 스레드를 중단시켜 대기하도록 만들어져 있으며, 이는 시스템 자원의 비효율성을 야기할 수 있습니다. 아래는 블로킹 모델로 I/O 작업을 수행하는 Java 코드입니다. import java.io.*; public class BlockingIOExample { public static void main(String[] args) { try { FileInputStream fileInputStream = new FileInputStream("input.tx..

java 2023.03.07

[백준][11399] ATM

https://curiouskidd.tistory.com/15 main calss 규정 https://www.acmicpc.net/problem/11399 최소 시간을 구하는 문제입니다. 사람마다 일을 처리하는데 걸리는 시간이 다를 것이고, 처리 순서에 따라서 필요한 시간의 합은 달라질 것입니다. int n = 5; int[] arrayInt = {3, 1, 4, 3, 2}; Arrays.sort(arrayInt); // array의 순서 정렬 int returnInt = 0; int lengthInt = n; for (int value : arrayInt) { returnInt += (value * lengthInt); lengthInt -= 1; } System.out.println(returnInt..

CodingTest 2022.10.05

어노테이션(Annotation) 이란?

자바 개발을 하다 보면 클래스 또는 메서드 또는 변수 앞에 @Override 같은 @ 표시를 많이 봤을 것입니다. 이 어노테이션은 JEE5(Java Platform, Enterprise Edition 5)부터 새롭게 추가된 요소입니다. 이 어노테이션으로 인해 데이터의 유효성 검사 등을 쉽게 알 수 있고, 이와 관련한 코드가 깔끔해지게 됩니다. 일단 어노테이션의 용도는 다양한 목적이 있지만 메타 데이터의 비중이 가장 크다 할 수 있습니다. 메타-테이터(Meta-Data) : 데이터를 위한 데이터를 의미하며, 풀어 이야기하면 한 데이터에 대한 설명을 의미하는 데이터. (자신의 정보를 담고 있는 데이터) Java에서 기본적으로 제공하는 어노테이션 종류 @Override 선언한 메서드가 오버라이드 되었다는 것을..

java 2022.07.11

[Spring Boot] @SpringBootApplication

스프링부트 메인 클래스에는 @SpringBootApplication 라는 어노테이션이 붙어있다. @SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } } 메인 클래스에 붙어 있는 @SpringBootApplication은 크게 3가지가 합쳐진 것이라고 생각할 수 있다. @SpringBootConfiguration @ComponentScan @EnableAutoConfiguration 스프링 부트 어플리케이션은 Bean을 2번 등록한다. 처음에 ComponentScan으로 등록하고, 그 후에 EnableAuto..

Spring 2022.06.30

J2EE란?

J2EE (Java 2 Enterprise Edition) J2EE란? J2EE는 자바 기술로 기업환경의 어플리케이션을 만드는데 필요한 스펙들을 모아둔 스펙 집합입니다. J2EE를 만든 것은 Sun Microsystems이고 SUN에서 J2EE 스펙을 시범적으로 구현해두기는 하지만, IBM, BEA, Oracle, HP, Iona등 여러 벤더들도 그 스펙을 구현할 수 있으며 J2EE 호환성을 검증하는 기구의 검증을 통과하기만 하면 J2EE 호환 제품으로 시장에 출시할 수 있습니다. 그리고 이런 벤더들은 J2EE 스펙을 개선하는 과정에도 활발히 참여하기 때문에, J2EE는 사실상 SUN의 독점적인 기술이라기 보다는 Java진영으로 불리는 여러 Vendor들과 개발자들이 같이 만들어 가고 공유하는 기술로 보..

java 2022.05.30

JVM 메모리 구조

JVM(Java Virtual Machine)이란? 자바를 싱행하기 위한 가상 기계이다. 즉 자바를 실행하기 위한 가상 컴퓨터이다. 자바로 작성된 어플리케이션은 모두 이 가상 JVM에서만 실행되기 때문에 자바 어플리케이션이 실행되기 위해서는 JVM이 필요 자바 바이트 코드를 실행할 수 잇는 주체 운영체제 위에서 동작하는 프로세스로 자바 코드를 컴파일해서 얻은 바이트 코드를 해당 운영체제가 이해할 수 있는 기계어로 바꿔 실생시켜주는 역할을 한다. 가상기계란? 소프트웨어로 구현된 하드웨어 JVM의 구성 Class Loader, Execution Engine, Garbage Collector, Runtime Data Area 로 구성되어있다. Class Loader 자바에서 소스를 작성하면 Person.jav..

java 2022.05.25

Web Server? WAS?

웹서버 (Web Server) Web Server란? Web Server는 두가지로 구분되고 있다 하드웨어 서버가 설치되어 있는 PC 소프트웨어 웹 브라우저 클라이언트로부터 HTTP 요청을 받아 정적인 컨텐츠(.html .jpeg .css 등)를 제공하는 컴퓨터 프로그램 Web Server가 하는 일은? HTTP 프로토콜을 기반으로 하여 클라이언트(웹 브라우저 또는 웹 크롤러)의 요청을 서비스 하는 기능을 담당 정적인 컨텐츠 제공 정적인 컨텐츠 : HTML, CSS 등등 WAS를 거치지 않고 바로 자원을 제공한다 동적인 컨텐츠를 위한 요청 전달 클라이언트의 요청(Request)를 WAS에 보내고, 결과를 클라이언트에게 다시 전달(Response)한다. Web Server 종류 Ex) Apache Serv..

ETC 2022.05.20
반응형