분류 전체보기
-
MySQL Hint (옵티마이저 힌트 & 인데스 힌트)CS 지식/데이터베이스 2022. 7. 29. 15:47
Hint 조인이나 인덱스 실행 계획을 개발자가 옵티마이저에 힌트를 주어 바꿀 수 있는 것이 힌트 옵티마이저 힌트 와 인덱스 힌트 두 종류로 나뉜다. 옵티마이저 힌트 optimizer_switch 시스템 변수를 설정하여 제어 가능 후속 쿼리에 대한 영향을 주기 때문에 mysql에 대한 이해도가 깊지 않다면 지양해야한다. 명령문 내의 옵티마이저 힌트 optimizer_switch 보다 선행되며 다양한 범위 수준에서 적용된다. 전역 전체 문에 영향 쿼리 블록 명령문 내의 특정 쿼리 블록에만 영향 테이블 쿼리 블록 내의 특정 테이블에만 영향 인덱스 테이블 내의 특정 인덱스에만 영향 주석 내에 지정해서 사용하며 SEMIJOIN, BKA 등이 있다. (상세한 것은 나중에 옵티마이저 힌트가 필요해지면 추가 정리) 인..
-
Surrogate key vs Natural Key (대체 키 vs 자연 키)CS 지식/데이터베이스 2022. 7. 29. 15:20
Surrogate key vs Natural Key Surrogate Key(대체 키) 비즈니스 의미가 없는 시스템 생성 값 (system generated) GUID, sequence, unique identifier... 컬럼들 중 유일하게 식별 가능한 단일 후보키가 존재하지 않는 경우, 임의의 식별번호로 이루어진 후보키 하나 이상의 컬럼으로 구성 (복합키) 비즈니스 의미가 없이 순차적 정수가 고유 키 역할을 하는 예시. 장점 비즈니스 요구 사항에 따른 변경 사항이 없음 모든 엔티티에서 동일한 키 전략을 유지하는 경우 코드가 줄어듦 애플리케이션 코드가 모두 순차적인 정수로 구현된 경우, 기본 키를 참조할 때 재사용 가능 대체 키는 고유성이 보장됨 시퀀스가 사용되면 값이 계속 증가하여 인덱스 단편화가 ..
-
LogStashTool 2022. 2. 24. 11:07
Log Stash 실시간 파이프라인 기능을 가진 오픈소스 데이터 수집 엔진 서로 다른 소스의 데이터를 탄력적으로 통합하고 사용자가 선택한 목적지로 데이터를 정규화하도록 도움 다양한 입력, 필터, 출력 플러그인을 통해 다양한 유형의 이벤트를 수집 Apache 및 Application 로그 (log4J 등), Syslog, windows 이벤트 로그, 네트워킹 및 방화벽 로그 등을 쉽게 수집 Filebeat 와 연계하여 보충적인 보안 로그 전달 기능 활용 Ganglia, collectd, NetFlow, JMX, 기타 여러 인프라 및 애플리케이션 플랫폼의 메트릭을 TCP 및 UDP를 통해 수집 작동 방식 및 플러그인 Logstash 이벤트 처리 파이프라인에는 입력 → 필터 → 출력 세 단계 Input fil..
-
주니어 개발자의 2021년 회고ETC 2022. 2. 3. 18:20
취업 준비 2021년은 2020년의 연장선으로 취업 준비가 이어졌다. 운이 좋게 2020년에 부스트캠프라는 좋은 부트캠프에서 개발자로서 어떻게 스스로 성장해 나가야하는지, 현재 어떤 내용들을 깊게 학습해야하는지 배울 수 있었다. 교육 이후, 부스트캠프 채널에서 열리는 채용 공고와 직접 채용 공고를 찾아가며 서류를 내고, 시험과 면접을 보며 1월과 2월을 보냈다. 수많은 고배를 마신 후, 현재 다니고 있는 회사에 인턴 모집과정에 합격하여 감사하게도 현재 개발자로 일을 하고 있다. 1년여 간의 취업 준비 기간동안 불합격이라는 경험 속에서 많은 것들을 느꼈다. 아쉬운 점 깊게 학습했다고 믿었던 내용들, 스스로 트러블 슈팅하면서 정리해둔 개념이나 내가 사용한 기술 스택에 대해 상세히 알고 있다고 생각했었는데, ..
-
@SpyBean vs @MockBeanJava & Spring/기타 2021. 10. 11. 15:44
SpyBean vs MockBean SpringBoot 1.4 부터 추가된 Annotation SpyBean 클래스 레벨, @Configuration 클래스의 필드, @RunWith 클래스의 필드에 적용 가능 가능 같은 컨텍스트 안의 빈은 spy로 선언된 빈으로 래핑된다. Given에서 선언한 코드 외에 전부 실체 객체를 사용 @SpyBean private MyService myService; doReturn(myObject) .when(myService) .getMyObject(params..); myService의 getMyObject라는 메소드는 위에서 정한 parameter로 호출할 때, myObject라는 객체를 리턴해주도록 설정해준다. 이외의 모든 메소드, 필드 등은 실체 객체를 사용하게 된다..
-
ArcusJava & Spring/기타 2021. 9. 30. 15:23
Arcus 란? memcached와 ZooKeeper를 기반으로 네이버 서비스들의 요구 사항을 반영해 개발한 메모리 캐시 클라우드 memcached 프로토콜을 지원하고 기본 성능 혜택은 그대로 유지 백엔드 저장소인 DB 앞단에 위치하여 hot-spot 성격의 데이터를 캐싱하여, 서비스 응용에 빠른 응답성을 제공하고 DB 부하를 감소시킴 복잡한 계산에 의한 결과물 or 웹 처리 상의 중간 데이터 등을 신속하게 저장 / 조회 캐시를 통한 여러 프로세스들 간에 데이터 공유 Front Cache 리모트 캐시 앞단에서 애플리케이션 장비의 로컬 메모리를 사용하여 데이터를 캐싱하는 방법 ARCUS와 같이 리모트 서버에서 캐싱을 수행하면 캐싱된 데이터를 서로 공유할 수 있지만, 일시적인 많은 요청으로 인한 장비 리소스..
-
9장) 9.3 애플리케이션 아키텍처 (vol1 마지막 정리)Java & Spring/토비의 스프링 3.1 2021. 9. 24. 12:11
9장 스프링 프로젝트 시작하기 9.3 애플리케이션 아키텍처 스프링 웹 애플리케이션 아키텍처 결정하기 아키텍처 어떤 경계 안에 있는 내부 구성 요소들이 어떤 책임을 갖고, 어떤 방식으로 서로 관계를 맺고 동작하는지를 규정하는 것 동적인 행위와 관계 9.3.1 계층형 아키텍처 관심, 책임, 성격, 변하는 이유와 방식이 서로 다른 것들을 분리 응집도가 높아지고 결합도가 낮아짐 장점 불필요한 부분까지 변경이 일어나고 이로 인해 작업이 더뎌지고 오류가 발생할 가능성이 적어짐 어느 부분을 수정할지 파악하기 쉬워지고 변경이 필요한 부분만 각각 변경이 필요하고, 독립적인 발전이 가능 인터페이스와 같은 유연한 경계를 만들어두고 분리하거나 모아주는 작업이 필요 아키텍처와 SoC 지금까지는 성격이 다른 코드가 얽혀 있는 것..
-
8장) 8.3 POJO 프로그래밍 ~ 8.4 스프링의 기술Java & Spring/토비의 스프링 3.1 2021. 9. 7. 17:04
8장 스프링이란 무엇인가? 8.3 POJO 프로그래밍 스프링의 기술적 지향점 스프링의 정수는 엔터프라이즈 서비스 기능을 POJO에 제공하는 것 엔터프라이즈 서비스는 보안, 트랜잭션과 같은 엔터프라이즈 시스템에서 요구되는 기술 엔터프라이즈 서비스 기술과 POJO라는 애플리케이션 로직을 담은 코드를 분리했다는 뜻 8.3.1 스프링의 핵심: POJO 스프링의 핵심은 POJO 프로그래밍 스프링 애플리케이션은 두 가지로 구분 POJO를 이용해 만든 애플리케이션 코드 POJO가 어떻게 관계를 맺고 동작하는지 정의해놓은 설계정보 이런 DI 개념을 애플리케이션 전반에 걸쳐 적용하는 것이 스프링의 프로그래밍 모델 스프링의 주요 기술인 IoC/DI, AOP, PSA(Portable Service Abstraction)은 ..