분류 전체보기128 [데이터 중심 애플리케이션 설계] 04. 부호화와 발전 [데이터 중심 애플리케이션 설계] 04. 부호화와 발전 1. 데이터 부호화 형식 프로그램은 보통 두 가지 형태로 표현된 데이터를 사용 메모리에 객체, 구조체, 배열, 해시 테이블 등으로 데이터를 유지 -> CPU에서 효율적으로 접근하고 조작할 수 있게 최적화됨 데이터를 파일에 쓰거나 네트워크를 통해 전송하기 위해서는 바이트열의 형태로 부호화 필요 인메모리 표현에서 바이트열로의 전환을 부호화(직렬화 또는 마샬링)라고 함 바이트열에서 인메모리 표현으로의 전환을 복호화(파싱, 역직렬화, 언마샬링)라고 함 1.1 언어별 형식 프로그래밍 언어에 내장된 부호화 라이브러리는 편리하지만 문제점도 많음 부호화는 보통 특정 프로그래밍 언어와 묶여 있어 다른 언어에서 데이터를 읽기가 매우 어려움 동일한 객체 유형의 데이터를.. 2022. 12. 28. [데이터 중심 애플리케이션 설계] 03. 저장소와 검색 [데이터 중심 애플리케이션 설계] 03. 저장소와 검색 관계형 DB와 NoSQL DB에 사용되는 저장소 엔진에 대해 공부한다. 로그 구조(log-structured) 계열 저장소 엔진과 (B-tree 같은) 페이지 지향(page-oriented) 계열 저장소 엔진을 검토한다. 1. 데이터베이스를 강력하게 만드는 데이터 구조 많은 데이터베이스는 내부적으로 추가 전용(append-only) 데이터 파일인 로그(log)를 사용한다. 로그 : 연속된 추가 전용 레코드(an append-only sequence of records) 추가 전용 파일은 조회시 풀스캔을 하기 때문에 데이터베이스에 많은 레코드가 있으면 성능이 매우 나쁘다. 데이터베이스에서 특정 키의 값을 효율적으로 찾기 위해서는 색인(index)이 필.. 2022. 12. 21. [데이터 중심 애플리케이션 설계] 02. 데이터 모델과 질의 언어 [데이터 중심 애플리케이션 설계] 02. 데이터 모델과 질의 언어 1. 데이터 모델의 중요성 데이터 모델은 소프트웨어 개발에서 제일 중요한 부분이다. 데이터 모델은 소프트웨어가 어떻게 작성됐는지, 해결하려는 문제를 어떻게 생각해야 하는지 지대한 영향을 미친다. 데이터 모델은 그 위에서 소프트웨어가 할 수 있는 일과 할 수 없는 일에 영향을 주므로 적합한 데이터 모델을 선택하는 작업은 굉장히 중요하다. 데이터 모델의 큰 범주 관계형 모델 문서 모델 그래프 모델 2. 관계형 모델과 문서 모델 관계형 모델 데이터는 관계(relation)으로 구성 각 관계는 순서없는 튜플(tuple)의 모음 SQL 은 정규화된 구조로 데이터를 저장하고 질의할 필요가 있을 때 사용 NoSQL의 탄생 : Not Only SQL 대.. 2022. 12. 14. [데이터 중심 애플리케이션 설계] 01. 신뢰할 수 있고 확장 가능하며 유지보수하기 쉬운 애플리케이션 [데이터 중심 애플리케이션 설계] 01. 신뢰할 수 있고 확장 가능하며 유지보수하기 쉬운 애플리케이션 1. 데이터 시스템 오늘 날의 어플리케이션은 계산 중심(compute-intensive)보다 데이터 중심(data-intensive) 적이다. CPU 성능보다는 데이터 양, 데이터 복잡도 등이 더 문제다. 많은 애플리케이션은 다음을 필요로 한다. 데이터베이스 : 영속성 스토리지 캐시 : 읽기 속도 향상, 값비싼 수행 결과 기억 검색 색인 : 사용자가 키워드로 데이터를 검색하거나 다양한 방법으로 필터링할 수 있게 제공 스트림 처리 : 비동기 처리를 위해 다른 프로세스로 메세지 보내기 일괄(batch) 처리 : 주기적으로 대량의 누적된 데이터를 분석 1.1 데이터 시스템에 대한 생각 데이터베이스, 큐, 캐시.. 2022. 12. 13. [이펙티브 자바] 2022.08.03 ~ 2022.10.19 다섯번째 스터디 회고록 [이펙티브 자바] 2022.08.03 ~ 2022.10.19 다섯번째 스터디 회고록 사실은 여섯번째 스터디지만, 헤드퍼스트 디자인 패턴 스터디 회고록을 까먹었더라. 그치만 끝난지 좀 되어 귀찮아서 패스하고 이펙티브 자바 스터디 회고록을 작성하도록 하자. 이펙티브 자바 스터디 중 가장 많이 했던 소리 사실 나는 이펙티브 자바를 읽기 전에 코틀린 인 액션을 읽지 않은채로 이펙티브 코틀린을 먼저 읽었었는데, 이펙티브 코틀린 책이 좀 어렵다고 느꼈었다. 그래서 이전에 쿠버네티스 스터디 끝날 때 쯤에 다음 스터디는 뭘로 할까? 를 정할 때 이펙티브 자바 이야기가 많이 나와서 내가 자바 인 액션 안읽었으면 이펙티브 자바 좀 어려울거라고 했었는데 다른 분들이 조금 만만하게 보았다. 그리고 마침내 이펙티브 자바가 선정.. 2022. 10. 31. [이펙티브 자바] 11장 직렬화 (serializable) [이펙티브 자바] 11장 직렬화 (serializable) 이번 장은 객체 직렬화를 다룬다. 객체 직렬화란 자바가 객체를 바이트 스트림으로 인코딩하고(직렬화) 그 바이트 스트림으로부터 다시 객체를 재구성하는(역직렬화) 메커니즘이다. 직렬화된 객체는 다른 VM에 전송하거나, 디스크에 저장한 후 나중에 역직렬화 할 수 있다. 아이템 85. 자바 직렬화의 대안을 찾으라 자바 직렬화는 프로그래머가 어렵지않게 분산 객체를 만들수 있다는 장점이 있지만 보이지 않는 생성자, API와 구현 사이의 모호해진 경계, 잠재적인 정확성 문제, 성능, 보안, 유지보수성의 대가가 크다. 직렬화의 근본적인 문제는 공격 범위가 너무 넓고 지속적으로 더 넓어져 방어하기 어렵다는 점이다. readObject 메서드는 클래스패스 안의 거.. 2022. 10. 19. 이전 1 2 3 4 5 6 7 8 ··· 22 다음 728x90 반응형