본문 바로가기
반응형

Study44

정규 표현식(regular expression) 정리 정규식은 문자열에서 특정 패턴을 찾거나 교체, 삭제 등 문자열을 원하는 형태로 편집하는 기능을 제공해 줍니다. 정규식은 자주 사용되지는 않지만, 어떤 경우에 일반적인 로직으로 처리하기 힘든것은 간편하게 처리할 수 있는 힘이 있습니다. 대부분의 언어들이 정규식을 가지고 있는데, 그 사용법들이 조금씩 다른것 같습니다. 자바 문자열 객체(java.lang.String)에서 정규식을 사용하는 자주 쓰는 메소드는 다음과 같습니다. 1 2 3 4 5 boolean matches(String regex) String replaceAll(String regex, String replacement) String[] split(String regex) cs matches(): 인자로 주어진 정규식에 매칭되는 값이 있는지 .. 2020. 9. 24.
Java Stream(2) - 가공하기 및 결과 만들기 가공하기 전체 요소 중에서 다음과 같은 API를 이용해 내가 원하는 것만 뽑아낼 수 있다. 이러한 가공 단계를 중간 작업(intermediate operation)이라 한다. 이 작업은 스트림을 리턴하기 때문에 여러 작업을 이어 붙여(chaining) 작성할 수 있다. List names = Arrays.asList("Eric", "Elana", "Java"); 위의 예제에 적힌 List를 대상으로 예제를 살펴보자. Filtering 필터(filter)는 스트림 내 요소들을 하나씩 평가해 걸러내는 작업이다. 인자로 받는 Predicate는 Boolean을 리턴하는 함수형 인터페이스로 평가식이 들어간다. Stream filter(Predicate 2020. 7. 26.
Java Stream(1) - 기본 개념 및 생성하기 Java 8의 스트림(Stream)을 살펴본다. 스트림 Streams Java 8에서 추가한 스트림(Streams)은 람다를 활용할 수 있는 기술 중 하나이다. Java 8 이전에선 배열 혹은 컬렉션 인스턴스를 다루는 방법은 반복문(for, foreach etc..)을 활용하여 각 요소를 하나씩 꺼내서 다루는 방법(Outer Iteration; 외부 반복)이었다. 이는 간단한 로직이면 크게 문제가 되지 않으나, 로직이 복잡해지면 복잡해질수록 코드가 복잡해져 여러 로직이 섞이게 되는 경우나 중첩 되는 경우가 많았고 이를 위한 별도의 메소드를 작성해야 하는데, 이 과정은 직관적이지 않고 버그를 유발하기 쉽다. 스트림은 외부 반복을 하지 않고 각 개별 요소에 대한 처리 로직을 수행할 수 있는 여러 함수를 제공.. 2020. 7. 22.
REST API URI 패턴 REST URI는 심플하고 직관적이게 작성 REST API는 기본적으로 외부의 시스템과 리소스 교환을 위해 만들어지기 때문에 다른 사람이 사용하기에 어려움이 없고 직관적으로 이해할 수 있어야 한다. Depth를 깊게 만들어 복잡하게 만들기보단 최대 2 Depth를 유지하며 만드는 것이 이해가 편하다. /users /users/boards URI에 리소스명은 명사를 사용하도록 한다. REST API는 리소스에 대해서 행동을 정의하는 형태를 사용한다. POST : /users GET : /users GET : /users/{userId} 위에 예시를 보면 /users 리소스를 생성하라, /users 리소스의 전체 목록을 가져와라, /users 리소스를 {userId}를 통해 검색해서 가져와라 라는 의미로, .. 2020. 7. 15.
Spring Boot 웹 어플리케이션을 Docker 이미지로 빌드 해보기 Spring Boot Starter를 통해 Web 프로젝트 생성 후 간단한 Controller 생성 package com.springdocker.demo; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @SpringBootApplication @RestController public class SpringdockerdemoA.. 2020. 7. 8.
Comparator를 이용한 Array와 List의 정렬 Java를 활용하여 Array, List에 저장된 값들을 정렬할 때 가장 많이 쓰는 방식은 Arrays 클래스에 구현돼있는 sort() 함수를 이용하는 것이다. sort 함수는 정렬 방식 중 가장 시간 복잡도가 작은 방식으로 최적화돼있기 때문에 따로 정렬 방식을 구현할 필요 없이 손쉽게 사용하면 된다. 하지만 Arrays.sort()를 사용하면 무조건 오름차순으로만 정렬하고 이차원 배열 등 다차원 배열에서는 정렬이 되지 않는다. 이런 경우에 Comparator 인터페이스를 이용하여 정렬 기준을 오버라이드할 수 있다. 이를 활용하면 Array나 List의 정렬, 다차원 배열 정렬도 손쉽게 할 수 있다. 사용법 Arrays.sort()나 Collections.sort()를 이용하여 기존의 정렬방식과 동일하게.. 2020. 7. 3.
서버리스(Serverless) 아키텍처 서버리스(Serverless)란 단어 그대로 해석하자면 "서버가 없는"이란 의미로 서버리스 아키텍처는 말 그대로 서버가 없는 구조의 시스템을 의미할 것이다. 하지만 실제로는 그렇지 않다. 클라우드 서비스 공급자(AWS, Azure, Google Cloud 등)가 물리 서버를 관리하고 실행하며 특정 요청, 이벤트가 발생할 때에만 동작이 실행되게 된다. 이로 인해 시스템을 구현하는데 있어 서버 단계의 작업들을 AWS, Azure, Google Cloud 등의 클라우드 서비스 공급자에 의존하여 처리한다. 덕분에 개발자는 서버 인프라 작업에 구애받지 않고 어플리케이션과 서비스 구축에 집중할 수 있다. 작동 방식 기존 IaaS 모델에서의 사용자는 용량 단위로 비용을 미리 지불한다. 어플리케이션을 구동하기 위해 ".. 2020. 6. 29.
Spring Data JPA Spring으로 Web 개발을 할 때에 항상 나는 MyBatis를 활용해 개발해왔다. ORM에 대해서는 몇 번 듣기도 했으나 나는 익숙한 방법을 고집하며 개발을 해왔었던 기억이 난다. 현재 많은 기업들이 ORM을 적극적으로 활용하는 모습이 보여 나도 ORM을 수용해보고자 한다. 먼저 JPA 실습에 들어가기전기본 개념을 간단하게 정리해보자. # ORM이란? - Object-Relational Mapping (객체와 관계형데이터베이스 매핑, 객체와 DB의 테이블이 매핑을 이루는 것) - 객체가 테이블이 되도록 매핑 시켜주는 프레임워크 이다. - 프로그램의 복잡도를 줄이고 자바 객체와 쿼리를 분리할 수 있으며 트랜잭션 처리나 기타 데이터베이스 관련 작업들을 좀 더 편리하게 처리할 수 있는 방법 - SQL Qu.. 2020. 6. 16.
반응형