분류 전체보기 (81) 썸네일형 리스트형 [0914] CS 지식 - 네트워크 (네트워크 기술) # TCP / IP - LAN & WAN ▪ 연결된 네트워크. ▪ LAN(Local Area Network)은 좁은 의미의 네트워크를 의미한다. ▪ WAN(Wide Area Network)는 LAN이 모여 구성한다. ▪ LAN이 WAN으로 확장되기 위해서는 LAN들의 거점이 연결되는 통신회선이 필요하다. - 인터네트워킹 (internetworking) ▪ 네트워크와 네트워크가 연결되어 확장되는 것을 의미한다. ▪ 인터네트워킹을 통해 네트워크 일부의 고장의 영향을 줄이고, 불필요한 통신의 확산을 제한하며, 개별 네트워크의 관리가 용이해진다는 장점이 있다. ▪ 인터넷은 세계가 인터네트워킹된 것이다. - 프로토콜 (protocol) ▪ 인터넷에 연결된 컴퓨터가 네트워크를 사용할 때 사용하는 언어. ▪ TCP .. [0913] 자바 가상머신 (JVM) #JVM(Java Virtual Machine) - JVM란? ▪ JVM은 자바로 작성한 소스 코드를 해석해 실행하는 별도의 프로그램이다. ▪ JVM은 프로그램 실행에 필요한 컴퓨터 자원을 할당받기 위하여 운영체제와 소통한다. ▪ JVM은 각 운영체제에 맞는 버전이 따로 존재한다. ▪ 각 운영체제에 따라 자바 소스 코드를 변환해 실행시키기 때문에 자바는 운영체제와 독립적으로 실행될 수 있다. - JVM 구조 ▪ 자바 코드 실행 시 컴파일러가 자바 소스 코드를 바이트 코드 파일로 변환시킨다. ▪ JVM은 운영 체제로부터 실행에 필요한 메모리를 할당받는다. (런타임 데이터 영역) ▪ 클래스 로더가 바이트 코드 파일을 JVM 내부로 불러들여 메모리 영역으로 로드시킨다. ▪ 로드된 바이트 코드를 실행 엔진이 인.. [0908] 자바 스레드 (스레드 제어) #스레드 제어 - 스레드 동기화 ▪ 멀티 스레드 프로세스의 경우, 두 스레드가 같은 데이터를 공유하게 될 때 문제가 발생할 수 있다. ▪ 스레드 동기화를 통해 두 스레드가 충돌하는 상황을 피할 수 있다. - 임계 영역(Critical section)과 락(Lock) ▪ 임계 영역은 하나의 스레드만 코드를 실행할 수 있는 코드 영역이다. ▪ 락은 임계 영역을 포함하고 있는 객체에 접근할 수 있는 권한을 의미한다. ▪ synchronized 키워드를 통해 특정 코드 구간을 임계 영역으로 설정한다. (1) 메서드 전체를 임계 영역으로 지정 -> 메서드 반환 타입 좌측에 synchronized 키워드를 작성하여 메서드 전체를 임계 영역으로 설정한다. -> 임계 영역으로 지정된 메서드를 실행하는 스레드는 메서드가.. [0905] 자바 스레드 (스레드의 생성/실행, 스레드의 이름) #스레드 - 프로세스와 스레드 ▪ 프로세스 : 실행 중인 애플리케이션. 실행에 필요한 만큼의 메모리를 할당받음. ▪ 프로세스의 구성 : 데이터, 컴퓨터 자원, 스레드로 구성됨 ▪ 스레드 : 스레드는 데이터와 애플리케이션이 확보한 자원을 활용하여 소스 코드를 실행함. 즉 코드 실행 흐름과 같음 - 메인 스레드 ▪ 메인 스레드는 자바 실행 시 가장 먼저 실행되는 main 메서드를 실행시킨다. ▪ main 메서드의 코드의 끝을 만나거나 return문을 만나면 실행을 종료한다. ▪ 소스 코드가 싱글 스레드라면 프로세스는 실행 중 하나의 스레드만 작동시키는 싱글 스레드 프로세스가 된다. - 멀티 스레드 ▪ 멀티 스레드 프로세스란 여러 개의 스레드를 가진 프로세스를 말한다. ▪ 여러 스레드가 동시에 작업을 수행하고.. [0831] 자바 스트림 (스트림 파이프라인 - 3. 스트림의 최종 연산) #최종 연산 - 대표적으로 forEach() 메서드 - 최종 연산 메서드가 사용되면 해당 스트림은 닫히고 모든 연산이 종료된다. - 기본 집계 ( sum() , count() , average() , max() , min() ) ▪ 숫자와 관련된 기본적인 집계의 기능을 하는 최종 연산자 public class TerminallOperationExample { public static void main(String[] args) { int[] intArray = {1, 3, 5, 7, 9}; // 카운팅 long count = Arrays.stream(intArray).count(); System.out.println("배열의 요소 개수는 " + count); // 합계 long sum = Arrays.s.. [0830] 자바 스트림 (스트림 파이프라인 - 2. 스트림의 중간 연산) #스트림 파이프라인 - 2. 스트림의 중간 연산 - 중간 연산이란 생성한 스트림에서 데이터 소스를 가공하는 과정이다. - 중간 연산자들 중에 빈번하게 사용되는 것은 필터링, 매핑, 정렬 등이 있다. - 필터링( filter() , distinct() ) ▪ 조건에 맞는 데이터만 들어오도록 정제하는 역할의 중간 연산자 ▪ filter() : Stream에서 조건에 맞는 데이터를 정제하여 더 작은 컬렉션을 만든다. 조건은 람다식을 사용하여 정의한다. ▪ distinct() : Stream의 요소들에 중복된 데이터가 존재하는 경우, 중복을 제거한다. public class FilteringExample { public static void main(String[] args) throws Exception { .. [0830] 자바 스트림 (스트림 파이프라인 - 1. 스트림의 생성) #스트림 파이프라인 - 1. 스트림의 생성 - 배열 스트림 생성은 Arrays 클래스 stream() 또는 Sream 클래스의 of() 메서드를 사용한다. public class StreamCreator { public static void main(String[] args) { String[] arr = enw String[]{"대한민국", "일본", "중국"}; // 문자열 스트림 생성 (Arrays 클래스 메서드 사용) Stream stream1 = Arrays.stream(arr); // 문자열 스트림 생성 (Stream 클래스 메서드 사용) Stream stream2 = Stream.of(arr); stream1.forEach(System.out::println); stream2.forEach(.. [0829] 자바 스트림 #스트림 - 배열 및 컬렉션의 저장 요소를 하나씩 참조하여 람다식으로 처리할 수 있게 해주는 반복자. - 선언형 프로그래밍(Declarative Programming)과 명령형 프로그래밍(Imperative Programming) ▪ 선언형 프로그래밍이란 코드에서 '무엇'에 집중하는 코드 작성 방법론을 말한다. ▪ 명령형 프로그래밍이란 코드에서 '어떻게'에 집중하는 코드 작성 방법론을 말한다. ▪ 선언형 프로그래밍은 내부의 동작 원리를 모르더라도 코드의 역할을 직관적으로 볼 수 있다. - 스트림을 통해 선언형 프로그래밍이 가능하다. // 명령형 프로그래밍 public class ImperativeProgramming { public static void main(String[] args){ // List.. [0825] 자바 람다식 (메서드 레퍼런스) #메서드 참조 - 람다식에서 불필요한 매개변수를 제거할 때 사용한다. - 인터페이스의 추상 메서드의 매개변수와 리턴 타입에 따라 달라진다. - 메서드 참조는 정적 / 인스턴스 메서드와 생성자도 참조 가능하다. - 메서드 참조의 기본 형태는 다음과 같다. // 클래스이름 :: 메서드이름 // Math 클래스의 max() 정적 메서드를 참조 Math :: max // 메서드 참조 #정적 메서드와 인스턴스 메서드 참조 // 정적 메서드의 참조 클래스 이름 :: 메서드 // 인스턴스 메서드의 참조 (객체생성필요)참조 변수 :: 메서드 //Calculator.java public class Calculator { public static int staticMethod(int x, int y) { // 정적 메서드.. [0824-25] 자바 람다식(람다식, 함수형 인터페이스) #람다식 - 함수형 프로그래밍 기법을 지원하는 자바의 문법요소. - 메서드를 하나의 '식'으로 표현한 것. - 코드를 간결하고 명확하게 표현할 수 있다. - 객체지향 프로그래밍과 함수형 프로그래밍을 혼합하는 방식으로 더 효율적 프로그래밍 가능. - 람다식과 기존 메서드의 비교 // 기존 메서드 void sayhi() { System.out.println("HI"); } // 람다식 () -> System.out.println("HI"); - 람다식은 반환타입과 이름을 생략할 수 있어, 익명 함수(anonymous function)이라고도 부른다. - 람다식 예시 코드 int sum(int num1, int num2) { return num1 + num2; } (int num1, int num2) -> {.. 이전 1 2 3 4 5 6 7 8 9 다음 목록 더보기