분류 전체보기
-
[매일읽기] Hexagonal Architecture in Java개발자 라이프/매일읽기 2020. 7. 30. 10:11
원문 : https://medium.com/swlh/hexagonal-architecture-in-java-b980bfc07366 Hexagonal Architecture in Java A practical example of the usage of the Hexagonal Architecture pattern in Java. medium.com Hexagonal architecture Alistair Cockburn 이 고안함 Adapter architecture 라고도 함 도메인 엔티티에 대한 관심사 분리가 목적 결합도가 감소하고 유연성 증가 Hexagonal architecuture 가 필요한 경우 UI 코드와 비지니스 로직 코드의 혼재 Layer 간 무분별한 의존성 Hexagonal 이라고 해서 ..
-
[매일읽기] 10 things you’re doing wrong in Java개발자 라이프/매일읽기 2020. 7. 29. 10:23
출처 : https://towardsdatascience.com/10-things-youre-doing-wrong-in-java-7608e2f050c7 10 things you’re doing wrong in Java The most common mistakes Java developers make towardsdatascience.com 1. 접근 제어자를 잘 모른다 특히 protected 접근 제어자에 대한 이해가 부족 동일 패키지에서의 접근 허용 하위 클래스에서의 접근 허용 2. equals() 메소드를 사용하지 않는다 '==' 비교 연산자 대신 equals() 메소드를 사용할 것을 권장 특히 참조 변수 비교 시, 더욱 equals() 권장 3. String 추가 조합 연산 '+' 를 이용해서 St..
-
[매일읽기] Mastering Kotlin standard functions: run, with, let, also and apply개발자 라이프/매일읽기 2020. 7. 27. 09:57
출처 : https://medium.com/mobile-app-development-publication/mastering-kotlin-standard-functions-run-with-let-also-and-apply-9cd334b0ef84 Mastering Kotlin standard functions: run, with, let, also and apply Some of the Kotlin’s standard functions are so similar that we are not sure which to use. Here I will introduce a simple way to clearly… medium.com 코틀린 strandard 함수 중 run, with, let, also, apply..
-
[매일읽기] Immutable classes in Java개발자 라이프/매일읽기 2020. 7. 26. 09:26
자바에서 불변 객체의 특징과 생성 방법을 알아본다 불변 객체의 특징 객체의 값(상태;state)가 변경되지 않는다. 변하지 않는 값으로 확신할 수 있으므로 개발 과정에서 안정적이다. 멀티 스레드 환경에서 안정적이다. VM 캐시 혹은 별도 구현 캐시에 쉽게 캐시하고 사용할 수 있다. equals() & hashCode() 가 구현된 상태에서 해시 컬랙션에 안정적으로 넣을 수 있다. 가변 객체에서 불변 객체 만드는 과정 No. 과정 취약점 1 setter를 제거하여 직접적인 변경을 막는다. 초기 데이터를 넣을 수 없다. 2 all args 생성자를 추가하여 데이터를 생성 초기에만 넣을 수 있도록 한다. 클래스 상속 후 데이터를 변경하는 메소드를 추가 구현하여 데이터를 변경한다. 3 final 클래스로 지정하..
-
[매일읽기] How to Write Clean Java Code개발자 라이프/매일읽기 2020. 7. 25. 10:14
자바 개발자를 위한 간단한 클린 코드 팁 1. 구조화 프로그램을 작성함에 있어서 클래스, 함수, 구조를 먼저 생각해볼 것 하나의 패키지에 너무 많은 클래스를 넣지 말고, 적절히 카테고라이징 할 것 잘 구조화되면 추후에 재구조화나 리팩토링 과정에서의 공수를 제거하거나 줄일 수 있음 2. 네이밍 클래스, 함수, 변수들의 이름은 그들 자신을 표현하는 것이므로 최대한 명시적으로 이름을 지정할 것 정확한 이름은 부수적인 설명을 줄일 수 있음 카멜 케이스는 기본 3. 클래스의 적절한 책임 분배 하나의 클래스는 그 클래스 목적에 맞는 책임만 가지도록 구성 너무 많은 책임을 가지는 클래스가 있다면 분해하거나 클래스 이름(목적)을 변경 하나의 책임을 가지는 하나의 클래스가 베스트 메소드는 하나의 문제만 해결. 4. 적절..
-
[Java] 병렬 스트림 효과적으로 사용하기개발자 라이프 2020. 7. 20. 23:31
이 글은 "모던 자바 인 액션" 책을 스터디하며 정리한 내용입니다. 들어가며 병렬 스트림은 내부적으로 작업을 분할하고 멀티 스레드로 병렬 처리할 수 있도록 합니다. 하지만 적절하게 사용하지 않는다면 순차 스트림보다 더욱 안 좋은 성능을 나타냅니다. 이번 글은 효과적으로 병렬 스트림을 사용하는 방법에 대해 알아봅니다. 병렬 스트림을 효과적으로 사용하기 병렬 스트림을 효과적으로 사용하는 방법은 "1천 개 이상의 아이템일 경우 병렬 처리하라"와 같이 정성적으로 구성되어 있지 않습니다. 하지만 몇가지 기준이 되는 방법이 있습니다. 1. 직접 측정하기 순차 스트림과 병렬 스트림은 손 쉽게 변경할 수 있습니다. 그러므로 각각의 스트림을 구성하고 벤치마크 툴(ex. jmh)을 이용하여 직접 측정하고 비교하여 적절한 ..
-
[Kafka] 카프카 매니저를 대체할 수 있을까?! AKHQ (Apache Kafka HQ)개발자 라이프/카프카 2020. 7. 16. 00:30
들어가며 카프카는 저장하는 데이터 리소스에 대한 blindness가 높아, 사용하다 보면 "괜찮은 운영 모니터링 툴이 없을까?" 하는 생각이 들곤 합니다. 그리고 그나마 가장 알려진 모니터링 툴이 카프카 매니저(현 CMAK)였습니다. 이번 글은 이 카프카 매니저를 대체할 수 있을만한(?) 카프카 운영 모니터링 툴인 AKHQ에 대해서 소개합니다. AKHQ 란? AKHQ(Apache Kafka HQ)는 오픈소스로써, micronaut 프레임워크를 기반으로 구성된 자바 웹 애플리케이션입니다. 현재(20.07.16) 1.4k 개의 star 수를 기록하고 있으며 다양한 기여를 통해 활발한 개발이 이뤄지고 있습니다. AKHQ의 주요 기능 AKHQ의 주요 기능들에 대해서 살펴보겠습니다. AKHQ는 카프카 1.0 버전..
-
[Kafka 101] 카프카 보안 - 인증과 인가 (Kafka Security - Authentication & Authorization)개발자 라이프/카프카 2020. 7. 5. 17:23
들어가며 기본적으로 카프카는 어느 누구나 메시지를 쓸 수 있고, 또 어느 누구나 메시지를 읽어갈 수 있습니다. 하지만 이러한 환경은 개발 환경이나 혹은 극도로 폐쇄된 환경이 아니라면 적합하지 않습니다. 이번 글은 카프카에 누가 요청을 보내는지, 나아가 그 요청자의 권한에 따라 요청 범위를 적절하게 제한하는 카프카 인증과 인가에 대해 살펴봅니다. 참고로 이번 글은 살펴보는 글이기 때문에 자세한 설정 및 구성 방법 등에 대해서 설명하지 않습니다. 해당 내용은 공식 문서를 참고하시길 바랍니다. 카프카 인증 카프카가 인증을 처리하는 방식은 SSL 방식과 SASL 방식으로 크게 2가지 방식이 있습니다. SSL 방식 : 인증서를 이용한 인증 방식 SASL 방식 : SASL 프로토콜을 이용한 인증 방식 SSL 방식은..