본문 바로가기

Back-End173

StringifyJSON JSON JavaScript Object Notation 서로 다른 프로그램 사이의 데이터 교환을 위해 사용되는 데이터 타입, 객체 형태의 포맷 자바스크립트을 포함한 많은 언어에서 범용적으로 사용하는 유명한 포맷이다! → 데이터 타입을 재귀를 사용하여 직접 JSON타입으로 변경해 보기! (null, Boolean, String, Array, HashMap) 데이터 전송이 가능한 조건 (transferable condition) 1. 수신자(reciever)와 발신자(sender)가 같은 프로그램을 사용한다. 2. 또는, 문자열처럼 범용적으로 읽을 수 있어야 한다. Map 인스턴스의 참조 변수를 toString() 시도할 경우, Java를 사용하지 않는 프로그램에서는 데이터를 정확히 파악할 수 없다 객체 .. 2022. 7. 22.
스레드(Thread) 스레드란? 싱글 스레드 vs. 멀티 스레드 스레드 생성 방법 두 가지 스레드 실행 스레드 동기화 스레드 상태 이해, 제어 스레드란? 프로세스: 실행 중인 애플리케이션 = 데이터 + 컴퓨터 자원 + 스레드 스레드: 데이터와 애플리케이션이 확보한 자원으로 코드 실행, 이 흐름 메인 스레드(Main thread) 싱글 스레드 프로세스: 메인 스레드만 가진다 멀티 스레드(Multi-Thread) 동시 작업 가능, 여러 코드를 각 스레드에 분배하여 동시에 실행시킬 수 있다! 다수의 클라이언트 요청을 처리하는 서버를 개발할 때 사용 ex) 메신저 애플리케이션: 메시지를 주고받으며 파일 업로드 가능 스레드의 생성과 실행 메인 외 별도의 작업 스레드를 활용한다? = 작업 스레드가 수행할 코드 작성, 생성, 실행 → r.. 2022. 7. 19.
파일 입출력(I/O) InputStream, OutputStream Stream: 단방향으로만 데이터 전송 가능 File을 다룰 때: FileInputStream / FileOutputStream 프로세스를 다룰 때: PipedInputStream / PipedOutputStream FileInputStream //문자열 code가 입력된 파일 생성 //src 폴더 상위에 있어야 한다 echo code >> codestates.txt FileInputStream fileInput = new FileInputStream("codestates.txt"); BufferedInputStream 보조 스트림: 성능 향상 버퍼: 바이트 배열, 여러 바이트를 저장하여 한 번에 많은 데이터를 입출력할 수 있도록 돕는 임시 저장 공간 Fil.. 2022. 7. 18.
스트림 다양한 데이터 소스(컬렉션, 배열)를 표준화(컬렉션 프레임웍: 서로 사용법 달랐음)된 방법으로 다룬다 선언형으로 데이터 소스를 처리한다 람다식으로 요소 처리 코드를 제공한다 Stream의 요소 처리 메서드들은 대부분 함수형 인터페이스 매개타입을 가진다 → 람다식 또는 메서드 참조를 이용해서 요소 처리 내용을 매개값으로 전달 가능하다 내부 반복자를 사용하므로 병렬 처리가 쉽다 개발자는 요소 처리 코드에만 집중하면 된다! 람다식으로 요소 처리 내용만 전달할 뿐, 반복은 컬렉션 내부에서 일어난다 외부 반복자: 개발자가 직접 컬렉션 요소를 반복해서 가져오는 코드 패턴 → index를 사용하는 for문, Iterator를 이용하는 while문 내부 반복자: 컬렉션 내부에서 요소들을 반복, 개발자가 요소당 처리할 .. 2022. 7. 17.
람다 람다식 함수(메서드)를 하나의 식으로 표현한 것으로, 람다식 도입으로 자바는 객체지향언어인 동시에 함수형 언어가 되었다. 반환 타입과 이름이 지워지면서 익명 함수(이름이 없는 함수)라고 말한다. 장점 1. 코드 간결 2. 컬렉션 요소 필터링과 매핑 → 원하는 결과 쉽게 집계 3. 클래스와 객체 생성 없이 메서드 호출 가능 4. 메서드를 변수처럼 다룰 수 있다 형태 1. 익명 객체: 메서드에서 이름과 반환타입을 제거 2. 매개변수 선언부와 몸통 사이에 -> 추가 (매개변수) -> {실행 코드} 3. 런타임에 익명 구현 객체 생성 int max(int a, int b) { return a > b ? a : b; } (a, b) -> a > b ? a : b //매개변수가 한 개이고 매개변수 타입이 없으면 (.. 2022. 7. 16.
배열 문제 풀이 보호되어 있는 글 입니다. 2022. 7. 6.