개발

개발

카프카, 데이터 플랫폼의 최강자 - 1장 카프카란 무엇인가

책 카프카, 데이터 플랫폼의 최강자 1장에 대한 요약 정리 내용입니다. 1장 카프카란 무엇인가 탄생 배경 카프카는 링크드인에서 처음 출발한 기술 링크드인이 급속도로 성장하면서 발생하는 내부 여러 이슈들을 해결하기 위해 탄생함 엔드투엔드(end-to-end) 연결 방식의 아키텍처는 많은 문제점이 있음 실시간 트랜잭션(OLTP) 처리와 비동기 처리가 동시에 이뤄지지만 통합된 전송 영역이 없어서 복잡도 증가함 데이터 파이프라인 관리가 어려움 RDBMS, 하둡, 모니터링 시스템, 키-값 저장소 등이 처음에 각자의 목적에 맞게 만들어지지만 시간이 지나면서 서로 연결되어야하는 일들이 필연적으로 발생함 데이터 포맷과 처리 방법이 제각각이라 확장하기 힘들고 조정 및 운영에 비용이 많이듬 복잡성으로 인해 시스템 간 데이..

개발/Spring

Spring Controller에서 파라미터 검증 방법들

Validator Validator 인터페이스를 구현한 객체를 사용하는 방법. 컨트롤러 메소드 내의 코드 Validator를 컨트롤러에서 DI받아 두고 각 메소드에서 필요에 따라 직접 validate() 메소드를 호출하는 방법. @Valid를 이용한 자동검증 JSR-303 Valid 애노테이션을 사용하는 방법. @Valid 애노테이션을 차용했을 뿐 내부적으로는 스프링의 Validator가 사용된다. 컨트롤러 메소드 파라미터에 @Valid를 추가한다. WebDataBinder는 @InitBinder 메소드에서 등록된 Validator를 이용해 모델을 검증한다. 서비스 계층 오브젝트에서의 검증 Validator를 서비스 계층에서 DI받아 사용하는 방법. 서비스 계층을 활용하는 Validator 검증 관련된 ..

개발/Database

MySQL 하기 쉬운 실수와 Tip에 대한 소개

MySQL 사용하고 있지만 잘 모를 수 있는 부분들과 간단한 Tip에 대한 단편적인 내용들에 대한 정리한 내용이다. 정리 내용 # 인덱스 생성시 유니크 인덱스로 생성할 수 있는데, 유니크 인덱스는 제약사항일 뿐이다. 특별히 성능이 다른 인덱스보다 좋은 것은 아니다. (동일 컬럼 Non-unique 인덱스와 비교했을 때) MySQL은 특이한게 모든 인덱스의 끝에 PK 컬럼이 추가된다. 그래서 많은 키로 PK를 구성하는게 좋지 않다. PK를 구성하는 컬럼이 많다면 auto increment 컬럼을 PK로 설정하고 필요 시 다른 인덱스를 추가하는게 더 나은 선택이 될 수 있을 것 같다. # 단일 컬럼 인덱스는 잘못된 설계인 경우가 많다. 되도록이면 컬럼을 중첩시켜 인덱스의 갯수를 적게 유지하는 것이 좋다. #..

개발/자바

자바 성능을 결정짓는 코딩 습관과 튜닝 이야기

자바 성능을 결정짓는 코딩 습관 튜닝 이야기 요약 https://book.naver.com/bookdb/book_detail.nhn?bid=4441100 1. 너무나 많은 패턴을 사용하지 말라 - 꼭 필요한 패턴만 사용하라 2. 데이터 처리할때 TO(Transfer Object)패턴, (vo패턴)을 사용하고, 아니면 Collection 관련 클래스 이용하라. 3. 서비스 로케이터(Service Locator)패턴은 적용하면 대기시간을 줄수 있다. 4. 명명 규칙을 잘 지켰는가? 5. 필요한 부분에 예외 처리는 되어 있는가? 6. 예외 화면은 지정되어 있는가? 7. 예외처리를 e.printStackTrace() 해서 서버에 부하를 주지 말자 8. System.gc() 메소드를 이용해서 가비지콜렉션을 지운다..

개발/Spring

스프링 @Async를 통한 비동기 처리 및 설정값

@Async를 통해서 비동기 처리하는 방법 관련 내용 및 설정값들에 대해서 간단하게 정리한 내용이다. # @Async를 통한 비동기 처리 @Async 애노테이션을 통해서 메소드 호출을 비동기로 처리할 수 있는데 적용 방법은 비동기로 수행할 메소드(혹은 타입)에 @Async를 붙여주면 된다. 모든 메소드에 사용할 수 있는 것은 아니고 public void 혹은 public Future 타입의 메소드에만 적용할 수 있고 같은 클래스 내의 메소드 호출은 적용이 안된다. (다이나믹 프록시 적용이 가능해야 하기 때문임) (task:executor 설정 시 mode를 aspectj로 지정하면 이 제약이 없을 수도 있을 것 같다.) 작업의 결과값을 알아야하는 경우에는 Future 타입을 리턴 받아야 할 듯하다. 비동..

개발/Front End

React Hook 내용 정리

React? f(data) = View React Element : type과 props를 가지는 객체 react element는 단일 태그로 감싸져있어야 함 로 감싸는 방식을 많이 사용한다 를 사용해도 됨 React Element는 immutable 하다 ReactDOM.render( reactElement, containerDOM, [callback] ) ReactDOM.hydrate( reactElement, containerDOM, [callback] ) hydrate는 render()와 동일하지만 SSR일 때 사용함 React Component의 이해 재사용성을 높여주고 기능별 단위를 만들 수 있게 해준다 f(props) => reactElement Component 구현 2가지 방법 Funct..

bebeside77
'개발' 카테고리의 글 목록 (6 Page)