본문 바로가기

👨‍🏫일문일답40

운영체제 운영체제(Operating System, OS)는 컴퓨터의 구성요소(프로세서, 기억장치, 입출력 장치, 디스크, 네트워크 장비 등)와 자원을 효율적으로 관리하고 편리하게 사용하게 해주는 인터페이스이자, 시스템 소프트웨어 또는 프로그램이다. 2024. 1. 28.
동기/비동기, 블로킹/논블로킹 이해하기 동기(synchronous 또는 sync)는 한 작업을 수행하다가 다른 작업을 수행할 때 그 작업이 끝나고 나서 처음 작업을 다시 재개하는 방식을 말한다. 처음 작업은 새로운 작업이 끝나는 것을 "대기"한다. 반면에 비동기(asynchrnous 또는 async)는 한 작업을 수행하다가 다른 작업을 수행해도 처음 작업을 중단하지 않고 "동시"에 진행할 수 있다. 동기는 한 작업의 끝과 다른 작업의 시작이 일치한다(같다)고 이해할 수 있다. 한편, 블로킹은 한 작업을 수행할 때 다른 작업을 수행할 수 없는 상태 혹은 그 상태를 발생시키는 특성을 말한다. 다른 작업에 대한 "제어권"이 없기 때문에 블로킹이 일어난다. 반면에, 논블로킹은 블로킹이 발생하지 않는 상태 혹은 블로킹을 발생시키지 않는 특성을 말한다... 2024. 1. 27.
도메인 모델, 엔티티, DTO, VO 차이 정리 각 객체들의 의미를 살펴보고 어떤 차이가 있는지 알아보자. 각 객체들의 관계를 그림으로 나타내 보았다. 기본적으로 도메인 모델, 엔티티, DTO, VO는 객체(Object)이다. 일단 크게는 도메인 모델 객체, DTO, VO로 나눠 볼 수 있다. 도메인 모델 객체 도메인 모델 객체(domain model object)는 어떤 도메인에 속하는 모델 객체를 가리킨다. 도메인은 해결하고자 하는 문제가 속하는 "영역"을 의미하는데, 온라인 쇼핑몰이나 여행 예약 사이트 등 서비스 종류를 도메인으로 볼 수 있다. 이 도메인은 다시 회원, 상품, 주문, 예약 등 하위 도메인으로 분해될 수 있다. 이처럼 도메인 자체는 영역 또는 범위를 의미할 뿐이고 도메인 모델은 이러한 도메인에서 사용되는 모델을 말하는데, 모델이란 .. 2023. 12. 13.
primary key 필드 타입은 원시형과 래퍼 클래스 중 어느 것을 사용해야 할까? @Entity @NoArgsConstructor(access = AccessLevel.PROTECTED) @AllArgsConstructor @Builder @Data public class Board { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "board_no") private Long id; //... } 이번에 기존 프로젝트 코드 리팩터링을 진행하면서 PK(기본키) 필드 타입을 무엇으로 하는 것이 맞는 건지 생각해 보게 되었다. 원시형 타입과 래퍼 클래스, 두 가지 경우가 가능하지만, 하이버네이트 공식 문서에서 래퍼 클래스를 사용을 권장해서 래퍼 클래스를 주로 사용하는 것으로 알고 있었는데, null 가능성을 열.. 2023. 12. 3.
728x90