전체 글
-
RxJs Map Opertator 정리개발기초 2021. 11. 30. 17:49
쓸때마다 햇갈려서 정리하는 Rxjs Map관련 Operator mergeMap / flatMap - 소스 observable에서 값이 방출되면 mergeMap의 맵핑 observable이 구독되어 값이 방출된다. - 이 때, 소스 observable에서 값이 또 방출되면 새로운 맵핑 observable이 구독되고 기존 맵핑 observable과 함께 값을 방출한다. - 유실되는 데이터는 없다.( source * mapping 개 데이터) - Observable 생성자 operator인 merge() 와 같은 역할을 한다. concatMap - 소스 observable에서 값이 방출되면, 이를 트리거로 concatMap의 observable에서 값이 방출되고, complete되면 앞의 observable의..
-
Angular Test - 부모요소 스크롤시 ScrollTop Element 랜더링Angular 2021. 11. 16. 18:00
앱에서 Content Element에서 oversflow가 발생해 scroll이 생겼을 때, scroll을 내리면 NgPrime의 ScrollTop 요소를 화면에 랜더링하려고 한다. 이를 테스트하던 중 어려움이 있어서 기록으로 남김. Content요소는 Angular Material의 Sidenav 모듈의 MatDrawerContent요소로 감싸져있는데, 이 컴포넌트는 편리하게도 CdkScrollable을 상속해 아래와 같이 scrollTo() 메서드를 제공한다. // MatDrawerContent export declare class MatDrawerContent extends CdkScrollable implements AfterContentInit { ... } // @angular/cdk CdkS..
-
Set-Cookie 헤더는 forbidden response-header name 이라 조작이 불가능하다.카테고리 없음 2021. 11. 14. 16:17
Angular 프로젝트의 인증 서비스의 로그인 로직의 테스트 코드를 작성하던 중 문제가 발생했다. 우선 로그인 로직은 아래와 같다. username / password 입력후, 로그인 submit 한다. 서버에 로그인 api를 요청한다 실패 : username / password validation 관련하여 실패하고, 401 응답이 온다. 성공 : Set-cookie 헤더에 Jwt 토큰(access, refresh)이 각각 담겨서 200 응답이 온다. 성공 케이스를 테스트하는데, 성공여부를 테스트 하기 위해 HttpStatus가 200 인지 를 테스트함과 동시에 좀 더 안전하게 하기 위해 Set-cookie 헤더에 각각 토큰이 담겨있는지(유효성 여부는 체크하지 않는다)를 체크한 후, 없으면 Error를 ..
-
WebMvc - Test Context 설정하기카테고리 없음 2021. 10. 19. 17:29
https://perfectacle.github.io/2020/12/27/detecting-test-configuration-in-spring-boot-test/ Spring Boot Test에서 Test Configuration 감지하기 Spring Boot Reference의 Testing - Detecting Test Configuration 파트를 보면 다음과 같은 내용이 나온다. If you are familiar with the Spring Test Framework, you may be used to using @ContextConfiguration(classes=…) i perfectacle.github.io https://developer.okta.com/blog/2019/03/28/t..
-
Spring Data Jpa 페이징 오류Java/Spring 2021. 9. 28. 11:12
삽질의 기록 Spring data jpa에서 Paging을 사용할 때 발생하는 에러 public interface BlockRepository extends PagingAndSortingRepository { Page findAllByAccessKey(AccessKey accessKey, PageRequest pageRequest); } Paging을 위해서 method의 parameter로 Pagable 인터페이스를 받는데, 이 때 Parameter 타입을 PageRequest로 해서 method를 생성하고 호출하면 아래와 같은 오류가 발생한다. java.lang.IllegalArgumentException: At least 2 parameter(s) provided but only 1 paramete..
-
mybatis 다중 VO 사용하기Java/Spring 2021. 9. 27. 15:24
mybatis 사용 중 parameter에 String과 VO 객체를 동시에 넘겨줄 때 문제가 발생했다. 해결은 간단한데, 간단한걸 몰라서 삽질을 많이 했고 시간이 흘러서 다시 삽질할 것 같다 기록으로 남긴다. // mapper 클래스 void updateSyncUserRelation(String tableName, SyncUserRelation syncUserRel); // mapper.xml UPDATE ${tableName} SET relation = #{syncUserRel.relation}, relation_date = #{syncUserRel.relationDate} WHERE auid = #{syncUserRel.auid} 동적으로 생성된 테이블에 데이터를 넣는 쿼리였는데, 실행해 보면 re..
-
Angular ChangeDetection의 이해와 OnPush 전략Angular 2021. 8. 14. 17:33
ChangeDetection ? Zone.js ? 앵귤러는 컴포넌트의 상태변화를 자동으로 감지해 뷰를 다시 랜더링하는 로직을 가지고 있다. 상태변화란, 컴포넌트의 프로퍼티가(모델) 변화하는것인데, 최초 컴포넌트를 생성하는 시점 이후 상태변화를 일으킬 가능성이 있는 경우는 많지 않다. DOM 이벤트(click, mouse move 등) Timer관련 함수(setTimeout, setInterval)등의 tick이벤트 Ajax통신/ Promise등 이러한 비동기 처리는 컴포넍트의 상태를 변화시킬 가능성이 있고, Angular에서는 zone.js가 이들을 프록시로 재정의여 대체하는데(프록시로 랩핑) 이런 개념을 몽키패치라고 한다. 모델을 변화시킬 수 있는 비동기 처리가 호출되면, zone.js는 패치를 통해 ..
-
스프링 부트 실전 마스터 - 2장 스프링 부트를 활용한 데이터 액세스Java/Spring 2021. 8. 4. 21:18
정리중.. 1. 리액티브 프로그래밍을 사용하려면 모든 과정이 리액티브여야한다 -> Db와의 통신역시도 리액티브여야한다. - 리액티브 패러다임을 지원하는 데이터베이스( 비동기, 논블로킹을 지원하는 데이터베이스 드라이버를 가짐) - MongoDb, Redis, Cassandra, Elasticsearch, Neo4j, Couchbase - 기존 RDB는 지원하지 않고 블록킹으로 작동한다. 2. 우리가 사용할 mongo db - spring-boot-starter-data-mongodb-reactive : 스프링 데이터 몽고디비의 리액티브 버전 3. 간단한 CRUD 연산을 처리하기 위해 여러 디비에서 공통적으로 사용되는 단순한 연산을 자바에서 추상화해서 표준화된 방식으로 접근할 수 있게 지원한다 -> Repo..