객체(3)
-
[JAVA] 멀티스레드 환경에서 문제와 대책
1. Thread 프로그램이 실제로 실행되어, 메모리나 CPU와 같은 자원을 할당 받으면 이를 프로세스라고 부른다. 스레드는 프로세스 내에서 실제로 작업을 수행하는 한 단위 모든 프로세는 하나 이상의 스레드가 존재하고, 두개 이상의 스레드를 낮는 프로세스를 멀티 스레드 프로세스라고 한다 프로세스는 독자적으로 메모리를 할당받아 서로의 메모리를 공유할수 없지만, 프로세스 내부의 스레드는 같은 자원을 공유하여 사용이 가능하다. 여러 스레드를 사용하여 병렬 프로그래밍을 하게되면 웹 서버에서는 빠른 응답이 가능하다는 장점이 있다. 여러 스레드가 하나의 자원을 공유하고 있기 때문에 스레드 간 경쟁상태가 발생할수 있고, 이는 동시성 문제 2. 동시성 문제 해결 암시적 Lock 사용 가장 간단하면서 쉬운방법 Lock을..
2024.02.26 -
MapStruct 편리한 객체 간 맵핑
1. MapStruct 란? Java 객체 간의 맵핑을 단순화하는 코드 생성 라이브러리입니다. Annotation processor를 이용하여 객체 간 매핑을 자동으로 제공합니다. 반복되는 객체 매핑에서 발생할 수 있는 오류를 줄일 수 있으며, 구현 코드를 자동으로 만들어주기 때문에 사용이 쉽습니다. 컴파일 시점에 코드를 생성하여 런타임에서 안정성을 보장합니다. 2. 설정 방법 Dependency를 먼저 추가해 주어야합니다. 주의할 사항으로는 Lombok 라이브러리에 먼저 dependency (의존성) 추가가 되어있어야 합니다. MapStruct는 Lombok의 getter, setter, builder를 이용하여 생성되므로 Lombok 보다 먼저 의존성이 선언된 경우 실행할 수 없습니다. org.map..
2024.02.14 -
ObjectMapping 라이브러리 비교
JSON to DTO, Entity to DTO 으로 각 객체가 Mapping이 필요할 때가 많습니다. 필드가 적을 경우에는 직접 생성자를 통해서 해줄수 도 있겠지만 필드가 많을경우 굉장히 번거로운 작업이 될 경우가 많습니다. 그래서 보통 ObjectMapping 라이브러리를 사용하는데, 각 ObjectMapping 라이브러리를 비교해보고, 적합한 상황에 맞춰 사용하는것이 좋을거 같아 글을 적습니다. 1. ObjectMapper 첫번째로 가장 흔하고 자주 사용하는 ObjectMapper입니다. ObjectMapper는 Jackson 라이브러리의 일부로 제공되며, 주로 JSON-Object 변환을 수행하는 데 사용합니다. spring-boot-starter-web 에 포함되어있기 때문에, 일반적인 spri..
2024.01.24