블로그 번역
-
[24.03.01] 마이크로서비스 안티 패턴블로그 번역 2024. 3. 1. 13:25
이번 주제는 마이크로서비스 구축 시 안티 패턴에 관한 주제입니다. 1. Monolith in Microservices 첫 번째로 마이크로서비스의 단일 DBMS 사용이다. 기본적으로 MSA 에서는 각 서비스마다 DB 인스턴스를 가지는게 일반적이다. 왜냐하면 데이터베이스 유형, 스키마 규칙, IOPS 용량을 각자 설정할 수 있기 때문이다. 두 번째로는 배포의 복잡성이 증가하는 것이다. 기존 Monolithic 버전의 빌드 및 배포보다 복잡한 배포과정을 가진다면 MSA 의 장점인 유연하고 민첩한 배포가 불가능하므로 이러한 부분을 쉽게 관리할 수 있도록 해야한다. 마지막으로 불분명한 도메인 경계이다. 예시로 User 관련 기능들이나 ACL 같은 기능들이 모든 서비스에서 중복으로 관리되어지고있다면 아키텍처를 ..
-
[23.12.31] Java Volatile vs Synchronized블로그 번역 2023. 12. 31. 14:41
이번 주제는 자바 동시성 관련하여 Volatile과 Synchronized 키워드에 관한 주제입니다. 멀티 스레드의 문제점 자바에서는 동시성 관련 문제가 중요하다. 왜냐하면 적절하게 스레드를 다루지 못하면 큰 사고로 이어질 수 있기 때문이다. Race Condition 문제 두 개 이상의 스레드가 자원을 동시에 공유하는 경우 타이밍에 따라서 결과가 달라질 수 있는 문제. Data Corruption 문제 Synchronized 키워드를 사용하지 않는 자원이 수정 될 경우 데이터 일관성이 깨지는 문제. Deadlock 문제 두 개 이상의 스레드가 Synchronized 키워드나 다른 상황에 의해서 서로 원하는 리소스를 점유하고 있어 다음 리소스를 얻지 못하는 문제. 위 문제들이 발생하면서 "불안정한 스레드..
-
[23.12.29] Java 21 - Sequenced Collections블로그 번역 2023. 12. 29. 15:04
이번 주제는 Java 21에 새로운 기능인 Sequenced Collections 에 관한 주제입니다. 출현 배경 list.add(0, "hello"); list.get(0); list.get(list.size() - 1); 위 예시처럼 컬렉션을 사용하고 있다. 그러나 마지막 또는 첫 번째 요소를 가져오는데 불편한 부분이 있었다. 또 역순으로 가져오기 위해서는 Collections 클래스나 다른 방법을 이용해야한다. 위 불편함을 개발자 친화적으로 만들기 위해서 Java 21 부터는 Sequenced Collection 이 탄생했다. Sequenced Collection Sequenced collections, Sequenced set, Sequenced maps 3가지가 추가되었다. 예를 들어 자주 사용..
-
[23.12.28] 2024년 자바 개발자를 위한 면접 질문 - 1블로그 번역 2023. 12. 28. 11:07
이번 주제는 자바 개발자 인터뷰 관련 질문 및 답변에 관한 주제입니다. 소개글 요즘 전형적인 자바 개발자 면접 항목은 OOP 및 자바 중요 개념부터 시작한다. 그리고 Spring, Hibernate, Spring Boot, MSA 등 어려운 주제로 확장되어간다. 그 후 2차 기술인 AWS, GCP, Azure, SQL, Kafka 등을 평가한다. 물론 K8S, Docker 등 Devops 질문도 마찬가지이다. 그 중에서도 자바에 관련한 질문을 위주로 살펴보자. 1. 자바 직렬화 관련 단어인 "transient"의 중요성에 대해 설명하세요 자바에서 transient를 붙인 필드는 객체 직렬화 시 변수는 직렬화 하지 않겠다는 의미이다. transient는 민감하거나 임시 저장 목적으로 사용되어지는 데이터를 ..