본문 바로가기

전체 글28

Node.js 의 이벤트 루프 Node.js 를 공부하다 이벤트 루프라는 개념이 어려워 정리해두었다. 이벤트 루프란? Node.js 는 하나의 스레드(싱글 스레드)에서 작업을 처리. 이벤트 루프란 시스템 커널에서 가능한 작업이 있다면 그 작업을 커널에 이관하여 JavaScript 가 싱글 스레드임에도 논블로킹(비동기) I/O 작업을 수행할 수 있게 해주는 기능. 이벤트 루프의 단계 아래 그림의 화살표 방향으로 루프가 실행. (timers → pending callbacks …. → close callbacks → timers …) 각 단계에는 각각 실행할 콜백 함수를 담기 위한 큐가 존재 이벤트 루프가 특정 단계에 진입하면 해당 단계에서 필요한 작업을 수행 후, 해당 단계의 큐에서 콜백을 실행. 실행하여 큐가 모두 비거나 콜백 제한 .. 2024. 3. 5.
JPA - 영속성 컨텍스트 영속성 컨텍스트(Persistence Context) JPA 내부동작의 핵심. 엔티티를 영구적으로 저장하는 환경. 엔티티 매니저가 생성될 때 하나 만들어지며, 엔티티 매니저는 영속성 컨텍스트에 엔티티를 보관하고 관리 엔티티의 생명 주기 비영속(new/transient) 단순히 엔티티 객체를 생성하여 영속성 컨텍스트에는 저장되지 않은 상태 em.merge() 를 통해 비영속 상태의 엔티티를 영속 상태로 만들 수 있음 영속(persisted/managed) 엔티티 매니저를 통해 영속성 컨텍스트에 객체를 저장하여 관리되고 있는 상태 EntityManager.persist(entity) ⇒ 엔티티를 영속화. 엔티티 매니저를 통해 영속성 컨텍스트에 접근해 엔티티를 관리한다. 준영속(detached) 영속성 컨텍스.. 2024. 1. 15.
DDD - 엔티티와 밸류 ※ 를 보며 제가 이해한 내용을 바탕으로 개념을 정리한 글입니다. '도메인 주도 개발하기' 책을 보고 DDD 개념 기초를 다졌으나 책을 본지도 몇 달이 지났고, 실제 DDD 를 개발에 적용하려다 보니 헷갈리는 점들이 생겨 다시 책을 꺼내 들었다. 의문이 생길 때마다 빠르게 내용을 찾아보기 쉽게 주요 개념들을 짤막하게나마 정리해두려 한다. 엔티티와 밸류 엔티티 고유한 식별자를 가진다. 각 엔티티는 서로 다른 식별자를 갖는다. 식별자 생성 방식 특정 규칙에 따라 생성 흔히 주문번호, 운송장번호, 카드번호와 같은 식별자들은 날짜 + 랜덤값 과 같은 규칙으로 생성하는 경우가 많음 UUID 나 Nano ID 와 같은 고유 식별자 생성기 사용 값을 직접 입력 사용자 아이디와 같은 예 일련번호 사용(시퀀스, DB 자.. 2024. 1. 12.
백준 4949번 - 균형잡힌 세상 https://www.acmicpc.net/problem/4949 4949번: 균형잡힌 세상 각 문자열은 마지막 글자를 제외하고 영문 알파벳, 공백, 소괄호("( )"), 대괄호("[ ]")로 이루어져 있으며, 온점(".")으로 끝나고, 길이는 100글자보다 작거나 같다. 입력의 종료조건으로 맨 마지막에 www.acmicpc.net 문제 분석 계속해서 문장을 입력받으며, "." 이 입력되면 종료된다. 각각의 문장 내에 포함된 소괄호 () 와 대괄호 [] 는 항상 짝을 이루어야 하며, 짝이 이루어진 문장이면 "yes", 하나라도 제대로 짝 지어지지 않는다면 "no" 를 출력하여야 한다. 아예 문장에 소괄호, 대괄호가 포함되지 않은 문장도 "yes"로 취급한다. 풀이 스택을 활용해 풀 수 있다. 좌측 괄호 .. 2023. 12. 11.