2019/11 7

Maven 저장소에 오픈소스 배포하기 - bintray를 통한 배포

모듈 배포하기 이 부분에서 도메인 지식이 하나도 없어서 처음 공부해보면서 정리한 내용입니다. JCenter와 MavenCentral 차이점 스택 오버플로우의 답변을 참고하세요. Jcenter vs. mavenCentral jcenter() and mavenCentral() is a repository for the Gradle plugin in Android Studio Earlier versions of Android Studio used mavenCentral(), and after some time, it switched to jcenter. This is because jcenter() is superior to mavenCentral() in terms of performance and memo..

Pivotal Summit 2019 Seoul 참가기

화요일에 Pivotal Summit 2019 Seoul에 다녀왔다. https://connect.pivotal.io/summit_2019_seoul Pivotal Summit 2019 Pivotal Summit 2019 is coming to APJ! Join us for valuable facetime with expert Pivotal speakers and industry thought leaders in both traditional presentation and informal conversations. We'll discuss the latest developments in DevOps, CI/CD, application d connect.pivotal.io 왼쪽부터 폴 자코스키, 나, 마크 ..

REST API 에러 핸들링 best practice - 에러를 어떻게 내려 주어야 할까

이 글은 baeldung의 'Best Practice For Rest API Error Handling'를 번역하고 실습해본 내용입니다. Best Practice For Rest API Error Handling 소개 REST는 stateless(상태가 없는) 아키텍쳐이며 클라이언트가 서버의 자원에 접근하고 조작할 수 있습니다. 일반적으로, REST는 HTTP를 이용하여 클라이언트가 자원을 얻거나 상태를 바꾸는 API를 제공합니다. 이 튜토리얼에서는 REST API 에러에 대해 best practice를 배워봅니다. HTTP 상태 코드 클라이언트가 서버에 HTTP 요청을 보내면, 그리고 서버가 그 요청을 잘 받았다면, 서버는 반드시 클라이언트에게 그 요청이 성공적으로 처리됐는지 아닌지 알려주어야 합니다...

모던 자바 인 액션 스터디 - 스트림 활용법과 문제 풀어보기

4장 스트림 스트림은 자바 8 API에 새로 추가된 기능입니다. 스트림을 이용하면 선언형으로 컬렉션 데이터를 처리할 수 있습니다. 여기서 선언형이란 데이터를 처리하는 임시 구현 코드 대신 질의로 표현하는 것을 말합니다. 또한 스트림을 사용하면 멀티스레드 코드를 구현하지 않아도 데이터를 투명하게 병렬로 처리할 수 있습니다. 한마디로 정의하면 스트림이란 데이터 처리 연산을 지원하도록 소스에서 추출된 연속된 요소(Sequence of elements)입니다. 말이 너무 어렵나요? 용어를 하나씩 살펴봅시다. 연속된 요소: 컬렉션과 마찬가지로 스트림은 특정 요소 형식으로 이루어진 연속된 값을 제공합니다. ArrayList와 같은 컬렉션의 주제는 데이터이고 스트림의 주제는 계산식입니다. 소스: 스트림은 소스로부터 ..

모던 자바 인 액션 스터디 - 동작 파라미터, 람다 표현식

2장 동작 파라미터화 코드 전달하기 어떤 상황에서든지 요구사항은 바뀔 수 있습니다. 이에 따라 자바에서는 동작 파라미터라는 것을 이용하여 자주 바뀌는 요구사항에 효과적으로 대응할 수 있습니다. 다음과 같이 동작을 추상화해서 변화하는 요구사항에 대응할 수 있는 코드를 구현하는 방법을 살펴볼까요. public static void main(String[] args) { List inventory = Arrays.asList( new Apple(80, FilteringApples.Color.GREEN), new Apple(155, FilteringApples.Color.GREEN), new Apple(120, FilteringApples.Color.RED)); prettyPrintApple(inventory,..

모던 자바 인 액션 스터디 - 자바 8 의 변화

1장 자바 8, 9, 10, 11 객체지향은 90년대에 각광을 받았습니다. 하나는 캡슐화 덕분에 C에 비해 소프트웨어 엔지니어링적인 문제가 훨씬 적었고 다른 하나는 객체지향 패러다임 덕에 윈도우 95 및 다른 프로그래밍 모델에 쉽게 대응할 수 있었기 때문입니다. 이 패러다임은 '모든 것은 객체다' 라고 요약이 가능합니다. 하지만 프로그래밍 언어 생태계에 변화의 바람이 불기 시작했습니다. 빅데이터라는 도전에 직면하면서 멀티코어 컴퓨터나 컴퓨팅 클러스터를 이용해서 데이터를 효과적으로 처리할 필요성이 생겼습니다. 이에 따라 자바 8에서는 새로운 개념이 추가되었습니다. 자바 함수 프로그래밍 언어에서 함수(function)는 메서드(method)라는 의미로 사용됩니다. 자바의 함수는 이에 더해 수학적인 함수처럼 ..

[Spring] @Transactional 롤백은 언제 되는 걸까? - 예외가 발생했는데도 DB 반영이 된다고?

@Transactional 애노테이션 스프링은 @Transactional 애노테이션이 붙은 클래스에 프록시를 생성합니다. 프록시는 트랜잭션 로직을 메서드 앞뒤에 넣어줍니다. 이 글은 @Transactional 의 롤백에 대해서 다룹니다. rollbackFor이라는 것을 써보면서 어디에 어떻게 적용되는지 알아보겠습니다. 책 정보를 저장하는 아주 간단한 코드입니다. 다음은 책을 저장하는 메서드입니다. @Transactional 애노테이션의 rollbackFor 속성에 대해서 RuntimeException.class를 등록했습니다. 이 애노테이션은 스프링에게 런타임 예외가 발생한다면 롤백을 하라고 말합니다. 그렇다면 rollbackFor 속성을 주지 않는다면 어떻게 될까요? 사실은 스프링은 디폴트로 UnChe..

반응형