본문 바로가기

Programming100

[자바스크립트] 템플릿 리터럴 Template Literal 템플릿 리터럴은 표현식과 문자열의 조합을 편리하게 할 수 있게 하기 위해, 내장된 표현식을 허용하는 문자열 리터럴이다. ES6부터 추가된 기능으로 표현식/문자열 삽입, 여러 줄 문자열, 문자열 형식화, 문자열 태깅 등 다양한 기능을 제공한다. 프론트엔드에서는 HTML을 데이터와 결합해서 DOM을 다시 그려야 하는 일이 빈번하기 때문에, 템플릿을 좀 더 쉽게 편집하고 작성해야 할 필요가 있어, 이러한 기능이 추가되었다. 템플릿 리터럴은 다음과 같이 불리기도 한다. Template literal Template Strings String Templates Back-Tics Syntax Template literal Syntax(Back-Tics) 템플릿 리터럴은 일반 문자열을 .. 2023. 10. 22.
[자바스크립트] 데이터 타입의 종류 자바스크립트의 데이터 타입 자바스크립트는 느슨한 타입(loosely typed)의 동적(dynamic)언어이다. 그렇기 때문에 자바스크립트의 변수는 어떤 특정 타입과 연결되지 않으며, 모든 타입의 값으로 할당(및 재할당)이 가능하다. 그렇다하더라도, 자바스크립트의 타입에 대해서는 알고 있어야 한다. 동적 타입을 제공하지만, 값이 할당되는 순간에는 해당 변수의 타입이 정해지고, 이 때 어떠한 타입으로 정해지는지를 정확히 알고 있어야 원하는 결과대로 동작하는 코드를 작성할 수 있다. 자바스크립트에서는 여러가지 형태의 타입을 미리 정의하여 제공하고 있으며, 이것을 기본타입이라고 한다. 자바스크립트의 기본 타입은 원시 타입과 객체 타입으로 구분된다. 원시타입 원시타입으로는 다음과 같다. Type Descript.. 2023. 10. 21.
[자바스크립트/JavaScript] 연산자 연산자 연산자란 이름 그대로 연산을 수행하는 기호를 뜻한다. 대표적인 예시로, 사칙 연산을 수행하는 +, - , / , * 연산 기호가 바로 산술 연산자에 해당하는 연산자이다. 그리고 연산자를 통해 연산을 당하는 주체를 피연산자라고 하고, 피연산자의 개수에 따라 연산자는 아래와 같이 분류할 수 있다. 이항연산자(binary operator) : 피연산자 2개 단항연산자(unary operater) : 피연산자 1개 삼항연산자(ternary operater) : 피연산자 3개 자바스크립트에서 위의 예시에서의 산술 연산자 이외에도 대입, 부호, 증감, 관계(비교), 논리, 비트연산자가 존재한다. 대입연산자 대입 연산자는 이름 그대로 해당 값을 대입해주는 연산자이다. 연산 기호는 등호(=)를 사용하고 등호의 .. 2023. 10. 20.
[자바/Java] File 클래스 File 클래스 자바에서 파일 또는 디렉토리에 대한 파일 객체를 생성하여 다양한 메소드를 사용할 수 있게 해주는 클래스이다. 파일의 해당 경로, 절대 경로 등 여러 편리한 메소드를 제공하고 있다. File 클래스 생성자 File 클래스는 파일, 디렉토리에 대한 객체를 생성하기 때문에 생성한 객체가 파일 일 수도 있고 디렉토리 일 수도 있다. File 클래스 메소드 일반 메소드 File 객체의 상대 경로, 절대 경로 등을 제공하는 메소드이다. File 생성/수정/삭제 메소드 파일이나 디렉토리 등을 생성, 수정, 삭제하는 메소드도 제공하고 있다. File 체크 메소드 파일인지 디렉토리인지, 파일이 존재하는 지 등을 체코하는 메소드이다. File 권한 메소드 파일의 권한을 설정, 변경할 수 있는 메소드이다. .. 2023. 10. 18.
[자바/Java] 시스템 속성(property) 시스템 속성 시스템 속성(property)는 JVM(Java Virtual Machine)이 동작할 때 자동으로 설정되는 시스템 값이다. 키(Key)와 값(Value)로 구성되어 있으며 운영체제에서 사용되는 파일 경로, 구분자, 운영 체제의 종류 및 자바 프로그램을 실행시킨 사용자 아이디, JVM 버전 등이 여기에 해당한다. 이런 시스템 속성은 애플리케이션에서 사용이 되는데, getProperty(key), setProperty(key, value)를 통해서 사용할 수 있다. 또한 setProperty의 경우 런타임에서 조작이 가능하기 때문에, 계정 정보와 같이 보안에 민감한 내용은 코드에 직접 작성되기 보다는 서비스나 운영체제 값은 런타임 환경의 시스템 '속성'에 저장할 수 있다. 이후, 코드에서는 g.. 2023. 10. 18.
[자바/Java] 파일 I/O - PrintWriter + 인코딩 설정 PrintWriter 파일 입출력에서, 파일에 데이터를 쓸 때, System의 print관련 메서드를 사용하는 것처럼 파일에 쓸 수 있도록 편리한 기능을 제공하는 클래스(extends Writer)이다. PrintWriter 클래스는 Writer 클래스를 상속 받은 클래스로, 메소드로는 위에서 언급했던 System의 print 관련 메소드처럼 작동하는 메소드를 지원하고 있다. import java.io.PrintWriter; public class Main { public static void main(String[] args){ //System.out -> console창에 출력 PrintWriter pw = new PrintWriter(System.out); String str1 = "Hello"; .. 2023. 10. 18.
[자바/Java] 파일 I/O - Object입출력 https://codingralro.tistory.com/entry/%EC%9E%90%EB%B0%94Java-%ED%8C%8C%EC%9D%BC-IO-%EA%B8%B0%EB%B3%B8 [자바/Java] 파일 I/O 파일 입출력(I/O) 키보드에서 값을 입력(Scanner) 받고, 콘솔 창에 값을 출력(System.out.println)하는 과정은 익숙하다. 그렇다면 파일에서 값을 읽어오고(입력) 저장(출력)하려면 어떻게 해야 할까? 파일 codingralro.tistory.com Object 입출력 파일 입출력을 공부하면서, 바이트, 캐릭터 타입의 데이터 입출력, 기본 타입의 데이터 입출력을 배웠다. 이번 글에서는 객체를 파일에 읽고 쓸 수 있는 Object 입출력에 대해서 다루겠다. 객체는, 클래스로의 .. 2023. 10. 18.
[자바/Java] 파일 I/O - Data 입출력 https://codingralro.tistory.com/entry/%EC%9E%90%EB%B0%94Java-%ED%8C%8C%EC%9D%BC-IO-%EA%B8%B0%EB%B3%B8 [자바/Java] 파일 I/O 파일 입출력(I/O) 키보드에서 값을 입력(Scanner) 받고, 콘솔 창에 값을 출력(System.out.println)하는 과정은 익숙하다. 그렇다면 파일에서 값을 읽어오고(입력) 저장(출력)하려면 어떻게 해야 할까? 파일 codingralro.tistory.com Data 입출력 이전에 배웠던 File I/O(위의 링크 참조)는 직접적으로 파일에 스트림을 연결하여 읽고 쓰는 클래스에 대해 다룬다. 이러한 클래스들은 바이트 기반, 문자 기반 스트림으로 문자 또는 바이트 형식으로만 읽고 쓰는것.. 2023. 10. 18.
[자바/Java] 파일 I/O - File 입출력 파일 입출력(I/O) 키보드에서 값을 입력(Scanner) 받고, 콘솔 창에 값을 출력(System.out.println)하는 과정은 익숙하다. 그렇다면 파일에서 값을 읽어오고(입력) 저장(출력)하려면 어떻게 해야 할까? 파일 입출력, Scanner 등은 모두 입출력이라는 범위 안에 존재하고 자바에서는 입출력을 수행하기 위해 스트림이라는 개념을 사용한다. 스트림(Stream)이란, 두 노드(키보드, 모니터, 메모리, 파일 등) 사이를 연결하는 데이터가 지나가는 통로이다. 스트림은 단방향 통신만이 가능하기 때문에 하나의 스트림으로 입출력을 같이 처리할 수 없다. 그렇기 때문에 입력 스트림, 출력 스트림 두 개의 스트림이 반드시 필요하다. 또한 스트림은 처리하는 데이터의 타입에 따라 아래와 같이 나뉜다. 이.. 2023. 10. 18.
[자바/Java] 쓰레드 Thread Thread란 쓰레드는 프로세스안에서 독립적으로 작업을 실행하는 단위를 말한다. 프로세스란, 일반적으로 CPU에 의해 메모리에 올려져 실행중인 프로그램을 말하며, 자신만의 메모리 공간을 포함한 독립적인 실행환경을 가지고 있다. 자바 JVM(Java Virtual Machin)은 주로 하나의 프로세스로 실행되며, 동시에 여러 작업을 수행하기 위해 멀티 쓰레드를 지원하고 있다. 멀티 쓰레드란 무엇일까? 쓰레드는 프로세스안에서 작업 실행 단위라고 하였는데, JVM에 의해 관리되고, 한 프로세스에는 적어도 하나 이상의 쓰레드가 있고, Main 쓰레드를 시작으로 추가적으로 작업 실행 단위를 늘려 갈 수 있다. 그렇게 되면 하나의 프로세스에서 실행되는 여러 작업들을 여러 개의 실행 단위, 즉 쓰레드들이 나눠서 처리.. 2023. 10. 17.
[자바스크립트/JavaScript] 변수 선언 변수 선언 자바스크립트에서 변수 선언 방식은, type명으로 선언하는 것이 아닌 아래의 3가지 키워드를 통해 생성할 수 있다. var 중복선언 O, 재할당 O let 중복선언 O, 재할당 X const 중복선언 X, 재할당 X 위의 키워드를 통해, 변수를 선언하고 각 변수의 타입은 변수의 할당 단계(초기화)에서 결정된다. var 변수 선언 var는 자바스크립트의 초창기부터 있었던 변수 선언 방식으로, 중복 선언과 재할당이 가능하며 마지막에 할당된 값이 변수에 저장된다. //var 선언 var str = "javascript"; console.log(str); //javascript //중복선언 O var str = "hello"; console.log(str); //hello //재할당 O var str.. 2023. 10. 16.
[자바/Java] 스트림 Stream - 심화 스트림 Stream 심화 이전까지는 스트림의 생성 - 중간 연산 -최종 연산으로 이어지는 기본 개념 및 사용방법에 대해서 다루었다. 이번 글에서는 더 나아가 스트림의 동작 순서, 성능 향상 등 더 깊은 내용에 대해 다루겠다. 동작 순서 성능 향상 스트림 재사용 지연 처리 Null-safe 스트림 생성 줄여쓰기 동작순서 스트림은 데이터의 흐름이다. 이때에 데이터의 흐름이 생성과 중간 연산, 최종 연산을 거쳐 흐르게 되는데, 구체적으로 어떻게 흐르는지에 대한 관찰이 필요하다. 다음 예제에서, 출력 결과는 어떻게 될까? List list = Arrays.asList("Eric", "Elena", "Era"); list.stream() .filter(el -> { System.out.println("filter.. 2023. 10. 15.
728x90
반응형