전체 글(70)
-
[Java] 스트림(Stream) 이란? - 특징과 사용법
스트림 - 다양한 데이터 소스를 표준화된 방법으로 다루기 위한 것 - 데이터 소스를 Stream 을 통해 순차적으로 처리 (데이터의 연속적인 처리) - 컬렉션 프레임워크(List, Set, Map)은 각자 성격이 달라 사용방법이 다름. 그래서 표준화라고 하기에는 거리가 좀 멀다. - JDK 1.8부터 Collection 그리고 Array 를 Stream 으로 만들어 표준화된 방법으로 다룰수 있음. 스트림의 작업순서 1. 스트림 만들기 2. 중간연산은 N번 : 중간연산이란? 연산결과가 스트림. 반복 적용 가능능 3. 최종연산은 1번 : 최종연산이란? 연산결과가 스트림이 아닌 연산이므로 단 한번만 적용 가능. (스트림의 요소를 소모) 스트림의 특징 - Stream 은 오직 ReadOnly 이다. (원본을 변..
2021.04.24 -
[Java] Java8 에 새롭게 추가된 기능을 알아보자
Java 8 새롭게 추가된 기능을 알아보자. - SAM interface - Lambda - Stream - DateTime - Optional - Default Method 함수형 인터페이스 - Abstract Method를 오직 1개만 가진 interface - SAM(Single Abstract Method) interface - 인터페이스에 @FunctionalInterface을 사용한다. (자바가 제공하는 어노테이션이라 import 필요 없음) - 즉 @FunctionalInterface 어노테이션이 붙어 있으면 함수형 인터페이스라고 생각하면 된다. 그러면 왜 SAM 으로 인터페이스를 만드는 걸까? 람다로 바꾸어 사용하기 위해서이다. 추상 메서드가 오직 1개만 존재하여야 람다로 사용할 수 있기 ..
2021.04.12 -
객체 지향 설계의 5가지 원칙 (SOLID)
좋은 객체 지향 설계의 5가지 원칙 (SOLID) SRP (Single Responsibility principle) 단일 책임 원칙 I. 한 클래스는 하나의 책임만 가져야 한다. II. 하나의 책임이라는 것은 모호하다. III. 중요한 기준은 변경이다. 변경이 있을 때 파급 효과가 적으면 단일 책임 원칙을 잘 따른 것 OCP (Open/Closed Principle) 개방/폐쇠 원칙 I. SW 요소는 확장에는 열려 있으나 변경에는 닫혀 있어야 한다. - 확장하려면… 당연히 변경을 해야하는거 아닌가? 다형성을 활용해보자 II. Interface를 구현한 새로운 클래스를 하나 만들어서 새로운 기능을 구현 III. 아래 코드는 MemberService 클라이언트가 구현 클래스를 직접 선택하고 있는 상황 Ex..
2021.04.11 -
[CS] Technology Interview Preparation (3)
REST (REpresentational State Transfer) - WWW과 같은 분산 하이퍼미디어 시스템을 위한 sw 아키텍처의 한 형식이다. - 컴퓨터가 가지고 있는 자원(파일/데이터/그림 등)의 상태 즉, 정보 값을 전달 하는 방식 - 자원의 표현에 의한 상태 전달 - HTTP Method를 통해 Resource를 처리하기 위한 아키텍쳐 REST API - API 란 Application Progrmming Interface 으로 데이터와 기능의 집합을 제공해 정보 교환 하는 것 - REST 기반으로 서비스 API를 구현한 것 - REST 기반으로 시스템을 분산해 확장성과 재사용성을 높여 유지보수 및 운용을 편리하게 함 Rest ful - REST라는 아키텍처를 구현하는 웹 서비스를 나타내기 ..
2021.04.10 -
[Lombok] @Builder 오류 - InvalidDefinitionException
Springboot 테스트 코드 작성 중... InvalidDefinitionException 이 발생하였고 @Builder 를 사용한 객체를 인스턴스화 하는 라인에서 오류가 나는 걸 확인하였다. 오류 메시지는 다음과 같다. HttpMessageConversionException: Type definition error: [simple type, class com.example.userservice.dto.RequestUser]; nested exception is com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct instance of `com.example.userservice.dto.RequestUser` (..
2021.04.08 -
[CS] Technology Interview Preparation (2)
제너릭(Generic) 이란? - 클래스 내부에서 사용할 데이터 타입을 외부에서 지정하는 기법 - 타입을 잘못 사용하여 발생하는 에러를 최소화 할 수 있음. - 제네릭 타입은 Reference Type 만 설정 가능 (int, char, float, double과 같은 primitive Type 은 설정할 수 없음) - 제너릭스(Generics)는 다양한 Type의 객체들을 다루는 Method 또는 Collection Class에 컴파일 시의 타입체크 기능. 504 에러 ? - 504 Gateway Timeout 에러 - A 서버에서 B 서버로 HTTP 요청을 보냈을 경우, 일정 시간을 기다려도 응답이 되돌아 오지않을때에, A 서버에서 클라이언트로 504 Gateway Timeout 이 반환 된다. - ..
2021.04.06