우주먼지
Java와 Kotlin의 차이
Languages/Kotlin 2023. 3. 24. 17:43

💡 Kotlin 2017년 구글이 안드로이드 공식 언어로 채택한 언어이다. 안드로이드 앱, 서버측 앱등을 개발하는데 사용한다. 간결성, 생산성 코틀린은 자바보다 더 간결하고 직관적이며 읽고 쓰는 시간이 빠르다 자바에 존재하는 여러 준비코드(생성자 등)을 묵시적으로 제공한다. 기능이 다양한 표준 라이브러리를 제공하며 반복 코드를 줄일 수 있다. 코틀린에서 함수는 일급 객체이며 고차 함수로 사용이 가능하다. 타입추론 : 할당되는 값을 알아서 추론해준다. 안정성 런타임 에러보다 컴파일 타임 에러를 통해 디버깅이 용이하다. 모든 타입 + 기본형 타입도 클래스 타입이다. (Nullable을 위해) 코틀린은 Null이 될 수 없는 값을 추적한다. 실행 시점에 NPE가 발생할 수 있는 연산을 가진 코드를 금지한다. ..

Stream 생성
Languages/Java 2023. 3. 17. 18:01

💡 스트림 생성 스트림의 소스가 될 수 있는 대상은 배열, 컬렉션, 임의의 수 등 다양하다. 컬렉션 컬렉션의 최상위 인터페이스인 Collection에 stream()이 정의되어 있다. 그래서 Collection의 하위 인터페이스인 List와 Set을 구현한 클래스들은 모두 이 메서드로 생성 가능하다. Stream Collection.stream() List로부터 스트림을 생성하는 코드의 예시 List list = Arrays.asList(1,2,3,4,5); // 가변인자 Stream intStream = list.stream(); // list를 소스로 컬렉션 생성 forEach()는 지정된 작업을 스트림의 모든 요소에 대해 수행한다. 주의할 점은 forEach()가 모든 요소를 소모해 작업 수행 후 ..

Stream
Languages/Java 2023. 3. 1. 17:10

💡 Stream 많은 수의 데이터를 다룰 때 컬렉션이나 배열에 데이터를 담고 원하는 결고를 얻기 위해 for문이나 iterator를 사용해서 코드를 작성해왔다. 그러나 이런 방식으로 작성된 코드는 너무 길고 가독성과 재사용성이 떨어진다. 또 다른 문제는 데이터 소스마다 다른 방식으로 다뤄야 한다는 단점이 있다. 예를 들면 List를 정렬할 때는 Collections.sort()를 사용하고, 배열을 정렬할 때는 Arrays.sort()를 사용해야 한다. 이러한 문제를 해결하기 위해 만든것이 Stream이다. 스트림은 데이터 소스를 추상화하고 데이터를 다루는데 자주 사용되는 메서드들을 정의 해놓았다. 스트림의 특징 데이터 소스(원본)을 변경하지 않는다. Iterator처럼 일회용이다. 작업을 내부 반복으로 ..

Single & Multi Thread
Languages/Java 2023. 3. 1. 15:03

💡 Single & Multi Thread 싱글코어 스레드 수행시간의 쉬운 측정을 위해 new String 사용 (작업 수행속도 낮춤) public class CountThreadTimeMillis { public static void main(String[] args) { long startTime = System.currentTimeMillis(); for (int i=0; i

article thumbnail
Thread
Languages/Java 2023. 3. 1. 13:59

💡 Thread 데이터와 어플리케이션이 확보한 자원을 활용하여 소스코드 실행 즉, 하나의 코드 실행 흐름 Thread 프로세스에서 실행 제어만 분리한 것 프로세스로부터 자원을 할당받고 그 자원을 이용하는 실행의 단위 프로세스의 Stack만 할당받고 코드 & 데이터 & 힙영역은 공유하기 떄문에 좀 더 효율적인 통신 가능 캐시 메모리를 비우지 않아도 되서 더 빠름 자원 공유로 인한 문제가 발생할 수 있으니 이를 염두에 둔 프로그래밍을 해야함 한 프로세스에 여러개의 스레드가 생성될 수 있음 즉, 캐시 메모리나 PCB에 저장해야하는 내용이 적고 비워야 하는 내용도 적기 때문에 상대적으로 더 빠른 컨텍스트 스위칭 💡 구현과 실행 Thread 클래스를 상속하는 방법 (다른 클래스 상속 불가, 권장 X) Thread..

article thumbnail
JavaScript
Languages/JavaScript 2023. 2. 25. 12:09

💡 JavaScript 자바스크립트는 웹 브라우저에서 HTML, CSS를 동적으로 제어하기 위해서 만들어졌다. 하지만, 오늘날의 자바스크립트는 웹브라우저의 영역에서 벗어나 다양한 용도로 사용되고 있다. 예를 들면 Node.js, Google Script, PDF 등 각종 데스크탑 위젯에서도 적용될 수 있는 내용이다. Node.js 기반의 웹서버 구축을 위해 학습 할 것이므로 HTML 관련 내용은 적지 않겠음. 자바스크립트와 자바의 차이 Java 클래스 기반의 언어, 계층 구조를 통한 모든 상속와 함께 클래스 & 인스턴스로 나뉨 클래스 & 인스턴스는 동적으로 추가된 속성이나 메서드를 가질 수 없음 변수 자료형은 반드시 선언되어야 함 (Static Typing) 하드 디스크에 자동 작성 가능 컴파일 과정 존..

J2EE
Languages/Java 2023. 2. 20. 10:27

💡 J2EE 자바 기술로 기업환경의 어플리케이션을 만드는데 필요한 스펙들을 모아둔 스펙의 집합이다. IBM, BEA, Oracle, HP, Lona 등 여러 벤더들도 그 스펙을 구현할 수 있으며, J2EE 호환성을 검증하는 기구의 검증을 통과하기만 하면 J2EE 호환 제품으로 시장에 출시가 가능하다. 기본 특징 J2EE의 가장 큰 특징은 Java로 구현된 기술이기 때문에 Java가 갖는 기본적인 특징인 "플랫폼 독립성"을 갖추고 있다. Java 언어는 JVM을 통해 각 OS에 맞는 바이트코드로 변환되어 실행되기 때문에, JVM이 탑재된 플랫폼이면 어떤 플랫폼이라도 동일한 자바 소스 코드를 실행시킬 수 있다. 구성 요소 J2EE는 매우 방대한 범위를 다루는 스펙 집합이므로 대표적인 것들만 나열해보겠다. S..

검색 태그