전체 글 343

브라우저 렌더링 파이프라인에 대해서 설명해주세요

브라우저가 웹 페이지를 화면에 표시하기 위해 거치는 과정을 브라우저 렌더링 파이프라인이라고 합니다. 이 과정은 크게 6단계로 나눌 수 있습니다.첫번째로 DOM 생성입니다.브라우저가 HTML 파일을 받으면, 이 파일을 바이트(byte) 단위로 읽기 시작합니다. 브라우저의 HTML 파서(Parser)는 이 바이트들을 문자(character)로 변환하고, 이 문자들을 다시 HTML 토큰으로 변환합니다. 이 HTML 토큰들은 각각의 태그와 그 안에 포함된 텍스트, 속성 등을 의미하게 됩니다.HTML 토큰이 생성되면, 브라우저는 이를 기반으로 DOM 트리를 생성합니다. DOM 트리는 HTML 문서의 구조를 트리 형태로 표현한 것으로, 각 태그가 노드(node)가 되어 부모-자식 관계를 형성합니다. 예를 들어, ..

연결 리스트(Linked List)의 구조와 사용 사례를 설명해주세요.

연결 리스트(Linked List)의 구조연결 리스트는 데이터를 노드(Node)라는 단위로 저장하며, 각 노드는 데이터(Data)와 다음 노드를 가리키는 포인터(Next Pointer)를 포함하는 구조입니다. 배열(Array)과 달리 연결 리스트는 메모리상에서 데이터를 연속적으로 저장하지 않고, 동적으로 메모리를 할당받아 노드 간 연결을 유지합니다.구조노드(Node):데이터(Data): 저장하고자 하는 실제 값.포인터(Next): 다음 노드를 가리키는 참조값.헤드(Head):연결 리스트의 첫 번째 노드를 가리키는 포인터.종류:단일 연결 리스트(Singly Linked List): 각 노드가 다음 노드만 가리킴.이중 연결 리스트(Doubly Linked List): 각 노드가 다음 노드와 이전 노드를 가리..

비동기 클라이언트 수신 SseEmitter 사용법과 어노테이션 끄적

private Map emitterMap = new HashMap();public Optional get(Integer userId) { // userId에 해당하는 SseEmitter를 emitterMap에서 가져옴 SseEmitter result = emitterMap.get(getKey(userId)); // 가져온 결과를 로그에 기록 log.info("Get Emitter from Redis {}", result); // 결과를 Optional로 감싸서 반환 return Optional.ofNullable(result);}private String getKey(Integer userId) { return "emitter:UID:" + us..

성장욕구와 기부의 보람 [항해 99 잔디기부 캠페인]

항해 99에서 잔디 기부 캠페인을 해서 잔디 기부를 했다.개발자 커리어 개척 캠프 항해99 | 잔디 기부 캠페인 https://git-wrapped.com/profiles/MyoungSoo7 GitHub Wrapped 2024 - Your Coding Year in ReviewLike Spotify Wrapped, but for your GitHub activity! See your top languages, commit streaks, most productive days, and more in an engaging story format. Get your 2024 coding year in review now.git-wrapped.com 항해 99에 잔디를 기부하면서 내 git을 재미로 되돌아 볼수..

스프링부트 3.x 연구

https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Release-Notes Spring Boot 3.0 Release NotesSpring Boot helps you to create Spring-powered, production-grade applications and services with absolute minimum fuss. - spring-projects/spring-bootgithub.com v3.0자바17지원 , Graal 22.3이상(상당한 메모리 및 시작 성능개선) , Native Build Tools Plugin 0.9.17 이상 필요, 스프링 시큐리티 6.0, 스프링인터그레이션 6.0, 그래프ql 1.1 , ..

스프링부트 2.x 연구

v2.0https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.0-Release-Notes Spring Boot 2.0 Release NotesSpring Boot helps you to create Spring-powered, production-grade applications and services with absolute minimum fuss. - spring-projects/spring-bootgithub.com 자바8 이상, 톰캣 8.5 , 플라이웨이5, 하이버네이트 5.2, 타임리프 3 , 스프링웹플럭스(비차단 반응형대안), 그래들4.x이상, 코틀린1.2.x 지원, 속성으로 redis기본값구성, 애니메이션 gif배너지원 http..

스프링부트 버전 1.x 대 연구

v1.1메이븐을 사용하여 실행, 타임리프, JSP  지원, 지표 및 엔드포인트 , Flyway 로 이제 데이터베이스 마이그레이션에 대한 자동구성제공v1.2이메일 지원, 배너속성( ${}) 지원, 잭슨 커스터마이징 , JNDI( datasource 및 JMS빈 모두조회) v1.3스프링4.2이상이 필요, 스프링시큐리티4.0 이상, 라이브리로드 지원, 캐시자동구성 지원, 세션테이터 저장(server.session.store-dir) , 고급 http 세션구성(server.session.*) , 엔드포인트( /logfile , /flyway, /liquibase 추가 및 CORS 지원) , .env 지원v1.4하이버네이트5.0이상 , 서버헤더( 속성이 설정되지 않은면 응답헤더는 설정안됨) , 스프링4.3이상 ,..