1. Jackson ObjectMapper의 성능을 높여줄 Blackbird 모듈[ Blackbird 모듈이란? ]기존에 Jackson 라이브러리의 성능 향상을 위해 Jackson Afterburner 모듈이 사용되고 있었다. 하지만 Afterburner 모듈은 끔찍한 바이트코드 조작을 사용하고 있었고, 곧 지원이 중단되는 Unsafe.defineClass 를 사용하고 있었다. 즉, 최신 JVM(JVM 11+)와의 호환성이나 쓰기 접근 제한 등을 고려하여 노후화 징후를 보이고 있었던 것이다.따라서 이를 대체하기 위한 새로운 모듈이 등장하게 되었다. Jackson 2.1.2 릴리스(2020년 12월)와 함께 등장한 Blackbird 모듈은 뛰어난 성능 뿐만 아니라 새로운 구조(ex LambdaMetafac..
1. 유용한 개발 관련 아티클 및 영상 #17애플리케이션 아키텍처와 객체 지향 (KUSG 조용호님 발표)도메인 레이어를 설계하는 방법절차지향(트랜잭션 스크립트)다루어야 하는 데이터와 데이터를 조작하는 프로세스가 별도로 존재함애너믹 데이터 모델(도메일이 로직이 아닌 속성 만을 가짐)서비스들이 DAO들을 주입받고 절차적으로 작성함테이블과 모델이 1대1로 매칭되는 구조이며, DAO는 테이블 데이터 게이트웨이에 해당함객체지향(도메인 모델)프로세스와 데이터를 하나의 덩어리로 묶어서 생각하는 것객체지향 기반의 도메인 레이어 설계가 필요함주어진 책임을 수행하며 협력하는 객체들의 공동체 집합이며, 메시지로 협력함애플리케이션 계층: 애플리케이션 플로우에 대한 로직을 담당함, 애플리케이션 경계에 해당하며 도메인 로직의 재..
아래의 내용은 해외의 다음 포스팅을 변역 및 정리한 내용입니다. 1. 리플렉션(Reflection)을 포함한 다양한 코드 접근 방식들의 성능 [ 코드 접근 방식의 성능 요구사항 ] 우리는 특정 클래스를 요청/응답에 사용하거나 혹은 ORM에 사용하는 등의 많은 경우에 직렬화/역직렬화 과정을 거쳐야 하며, 이를 위해 특정 클래스의 Getter에 접근해야 할 때가 있다. 제네릭 혹은 Object 등을 사용하면 컴파일 타입이 존재하지 않으므로 어떤 클래스에 대한 직렬화/역직렬화를 하는지 모르는데, 이때 특정 클래스에서 Getter를 읽는 가장 빠른 방법은 무엇일까? 예를 들어 다음과 같은 Person 클래스가 있다고 하자. public class Person { ... public String getName()..
1. 유용한 개발 관련 아티클 및 영상 #16 Spring Framework 6.2.0-M1: all the little things(비교작 작지만 요구가 많았던 개선 사항) property placeholders에 대한 개선 property placeholder는 Environment의 속성을 임의의 문자열로 대체하는 방법임 Environment의 customer.name이 "John Smith"로 설정되어 있다면 "Customer ${customer.name}"는 "Customer: John Smith"로 치환됨 Spring 6.2.0-M1에서는 구성 가능한 이스케이프 문자(기본적으로 백슬래시)를 사용하여 플레이스홀더를 이스케이프 처리할 수 있음, "Customer \${customer.name}"은..
1. 개발자 취업 또는 이직 준비 방법 (합격 이력서로 살펴보는 이력서 작성법) [ 회사 조사 ] 가장 먼저 우리가 회사를 조사해야 하는 이유는 회사가 요구하는 역량을 증명해야 하기 때문이다. 따라서 공고를 분석하고 회사가 요구하는 역량에 맞추어 이력서나 면접 등을 준비할 필요가 있다. 회사를 조사할 때 개인적으로 참고하는 사이트들이 있는데, 각각 다음과 같다. 테크컴퍼니즈 코리아: 대표 IT 기업과 유니콘 등 지원할 회사 목록 등을 위해 참고함 잡플래닛: 회사의 평점과 최근 분위기 및 코딩테스트, 면접 기출 문제 등을 위해 참고함 원티드 인사이트: 연봉 정보가 잘 알려지지 않은 회사들에 대해, 연봉 레인지 파악 등을 위해 참고함 복지리: 회사들의 복지들을 참고함 기타 등등 참고로 여기서 회사에 대한 조..