thxwelchs
엔지니어링 PS Series Tags
  • 엔지니어링 2024-08-08 트러블슈팅

    JobScope 밖에서 JobParameters가 동작하지 않은 이유

    Spring Batch에서 jobParameters 를 분명 맞게 썼는데도 특정 경로에서만 값이 안 들어와 한참 멍청멍청 삽질하게 된 후기입니다. 결론부터 말하면 ThreadLocal 문제였는데, 디버깅하는 과정에서 Spring Ba

  • 엔지니어링 2024-07-26 트러블슈팅

    통합테스트에서만 ConfigurationProperties 바인딩이 안 되던 문제

    Spring + Kotlin으로 개발하면서, 통합테스트에서만 @ConfigurationProperties 바인딩이 안 돼 한참을 삽질했던 조금 민망한 후기를 공유합니다. 배경 코틀린 데이터 클래스로 불변 프로퍼티를 이렇게 선언해 두고

  • 엔지니어링 2024-01-14 리액티브 스트림즈

    리액티브 스트림즈 9편 - 가상 스레드와 리액티브의 미래

    벌써.. 리액티브 스트림즈를 1편 작성한 지 시간이 꽤 흐른 것 같습니다.. 한편 한편 정성스럽게 작성했다고 생각했는데 보시는 분들은 어떻게 보셨을지 모르겠습니다 ㅎㅎ 🙈 실은 이 시리즈를 모두 작성하고 이걸 인프런 같은 강의 플랫

  • 엔지니어링 2023-12-18 코틀린 코루틴

    코틀린 코루틴 4편 - 코루틴 직접 구현해보기

    들어가며 이번엔 코루틴이 내부에서 어떻게 "멈췄다 다시 이어서" 도는지를 직접 흉내 내봅니다. Kotlin에선 suspend 한 단어로 끝나지만, 그 밑바닥이 늘 궁금했습니다. 그래서 컴파일러의 도움 없이, C로 멈춤·재개를 직접 만

  • 엔지니어링 2023-12-10 리액티브 스트림즈

    리액티브 스트림즈 8편 - 끝까지 논블로킹, 그리고 한계

    7편에서 WebFlux의 이점은 "끝까지 논블로킹일 때만" 나온다고 했습니다. 이번엔 그 "끝까지"가 실제로 무엇을 요구하는지, 그리고 어느 부분이 문제가 될 수 있는지를 정리해보겠습니다. 한 군데라도 블로킹이면 무너진다 WebFlu

  • 엔지니어링 2023-11-05 리액티브 스트림즈

    리액티브 스트림즈 7편 - Spring WebFlux와 논블로킹 스택

    6편에서 Mono / Flux 등 Reactor의 상세 스펙에 대해 다루어봤었는데요, 이번에는 웹 계층에서의 동작 구현체인 Spring WebFlux에 대해 알아보겠습니다. Spring MVC와는 다른 Spring WebFlux We

  • 엔지니어링 2023-10-24 코틀린 코루틴

    코틀린 코루틴 3편 - 여러 값이 흐르는 스트림, Flow

    들어가며 이번에는 Flow 입니다. 1편이 "코루틴은 왜 도는가", 2편이 "어떻게 안전하게 굴리는가"였다면, 본편에서는 "여러 값을 어떻게 흘려보내는가"에 대한 내용을 다룹니다. 지금까지 본 suspend 함수는 결국 값 하나를 돌

  • 엔지니어링 2023-09-17 리액티브 스트림즈

    리액티브 스트림즈 6편 - Project Reactor 입문, Flux와 Mono

    지난 5편까지는 리액티브 스트림즈의 개념적인 내용을 다뤘고, 그로부터 많은 시간이 지났습니다. 이번 편부터는 조금 더 실용적인 내용을 다뤄보려고 합니다. 그중 Spring WebFlux에서 사용되는 Reactive Streams의 구

  • 엔지니어링 2023-09-15

    TCP 흐름 제어를 tcpdump로 직접 들여다보기

    최근 네트워크 지식이 부족하다고 느껴 TCP 수준부터 다시 공부해보려고 관련 서적을 읽고 있습니다. 그중 흐름 제어(flow control) 부분을 읽다가 잘 이해되지 않는 부분이 있었는데, 직접 테스트하고 패킷을 캡처해서 분석해보면

  • 엔지니어링 2023-09-12 코틀린 코루틴

    코틀린 코루틴 2편 - 구조화된 동시성, 취소와 예외

    들어가며 1편에서는 "코루틴이 무엇이고 왜, 어떻게 도는가"를 정리했습니다. 개념과 동작 원리를 잡는 글이었죠. 그런데 막상 실무에서 코루틴을 쓰다 보니, 정작 자주 부딪힌 건 개념보다 생명주기 쪽이었습니다. 이 코루틴은 언제 끝나는

  • 엔지니어링 2023-08-31

    IntelliJ idea 커맨드 명령으로 실행하기

    이 포스팅에서는 MacOS M1, M2 칩셋 버전 IntelliJ 에서 Command Line Launcher 설정이 잘 되지 않는 현상을 해결하는 이야기를 다룹니다. 문제 발생 idea 명령으로 IntelliJ 실행이 안되네..?

  • 엔지니어링 2023-08-28 트러블슈팅

    HashMap 동시성으로 기준정보가 꼬인 사건

    이번 트러블슈팅은 이번 여름에 겪은 HashMap 동시성 사건입니다. 운영하면서 만난, 로그·모니터링 지표에도 잡히지 않는 특수한 케이스라 원인을 잡기까지 유난히 오래 걸렸던 부류라 기록으로 남겨둡니다. 배경 배경을 짧게 설명하자면

  • 엔지니어링 2023-03-15 트러블슈팅

    ES 불필요 필드 역직렬화가 API 서버 CPU 스파이크를 일으킨 사건

    배경 ElasticSearch(ES)를 읽기 전용 조회 DB로 쓰는 Spring Boot 백엔드 애플리케이션에서 발생한 문제였습니다. ES에 비정규화된 문서를 미리 만들어 두고, API는 그 문서를 조회해 내려주는 구조였습니다. 그런

  • 엔지니어링 2023-02-18 ElasticSearch 딥다이브

    ElasticSearch 딥다이브 - 6: 역색인을 Java로 직접 만들어보기

    5편까지 ES를 "쓰는 사람" 입장에서 역색인부터 분산까지 정리해보고 많은 부분을 명확히 이해할 수 있었습니다. 그러다 보니 직접 역색인 구조를 Java로 구현해보면 어떨까? 라는 생각이 들었습니다. 그래서 마지막 편은 그 핵심(역색

  • 엔지니어링 2022-12-17 ElasticSearch 딥다이브

    ElasticSearch 딥다이브 - 5: 분산 아키텍처와 실무 적용

    4편까지 한 노드 안에서 문서가 어떻게 매핑되고 저장되는지를 봤습니다. 마지막 편은 시야를 클러스터로 넓혀보겠습니다. 인덱스가 여러 노드에 어떻게 흩어지고 복제되는지, 분산이라 생기는 일관성 문제, 그리고 Spring Boot 연동과

  • 엔지니어링 2022-11-19 ElasticSearch 딥다이브

    ElasticSearch 딥다이브 - 4: 저장 구조와 매핑 파라미터

    3편까지는 검색하는 쪽을 봤었습니다. 이번 편은 한 단계 내려가서, 문서가 디스크에 실제로 어떻게 저장되는지를 살펴보겠습니다. ES는 루씬(Lucene) 위에 올라가 있어서, 매핑 파라미터 몇 개가 루씬 레벨의 저장 방식을 직접 결정

  • 엔지니어링 2022-10-19 시스템 디자인

    시스템 디자인 - Design A Rate Limiter

    이번 챕터는 시스템을 폭주하는 트래픽으로부터 지키는 처리율 제한기(rate limiter)로 마무리하려 합니다. Rate Limiter란? 그리고 왜 필요한가? 특정 클라이언트가 초당 수천 번씩 요청했을 때, 그 부하가 시스템 뒤의

  • 엔지니어링 2022-09-21 시스템 디자인

    시스템 디자인 - Design A Search Autocomplete System

    4편에서 쓰기와 읽기 모델을 상황에 맞게 분배하는 트레이드오프를 살펴봤었습니다. 이번엔 그 발상이 가장 선명하게 드러나는 검색과 자동완성(autocomplete)을 파볼 겁니다. 책 내용의 검색어 자동완성 챕터를 정리하다 보니, 지금

  • 엔지니어링 2022-09-17 ElasticSearch 딥다이브

    ElasticSearch 딥다이브 - 3: Query DSL과 스코어링

    2편에서 역색인이 만들어지는 과정을 봤습니다. 이제 그 위에서 검색을 해볼 차례인데요. 이번 편은 ES의 검색 언어인 Query DSL에서 제일 자주 쓰는 것들, match와 term의 차이, bool 쿼리, 그리고 결과 순서를 정하

  • 엔지니어링 2022-08-21 리액티브 스트림즈

    리액티브 스트림즈 5편 - 구현체들 둘러보기

    이번에는 리액티브 스트림즈 인터페이스를 구현한 구현체들, 리액티브 라이브러리를 한번 알아보려고 합니다. 같은 명세, 여러 구현체 2편에서 본 Publisher · Subscriber · Subscription · Processor 는

  • 엔지니어링 2022-08-17 시스템 디자인

    시스템 디자인 - Design A News Feed System

    이번 편의 뉴스피드(news feed) 설계는 읽기 중심 시스템을 고민해본 사람이라면 금방 익숙해질 주제일 듯합니다. 뉴스피드는 두 흐름으로 쪼개진다 책 내용에서는 뉴스피드를 두 흐름으로 나눠서 봅니다. - 피드 발행: 사용자가 글을

  • 엔지니어링 2022-07-20 시스템 디자인

    시스템 디자인 - Design A Key-Value Store

    2편에서 데이터를 여러 노드에 어떻게 나눠 담는지를 살펴봤습니다. 그럼 그렇게 나눈 데이터를 복제하고, 일관성을 맞추는 건 어떻게 할까요. 분산 키-값 저장소(key-value store) 설계가 이 질문에 대한 해답을 어느 정도 제

  • 엔지니어링 2022-07-17 리액티브 스트림즈

    리액티브 스트림즈 4편 - 백프레셔, 흐름을 누가 통제하는가

    이번에는 백프레셔(배압제어) 개념을 조금 더 디테일하게 짚어보는 이야기를 해보려 합니다. 빠른 생산자, 느린 소비자 2편의 생산자-소비자 이야기로 돌아가 봅시다. 생산자가 소비자보다 빠르면 어떻게 될까요? 생산자가 만드는 족족 밀어내

  • 엔지니어링 2022-06-18 ElasticSearch 딥다이브

    ElasticSearch 딥다이브 - 2: 역색인과 텍스트 분석

    1편에서 문자열을 text로 두면 분석기에 태워 단어로 쪼갠다고 했습니다. 이번 편은 그 "쪼개고 저장하는" 과정을 들여다봅니다. 검색이 빠른 뿌리인 역색인(inverted index), 그리고 그걸 만드는 분석기(analyzer)입

  • 엔지니어링 2022-06-15 시스템 디자인

    시스템 디자인 - Design Consistent Hashing

    1편에서 샤딩과 캐시 노드 분산을 얘기하면서 "노드를 추가·제거할 때의 복잡도"를 짚고 넘어갔습니다. 그 복잡도를 정면으로 다루는 챕터가 일관성 해싱(consistent hashing)이라고 보면 됩니다. 책으로만 보면 "그렇구나"

  • 엔지니어링 2022-06-12 리액티브 스트림즈

    리액티브 스트림즈 3편 - 직접 만들어보기, pull에서 push까지

    2편에서 명세(네 인터페이스)를 봤습니다. 이번엔 그 명세를 어떤 구현 라이브러리도 없이 순수 인터페이스로 직접 만들어보려 합니다. 그런데 곧장 코드로 들어가기 전에, 1편에서 언급했던 프로그래밍 패러다임 pull과 push라는 두

  • 엔지니어링 2022-05-18 시스템 디자인

    시스템 디자인 - Scale From Zero To Millions Of Users

    요즘 스터디에서 System Design Interview — An Insider's Guide (Alex Xu)를 같이 보고 있습니다. 책 내용이 워낙 방대해서.. 😢 중요하다고 생각되는 챕터 몇 가지만 골라 시리즈로 정리해보려고

  • 엔지니어링 2022-05-08 리액티브 스트림즈

    리액티브 스트림즈 2편 - 명세와 백프레셔, 네 개의 인터페이스

    1편에서 "왜 리액티브인가"를 봤습니다. 이번엔 그 개념을 실제로 코드에서 합의할 수 있게 한 명세이자 약속인 Reactive Streams 명세를 정리해보겠습니다. 네 개의 인터페이스 명세라고 하기에는 민망할 정도로, 리액티브 스트

  • 엔지니어링 2022-04-16 ElasticSearch 딥다이브

    ElasticSearch 딥다이브 - 1: 문서 모델과 매핑

    최근에 새로운팀에 합류하면서, 주 DB를 ElasticSearch로 활용하게 되었습니다. RDBMS만 접해왔다보니 개념 숙지가 너무 어려웠습니다. "인덱스가 테이블인가? 매핑이 스키마고?" 하면서 관계형 모델로 자꾸 끼워 맞추다 오히

  • 엔지니어링 2022-04-10 리액티브 스트림즈

    리액티브 스트림즈 1편 - 리액티브란 무엇인가, 옵저버 패턴에서 백프레셔로

    요즘 스터디로 실전! 스프링 5를 활용한 리액티브 프로그래밍 (원서 Hands-On Reactive Programming in Spring 5 )을 보고 있습니다. 개념이 만만치 않아서, 정리할 겸 시리즈로 남겨보려 합니다. 첫 편은

  • 엔지니어링 2022-03-17 코틀린 코루틴

    코틀린 코루틴 1편 - 개념과 동작 원리 제대로 보기

    들어가며 최근 회사에서 팀이동이 되었는데, 코틀린 스택으로 구성된 시스템이었습니다. 그것도 WebFlux + 코루틴 조합!! 그동안 비동기는 스레드 풀이나 콜백으로 처리하는 데 익숙했던 터라, 코루틴(coroutine) 코드를 읽고

  • 엔지니어링 2022-02-16

    스프링과 코틀린이 만나면 생기는 불편한 상황들

    지난 글에서 코틀린의 편함과 비용을 언어 차원에서 봤습니다. 코틀린을 스프링과 함께 사용하다보면 여러가지 불편한점들이 있는데, 결국 그 불편함을 해결하기 위한 방법을 여러 대체방안으로 해소해야 했습니다. 이번 글은 그런 부분을 정리하

  • 엔지니어링 2022-01-19

    자바에서 코틀린으로 - 편함과, 그만큼의 트레이드오프

    팀을 옮기고 코틀린(Kotlin)을 본격적으로 쓰게 된 지 몇 달이 됐습니다. 자바를 오래 쓰다 넘어오니 그동안 답답했던 것들이 코틀린 코드 단 몇 줄로 풀리는 순간이 자주 있었는데, 신기하게도 편해진 만큼 딱 그 자리에서 새로운 함

  • 엔지니어링 2021-11-27 Jackson 딥다이브

    Jackson 딥다이브 - 4: 설정·어노테이션·함정

    1편에서 구현체 흐름을, 2편에서 직렬화기를 직접 만들어보고, 3편에서 응답·요청 객체 설계와 불변 객체 받기를 봤습니다. 마지막 편은 개발을 하다 보면 자주 만나게 되는 ObjectMapper 설정 과 어노테이션 정리 , 그리고 발

  • 엔지니어링 2021-11-20 Jackson 딥다이브

    Jackson 딥다이브 - 3: 응답·요청 객체 설계

    1편에서 Jackson의 구현체를 따라가 보고, 직렬화는 getter → JsonGenerator , 역직렬화는 인스턴스 생성 → setter/필드 주입 이라는 한 쌍의 구조라는 걸 봤습니다. 이번 편은 그 구조를 바탕으로, 내보내는

  • 엔지니어링 2021-11-16 Jackson 딥다이브

    Jackson 딥다이브 - 2: Jackson 직접 구현해보기

    1편에서 Jackson의 구현체 흐름을 따라가 봤습니다. 직렬화는 BeanPropertyWriter 가 getter로 값을 꺼내 JsonGenerator 로 흘리고, 캐시·스트리밍 같은 설계도 되어있는 걸 살펴봤는데요. 머리로만 이해

  • 엔지니어링 2021-11-13 Jackson 딥다이브

    Jackson 딥다이브 - 1: 구현체 동작원리 살펴보기

    예전부터 JSON 직렬화에 많이 쓰이는 Jackson에 대해서 한번 정리해보고 싶었는데 드디어 마음이 결정되어 글을 작성하게 됐습니다. 백엔드 개발을 하다 보면 시도 때도 없이 사용되는 Jackson, 그리고 프레임워크 안에서 흑마법

  • 엔지니어링 2021-09-14

    AntPathMatcher 제대로 보기 - 경로 패턴 매칭은 어디에 쓰이나

    Spring Security 설정을 짜다 보면 antMatchers("/admin/ ") 같은 줄을 거의 무의식적으로 씁니다. 저도 그랬는데요. 어느 순간 궁금해졌습니다. 이 / 패턴은 어떤 원리로 구현되어 있고 어떻게 동작되는걸까요

  • 엔지니어링 2021-08-29

    내 redis가 해킹당했다고? 심지어 local인데?

    사건의 발단 어느날.. redis와 관련된 기능을 개발해야 할 일이 있어 redis를 local에서 docker 컨테이너로 실행 후 테스트를 해보고 있었습니다. 기능은 아주 간단해서 어떤 특정한 상황 때 hash 자료구조로 redis

  • 엔지니어링 2021-08-28

    Embedded Tomcat과 Tomcat의 차이

    이번 포스팅에서는 내장톰캣과 설치형으로 사용하는 외장톰캣이 무엇이 다른지, 그리고 내장톰캣으로는 해결 할 수 없는것이 있는지 간단하게 알아보았습니다. 포스팅 내용을 작성하기 전 이 내용을 조사해본 것은 전 직장 동료분과 오랜만에 만나

  • 엔지니어링 2021-08-17

    Spring WebFlux 첫걸음 - MVC만 쓰던 사람의 리액티브

    최근 이직을 하고 나서 WebFlux를 볼 일이 많아지다보니, 미루어왔던 webflux와 reactive 개념숙지를 못한것에 후회가 됐습니다 😅 그동안 Spring MVC만 써온 입장에서 WebFlux 코드를 처음 마주하니 Mono

  • 엔지니어링 2021-07-13

    ActiveMQ로 MQTT를 받아보기 - 프로토콜 다리 놓기

    지난번 가벼운 메세지를 처리하는데 최적화된 MQTT프로토콜에 대해서 다뤘었는데요. 이번에는 MQTT 경량 프로토콜 안에서 실제로 메세지를 받아 보관하고 나눠주는 브로커를 살펴보겠습니다. 실은 MQTT 브로커의 종류로는 다음과 같이 여

  • 엔지니어링 2021-06-15

    MQTT 입문 - 가벼운 메시징은 어떻게 가벼운가

    최근 직장을 옮기게 되면서 MQTT를 마주할 일이 많아졌습니다. 이전에도 찍먹 해본 적은 있지만, 한번 구체적으로 학습해볼 필요가 있을 것 같아 정리해보려고 합니다. MQTT는 무엇인가 MQTT(Message Queuing Telem

  • 엔지니어링 2020-03-06

    JPA 양방향 Entity 무한재귀 문제해결

    JPA ORM으로 개발하다보면 꽤나 많은 양방향 참조가 필요한 모델들이 있습니다. 그런데 문제는 이런 양방향관계를 가진 객체를 직렬화 하려고 할 때 무한참조가 되어 StackOverFlow를 발생시키는데요. 그렇다고 해서 ORM이 가

  • 엔지니어링 2020-03-06

    Kotlin JPA Entity 모델링하기

    최근 스프링부트를 개발 할 때 Kotlin으로 많이 개발하고 있는데요, 특히나 이 포스팅에서는, JPA Entity 모델링 을 할 때 주의해야 할 점들을 살펴보겠습니다. Entity 모델링 먼저 코틀린에서 Entity 클래스를 작성할

  • 엔지니어링 2020-02-29

    ES2020

    2020년이 되면서 javascript 표준 규격인 ECMA script 에도 몇가지 추가된 사항들이 생겼습니다! \ 어떤 것들이 있는지 한번 살펴보겠습니다. <br/ 널 병합 연산자 (Nullish coalescing operato

  • 엔지니어링 2020-02-25

    Spring 중복코드 줄여보기

    Spring 다형성, 상속성을 이용한 중복코드 줄여보기 스프링부트를 활용하면 상당 부분 설정이 편리해진 부분이 있었지만, 흔한 MVC 패턴에서(물론 실제 개발은 MVVM 패턴으로 개발중) 엔드포인트 혹은 엔티티가 늘어 날 때마다 반복

  • 엔지니어링 2020-02-24

    JPA N+1현상 삽질

    JPA N+1현상 querydsl fetchJoin 삽질한 경험 공유 - Kotlin - SpringBoot(2.2.4) - querydsl(4.2.1) <br/ 문제 JPA로 쿼리를 하다보면, N + 1 문제를 마주하게 될 수도 있

  • 엔지니어링 2020-02-11

    React debugging 하기

    안녕하세요 이번에는 React로 프론트엔드 개발할 때 Visual Studio Code + Debugger for Chrome 를 활용한 디버깅 하는 방법에 대해 알아보겠습니다. 이미 디버거를 잘 활용하고 계셨던 분이라면 굳이 이 포

  • 엔지니어링 2020-02-10

    코틀린 필드와 속성

    안녕하세요 이번에 소개할 내용은 코틀린에서의 필드(field) 와 속성(property) 입니다. 얼핏 보면 비슷해보이지만 전혀 다른 개념인데요. 저도 너무 헷갈리고 대체 어떻게 이해해야 좋을까 고민하다가 이 글을 작성하게 되었습니다

  • 엔지니어링 2020-01-31

    Git merge 스마트하게 하기

    주요 옵션 —no-commit : 일단 병합을 한다음에 병합에 실패한 것으로 가정후 커밋은 하지 않습니다. (커밋되지 않은 코드를 스테이지에만 올려놓고 코드를 마지막으로 점검하거나, 리뷰 할 때 쓸만함 ) —no-ff : fast-f

  • 엔지니어링 2020-01-30

    제네릭 1편 와일드카드 (Generic Wildcard)

    Java 와일드카드 제네릭 <? 제네릭은 Unbound wildcard라고 불리며, 어떤 타입이 될지 모른다 라는 의미입니다. wildcard가 사용된 제네릭은 타입으로 들어온 타입에 대하여 관심이 없다 라는 의미도 되며 기능적인 메

  • 엔지니어링 2020-01-28

    Exif metadata로 이미지 회전시키기

    Exif? 디지털 카메라 등에서 사용되는 이미지 파일 메타데이터 포맷으로, 카메라가 촬영한 사진, 녹음파일에 시간 등의 각종 정보를 담기 위해 개발되었다. 즉, JPEG, TIFF 6.0과 RIFF, WAV 포맷에 이미지나 소리에 대

  • 엔지니어링 2020-01-21

    SOLID 5원칙

    에피소드 \ 예전에 전 직장 동료 분들과 함께 하는 점심 식사 자리에서 데이터 모델링에 대한 심화 적인(?) 주제로 대화를 나누다가 객체지향에 대한 주제로 번졌고,\ 그 중 동료분이 "SOLID 아시죠?" 라는 질문에 저는 "가수 S

  • 엔지니어링 2020-01-20

    JPA Locking

    낙관적 락 충돌이 발생하지 않을 거라고 낙관적으로 가정하는 방법 데이터베이스 레벨이 아닌 JPA레벨에서 버전 관리 기능을 통해 구현되어있음 테이블에 version 관리를 할 컬럼을 지정해놓고 읽었을 때의 버전과, 변경 할 때의 버전이

  • 엔지니어링 2019-11-22

    AOP 관점지향프로그래밍

    AOP 직역하면 관점지향 프로그래밍(Aspect-Oriented Programming) 인데, 한국말로 들으면 영 와닿지 않습니다. 좀 더 쉽게 풀어보면, 여러 곳에 흩어져 반복되는 공통 기능을 한 군데로 모아 재사용하게 해주는 것

  • 엔지니어링 2018-08-22

    JVM GC종류와 튜닝

    GC가 뭐길래 자바 개발자라면 자바가 메모리를 알아서 관리해주는 언어라는 걸 알고 계실 겁니다. 그래서 C 같은 언어와 달리, 메모리를 직접 해제해본 적은 거의 없으실 겁니다. 더 이상 쓰지 않는 객체를 JVM이 알아서 찾아 정리해주

  • 엔지니어링 2016-08-22

    Java Reflection

    Java Reflection 객체를 통해서 그 객체의 클래스 정보를 분석해내는 프로그래밍 기법 을 의미합니다. 위키백과에서는 컴퓨터 과학에서의 Reflection(반영)을 "런타임 시점에 자신의 구조와 행위를 관리하고 수정할 수 있는

  • 엔지니어링 2016-08-20

    직렬화(Serialization)!?

    직렬화란? 직렬화라는 개념을 처음 접하고 이해해보려 했을 때, 머릿속에서 명확하게 정리가 되지 않았습니다. 그래서 이참에 한번 제대로 짚어봤습니다. 공식적인 정의를 제 식대로 다시 정리해보면, 직렬화(serialization)는 객체

© thxwelchs