본문 바로가기

분류 전체보기314

[Java] 스트림(Stream) 개념과 연산 - 1 Intro java8의 Stream을 알아보려한다. 보통 java8 이전에는 for문, foreach문을 사용했다. 나 역시 거기에 더 익숙하다. 간단하면 상관이 없는데, 로직이 복잡해질수록 코드가 지저분해졌다. 스트림은 데이터의 흐름이다. 함수 여러 개를 조합해 원하는 결과를 필터링할 수 있다. 또, 병렬처리가 가능하다. 하나의 작업을 둘 이상의 작업으로 잘게 나눠 동시에 진행할 수 있다. 즉, 쓰레드를 이용해 빠르게 처리할 수 있다. 생성하기 : 스트림 인스턴스 생성 가공하기 : filtering, mapping 등의 중간 작업 결과 만들기 : 결과 만들기 작업 (terminal operations) 크게 세 단계로 나누어 스트림을 익히니 쉽게 이해됐다. List는 Collections.sort()를.. 2021. 8. 16.
[SpringBoot] Request로 오는 객체 검증(Validation) 알아보기 객체 검증은 정말 자주 하는 작업이지만 정말 중요한 작업이기도 하다. Annotation만 붙일 것이 아니라, 어떻게 동작하는지 또 어떻게 깔끔한 유효성 검사를 할 수 있는지 알아보자. Intro 일반적 애플리케이션의 Validation 검시 시, 아래와 같은 문제를 갖고 있다. 애플리케이션 전체에 분산되어 있다. 코드 중복이 심하다. 비즈니스 로직에 섞여있어 로직 추적이 어렵고, 복잡해진다. Bean Validation 위와 같은 문제를 해결하기 위해 Java에서는 Bean Validation이라는 유효성 검사 프레임워크를 제공해준다. 도메인 모델에 어노테이션으로 정의할 수 있다. dependency 추가 org.springframework.boot spring-boot-starter-validatio.. 2021. 8. 15.
[개발지식] 딥링크(DeepLink) 개념 알아보기 Intro http나 https로 시작하는 인터넷 주소는 모두 특정 웹 페이지로 이동한다. 그럼 웹에서 모바일 앱으로 이동할 때는 똑같이 링크를 통해서 동작할까? 종종 모바일 웹 페이지를 보고 있다가 앱에서 보기 버튼을 누르면 앱으로 이동하는 것을 접할 수 있다. 이건 대체 어떻게 동작하는 것일까? 앱에서의 URL, 딥링크 앱으로 보기 버튼을 누르면 웹과 동일한 컨텐츠를 갖고 있는 앱 내 페이지로 랜딩하는 것을 자주 접했을 것이다. 이처럼 유저를 앱 내 페이지로 바로 랜딩시킬 때 사용하는 URL을 딥링크라고 한다. 딥링크의 종류 URI Scheme (초기형태) Universal LInk (IOS) App Link (Android) URI Scheme (스킴 딥링크) 딥링크의 가장 초기 형태이다. 앱에 S.. 2021. 8. 14.
[Java] ObjectMapping을 위한 MapStruct 알아보기 - 2 Intro 이전 포스팅에서는 MapStruct의 기본 개념과 가장 기본적인 적용에 대해서 알아보았다. 이번 포스팅에서는 실제 구현 시 유연하게 적용할 수 있는 방법들을 알아보도록 하자. 서로 다른 속성 매핑 이전에 사용했던 예제 코드를 활용해보자. StudentDto public class StudentDto { private String name; private String age; private String level; } StudentEntity public class StrudentEntity { private String seq; private String name; private String age; private String grade; private String status = "Atten.. 2021. 8. 12.