전체 글
chapter4. 스트림(Stream) 소개 4.1 스트림이란 무엇인가? 컴퓨터과학에서 스트림(stream)은 기본적으로 시간의 흐름에 따라 순차적으로 사용할 수 있게 되는 일련의 데이터 요소를 가리킨다. - 선언형 : 더 간결하고 가독성이 좋아짐 - 조립할 수 있음 : 유연성이 좋아짐 - 병렬화 : 성능이 좋아짐 4.2 스트림 시작하기 스트림의 정의 : 데이터 처리 연산을 지원하도록 소스에서 추출된 연속된 요소(Sequence of elements) - 연결된 요소 : 컬렉션과 마찬가지로 스트림은 특정 요소 형식으로 이루어진 연속된 값 집합의 인터페이스를 제공한다. - 소스 : 스트림은 컬렉션, 배열, I/O 자원 등의 데이터 제공 소스로부터 데이터를 소비한다. - 데이터 처리 연산 : 함수형 프로그래..
핵심답변 AOP란? AOP(Aspect Oriented Programming)는 관점 지향 프로그래밍으로 관점 지향은 쉽게 말해 어떤 로직을 기준으로 핵심적인 관점, 부가적인 관점으로 나누어서 보고 그 관점을 기준으로 각각 모듈화하겠다는 것이다. 여기서 모듈화란 어떤 공통된 로직이나 기능을 하나의 단위로 묶는 것을 말한다. 본론 AOP ( Aspect Oriented Programming ) AOP는 Aspect Oriented Programming의 약자로 관점 지향 프로그래밍이라고 불린다. 관점 지향은 쉽게 말해 어떤 로직을 기준으로 핵심적인 관점, 부가적인 관점으로 나누어서 보고 그 관점을 기준으로 각각 모듈화하겠다는 것이다. 여기서 모듈화란 어떤 공통된 로직이나 기능을 하나의 단위로 묶는 것을 말..
다형성(polymorphism) = 객체지향의 꽃 역할(interface)과 구현(implementation) 역할(interface)과 구현(implementation)으로 구분 ex) 운전자(역할) - 자동차(역할) - 자동차(구현) 운전자(클라이언트)는 자동차 역할에 의존하지 구현에 의존하지 않는다. 핵심은 자동차가 많은 구현을 할 수 있다는 것이 아니라, 어떠한 자동차가 나와도 클라이언트에 영향을 주지않고 새로운 기능을 추가할 수 있다는 것이다. ex) 로미오(역할) - 줄리엣(역할) ... 로미오(원빈, 장동건, 정우성 등), 줄리엣(송혜교, 김다미, 박소담 등) 로미오와 줄리엣은 배우가 될 수도 있고, 어떤 다른 사람이 와도 상관없다. 즉, 대체 가능해야한다 역할과 구현으로 세상을 구분했을 때..
1. EC2란 무엇일까? Amazon Elastic Compute Cloud(Amazon EC2)는 안전하고 크기 조정이 가능한 컴퓨팅 용량을 클라우드에서 제공하는 웹 서비스입니다. 개발자가 더 쉽게 웹 규모의 클라우드 컴퓨팅 작업을 할 수 있도록 설계되었습니다. Amazon EC2의 간단한 웹 서비스 인터페이스를 통해 간편하게 필요한 용량을 얻고 구성할 수 있습니다. 컴퓨팅 리소스에 대한 포괄적인 제어권을 제공하며, Amazon의 검증된 컴퓨팅 인프라에서 실행할 수 있습니다. https://aws.amazon.com/ko/ec2/?ec2-whats-new.sort-by=item.additionalFields.postDateTime&ec2-whats-new.sort-order=desc 아마존 클라우드 서..
1. 정규화(Normalization)란? 데이터 중복성 및 종속성 배체의 원칙을 공식화한 이론이다. 잘못 설계된 관계형 스키마를 더 작은 속성의 세트로 쪼개어 바람직한 스키마로 만들어 가는 과정이다. 정규형에는 제1정규형, 제2정규형, 제3정규형, BCNF형, 제4정규형, 제5정규형이 있으며, 차수가 높아질수록 만족시켜야 할 제약 조건이 늘어난다. 정규화는 데이터베이스의 논리적 설계 단계에서 수행한다. 정규화는 논리적 처리 및 품질에 큰 영향을 미친다. 즉, 정규화의 목표는 테이블 간에 중복된 데이타를 허용하지 않는다는 것이다. 중복된 데이터를 허용하지 않음으로써 무결성(Integrity)를 유지할 수 있으며, DB의 저장 용량 역시 줄일 수 있다. 2. 비정규화 시 일어나는 문제, 이상(Anomaly..
1. RESTful API란? RESTful API라는 단어에서 사용되는 REST(REpresentational State Transfer)의 개념을 한줄로 정의하자면 아래와 같이 정의할 수 있다. HTTP 통신에서 어떤 자원에 대한 CRUD 요청을 Resource와 Method로 표현하여 특정한 형태로 전달하는 방식 즉, REST란 어떤 자원에 대해 CRUD(Create, Read, Update, Delete) 연산을 수행하기 위해 URI(Resource)로 요청을 보내는 것으로, Get, Post 등의 방식(Method)을 사용하여 요청을 보내며, 요청을 위한 자원은 특정한 형태(Representation of Resource)으로 표현됩니다. 그리고 이러한 REST 기반의 API를 웹으로 구현한 것..
Spring 3대 특징 중 하나인 “PSA” 스프링에서 Controller, Mapping, Transanction 이런 Annotation(어노테이션)등을 클래스나 메서드에 붙이기만 해주면 작동한다 이를 가능케 해주는게 바로 PSA 개념이다 PSA는 Portable Service Abstraction의 약자인데 여기서 핵심은 Service와 Abstraction이다 PSA 중 SA(Service Abstraction)란? Service Abstraction 이란 추상화 계층을 사용해서 어떤 기술을 내부에 숨기고 개발자에게 편의성을 제공해 주는 것을 의미한다. DB에 Transaction 처리를 할 때 Commit , RollBack같은 low level의 작업이 필요할 경우 스프링이 제공하는 @Tran..
데이터 타입값의 분류크기(Bytes)값의 종류 또는 범위설명 데이터 타입 값의 분류 크기 값의 종류 또는 범위 설명 boolean 논리(logic) 1 true, false 참 또는 거짓을 다룰 때 사용. char 문자(character) 2 0~65535 유니코드 문자(\u0000~\uFFFF)에 사용. byte 정수(integer) 1 -128~127 작은 범위의 정수 값 계산에 사용. short 정수(integer) 2 -32768~32767 중간 범위의 정수 값 계산에 사용. int 정수(integer) 4 -2147483648~2147483647 큰 범위의 정수 값 계산에 사용. long 정수(integer) 8 -9,223,372,036,854,775,808 ~ 9,223,372,036,854..
java 언어의 특징 1. 이식성이 높은 언어 - java 언어로 개발된 프로그램은 소스 파일을 다시 수정하지 않아도, 자바 실행환경(JRE: Java Runtime Environment)이 설치되어 있는 모든 운영체제에서 실행 가능합니다. 따라서 자바 언어는 이식성이 높은 프로그래밍 언어라 할 수 있다. 2. 객체 지향 프로그래밍(OOP) - 프로그램을 개발하는 기법으로 부품에 해당하는 객체들을 먼저 만들고, 이것들을 하나씩 조립 및 연결해서 전체 프로그램을 완성하는 기법이다.객체를 만들기 위해 설계도인 클래스를 작성해야 하고, 객체와 객체를 연결해 목적에 맞는 프로그램을 만들어 낸다. 자바는 아무리 작은 프로그램이라도 객체를 만들어 사용하게 된다. 객체지향 언어가 가져야 할 대표적인 특징에는 캡슐화(..